diff options
| author | Nate Sesti <sestinj@gmail.com> | 2023-08-06 15:24:13 -0700 |
|---|---|---|
| committer | Nate Sesti <sestinj@gmail.com> | 2023-08-06 15:24:13 -0700 |
| commit | c25527926ad1d1f861dbed01df577e962e08d746 (patch) | |
| tree | a8542dd40879257ba544842d7ece2ebf01afb383 /continuedev/src/continuedev/core | |
| parent | 31e7c9828f985eceb16b4c9c749cc5d4d9fd5beb (diff) | |
| download | sncontinue-c25527926ad1d1f861dbed01df577e962e08d746.tar.gz sncontinue-c25527926ad1d1f861dbed01df577e962e08d746.tar.bz2 sncontinue-c25527926ad1d1f861dbed01df577e962e08d746.zip | |
feat: :construction: successfully loading past sessions
Diffstat (limited to 'continuedev/src/continuedev/core')
| -rw-r--r-- | continuedev/src/continuedev/core/autopilot.py | 21 | ||||
| -rw-r--r-- | continuedev/src/continuedev/core/main.py | 15 |
2 files changed, 26 insertions, 10 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py index 7e7ce5d8..6dd30db1 100644 --- a/continuedev/src/continuedev/core/autopilot.py +++ b/continuedev/src/continuedev/core/autopilot.py @@ -15,7 +15,7 @@ from ..plugins.context_providers.highlighted_code import HighlightedCodeContextP from ..server.ide_protocol import AbstractIdeProtocolServer from ..libs.util.queue import AsyncSubscriptionQueue from ..models.main import ContinueBaseModel -from .main import Context, ContinueCustomException, Policy, History, FullState, Step, HistoryNode +from .main import Context, ContinueCustomException, Policy, History, FullState, SessionInfo, Step, HistoryNode from ..plugins.steps.core.core import DisplayErrorStep, ReversibleStep, ManualEditStep, UserInputStep from .sdk import ContinueSDK from ..libs.util.traceback_parsers import get_python_traceback, get_javascript_traceback @@ -53,7 +53,8 @@ class Autopilot(ContinueBaseModel): policy: Policy = DefaultPolicy() history: History = History.from_empty() context: Context = Context() - full_state: Union[FullState, None] = None + full_state: Optional[FullState] = None + session_info: Optional[SessionInfo] = None context_manager: ContextManager = ContextManager() continue_sdk: ContinueSDK = None @@ -88,7 +89,6 @@ class Autopilot(ContinueBaseModel): if full_state is not None: self.history = full_state.history self.context_manager.context_providers["code"].adding_highlighted_code = full_state.adding_highlighted_code - await self.context_manager.set_selected_items(full_state.selected_context_items) self.started = True @@ -112,6 +112,7 @@ class Autopilot(ContinueBaseModel): adding_highlighted_code=self.context_manager.context_providers[ "code"].adding_highlighted_code if "code" in self.context_manager.context_providers else False, selected_context_items=await self.context_manager.get_selected_items() if self.context_manager is not None else [], + session_info=self.session_info ) self.full_state = full_state return full_state @@ -375,6 +376,20 @@ class Autopilot(ContinueBaseModel): self._main_user_input_queue.append(user_input) await self.update_subscribers() + # Use the first input to create title for session info, and make the session saveable + if self.session_info is None: + async def create_title(): + title = await self.continue_sdk.models.medium.complete(f"Give a short title to describe the current chat session. Do not put quotes around the title. The first message was: \"{user_input}\". The title is: ") + self.session_info = SessionInfo( + title=title, + session_id=self.ide.session_id, + date_created=time.strftime( + "%Y-%m-%d %H:%M:%S", time.gmtime()) + ) + + create_async_task(create_title(), on_error=lambda e: self.continue_sdk.run_step( + DisplayErrorStep(e=e))) + if len(self._main_user_input_queue) > 1: return diff --git a/continuedev/src/continuedev/core/main.py b/continuedev/src/continuedev/core/main.py index 9a06f2e1..a33d777e 100644 --- a/continuedev/src/continuedev/core/main.py +++ b/continuedev/src/continuedev/core/main.py @@ -1,5 +1,5 @@ import json -from typing import Coroutine, Dict, List, Literal, Union +from typing import Coroutine, Dict, List, Literal, Optional, Union from pydantic.schema import schema @@ -253,6 +253,12 @@ class ContextItem(BaseModel): editable: bool = False +class SessionInfo(ContinueBaseModel): + session_id: str + title: str + date_created: str + + class FullState(ContinueBaseModel): """A full state of the program, including the history""" history: History @@ -261,12 +267,7 @@ class FullState(ContinueBaseModel): slash_commands: List[SlashCommandDescription] adding_highlighted_code: bool selected_context_items: List[ContextItem] - - -class SessionInfo(ContinueBaseModel): - session_id: str - title: str - date_created: str + session_info: Optional[SessionInfo] = None class ContinueSDK: |
