summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/core
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-06 15:24:13 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-06 15:24:13 -0700
commitc25527926ad1d1f861dbed01df577e962e08d746 (patch)
treea8542dd40879257ba544842d7ece2ebf01afb383 /continuedev/src/continuedev/core
parent31e7c9828f985eceb16b4c9c749cc5d4d9fd5beb (diff)
downloadsncontinue-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.py21
-rw-r--r--continuedev/src/continuedev/core/main.py15
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: