pub struct LoopbackChannel { /* private fields */ }Expand description
Headless channel bridging an A2A TaskProcessor with the agent loop.
Implementations§
Source§impl LoopbackChannel
impl LoopbackChannel
Sourcepub fn pair(buffer: usize) -> (Self, LoopbackHandle)
pub fn pair(buffer: usize) -> (Self, LoopbackHandle)
Create a linked (LoopbackChannel, LoopbackHandle) pair.
Trait Implementations§
Source§impl Channel for LoopbackChannel
impl Channel for LoopbackChannel
Source§fn supports_exit(&self) -> bool
fn supports_exit(&self) -> bool
Source§async fn recv(&mut self) -> Result<Option<ChannelMessage>, ChannelError>
async fn recv(&mut self) -> Result<Option<ChannelMessage>, ChannelError>
Receive the next message. Returns
None on EOF or shutdown. Read moreSource§async fn send(&mut self, text: &str) -> Result<(), ChannelError>
async fn send(&mut self, text: &str) -> Result<(), ChannelError>
Send a text response. Read more
Source§async fn send_chunk(&mut self, chunk: &str) -> Result<(), ChannelError>
async fn send_chunk(&mut self, chunk: &str) -> Result<(), ChannelError>
Send a partial chunk of streaming response. Read more
Source§async fn flush_chunks(&mut self) -> Result<(), ChannelError>
async fn flush_chunks(&mut self) -> Result<(), ChannelError>
Flush any buffered chunks. Read more
Source§async fn send_status(&mut self, text: &str) -> Result<(), ChannelError>
async fn send_status(&mut self, text: &str) -> Result<(), ChannelError>
Send a status label (shown as spinner text in TUI). No-op by default. Read more
Source§async fn send_thinking_chunk(&mut self, chunk: &str) -> Result<(), ChannelError>
async fn send_thinking_chunk(&mut self, chunk: &str) -> Result<(), ChannelError>
Send a thinking/reasoning token chunk. No-op by default. Read more
Source§async fn send_tool_start(
&mut self,
event: ToolStartEvent,
) -> Result<(), ChannelError>
async fn send_tool_start( &mut self, event: ToolStartEvent, ) -> Result<(), ChannelError>
Announce that a tool call is starting. Read more
Source§async fn send_tool_output(
&mut self,
event: ToolOutputEvent,
) -> Result<(), ChannelError>
async fn send_tool_output( &mut self, event: ToolOutputEvent, ) -> Result<(), ChannelError>
Send a complete tool output with optional diff and filter stats atomically. Read more
Source§async fn confirm(&mut self, _prompt: &str) -> Result<bool, ChannelError>
async fn confirm(&mut self, _prompt: &str) -> Result<bool, ChannelError>
Request user confirmation for a destructive action. Returns
true if confirmed.
Default: auto-confirm (for headless/test scenarios). Read moreSource§async fn send_stop_hint(&mut self, hint: StopHint) -> Result<(), ChannelError>
async fn send_stop_hint(&mut self, hint: StopHint) -> Result<(), ChannelError>
Signal the non-default stop reason to the consumer before flushing. Read more
Source§async fn send_usage(
&mut self,
input_tokens: u64,
output_tokens: u64,
context_window: u64,
) -> Result<(), ChannelError>
async fn send_usage( &mut self, input_tokens: u64, output_tokens: u64, context_window: u64, ) -> Result<(), ChannelError>
Send token usage after an LLM call. No-op by default. Read more
Source§fn try_recv(&mut self) -> Option<ChannelMessage>
fn try_recv(&mut self) -> Option<ChannelMessage>
Non-blocking receive. Returns
None if no message is immediately available.Source§fn send_typing(
&mut self,
) -> impl Future<Output = Result<(), ChannelError>> + Send
fn send_typing( &mut self, ) -> impl Future<Output = Result<(), ChannelError>> + Send
Send a typing indicator. No-op by default. Read more
Source§fn send_queue_count(
&mut self,
_count: usize,
) -> impl Future<Output = Result<(), ChannelError>> + Send
fn send_queue_count( &mut self, _count: usize, ) -> impl Future<Output = Result<(), ChannelError>> + Send
Notify channel of queued message count. No-op by default. Read more
Source§fn send_diff(
&mut self,
_diff: DiffData,
) -> impl Future<Output = Result<(), ChannelError>> + Send
fn send_diff( &mut self, _diff: DiffData, ) -> impl Future<Output = Result<(), ChannelError>> + Send
Send diff data for a tool result. No-op by default (TUI overrides). Read more
Source§fn elicit(
&mut self,
_request: ElicitationRequest,
) -> impl Future<Output = Result<ElicitationResponse, ChannelError>> + Send
fn elicit( &mut self, _request: ElicitationRequest, ) -> impl Future<Output = Result<ElicitationResponse, ChannelError>> + Send
Request structured input from the user for an MCP elicitation. Read more
Auto Trait Implementations§
impl Freeze for LoopbackChannel
impl RefUnwindSafe for LoopbackChannel
impl Send for LoopbackChannel
impl Sync for LoopbackChannel
impl Unpin for LoopbackChannel
impl UnsafeUnpin for LoopbackChannel
impl UnwindSafe for LoopbackChannel
Blanket Implementations§
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