ui: show tool number (#2071)

This commit is contained in:
Lily Delalande
2025-04-07 19:49:58 -04:00
committed by GitHub
parent 4ea14d0766
commit 490944c3f8
12 changed files with 277 additions and 67 deletions
+4 -1
View File
@@ -12,7 +12,7 @@ use super::extension::{ExtensionConfig, ExtensionResult};
use crate::providers::base::Provider;
use crate::session;
use crate::{message::Message, permission::PermissionConfirmation};
use mcp_core::{prompt::Prompt, protocol::GetPromptResult, Content, ToolResult};
use mcp_core::{prompt::Prompt, protocol::GetPromptResult, Content, Tool, ToolResult};
/// Session configuration for an agent
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -43,6 +43,9 @@ pub trait Agent: Send + Sync {
// TODO this needs to also include status so we can tell if extensions are dropped
async fn list_extensions(&self) -> Vec<String>;
/// List the tools this agent has access to
async fn list_tools(&self) -> Vec<Tool>;
/// Pass through a JSON-RPC request to a specific extension
async fn passthrough(&self, extension: &str, request: Value) -> ExtensionResult<Value>;
+1 -1
View File
@@ -9,5 +9,5 @@ mod types;
pub use agent::{Agent, SessionConfig};
pub use capabilities::Capabilities;
pub use extension::ExtensionConfig;
pub use extension::{ExtensionConfig, ExtensionResult};
pub use factory::{register_agent, AgentFactory};
+5
View File
@@ -53,6 +53,11 @@ impl Agent for ReferenceAgent {
capabilities.add_extension(extension).await
}
async fn list_tools(&self) -> Vec<Tool> {
let mut capabilities = self.capabilities.lock().await;
capabilities.get_prefixed_tools().await.unwrap_or_default()
}
async fn remove_extension(&mut self, name: &str) {
let mut capabilities = self.capabilities.lock().await;
capabilities
+5
View File
@@ -139,6 +139,11 @@ impl Agent for SummarizeAgent {
capabilities.add_extension(extension).await
}
async fn list_tools(&self) -> Vec<Tool> {
let mut capabilities = self.capabilities.lock().await;
capabilities.get_prefixed_tools().await.unwrap_or_default()
}
async fn remove_extension(&mut self, name: &str) {
let mut capabilities = self.capabilities.lock().await;
capabilities
+5
View File
@@ -178,6 +178,11 @@ impl Agent for TruncateAgent {
capabilities.add_extension(extension).await
}
async fn list_tools(&self) -> Vec<Tool> {
let mut capabilities = self.capabilities.lock().await;
capabilities.get_prefixed_tools().await.unwrap_or_default()
}
async fn remove_extension(&mut self, name: &str) {
let mut capabilities = self.capabilities.lock().await;
capabilities