summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/libs/sdk.py
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-05-27 00:11:28 -0400
committerNate Sesti <sestinj@gmail.com>2023-05-27 00:11:28 -0400
commit20644034b9d4286509753876bacfe7ca6ed6392d (patch)
tree4b8818984439edb2372417304cdd9bc42508388e /continuedev/src/continuedev/libs/sdk.py
parent0877ada8ed9f71f3ee792bcb34a4005e3c86827d (diff)
downloadsncontinue-20644034b9d4286509753876bacfe7ca6ed6392d.tar.gz
sncontinue-20644034b9d4286509753876bacfe7ca6ed6392d.tar.bz2
sncontinue-20644034b9d4286509753876bacfe7ca6ed6392d.zip
Refactoring to deal with circularity
Diffstat (limited to 'continuedev/src/continuedev/libs/sdk.py')
-rw-r--r--continuedev/src/continuedev/libs/sdk.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/continuedev/src/continuedev/libs/sdk.py b/continuedev/src/continuedev/libs/sdk.py
new file mode 100644
index 00000000..0295bf35
--- /dev/null
+++ b/continuedev/src/continuedev/libs/sdk.py
@@ -0,0 +1,39 @@
+from typing import Coroutine, Union
+from ..models.filesystem_edit import FileSystemEdit
+from .llm import LLM
+from .observation import Observation
+from ..server.ide_protocol import AbstractIdeProtocolServer
+from .core import History, Step
+from .steps.core.core import *
+
+
+class Agent:
+ pass
+
+
+class ContinueSDK:
+ """The SDK provided as parameters to a step"""
+ llm: LLM
+ ide: AbstractIdeProtocolServer
+ __agent: Agent
+
+ def __init__(self, agent: Agent, llm: Union[LLM, None] = None):
+ if llm is None:
+ self.llm = agent.llm
+ else:
+ self.llm = llm
+ self.ide = agent.ide
+ self.__agent = agent
+
+ @property
+ def history(self) -> History:
+ return self.__agent.history
+
+ async def run_step(self, step: Step) -> Coroutine[Observation, None, None]:
+ return await self.__agent._run_singular_step(step)
+
+ async def apply_filesystem_edit(self, edit: FileSystemEdit):
+ await self.run_step(FileSystemEditStep(edit=edit))
+
+ async def wait_for_user_input(self) -> str:
+ return await self.__agent.wait_for_user_input()