summaryrefslogtreecommitdiff
path: root/continuedev/src
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev/src')
-rw-r--r--continuedev/src/continuedev/core/autopilot.py (renamed from continuedev/src/continuedev/core/agent.py)0
-rw-r--r--continuedev/src/continuedev/plugins/__init__.py26
-rw-r--r--continuedev/src/continuedev/plugins/load.py21
-rw-r--r--continuedev/src/continuedev/plugins/policy/__init__.py4
-rw-r--r--continuedev/src/continuedev/plugins/policy/hookspecs.py10
-rw-r--r--continuedev/src/continuedev/plugins/policy/libs/__init__.py0
-rw-r--r--continuedev/src/continuedev/plugins/policy/libs/alternate.py20
-rw-r--r--continuedev/src/continuedev/plugins/step/__init__.py4
-rw-r--r--continuedev/src/continuedev/plugins/step/hookspecs.py15
-rw-r--r--continuedev/src/continuedev/plugins/step/libs/__init__.py0
-rw-r--r--continuedev/src/continuedev/plugins/step/libs/hello_world.py9
-rw-r--r--continuedev/src/continuedev/server/gui.py (renamed from continuedev/src/continuedev/server/notebook.py)8
-rw-r--r--continuedev/src/continuedev/server/gui_protocol.py (renamed from continuedev/src/continuedev/server/notebook_protocol.py)2
-rw-r--r--continuedev/src/continuedev/server/ide.py16
-rw-r--r--continuedev/src/continuedev/server/ide_protocol.py12
-rw-r--r--continuedev/src/continuedev/server/main.py4
16 files changed, 21 insertions, 130 deletions
diff --git a/continuedev/src/continuedev/core/agent.py b/continuedev/src/continuedev/core/autopilot.py
index 6e920ab4..6e920ab4 100644
--- a/continuedev/src/continuedev/core/agent.py
+++ b/continuedev/src/continuedev/core/autopilot.py
diff --git a/continuedev/src/continuedev/plugins/__init__.py b/continuedev/src/continuedev/plugins/__init__.py
deleted file mode 100644
index 0ce6d079..00000000
--- a/continuedev/src/continuedev/plugins/__init__.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from typing import List
-import pluggy
-from .step import hookspecs
-from .step.libs import hello_world
-
-builtin_libs = [hello_world]
-
-def get_plugin_manager(use_plugins: List[str]) -> pluggy.PluginManager:
- pm = pluggy.PluginManager("continue.step")
- pm.add_hookspecs(hookspecs)
- pm.load_setuptools_entrypoints("continue.step")
-
- # Only use plugins that are specified in the config file
- for plugin, name in pm.list_name_plugin():
- if name not in use_plugins:
- pm.set_blocked(plugin)
-
- # Print warning if plugin not found
- for name in use_plugins:
- if not pm.has_plugin(name):
- print(f"Plugin {name} not found.")
-
- for lib in builtin_libs:
- pm.register(lib)
-
- return pm \ No newline at end of file
diff --git a/continuedev/src/continuedev/plugins/load.py b/continuedev/src/continuedev/plugins/load.py
deleted file mode 100644
index adbaad09..00000000
--- a/continuedev/src/continuedev/plugins/load.py
+++ /dev/null
@@ -1,21 +0,0 @@
-def load_validator_plugin(config: ValidatorPluginConfig) -> Validator:
- if config.name == "continue.tb_validator":
- return PythonTracebackValidator(config.cmd, config.cwd)
- elif config.name == "continue.pytest_validator":
- return PytestValidator(cwd=config.cwd)
- else:
- raise KeyError("Unknown validator plugin name")
-
-def load_llm_plugin(config: LLMPluginConfig) -> LLM:
- if config.provider == "openai":
- return OpenAI(api_key=config.api_key)
- else:
- raise KeyError("Unknown LLM provider: " + config.provider)
-
-def load_policy_plugin(config: PolicyPluginConfig) -> Policy:
- if config.name == "continue.random_policy":
- return RandomPolicy()
- elif config.name == "continue.dfs_policy":
- return DFSPolicy()
- else:
- raise KeyError("Unknown policy plugin name") \ No newline at end of file
diff --git a/continuedev/src/continuedev/plugins/policy/__init__.py b/continuedev/src/continuedev/plugins/policy/__init__.py
deleted file mode 100644
index b9722bae..00000000
--- a/continuedev/src/continuedev/plugins/policy/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-import pluggy
-
-hookimpl = pluggy.HookimplMarker("continue.policy")
-"""Marker to be imported and used in plugins (and for own implementations)""" \ No newline at end of file
diff --git a/continuedev/src/continuedev/plugins/policy/hookspecs.py b/continuedev/src/continuedev/plugins/policy/hookspecs.py
deleted file mode 100644
index abe932d3..00000000
--- a/continuedev/src/continuedev/plugins/policy/hookspecs.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from typing import List, Tuple
-import pluggy
-from ...libs.policy import Policy, Step
-
-hookspec = pluggy.HookspecMarker("continue.policy")
-
-class PolicyPlugin(Policy):
- @hookspec
- def next(self) -> Step:
- """Get the next step to run""" \ No newline at end of file
diff --git a/continuedev/src/continuedev/plugins/policy/libs/__init__.py b/continuedev/src/continuedev/plugins/policy/libs/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/continuedev/src/continuedev/plugins/policy/libs/__init__.py
+++ /dev/null
diff --git a/continuedev/src/continuedev/plugins/policy/libs/alternate.py b/continuedev/src/continuedev/plugins/policy/libs/alternate.py
deleted file mode 100644
index 3087c059..00000000
--- a/continuedev/src/continuedev/plugins/policy/libs/alternate.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from plugins import policy
-from ....core.main import History, Step
-
-
-class AlternatingPolicy:
- """A Policy that alternates between two steps."""
-
- def __init__(self, first: Step, second: Step):
- self.first = first
- self.second = second
- self.last_was_first = False
-
- @policy.hookimpl
- def next(self, history: History) -> Step:
- if self.last_was_first:
- self.last_was_first = False
- return self.second
- else:
- self.last_was_first = True
- return self.first
diff --git a/continuedev/src/continuedev/plugins/step/__init__.py b/continuedev/src/continuedev/plugins/step/__init__.py
deleted file mode 100644
index e6d8cd3b..00000000
--- a/continuedev/src/continuedev/plugins/step/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-import pluggy
-
-hookimpl = pluggy.HookimplMarker("continue.step")
-"""Marker to be imported and used in plugins (and for own implementations)""" \ No newline at end of file
diff --git a/continuedev/src/continuedev/plugins/step/hookspecs.py b/continuedev/src/continuedev/plugins/step/hookspecs.py
deleted file mode 100644
index a5714fc5..00000000
--- a/continuedev/src/continuedev/plugins/step/hookspecs.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from typing import Coroutine
-import pluggy
-from ...core.main import Step
-from ...core.observation import Observation
-from ...core.sdk import ContinueSDK
-
-hookspec = pluggy.HookspecMarker("continue.step")
-
-# Perhaps Actions should be generic about what their inputs must be.
-
-
-class StepPlugin(Step):
- @hookspec
- async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
- """Run"""
diff --git a/continuedev/src/continuedev/plugins/step/libs/__init__.py b/continuedev/src/continuedev/plugins/step/libs/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/continuedev/src/continuedev/plugins/step/libs/__init__.py
+++ /dev/null
diff --git a/continuedev/src/continuedev/plugins/step/libs/hello_world.py b/continuedev/src/continuedev/plugins/step/libs/hello_world.py
deleted file mode 100644
index 72255bfd..00000000
--- a/continuedev/src/continuedev/plugins/step/libs/hello_world.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from ....plugins import step
-from ....libs.steps import ContinueSDK
-
-
-class HelloWorldStep:
- """A Step that prints "Hello World!"."""
- @step.hookimpl
- def run(sdk: ContinueSDK):
- print("Hello World!")
diff --git a/continuedev/src/continuedev/server/notebook.py b/continuedev/src/continuedev/server/gui.py
index 8ebe2853..3d1a5a82 100644
--- a/continuedev/src/continuedev/server/notebook.py
+++ b/continuedev/src/continuedev/server/gui.py
@@ -5,13 +5,13 @@ from pydantic import BaseModel
from uvicorn.main import Server
from .session_manager import SessionManager, session_manager, Session
-from .notebook_protocol import AbstractNotebookProtocolServer
+from .gui_protocol import AbstractGUIProtocolServer
from ..libs.util.queue import AsyncSubscriptionQueue
import asyncio
import nest_asyncio
nest_asyncio.apply()
-router = APIRouter(prefix="/notebook", tags=["notebook"])
+router = APIRouter(prefix="/gui", tags=["gui"])
# Graceful shutdown by closing websockets
original_handler = Server.handle_exit
@@ -43,7 +43,7 @@ T = TypeVar("T", bound=BaseModel)
# You should probably abstract away the websocket stuff into a separate class
-class NotebookProtocolServer(AbstractNotebookProtocolServer):
+class GUIProtocolServer(AbstractGUIProtocolServer):
websocket: WebSocket
session: Session
sub_queue: AsyncSubscriptionQueue = AsyncSubscriptionQueue()
@@ -107,7 +107,7 @@ async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(we
print("Session started")
session_manager.register_websocket(session.session_id, websocket)
- protocol = NotebookProtocolServer(session)
+ protocol = GUIProtocolServer(session)
protocol.websocket = websocket
# Update any history that may have happened before connection
diff --git a/continuedev/src/continuedev/server/notebook_protocol.py b/continuedev/src/continuedev/server/gui_protocol.py
index c2be82e0..e32d80ef 100644
--- a/continuedev/src/continuedev/server/notebook_protocol.py
+++ b/continuedev/src/continuedev/server/gui_protocol.py
@@ -2,7 +2,7 @@ from typing import Any
from abc import ABC, abstractmethod
-class AbstractNotebookProtocolServer(ABC):
+class AbstractGUIProtocolServer(ABC):
@abstractmethod
async def handle_json(self, data: Any):
"""Handle a json message"""
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index 32f0b3ba..71017ce0 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -12,7 +12,7 @@ from ..models.filesystem import FileSystem, RangeInFile, EditDiff, RealFileSyste
from ..models.main import Traceback
from ..models.filesystem_edit import AddDirectory, AddFile, DeleteDirectory, DeleteFile, FileSystemEdit, FileEdit, FileEditWithFullContents, RenameDirectory, RenameFile, SequentialFileSystemEdit
from pydantic import BaseModel
-from .notebook import SessionManager, session_manager
+from .gui import SessionManager, session_manager
from .ide_protocol import AbstractIdeProtocolServer
@@ -106,8 +106,8 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
return resp_model.parse_obj(resp)
async def handle_json(self, message_type: str, data: Any):
- if message_type == "openNotebook":
- await self.openNotebook()
+ if message_type == "openGUI":
+ await self.openGUI()
elif message_type == "setFileOpen":
await self.setFileOpen(data["filepath"], data["open"])
elif message_type == "fileEdits":
@@ -131,9 +131,9 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
"open": open
})
- async def openNotebook(self):
+ async def openGUI(self):
session_id = self.session_manager.new_session(self)
- await self._send_json("openNotebook", {
+ await self._send_json("openGUI", {
"sessionId": session_id
})
@@ -148,7 +148,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
self._receive_json(ShowSuggestionResponse)
for i in range(len(suggestions))
]) # WORKING ON THIS FLOW HERE. Fine now to just await for response, instead of doing something fancy with a "waiting" state on the autopilot.
- # Just need connect the suggestionId to the IDE (and the notebook)
+ # Just need connect the suggestionId to the IDE (and the gui)
return any([r.accepted for r in responses])
# ------------------------------- #
@@ -168,11 +168,11 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
# Access to Autopilot (so SessionManager)
pass
- def onCloseNotebook(self, session_id: str):
+ def onCloseGUI(self, session_id: str):
# Accesss to SessionManager
pass
- def onOpenNotebookRequest(self):
+ def onOpenGUIRequest(self):
pass
def onFileEdits(self, edits: List[FileEditWithFullContents]):
diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py
index 15d019b4..4f505e80 100644
--- a/continuedev/src/continuedev/server/ide_protocol.py
+++ b/continuedev/src/continuedev/server/ide_protocol.py
@@ -24,8 +24,8 @@ class AbstractIdeProtocolServer(ABC):
"""Set whether a file is open"""
@abstractmethod
- async def openNotebook(self):
- """Open a notebook"""
+ async def openGUI(self):
+ """Open a GUI"""
@abstractmethod
async def showSuggestionsAndWait(self, suggestions: List[FileEdit]) -> bool:
@@ -44,12 +44,12 @@ class AbstractIdeProtocolServer(ABC):
"""Called when a file system update is received"""
@abstractmethod
- def onCloseNotebook(self, session_id: str):
- """Called when a notebook is closed"""
+ def onCloseGUI(self, session_id: str):
+ """Called when a GUI is closed"""
@abstractmethod
- def onOpenNotebookRequest(self):
- """Called when a notebook is requested to be opened"""
+ def onOpenGUIRequest(self):
+ """Called when a GUI is requested to be opened"""
@abstractmethod
async def getOpenFiles(self) -> List[str]:
diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py
index 1ffe1450..7b7124de 100644
--- a/continuedev/src/continuedev/server/main.py
+++ b/continuedev/src/continuedev/server/main.py
@@ -2,14 +2,14 @@ import os
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .ide import router as ide_router
-from .notebook import router as notebook_router
+from .gui import router as gui_router
import uvicorn
import argparse
app = FastAPI()
app.include_router(ide_router)
-app.include_router(notebook_router)
+app.include_router(gui_router)
# Add CORS support
app.add_middleware(