pub struct UtcpClient { /* private fields */ }Expand description
UtcpClient is the main entry point for the UTCP library. It manages tool providers, communication protocols, and tool execution.
Implementations§
Source§impl UtcpClient
impl UtcpClient
Sourcepub async fn create(
config: UtcpClientConfig,
repo: Arc<dyn ToolRepository>,
strat: Arc<dyn ToolSearchStrategy>,
) -> Result<Self>
pub async fn create( config: UtcpClientConfig, repo: Arc<dyn ToolRepository>, strat: Arc<dyn ToolSearchStrategy>, ) -> Result<Self>
v1.0-style async factory for symmetry with other language SDKs
Sourcepub async fn new(
config: UtcpClientConfig,
repo: Arc<dyn ToolRepository>,
strat: Arc<dyn ToolSearchStrategy>,
) -> Result<Self>
pub async fn new( config: UtcpClientConfig, repo: Arc<dyn ToolRepository>, strat: Arc<dyn ToolSearchStrategy>, ) -> Result<Self>
Create a new UtcpClient and automatically load providers from the JSON file specified in config
Trait Implementations§
Source§impl UtcpClientInterface for UtcpClient
impl UtcpClientInterface for UtcpClient
Source§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<'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.
Source§fn register_tool_provider_with_tools<'life0, 'async_trait>(
&'life0 self,
prov: Arc<dyn Provider>,
tools_override: 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_override: 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.
Source§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 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.
Source§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 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.
Source§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 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.
Source§fn 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).
Source§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,
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).
Source§fn get_communication_protocols(
&self,
) -> HashMap<String, Arc<dyn CommunicationProtocol>>
fn get_communication_protocols( &self, ) -> HashMap<String, Arc<dyn CommunicationProtocol>>
Alias for get_transports.
Auto Trait Implementations§
impl !Freeze for UtcpClient
impl !RefUnwindSafe for UtcpClient
impl Send for UtcpClient
impl Sync for UtcpClient
impl Unpin for UtcpClient
impl !UnwindSafe for UtcpClient
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request