diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-08-26 22:31:49 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-08-26 22:31:49 -0700 |
commit | 417d45ccddc2f434d7467e4f17113783996653dd (patch) | |
tree | 2667d7d753948b25f74979edc7ba6bde41a9e2a6 /continuedev | |
parent | b0426d82a4871e9081367ad4e977b22f42db5a89 (diff) | |
download | sncontinue-417d45ccddc2f434d7467e4f17113783996653dd.tar.gz sncontinue-417d45ccddc2f434d7467e4f17113783996653dd.tar.bz2 sncontinue-417d45ccddc2f434d7467e4f17113783996653dd.zip |
fix: :bug: fix ssh /edit by checking for file through vscode fs
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 |