pub struct CodexProvider;Trait Implementations§
Source§impl AgentProvider for CodexProvider
impl AgentProvider for CodexProvider
Source§fn parse_output(&self, sandbox_id: &Uuid, raw: &str) -> Vec<StreamEvent>
fn parse_output(&self, sandbox_id: &Uuid, raw: &str) -> Vec<StreamEvent>
Parse Codex CLI output.
Codex outputs a mix of plain text and JSON. In --quiet mode it outputs
the agent’s response. We parse each line looking for JSON events, falling
back to plain text lines as TextDelta.
Source§fn base_image(&self) -> &str
fn base_image(&self) -> &str
The base container image for sandboxes using this provider.
Source§fn install_commands(&self) -> Vec<String>
fn install_commands(&self) -> Vec<String>
Commands to install the agent CLI inside the sandbox.
Source§fn build_start_command(&self, config: &AgentConfig) -> AgentCommand
fn build_start_command(&self, config: &AgentConfig) -> AgentCommand
Build the command used to start the agent process in a sandbox.
Source§fn prompt_mode(&self) -> PromptMode
fn prompt_mode(&self) -> PromptMode
How prompts should be delivered to the agent process.
Defaults to StdinJson (Claude Code’s protocol).
Source§fn required_env_vars(&self) -> Vec<String>
fn required_env_vars(&self) -> Vec<String>
Environment variables required by this provider.
Source§fn validate_config(&self, config: &AgentConfig) -> CiabResult<()>
fn validate_config(&self, config: &AgentConfig) -> CiabResult<()>
Validate that the given config is appropriate for this provider.
Source§fn send_message<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
sandbox_id: &'life1 Uuid,
session_id: &'life2 Uuid,
message: &'life3 Message,
tx: &'life4 Sender<StreamEvent>,
) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn send_message<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
sandbox_id: &'life1 Uuid,
session_id: &'life2 Uuid,
message: &'life3 Message,
tx: &'life4 Sender<StreamEvent>,
) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Send a message to the agent and receive a stream of events.
Source§fn interrupt<'life0, 'life1, 'async_trait>(
&'life0 self,
_sandbox_id: &'life1 Uuid,
) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn interrupt<'life0, 'life1, 'async_trait>(
&'life0 self,
_sandbox_id: &'life1 Uuid,
) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Interrupt the agent in the given sandbox.
Source§fn health_check<'life0, 'life1, 'async_trait>(
&'life0 self,
_sandbox_id: &'life1 Uuid,
) -> Pin<Box<dyn Future<Output = CiabResult<AgentHealth>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn health_check<'life0, 'life1, 'async_trait>(
&'life0 self,
_sandbox_id: &'life1 Uuid,
) -> Pin<Box<dyn Future<Output = CiabResult<AgentHealth>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check the health of the agent in a sandbox.
Source§fn slash_commands(&self) -> Vec<SlashCommand>
fn slash_commands(&self) -> Vec<SlashCommand>
Returns slash commands available for this provider.
Source§fn supported_llm_providers(&self) -> Vec<AgentLlmCompatibility>
fn supported_llm_providers(&self) -> Vec<AgentLlmCompatibility>
Returns the LLM providers this agent is compatible with.
Source§fn interactive_protocol(&self) -> InteractiveProtocol
fn interactive_protocol(&self) -> InteractiveProtocol
Whether the provider supports interactive stdin control protocol.
Claude Code supports control_request/control_response; others don’t.
Auto Trait Implementations§
impl Freeze for CodexProvider
impl RefUnwindSafe for CodexProvider
impl Send for CodexProvider
impl Sync for CodexProvider
impl Unpin for CodexProvider
impl UnsafeUnpin for CodexProvider
impl UnwindSafe for CodexProvider
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