summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/libs/steps
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev/src/continuedev/libs/steps')
-rw-r--r--continuedev/src/continuedev/libs/steps/chroma.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/core/core.py33
-rw-r--r--continuedev/src/continuedev/libs/steps/draft/dlt.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/main.py20
-rw-r--r--continuedev/src/continuedev/libs/steps/migration.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/nate.py6
-rw-r--r--continuedev/src/continuedev/libs/steps/pytest.py2
-rw-r--r--continuedev/src/continuedev/libs/steps/ty.py2
8 files changed, 30 insertions, 39 deletions
diff --git a/continuedev/src/continuedev/libs/steps/chroma.py b/continuedev/src/continuedev/libs/steps/chroma.py
index f13a2bab..39424c5c 100644
--- a/continuedev/src/continuedev/libs/steps/chroma.py
+++ b/continuedev/src/continuedev/libs/steps/chroma.py
@@ -40,7 +40,7 @@ class AnswerQuestionChroma(Step):
Here is the answer:""")
- answer = sdk.llm.complete(prompt)
+ answer = (await sdk.models.gpt35()).complete(prompt)
print(answer)
self._answer = answer
diff --git a/continuedev/src/continuedev/libs/steps/core/core.py b/continuedev/src/continuedev/libs/steps/core/core.py
index 0338d635..14b3cb80 100644
--- a/continuedev/src/continuedev/libs/steps/core/core.py
+++ b/continuedev/src/continuedev/libs/steps/core/core.py
@@ -4,27 +4,18 @@ from textwrap import dedent
from typing import Coroutine, List, Union
from ...llm.prompt_utils import MarkdownStyleEncoderDecoder
-from ...util.traceback_parsers import parse_python_traceback
-
from ....models.filesystem_edit import EditDiff, FileEditWithFullContents, FileSystemEdit
from ....models.filesystem import FileSystem, RangeInFile, RangeInFileWithContents
-from ...llm import LLM
from ....core.observation import Observation, TextObservation, TracebackObservation, UserInputObservation
-from ....core.main import Step
+from ....core.main import Step, SequentialStep
class ContinueSDK:
pass
-class SequentialStep(Step):
- steps: list[Step]
- hide: bool = True
-
- async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
- for step in self.steps:
- observation = await sdk.run_step(step)
- return observation
+class Models:
+ pass
class ReversibleStep(Step):
@@ -52,7 +43,7 @@ def ShellCommandsStep(Step):
cwd: str | None = None
name: str = "Run Shell Commands"
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "\n".join(self.cmds)
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -81,13 +72,13 @@ class EditCodeStep(Step):
_prompt: Union[str, None] = None
_completion: Union[str, None] = None
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
if self._edit_diffs is None:
return "Editing files: " + ", ".join(map(lambda rif: rif.filepath, self.range_in_files))
elif len(self._edit_diffs) == 0:
return "No edits made"
else:
- return llm.complete(dedent(f"""{self._prompt}{self._completion}
+ return (await models.gpt35()).complete(dedent(f"""{self._prompt}{self._completion}
Maximally concise summary of changes in bullet points (can use markdown):
"""))
@@ -102,7 +93,7 @@ class EditCodeStep(Step):
code_string = enc_dec.encode()
prompt = self.prompt.format(code=code_string)
- completion = sdk.llm.complete(prompt)
+ completion = (await sdk.models.gpt35()).complete(prompt)
# Temporarily doing this to generate description.
self._prompt = prompt
@@ -127,7 +118,7 @@ class EditFileStep(Step):
prompt: str
hide: bool = True
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Editing file: " + self.filepath
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -145,7 +136,7 @@ class ManualEditStep(ReversibleStep):
hide: bool = True
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Manual edit step"
# TODO - only handling FileEdit here, but need all other types of FileSystemEdits
# Also requires the merge_file_edit function
@@ -181,7 +172,7 @@ class UserInputStep(Step):
name: str = "User Input"
hide: bool = True
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return self.user_input
async def run(self, sdk: ContinueSDK) -> Coroutine[UserInputObservation, None, None]:
@@ -194,7 +185,7 @@ class WaitForUserInputStep(Step):
_description: Union[str, None] = None
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return self.prompt
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -207,7 +198,7 @@ class WaitForUserConfirmationStep(Step):
prompt: str
name: str = "Waiting for user confirmation"
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return self.prompt
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
diff --git a/continuedev/src/continuedev/libs/steps/draft/dlt.py b/continuedev/src/continuedev/libs/steps/draft/dlt.py
index 5ba5692a..460aa0cc 100644
--- a/continuedev/src/continuedev/libs/steps/draft/dlt.py
+++ b/continuedev/src/continuedev/libs/steps/draft/dlt.py
@@ -10,7 +10,7 @@ class SetupPipelineStep(Step):
api_description: str # e.g. "I want to load data from the weatherapi.com API"
async def run(self, sdk: ContinueSDK):
- source_name = sdk.llm.complete(
+ source_name = (await sdk.models.gpt35()).complete(
f"Write a snake_case name for the data source described by {self.api_description}: ").strip()
filename = f'{source_name}.py'
diff --git a/continuedev/src/continuedev/libs/steps/main.py b/continuedev/src/continuedev/libs/steps/main.py
index c8a85800..70c0d4b8 100644
--- a/continuedev/src/continuedev/libs/steps/main.py
+++ b/continuedev/src/continuedev/libs/steps/main.py
@@ -11,7 +11,7 @@ from ...core.observation import Observation, TextObservation, TracebackObservati
from ..llm.prompt_utils import MarkdownStyleEncoderDecoder
from textwrap import dedent
from ...core.main import Step
-from ...core.sdk import ContinueSDK
+from ...core.sdk import ContinueSDK, Models
from ...core.observation import Observation
import subprocess
from .core.core import EditCodeStep
@@ -20,7 +20,7 @@ from .core.core import EditCodeStep
class RunCodeStep(Step):
cmd: str
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return f"Ran command: `{self.cmd}`"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -59,7 +59,7 @@ class RunCommandStep(Step):
name: str = "Run command"
_description: str = None
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
if self._description is not None:
return self._description
return self.cmd
@@ -125,7 +125,7 @@ class FasterEditHighlightedCodeStep(Step):
Here is the description of changes to make:
""")
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Editing highlighted code"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -154,7 +154,7 @@ class FasterEditHighlightedCodeStep(Step):
for rif in rif_with_contents:
rif_dict[rif.filepath] = rif.contents
- completion = sdk.llm.complete(prompt)
+ completion = (await sdk.models.gpt35()).complete(prompt)
# Temporarily doing this to generate description.
self._prompt = prompt
@@ -215,10 +215,10 @@ class FasterEditHighlightedCodeStep(Step):
class StarCoderEditHighlightedCodeStep(Step):
user_input: str
- hide = True
+ hide = False
_prompt: str = "<commit_before>{code}<commit_msg>{user_request}<commit_after>"
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Editing highlighted code"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -271,7 +271,7 @@ This is the user request:
This is the code after being changed to perfectly satisfy the user request:
""")
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Editing highlighted code"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -293,7 +293,7 @@ This is the code after being changed to perfectly satisfy the user request:
class FindCodeStep(Step):
prompt: str
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return "Finding code"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
@@ -307,7 +307,7 @@ class UserInputStep(Step):
class SolveTracebackStep(Step):
traceback: Traceback
- async def describe(self, llm: LLM) -> Coroutine[str, None, None]:
+ async def describe(self, models: Models) -> Coroutine[str, None, None]:
return f"```\n{self.traceback.full_traceback}\n```"
async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
diff --git a/continuedev/src/continuedev/libs/steps/migration.py b/continuedev/src/continuedev/libs/steps/migration.py
index f044a60f..7b70422d 100644
--- a/continuedev/src/continuedev/libs/steps/migration.py
+++ b/continuedev/src/continuedev/libs/steps/migration.py
@@ -15,7 +15,7 @@ class MigrationStep(Step):
recent_edits = await sdk.ide.get_recent_edits(self.edited_file)
recent_edits_string = "\n\n".join(
map(lambda x: x.to_string(), recent_edits))
- description = await sdk.llm.complete(f"{recent_edits_string}\n\nGenerate a short description of the migration made in the above changes:\n")
+ description = await (await sdk.models.gpt35()).complete(f"{recent_edits_string}\n\nGenerate a short description of the migration made in the above changes:\n")
await sdk.run_step(RunCommandStep(cmd=f"cd libs && poetry run alembic revision --autogenerate -m {description}"))
migration_file = f"libs/alembic/versions/{?}.py"
contents = await sdk.ide.readFile(migration_file)
diff --git a/continuedev/src/continuedev/libs/steps/nate.py b/continuedev/src/continuedev/libs/steps/nate.py
index a0e728e5..2f84e9d7 100644
--- a/continuedev/src/continuedev/libs/steps/nate.py
+++ b/continuedev/src/continuedev/libs/steps/nate.py
@@ -45,7 +45,7 @@ Here are additional instructions:
Here is a complete set of pytest unit tests:
""")
- # tests = sdk.llm.complete(prompt)
+ # tests = (await sdk.models.gpt35()).complete(prompt)
tests = '''
import pytest
@@ -169,9 +169,9 @@ export class Order {
tracking_number: string;
}'''
time.sleep(2)
- # orm_entity = sdk.llm.complete(
+ # orm_entity = (await sdk.models.gpt35()).complete(
# f"{self.sql_str}\n\nWrite a TypeORM entity called {entity_name} for this table, importing as necessary:")
- # sdk.llm.complete("What is the name of the entity?")
+ # (await sdk.models.gpt35()).complete("What is the name of the entity?")
await sdk.apply_filesystem_edit(AddFile(filepath=f"/Users/natesesti/Desktop/continue/extension/examples/python/MyProject/src/entity/{entity_name}.ts", content=orm_entity))
await sdk.ide.setFileOpen(f"/Users/natesesti/Desktop/continue/extension/examples/python/MyProject/src/entity/{entity_name}.ts", True)
diff --git a/continuedev/src/continuedev/libs/steps/pytest.py b/continuedev/src/continuedev/libs/steps/pytest.py
index b4e6dfd2..2e83ae2d 100644
--- a/continuedev/src/continuedev/libs/steps/pytest.py
+++ b/continuedev/src/continuedev/libs/steps/pytest.py
@@ -33,5 +33,5 @@ class WritePytestsStep(Step):
Here is a complete set of pytest unit tests:
""")
- tests = sdk.llm.complete(prompt)
+ tests = (await sdk.models.gpt35()).complete(prompt)
await sdk.apply_filesystem_edit(AddFile(filepath=path, content=tests))
diff --git a/continuedev/src/continuedev/libs/steps/ty.py b/continuedev/src/continuedev/libs/steps/ty.py
index 5ff03f04..9dde7c86 100644
--- a/continuedev/src/continuedev/libs/steps/ty.py
+++ b/continuedev/src/continuedev/libs/steps/ty.py
@@ -18,7 +18,7 @@ class SetupPipelineStep(Step):
api_description: str # e.g. "I want to load data from the weatherapi.com API"
async def run(self, sdk: ContinueSDK):
- # source_name = sdk.llm.complete(
+ # source_name = (await sdk.models.gpt35()).complete(
# f"Write a snake_case name for the data source described by {self.api_description}: ").strip()
filename = f'/Users/natesesti/Desktop/continue/extension/examples/python/{source_name}.py'