diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-09-08 14:17:50 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-09-08 14:17:50 -0700 |
commit | 8d423fd8d1d5b136e8138a906e8594ab93ec1982 (patch) | |
tree | 11498fcf6b11683a6b5aaab4ea7f7b2855d6c6cc /continuedev/src/continuedev/core | |
parent | 354a3f493074b1fb63ff4f206a94c35f05673e99 (diff) | |
download | sncontinue-8d423fd8d1d5b136e8138a906e8594ab93ec1982.tar.gz sncontinue-8d423fd8d1d5b136e8138a906e8594ab93ec1982.tar.bz2 sncontinue-8d423fd8d1d5b136e8138a906e8594ab93ec1982.zip |
feat: :lipstick: nested context provider dropdown
Diffstat (limited to 'continuedev/src/continuedev/core')
-rw-r--r-- | continuedev/src/continuedev/core/autopilot.py | 1 | ||||
-rw-r--r-- | continuedev/src/continuedev/core/context.py | 32 | ||||
-rw-r--r-- | continuedev/src/continuedev/core/main.py | 8 |
3 files changed, 39 insertions, 2 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py index cee7a2f9..a943a35f 100644 --- a/continuedev/src/continuedev/core/autopilot.py +++ b/continuedev/src/continuedev/core/autopilot.py @@ -177,6 +177,7 @@ class Autopilot(ContinueBaseModel): session_info=self.session_info, config=self.continue_sdk.config, saved_context_groups=self._saved_context_groups, + context_providers=self.context_manager.get_provider_descriptions(), ) self.full_state = full_state return full_state diff --git a/continuedev/src/continuedev/core/context.py b/continuedev/src/continuedev/core/context.py index 571e5dc8..f1f309ba 100644 --- a/continuedev/src/continuedev/core/context.py +++ b/continuedev/src/continuedev/core/context.py @@ -11,7 +11,13 @@ from ..libs.util.devdata import dev_data_logger from ..libs.util.logging import logger from ..libs.util.telemetry import posthog_logger from ..server.meilisearch_server import poll_meilisearch_running, restart_meilisearch -from .main import ChatMessage, ContextItem, ContextItemDescription, ContextItemId +from .main import ( + ChatMessage, + ContextItem, + ContextItemDescription, + ContextItemId, + ContextProviderDescription, +) class ContinueSDK(BaseModel): @@ -36,6 +42,10 @@ class ContextProvider(BaseModel): delete_documents: Callable[[List[str]], Awaitable] = None update_documents: Callable[[List[ContextItem], str], Awaitable] = None + display_title: str + description: str + dynamic: bool + selected_items: List[ContextItem] = [] def dict(self, *args, **kwargs): @@ -168,6 +178,20 @@ class ContextManager: It is responsible for compiling all of this information into a single prompt without exceeding the token limit. """ + def get_provider_descriptions(self) -> List[ContextProviderDescription]: + """ + Returns a list of ContextProviderDescriptions for each context provider. + """ + return [ + ContextProviderDescription( + title=provider.title, + display_title=provider.display_title, + description=provider.description, + dynamic=provider.dynamic, + ) + for provider in self.context_providers.values() + ] + async def get_selected_items(self) -> List[ContextItem]: """ Returns all of the selected ContextItems. @@ -242,6 +266,7 @@ class ContextManager: "description": item.description.description, "content": item.content, "workspace_dir": workspace_dir, + "provider_name": item.description.id.provider_title, } for item in context_items ] @@ -282,7 +307,9 @@ class ContextManager: await globalSearchIndex.update_searchable_attributes( ["name", "description"] ) - await globalSearchIndex.update_filterable_attributes(["workspace_dir"]) + await globalSearchIndex.update_filterable_attributes( + ["workspace_dir", "provider_name"] + ) async def load_context_provider(provider: ContextProvider): context_items = await provider.provide_context_items(workspace_dir) @@ -293,6 +320,7 @@ class ContextManager: "description": item.description.description, "content": item.content, "workspace_dir": workspace_dir, + "provider_name": provider.title, } for item in context_items ] diff --git a/continuedev/src/continuedev/core/main.py b/continuedev/src/continuedev/core/main.py index ec2e2a07..3d3bef15 100644 --- a/continuedev/src/continuedev/core/main.py +++ b/continuedev/src/continuedev/core/main.py @@ -291,6 +291,13 @@ class ContinueConfig(ContinueBaseModel): return original_dict +class ContextProviderDescription(BaseModel): + title: str + display_title: str + description: str + dynamic: bool + + class FullState(ContinueBaseModel): """A full state of the program, including the history""" @@ -303,6 +310,7 @@ class FullState(ContinueBaseModel): session_info: Optional[SessionInfo] = None config: ContinueConfig saved_context_groups: Dict[str, List[ContextItem]] = {} + context_providers: List[ContextProviderDescription] = [] class ContinueSDK: |