UtcpClient

Struct UtcpClient 

Source
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

Source

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

Source

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

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,

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,

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,

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,

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,

Searches for tools matching the query string, limited by the count.
Source§

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,

Calls a tool and returns a stream of results (e.g., for SSE).
Source§

fn get_communication_protocols( &self, ) -> HashMap<String, Arc<dyn CommunicationProtocol>>

Alias for get_transports.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more