summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--continuedev/src/continuedev/core/agent.py5
-rw-r--r--continuedev/src/continuedev/core/main.py13
-rw-r--r--continuedev/src/continuedev/core/sdk.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/core/core.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/draft/dlt.py14
-rw-r--r--continuedev/src/continuedev/libs/steps/main.py2
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json2
-rw-r--r--extension/src/debugPanel.ts1
9 files changed, 30 insertions, 15 deletions
diff --git a/continuedev/src/continuedev/core/agent.py b/continuedev/src/continuedev/core/agent.py
index 7f7466a2..0dba6122 100644
--- a/continuedev/src/continuedev/core/agent.py
+++ b/continuedev/src/continuedev/core/agent.py
@@ -94,10 +94,11 @@ class Agent(ContinueBaseModel):
self._step_depth -= 1
# Add observation to history
- self.history.get_current().observation = observation
+ self.history.get_last_at_depth(
+ self._step_depth, include_current=True).observation = observation
# Update its description
- step._set_description(await step.describe(ContinueSDK(self)))
+ step._set_description(await step.describe(ContinueSDK(self).models))
# Call all subscribed callbacks
await self.update_subscribers()
diff --git a/continuedev/src/continuedev/core/main.py b/continuedev/src/continuedev/core/main.py
index 6be5139b..a2336671 100644
--- a/continuedev/src/continuedev/core/main.py
+++ b/continuedev/src/continuedev/core/main.py
@@ -27,6 +27,17 @@ class History(ContinueBaseModel):
return None
return self.timeline[self.current_index]
+ def get_last_at_depth(self, depth: int, include_current: bool = False) -> Union[HistoryNode, None]:
+ i = self.current_index if include_current else self.current_index - 1
+ while i >= 0:
+ if self.timeline[i].depth == depth and type(self.timeline[i].step).__name__ != "ManualEditStep":
+ return self.timeline[i]
+ i -= 1
+ return None
+
+ def get_last_at_same_depth(self) -> Union[HistoryNode, None]:
+ return self.get_last_at_depth(self.get_current().depth)
+
def remove_current_and_substeps(self):
self.timeline.pop(self.current_index)
while self.get_current() is not None and self.get_current().depth > 0:
@@ -51,7 +62,7 @@ class History(ContinueBaseModel):
self.current_index -= 1
def last_observation(self) -> Union[Observation, None]:
- state = self.get_current()
+ state = self.get_last_at_same_depth()
if state is None:
return None
return state.observation
diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py
index 4d82a1ae..b9b20422 100644
--- a/continuedev/src/continuedev/core/sdk.py
+++ b/continuedev/src/continuedev/core/sdk.py
@@ -74,7 +74,7 @@ class ContinueSDK:
async def run(self, commands: List[str] | str, cwd: str = None):
commands = commands if isinstance(commands, List) else [commands]
- return await self.run_step(ShellCommandsStep(commands=commands, cwd=cwd))
+ return await self.run_step(ShellCommandsStep(cmds=commands, cwd=cwd))
async def edit_file(self, filename: str, prompt: str):
filepath = await self._ensure_absolute_path(filename)
diff --git a/continuedev/src/continuedev/libs/steps/core/core.py b/continuedev/src/continuedev/libs/steps/core/core.py
index 14b3cb80..1761cbfd 100644
--- a/continuedev/src/continuedev/libs/steps/core/core.py
+++ b/continuedev/src/continuedev/libs/steps/core/core.py
@@ -38,7 +38,7 @@ class FileSystemEditStep(ReversibleStep):
# Where and when should file saves happen?
-def ShellCommandsStep(Step):
+class ShellCommandsStep(Step):
cmds: List[str]
cwd: str | None = None
name: str = "Run Shell Commands"
diff --git a/continuedev/src/continuedev/libs/steps/draft/dlt.py b/continuedev/src/continuedev/libs/steps/draft/dlt.py
index 778ced1d..94ca2323 100644
--- a/continuedev/src/continuedev/libs/steps/draft/dlt.py
+++ b/continuedev/src/continuedev/libs/steps/draft/dlt.py
@@ -1,4 +1,6 @@
from textwrap import dedent
+
+from ....core.observation import DictObservation
from ....models.filesystem_edit import AddFile
from ....core.main import Step
from ....core.sdk import ContinueSDK
@@ -19,7 +21,7 @@ class SetupPipelineStep(Step):
'python3 -m venv env',
'source env/bin/activate',
'pip install dlt',
- 'dlt init {source_name} duckdb',
+ f'dlt init {source_name} duckdb',
'Y',
'pip install -r requirements.txt'
])
@@ -31,15 +33,15 @@ class SetupPipelineStep(Step):
)
# wait for user to put API key in secrets.toml
- await sdk.ide.setFileOpen(".dlt/secrets.toml")
+ await sdk.ide.setFileOpen(await sdk.ide.getWorkspaceDirectory() + "/.dlt/secrets.toml")
await sdk.wait_for_user_confirmation("Please add the API key to the `secrets.toml` file and then press `Continue`")
- return {"source_name": source_name}
+ return DictObservation(values={"source_name": source_name})
class ValidatePipelineStep(Step):
async def run(self, sdk: ContinueSDK):
- source_name = sdk.history.last_observation()["source_name"]
+ source_name = sdk.history.last_observation().values["source_name"]
filename = f'{source_name}.py'
# test that the API call works
@@ -68,7 +70,9 @@ class ValidatePipelineStep(Step):
for row in rows:
print(row)
''')
- await sdk.apply_filesystem_edit(AddFile(filepath='query.py', content=tables_query_code))
+
+ query_filename = (await sdk.ide.getWorkspaceDirectory()) + "/query.py"
+ await sdk.apply_filesystem_edit(AddFile(filepath=query_filename, content=tables_query_code))
await sdk.run('env/bin/python3 query.py')
diff --git a/continuedev/src/continuedev/libs/steps/main.py b/continuedev/src/continuedev/libs/steps/main.py
index d31db0eb..6a7f14c7 100644
--- a/continuedev/src/continuedev/libs/steps/main.py
+++ b/continuedev/src/continuedev/libs/steps/main.py
@@ -340,7 +340,7 @@ class MessageStep(Step):
return self.message
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
- pass
+ return TextObservation(text=self.message)
class EmptyStep(Step):
diff --git a/extension/package-lock.json b/extension/package-lock.json
index 8662ef49..ef3a619b 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.9",
+ "version": "0.0.10",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.9",
+ "version": "0.0.10",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index f84585fb..6658f77a 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,7 @@
"displayName": "Continue",
"pricing": "Free",
"description": "Refine code 10x faster",
- "version": "0.0.9",
+ "version": "0.0.10",
"publisher": "Continue",
"engines": {
"vscode": "^1.74.0"
diff --git a/extension/src/debugPanel.ts b/extension/src/debugPanel.ts
index da29a52c..87c33da1 100644
--- a/extension/src/debugPanel.ts
+++ b/extension/src/debugPanel.ts
@@ -194,7 +194,6 @@ export function setupDebugPanel(
async function connectWebsocket(url: string) {
return new Promise((resolve, reject) => {
const onMessage = (message: any) => {
- console.log("websocket message", message);
panel.webview.postMessage({
type: "websocketForwardingMessage",
url,