pub struct OpenCodeRunner { /* private fields */ }Expand description
OpenCode CLI runner
Implements LlmProvider by delegating to the opencode binary with
--format json. Models use provider/model format (e.g.
anthropic/claude-sonnet-4). Streaming is not supported.
Implementations§
Source§impl OpenCodeRunner
impl OpenCodeRunner
Sourcepub fn new(config: RunnerConfig) -> Self
pub fn new(config: RunnerConfig) -> Self
Create a new OpenCode runner with the given configuration
Sourcepub async fn set_session(&self, key: &str, session_id: &str)
pub async fn set_session(&self, key: &str, session_id: &str)
Store a session ID for later resumption
Trait Implementations§
Source§impl LlmProvider for OpenCodeRunner
impl LlmProvider for OpenCodeRunner
Source§fn display_name(&self) -> &'static str
fn display_name(&self) -> &'static str
Human-readable display name for the provider
Source§fn capabilities(&self) -> LlmCapabilities
fn capabilities(&self) -> LlmCapabilities
Provider capabilities (streaming, function calling, etc.)
Source§fn default_model(&self) -> &str
fn default_model(&self) -> &str
Default model to use if not specified in request
Source§fn available_models(&self) -> &[String]
fn available_models(&self) -> &[String]
Available models for this provider
Source§fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check if the provider is healthy and ready to serve requests
Source§fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Perform a chat completion (non-streaming)
Source§fn complete_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatStream, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatStream, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Perform a streaming chat completion Read more
Auto Trait Implementations§
impl Freeze for OpenCodeRunner
impl !RefUnwindSafe for OpenCodeRunner
impl Send for OpenCodeRunner
impl Sync for OpenCodeRunner
impl Unpin for OpenCodeRunner
impl UnsafeUnpin for OpenCodeRunner
impl !UnwindSafe for OpenCodeRunner
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