summaryrefslogtreecommitdiff
path: root/continuedev
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-26 22:31:49 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-26 22:31:49 -0700
commit417d45ccddc2f434d7467e4f17113783996653dd (patch)
tree2667d7d753948b25f74979edc7ba6bde41a9e2a6 /continuedev
parentb0426d82a4871e9081367ad4e977b22f42db5a89 (diff)
downloadsncontinue-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')
-rw-r--r--continuedev/src/continuedev/libs/llm/ollama.py5
-rw-r--r--continuedev/src/continuedev/libs/llm/proxy_server.py11
-rw-r--r--continuedev/src/continuedev/plugins/steps/core/core.py4
-rw-r--r--continuedev/src/continuedev/plugins/steps/on_traceback.py2
-rw-r--r--continuedev/src/continuedev/server/ide.py12
-rw-r--r--continuedev/src/continuedev/server/ide_protocol.py4
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