pub struct AgentCliTransport { /* private fields */ }Expand description
Transport shim that routes CLI providers to in-process handlers while delegating everything else to the original transport.
This matches go-agent’s agentCLITransport structure.
Implementations§
Source§impl AgentCliTransport
impl AgentCliTransport
pub fn new(inner: Arc<dyn CommunicationProtocol>) -> Self
pub fn register(&self, provider: &str, tool: InProcessTool)
Trait Implementations§
Source§impl ClientTransport for AgentCliTransport
impl ClientTransport for AgentCliTransport
Source§fn register_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
prov: &'life1 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Vec<UtcpTool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
prov: &'life1 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Vec<UtcpTool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Register a tool provider with the underlying transport, returning discovered tools.
Source§fn deregister_tool_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
prov: &'life1 dyn Provider,
) -> 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,
prov: &'life1 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deregister a tool provider and release any associated resources.
Source§fn call_tool<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
prov: &'life2 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn call_tool<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
prov: &'life2 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Invoke a tool over the transport and return the result payload.
Source§fn call_tool_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
prov: &'life2 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn StreamResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn call_tool_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
args: HashMap<String, Value>,
prov: &'life2 dyn Provider,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn StreamResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Invoke a tool and stream incremental responses back to the caller.
Auto Trait Implementations§
impl !Freeze for AgentCliTransport
impl !RefUnwindSafe for AgentCliTransport
impl Send for AgentCliTransport
impl Sync for AgentCliTransport
impl Unpin for AgentCliTransport
impl UnsafeUnpin for AgentCliTransport
impl !UnwindSafe for AgentCliTransport
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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