diff options
| author | Nate Sesti <sestinj@gmail.com> | 2023-06-02 01:05:59 -0400 | 
|---|---|---|
| committer | Nate Sesti <sestinj@gmail.com> | 2023-06-02 01:05:59 -0400 | 
| commit | ad86eff7b06f0bfbed3b1cb362d83ec6a4348e45 (patch) | |
| tree | b7216e5a93f0d082331044bf27d9cb2311655421 /continuedev/src | |
| parent | 769bf31da03f4c5d3145d885cff897109d63f246 (diff) | |
| download | sncontinue-ad86eff7b06f0bfbed3b1cb362d83ec6a4348e45.tar.gz sncontinue-ad86eff7b06f0bfbed3b1cb362d83ec6a4348e45.tar.bz2 sncontinue-ad86eff7b06f0bfbed3b1cb362d83ec6a4348e45.zip | |
notebook -> gui
Diffstat (limited to 'continuedev/src')
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( | 
