diff options
Diffstat (limited to 'continuedev')
6 files changed, 24 insertions, 14 deletions
| diff --git a/continuedev/src/continuedev/libs/llm/ollama.py b/continuedev/src/continuedev/libs/llm/ollama.py index ef3cdc66..0eb738dc 100644 --- a/continuedev/src/continuedev/libs/llm/ollama.py +++ b/continuedev/src/continuedev/libs/llm/ollama.py @@ -1,4 +1,5 @@  import json +from textwrap import dedent  from typing import Any, Coroutine, Dict, Generator, List, Union  import aiohttp @@ -46,12 +47,14 @@ class Ollama(LLM):          prompt = ""          has_system = msgs[0]["role"] == "system"          if has_system: -            system_message = f"""\ +            system_message = dedent( +                f"""\                  <<SYS>>                  {self.system_message}                  <</SYS>>                  """ +            )              if len(msgs) > 1:                  prompt += f"[INST] {system_message}{msgs[1]['content']} [/INST]"              else: diff --git a/continuedev/src/continuedev/libs/llm/proxy_server.py b/continuedev/src/continuedev/libs/llm/proxy_server.py index acc6653d..fa77a22a 100644 --- a/continuedev/src/continuedev/libs/llm/proxy_server.py +++ b/continuedev/src/continuedev/libs/llm/proxy_server.py @@ -1,16 +1,7 @@  import json  import ssl  import traceback -from typing import ( -    Any, -    Callable, -    Coroutine, -    Dict, -    Generator, -    List, -    Optional, -    Union, -) +from typing import Any, Callable, Coroutine, Dict, Generator, List, Optional, Union  import aiohttp  import certifi diff --git a/continuedev/src/continuedev/plugins/steps/core/core.py b/continuedev/src/continuedev/plugins/steps/core/core.py index 3ff1730e..4f144f32 100644 --- a/continuedev/src/continuedev/plugins/steps/core/core.py +++ b/continuedev/src/continuedev/plugins/steps/core/core.py @@ -1,6 +1,5 @@  # These steps are depended upon by ContinueSDK  import difflib -import os  import traceback  from textwrap import dedent  from typing import Any, Coroutine, List, Union @@ -822,7 +821,8 @@ Please output the code to be inserted at the cursor in order to fulfill the user          for rif in rif_with_contents:              # If the file doesn't exist, ask them to save it first -            if not os.path.exists(rif.filepath): +            exists = await sdk.ide.fileExists(rif.filepath) +            if not exists:                  message = (                      f"The file {rif.filepath} does not exist. Please save it first."                  ) diff --git a/continuedev/src/continuedev/plugins/steps/on_traceback.py b/continuedev/src/continuedev/plugins/steps/on_traceback.py index 9c663a66..63bae805 100644 --- a/continuedev/src/continuedev/plugins/steps/on_traceback.py +++ b/continuedev/src/continuedev/plugins/steps/on_traceback.py @@ -22,7 +22,7 @@ class DefaultOnTracebackStep(Step):              for seg in segs:                  if (                      seg.startswith(os.path.sep) -                    and os.path.exists(seg) +                    and os.path.exists(seg)  # TODO: Use sdk.ide.fileExists                      and os.path.commonprefix([seg, sdk.ide.workspace_directory])                      == sdk.ide.workspace_directory                  ): diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index 871724db..8a62c39e 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -124,6 +124,10 @@ class ListDirectoryContentsResponse(BaseModel):      contents: List[str] +class FileExistsResponse(BaseModel): +    exists: bool + +  T = TypeVar("T", bound=BaseModel) @@ -246,6 +250,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):              "runCommand",              "getTerminalContents",              "listDirectoryContents", +            "fileExists",          ]:              self.sub_queue.post(message_type, data)          elif message_type == "workspaceDirectory": @@ -455,6 +460,13 @@ class IdeProtocolServer(AbstractIdeProtocolServer):          )          return resp.contents +    async def fileExists(self, filepath: str) -> str: +        """Check whether file exists""" +        resp = await self._send_and_receive_json( +            {"filepath": filepath}, FileExistsResponse, "fileExists" +        ) +        return resp.exists +      async def getUserSecret(self, key: str) -> str:          """Get a user secret"""          try: diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py index f37c1737..f4a39c26 100644 --- a/continuedev/src/continuedev/server/ide_protocol.py +++ b/continuedev/src/continuedev/server/ide_protocol.py @@ -151,5 +151,9 @@ class AbstractIdeProtocolServer(ABC):      async def listDirectoryContents(self, directory: str) -> List[str]:          """List directory contents""" +    @abstractmethod +    async def fileExists(self, filepath: str) -> str: +        """Check if a file exists""" +      workspace_directory: str      unique_id: str | 
