pub struct ClaudeCodeAdapter { /* private fields */ }Expand description
Claude Code agent-loop adapter.
Implementations§
Source§impl ClaudeCodeAdapter
impl ClaudeCodeAdapter
Sourcepub fn new(binary: ClaudeBinary, tracker: SharedBudgetTracker) -> Self
pub fn new(binary: ClaudeBinary, tracker: SharedBudgetTracker) -> Self
Build an adapter from a pre-detected binary. Callers typically
run detect_claude_binary first and surface the result through
the doctor, then construct one of these.
Sourcepub async fn discover(tracker: SharedBudgetTracker) -> Result<Self, AiError>
pub async fn discover(tracker: SharedBudgetTracker) -> Result<Self, AiError>
Convenience: detect + construct in one shot.
pub fn with_default_model(self, model: impl Into<String>) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
pub fn binary(&self) -> &ClaudeBinary
Trait Implementations§
Source§impl AiRuntime for ClaudeCodeAdapter
impl AiRuntime for ClaudeCodeAdapter
fn name(&self) -> &'static str
fn default_model(&self) -> &str
fn supports_agent_loop(&self) -> bool
fn supports_prompt_cache(&self) -> bool
fn supports_deterministic_sampling(&self) -> bool
Source§fn one_shot<'life0, 'async_trait>(
&'life0 self,
prompt: Prompt,
budget: Budget,
sink: EventSink,
) -> Pin<Box<dyn Future<Output = Result<Response, AiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn one_shot<'life0, 'async_trait>(
&'life0 self,
prompt: Prompt,
budget: Budget,
sink: EventSink,
) -> Pin<Box<dyn Future<Output = Result<Response, AiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Single-prompt structured task. Streams
AgentEvent::Ai events
to sink as tokens / cache hits / cost ticks land. Returns the
final Response once the model finishes.Source§fn agent_loop<'life0, 'async_trait>(
&'life0 self,
task: AgentTask,
budget: Budget,
sink: EventSink,
) -> Pin<Box<dyn Future<Output = Result<AgentResult, AiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn agent_loop<'life0, 'async_trait>(
&'life0 self,
task: AgentTask,
budget: Budget,
sink: EventSink,
) -> Pin<Box<dyn Future<Output = Result<AgentResult, AiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Multi-turn tool-use loop. Adapters that only do one-shot return
AiError::UnsupportedMode("agent_loop").fn cost_estimate(&self, _prompt: &Prompt) -> Option<CostEstimate>
Source§impl Clone for ClaudeCodeAdapter
impl Clone for ClaudeCodeAdapter
Source§fn clone(&self) -> ClaudeCodeAdapter
fn clone(&self) -> ClaudeCodeAdapter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ClaudeCodeAdapter
impl !RefUnwindSafe for ClaudeCodeAdapter
impl Send for ClaudeCodeAdapter
impl Sync for ClaudeCodeAdapter
impl Unpin for ClaudeCodeAdapter
impl UnsafeUnpin for ClaudeCodeAdapter
impl !UnwindSafe for ClaudeCodeAdapter
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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