pub struct InternalClient;Expand description
Stateless internal client for executing single-query sessions.
Unlike ClaudeSdkClient, this client does not maintain
state between queries. Each call to process_query() creates
a fresh connection, executes the query, and tears down the connection.
Implementations§
Source§impl InternalClient
impl InternalClient
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new InternalClient.
§Example
use claude_code::internal_client::InternalClient;
let _client = InternalClient::new();Sourcepub async fn process_query(
&self,
prompt: InputPrompt,
options: ClaudeAgentOptions,
transport: Option<Box<dyn Transport>>,
) -> Result<Vec<Message>>
pub async fn process_query( &self, prompt: InputPrompt, options: ClaudeAgentOptions, transport: Option<Box<dyn Transport>>, ) -> Result<Vec<Message>>
Executes a complete query lifecycle: connect, send, receive all messages, and close.
§Example
use claude_code::internal_client::InternalClient;
use claude_code::{InputPrompt, ClaudeAgentOptions};
let client = InternalClient::new();
let _messages = client
.process_query(
InputPrompt::Text("hello".to_string()),
ClaudeAgentOptions::default(),
None,
)
.await?;Sourcepub async fn process_query_from_stream<S>(
&self,
prompt: S,
options: ClaudeAgentOptions,
transport: Option<Box<dyn Transport>>,
) -> Result<Vec<Message>>
pub async fn process_query_from_stream<S>( &self, prompt: S, options: ClaudeAgentOptions, transport: Option<Box<dyn Transport>>, ) -> Result<Vec<Message>>
Executes a one-shot query where input messages are provided as a stream.
§Example
use claude_code::internal_client::InternalClient;
use claude_code::ClaudeAgentOptions;
use futures::stream;
use serde_json::json;
let client = InternalClient::new();
let _messages = client
.process_query_from_stream(
stream::iter(vec![json!({"type":"user","message":{"role":"user","content":"hello"}})]),
ClaudeAgentOptions::default(),
None,
)
.await?;Sourcepub async fn process_query_as_stream(
&self,
prompt: InputPrompt,
options: ClaudeAgentOptions,
transport: Option<Box<dyn Transport>>,
) -> Result<BoxStream<'static, Result<Message>>>
pub async fn process_query_as_stream( &self, prompt: InputPrompt, options: ClaudeAgentOptions, transport: Option<Box<dyn Transport>>, ) -> Result<BoxStream<'static, Result<Message>>>
Executes a one-shot query and returns a streaming response interface.
The returned stream is Send and can be consumed from any tokio task.
§Example
use claude_code::internal_client::InternalClient;
use claude_code::{InputPrompt, ClaudeAgentOptions};
use futures::StreamExt;
let client = InternalClient::new();
let mut stream = client
.process_query_as_stream(
InputPrompt::Text("hello".to_string()),
ClaudeAgentOptions::default(),
None,
)
.await?;
let _ = stream.next().await;Sourcepub async fn process_query_from_stream_as_stream<S>(
&self,
prompt: S,
options: ClaudeAgentOptions,
transport: Option<Box<dyn Transport>>,
) -> Result<BoxStream<'static, Result<Message>>>
pub async fn process_query_from_stream_as_stream<S>( &self, prompt: S, options: ClaudeAgentOptions, transport: Option<Box<dyn Transport>>, ) -> Result<BoxStream<'static, Result<Message>>>
Executes a one-shot streamed-input query and returns a streaming response interface.
§Example
use claude_code::internal_client::InternalClient;
use claude_code::ClaudeAgentOptions;
use futures::{stream, StreamExt};
use serde_json::json;
let client = InternalClient::new();
let mut stream = client
.process_query_from_stream_as_stream(
stream::iter(vec![json!({"type":"user","message":{"role":"user","content":"hello"}})]),
ClaudeAgentOptions::default(),
None,
)
.await?;
let _ = stream.next().await;Trait Implementations§
Auto Trait Implementations§
impl Freeze for InternalClient
impl RefUnwindSafe for InternalClient
impl Send for InternalClient
impl Sync for InternalClient
impl Unpin for InternalClient
impl UnsafeUnpin for InternalClient
impl UnwindSafe for InternalClient
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