summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/core
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-09-08 14:17:50 -0700
committerNate Sesti <sestinj@gmail.com>2023-09-08 14:17:50 -0700
commit8d423fd8d1d5b136e8138a906e8594ab93ec1982 (patch)
tree11498fcf6b11683a6b5aaab4ea7f7b2855d6c6cc /continuedev/src/continuedev/core
parent354a3f493074b1fb63ff4f206a94c35f05673e99 (diff)
downloadsncontinue-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.py1
-rw-r--r--continuedev/src/continuedev/core/context.py32
-rw-r--r--continuedev/src/continuedev/core/main.py8
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: