pub struct Query { /* private fields */ }Expand description
Query manages the bidirectional control protocol over a Transport connection.
Routes incoming messages: control requests are handled internally, regular messages are forwarded to the consumer channel.
Implementations§
Source§impl Query
impl Query
pub fn new( transport: Box<dyn Transport>, hooks: Vec<HookDefinition>, can_use_tool: Option<CanUseToolCallback>, mcp_handler: Option<McpMessageHandler>, control_timeout: Option<Duration>, ) -> Self
Sourcepub async fn connect(&mut self) -> Result<Receiver<Result<Message>>>
pub async fn connect(&mut self) -> Result<Receiver<Result<Message>>>
Connect to the CLI and perform the initialization handshake.
Sourcepub async fn send_message(
&self,
prompt: &str,
session_id: Option<&str>,
) -> Result<()>
pub async fn send_message( &self, prompt: &str, session_id: Option<&str>, ) -> Result<()>
Send a user message to the CLI.
Sourcepub async fn send_control_command(
&self,
command: SDKControlCommand,
) -> Result<Value>
pub async fn send_control_command( &self, command: SDKControlCommand, ) -> Result<Value>
Send a control command and wait for the response.
pub async fn interrupt(&self) -> Result<Value>
pub async fn set_permission_mode(&self, mode: &str) -> Result<Value>
pub async fn set_model(&self, model: &str) -> Result<Value>
pub async fn rewind_files(&self, user_message_id: &str) -> Result<Value>
pub async fn get_mcp_status(&self) -> Result<Value>
pub async fn get_server_info(&self) -> Option<Value>
pub async fn end_input(&self) -> Result<()>
pub async fn close(&mut self) -> Result<()>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Query
impl !RefUnwindSafe for Query
impl Send for Query
impl Sync for Query
impl Unpin for Query
impl !UnwindSafe for Query
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 more