pub trait UtcpClientInterface: Send + Sync {
// Required methods
fn register_tool_provider<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn register_tool_provider_with_tools<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
tools: Vec<Tool>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn deregister_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
provider_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn call_tool<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn search_tools<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_transports(&self) -> HashMap<String, Arc<dyn CommunicationProtocol>>;
fn call_tool_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn StreamResult>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided method
fn get_communication_protocols(
&self,
) -> HashMap<String, Arc<dyn CommunicationProtocol>> { ... }
}Expand description
UtcpClientInterface defines the core operations for a UTCP client. It allows registering/deregistering tool providers, calling tools, and searching for tools.
Required Methods§
Sourcefn register_tool_provider<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn register_tool_provider<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Registers a new tool provider and returns the list of tools it offers.
Sourcefn register_tool_provider_with_tools<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
tools: Vec<Tool>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn register_tool_provider_with_tools<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
tools: Vec<Tool>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Registers a tool provider with a specific set of tools, overriding automatic discovery.
Sourcefn deregister_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
provider_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn deregister_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
provider_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deregisters an existing tool provider by its name.
Sourcefn call_tool<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_tool<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calls a specific tool by name with the provided arguments.
Sourcefn search_tools<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn search_tools<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Tool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Searches for tools matching the query string, limited by the count.
Sourcefn get_transports(&self) -> HashMap<String, Arc<dyn CommunicationProtocol>>
fn get_transports(&self) -> HashMap<String, Arc<dyn CommunicationProtocol>>
Returns a map of available transports (communication protocols).
Sourcefn call_tool_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn StreamResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_tool_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn StreamResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calls a tool and returns a stream of results (e.g., for SSE).
Provided Methods§
Sourcefn get_communication_protocols(
&self,
) -> HashMap<String, Arc<dyn CommunicationProtocol>>
fn get_communication_protocols( &self, ) -> HashMap<String, Arc<dyn CommunicationProtocol>>
Alias for get_transports.