diff options
Diffstat (limited to 'continuedev')
7 files changed, 25 insertions, 11 deletions
| diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py index 0fa9d3a6..024d5cea 100644 --- a/continuedev/src/continuedev/core/sdk.py +++ b/continuedev/src/continuedev/core/sdk.py @@ -55,7 +55,7 @@ class ContinueSDK(AbstractContinueSDK):              formatted_err = '\n'.join(traceback.format_exception(e))              msg_step = MessageStep(                  name="Invalid Continue Config File", message=formatted_err) -            msg_step.description = f"Falling back to default config settings.\n```\n{formatted_err}\n```\n\nIt's possible this error was caused by an update to the Continue config format. If you'd like to see the new recommended default `config.py`, check [here](https://github.com/continuedev/continue/blob/main/continuedev/src/continuedev/libs/constants/default_config.py)." +            msg_step.description = f"Falling back to default config settings due to the following error in `~/.continue/config.py`.\n```\n{formatted_err}\n```\n\nIt's possible this was caused by an update to the Continue config format. If you'd like to see the new recommended default `config.py`, check [here](https://github.com/continuedev/continue/blob/main/continuedev/src/continuedev/libs/constants/default_config.py)."              sdk.history.add_node(HistoryNode(                  step=msg_step,                  observation=None, diff --git a/continuedev/src/continuedev/libs/constants/default_config.py b/continuedev/src/continuedev/libs/constants/default_config.py index 2201df33..e2b033b7 100644 --- a/continuedev/src/continuedev/libs/constants/default_config.py +++ b/continuedev/src/continuedev/libs/constants/default_config.py @@ -24,6 +24,7 @@ from continuedev.src.continuedev.plugins.steps.share_session import ShareSession  from continuedev.src.continuedev.plugins.steps.main import EditHighlightedCodeStep  from continuedev.src.continuedev.plugins.context_providers.search import SearchContextProvider  from continuedev.src.continuedev.plugins.context_providers.diff import DiffContextProvider +from continuedev.src.continuedev.plugins.context_providers.url import URLContextProvider  class CommitMessageStep(Step):      \"\"\" @@ -130,7 +131,8 @@ config = ContinueConfig(          #     serper_api_key="<your serper.dev api key>"          # )          SearchContextProvider(), -        DiffContextProvider() +        DiffContextProvider(), +        URLContextProvider()      ],      # Policies hold the main logic that decides which Step to take next diff --git a/continuedev/src/continuedev/libs/llm/replicate.py b/continuedev/src/continuedev/libs/llm/replicate.py index b13e2dec..235fd906 100644 --- a/continuedev/src/continuedev/libs/llm/replicate.py +++ b/continuedev/src/continuedev/libs/llm/replicate.py @@ -37,10 +37,17 @@ class ReplicateLLM(LLM):          pass      async def complete(self, prompt: str, with_history: List[ChatMessage] = None, **kwargs): -        output = self._client.run(self.model, input={"message": prompt}) -        completion = '' -        for item in output: -            completion += item +        def helper(): +            output = self._client.run(self.model, input={"message": prompt}) +            completion = '' +            for item in output: +                completion += item + +            return completion + +        with concurrent.futures.ThreadPoolExecutor() as executor: +            future = executor.submit(helper) +            completion = future.result()          return completion diff --git a/continuedev/src/continuedev/plugins/policies/default.py b/continuedev/src/continuedev/plugins/policies/default.py index 0d74fa3f..2382f33a 100644 --- a/continuedev/src/continuedev/plugins/policies/default.py +++ b/continuedev/src/continuedev/plugins/policies/default.py @@ -56,7 +56,8 @@ class DefaultPolicy(Policy):                  MessageStep(name="Welcome to Continue", message=dedent("""\                      - Highlight code section and ask a question or give instructions                      - Use `cmd+m` (Mac) / `ctrl+m` (Windows) to open Continue -                    - Use `/help` to ask questions about how to use Continue""")) >> +                    - Use `/help` to ask questions about how to use Continue +                    - [Customize Continue](https://continue.dev/docs/customization) (e.g. use your own API key) by typing '/config'.""")) >>                  WelcomeStep() >>                  StepsOnStartupStep()) diff --git a/continuedev/src/continuedev/plugins/steps/core/core.py b/continuedev/src/continuedev/plugins/steps/core/core.py index 4476c7ae..ee67d84f 100644 --- a/continuedev/src/continuedev/plugins/steps/core/core.py +++ b/continuedev/src/continuedev/plugins/steps/core/core.py @@ -10,6 +10,7 @@ import difflib  from pydantic import validator  from ....libs.llm.ggml import GGML +from ....libs.llm.replicate import ReplicateLLM  from ....models.main import Range  from ....libs.llm.maybe_proxy_openai import MaybeProxyOpenAI  from ....models.filesystem_edit import EditDiff, FileEdit, FileEditWithFullContents, FileSystemEdit @@ -512,6 +513,9 @@ Please output the code to be inserted at the cursor in order to fulfill the user          if isinstance(model_to_use, GGML):              messages = [ChatMessage(                  role="user", content=f"```\n{rif.contents}\n```\n\nUser request: \"{self.user_input}\"\n\nThis is the code after changing to perfectly comply with the user request. It does not include any placeholder code, only real implementations:\n\n```\n", summary=self.user_input)] +        elif isinstance(model_to_use, ReplicateLLM): +            messages = [ChatMessage( +                role="user", content=f"// Previous implementation\n\n{rif.contents}\n\n// Updated implementation (after following directions: {self.user_input})\n\n", summary=self.user_input)]          generator = model_to_use.stream_chat(              messages, temperature=sdk.config.temperature, max_tokens=max_tokens) diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index 49d46be3..35c52a47 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -59,12 +59,12 @@ class GUIProtocolServer(AbstractGUIProtocolServer):              "data": data          }) -    async def _receive_json(self, message_type: str, timeout: int = 20) -> Any: +    async def _receive_json(self, message_type: str, timeout: int = 10) -> Any:          try:              return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)          except asyncio.TimeoutError:              raise Exception( -                "GUI Protocol _receive_json timed out after 20 seconds") +                "GUI Protocol _receive_json timed out after 10 seconds")      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index e523d3aa..b0dbc552 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -165,12 +165,12 @@ class IdeProtocolServer(AbstractIdeProtocolServer):              "data": data          }) -    async def _receive_json(self, message_type: str, timeout: int = 20) -> Any: +    async def _receive_json(self, message_type: str, timeout: int = 10) -> Any:          try:              return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)          except asyncio.TimeoutError:              raise Exception( -                f"IDE Protocol _receive_json timed out after 20 seconds: {message_type}") +                f"IDE Protocol _receive_json timed out after 10 seconds: {message_type}")      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) | 
