diff options
| author | Nate Sesti <sestinj@gmail.com> | 2023-07-17 21:09:30 -0700 | 
|---|---|---|
| committer | Nate Sesti <sestinj@gmail.com> | 2023-07-17 21:09:30 -0700 | 
| commit | dc64c73adb8c8a2aeb3210bc9f4ff1bd82c03de2 (patch) | |
| tree | b29a0c117219d3fcf2a090dd4cb18a2596812476 /continuedev/src/continuedev/server | |
| parent | 8498ab7fd2945703f4ad59dabf51cb851db4f64d (diff) | |
| download | sncontinue-dc64c73adb8c8a2aeb3210bc9f4ff1bd82c03de2.tar.gz sncontinue-dc64c73adb8c8a2aeb3210bc9f4ff1bd82c03de2.tar.bz2 sncontinue-dc64c73adb8c8a2aeb3210bc9f4ff1bd82c03de2.zip | |
show exact prompt/completion logs
Diffstat (limited to 'continuedev/src/continuedev/server')
| -rw-r--r-- | continuedev/src/continuedev/server/gui.py | 9 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/ide.py | 14 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/ide_protocol.py | 4 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/session_manager.py | 2 | 
4 files changed, 26 insertions, 3 deletions
| diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index 4201353e..ae57c0b6 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -99,6 +99,8 @@ class GUIProtocolServer(AbstractGUIProtocolServer):                  self.on_set_editing_at_indices(data["indices"])              elif message_type == "set_pinned_at_indices":                  self.on_set_pinned_at_indices(data["indices"]) +            elif message_type == "show_logs_at_index": +                self.on_show_logs_at_index(data["index"])          except Exception as e:              print(e) @@ -166,6 +168,13 @@ class GUIProtocolServer(AbstractGUIProtocolServer):                  indices), self.session.autopilot.continue_sdk.ide.unique_id          ) +    def on_show_logs_at_index(self, index: int): +        name = f"continue_logs.txt" +        logs = "\n\n############################################\n\n".join( +            ["This is a log of the exact prompt/completion pairs sent/received from the LLM during this step"] + self.session.autopilot.continue_sdk.history.timeline[index].logs) +        create_async_task( +            self.session.autopilot.ide.showVirtualFile(name, logs)) +  @router.websocket("/ws")  async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(websocket_session)): diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index 43538407..aeff5623 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -224,6 +224,12 @@ class IdeProtocolServer(AbstractIdeProtocolServer):              "open": open          }) +    async def showVirtualFile(self, name: str, contents: str): +        await self._send_json("showVirtualFile", { +            "name": name, +            "contents": contents +        }) +      async def setSuggestionsLocked(self, filepath: str, locked: bool = True):          # Lock suggestions in the file so they don't ruin the offset before others are inserted          await self._send_json("setSuggestionsLocked", { @@ -288,6 +294,8 @@ class IdeProtocolServer(AbstractIdeProtocolServer):          pass      def __get_autopilot(self): +        if self.session_id not in self.session_manager.sessions: +            return None          return self.session_manager.sessions[self.session_id].autopilot      def onFileEdits(self, edits: List[FileEditWithFullContents]): @@ -442,7 +450,8 @@ async def websocket_endpoint(websocket: WebSocket, session_id: str = None):          if session_id is not None:              session_manager.registered_ides[session_id] = ideProtocolServer          other_msgs = await ideProtocolServer.initialize(session_id) -        capture_event(ideProtocolServer.unique_id, "session_started", { "session_id": ideProtocolServer.session_id }) +        capture_event(ideProtocolServer.unique_id, "session_started", { +                      "session_id": ideProtocolServer.session_id})          for other_msg in other_msgs:              handle_msg(other_msg) @@ -463,5 +472,6 @@ async def websocket_endpoint(websocket: WebSocket, session_id: str = None):          if websocket.client_state != WebSocketState.DISCONNECTED:              await websocket.close() -        capture_event(ideProtocolServer.unique_id, "session_ended", { "session_id": ideProtocolServer.session_id }) +        capture_event(ideProtocolServer.unique_id, "session_ended", { +                      "session_id": ideProtocolServer.session_id})          session_manager.registered_ides.pop(ideProtocolServer.session_id) diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py index d0fb0bf8..0ae7e7fa 100644 --- a/continuedev/src/continuedev/server/ide_protocol.py +++ b/continuedev/src/continuedev/server/ide_protocol.py @@ -24,6 +24,10 @@ class AbstractIdeProtocolServer(ABC):          """Set whether a file is open"""      @abstractmethod +    async def showVirtualFile(self, name: str, contents: str): +        """Show a virtual file""" + +    @abstractmethod      async def setSuggestionsLocked(self, filepath: str, locked: bool = True):          """Set whether suggestions are locked""" diff --git a/continuedev/src/continuedev/server/session_manager.py b/continuedev/src/continuedev/server/session_manager.py index 6d109ca6..90172a4e 100644 --- a/continuedev/src/continuedev/server/session_manager.py +++ b/continuedev/src/continuedev/server/session_manager.py @@ -100,7 +100,7 @@ class SessionManager:          if session_id not in self.sessions:              raise SessionNotFound(f"Session {session_id} not found")          if self.sessions[session_id].ws is None: -            print(f"Session {session_id} has no websocket") +            # print(f"Session {session_id} has no websocket")              return          await self.sessions[session_id].ws.send_json({ | 
