Skip to main content

AgentDriver

Trait AgentDriver 

Source
pub trait AgentDriver {
Show 13 methods // Required methods fn name(&self) -> &'static str; fn render_prompt(&self, intent: &StageIntent) -> String; fn build_command( &self, phase: PhaseId, prompt: &str, extra_writable_roots: &[PathBuf], ) -> (&'static str, Vec<String>); // Provided methods fn capabilities(&self) -> DriverCapabilities { ... } fn parse_completion(&self, _output: &str) -> Option<AgentResult> { ... } fn health(&self, _state: &State) -> Result<(), String> { ... } fn environment(&self) -> Vec<(String, String)> { ... } fn sandbox_requirements(&self) -> SandboxRequirements { ... } fn discover(&self) -> Result<(), String> { ... } fn test_contract(&self) -> Vec<ContractResult> { ... } fn interactivity_mode(&self, _stage: Stage) -> InteractivityMode { ... } fn workflow_root(&self) -> String { ... } fn health_classification(&self, state: &State) -> DriverHealth { ... }
}
Expand description

The modular driver contract (999.31): each agent owns its prompt rendering, command building, completion parsing, and health/capability discovery — instead of that logic being scattered across prompt.rs, agents/*.rs, agent_result.rs, and preflight.rs.

Required Methods§

Source

fn name(&self) -> &'static str

Human-readable driver name.

Source

fn render_prompt(&self, intent: &StageIntent) -> String

Render the stage prompt for this agent from a crate::prompt::StageIntent.

Source

fn build_command( &self, phase: PhaseId, prompt: &str, extra_writable_roots: &[PathBuf], ) -> (&'static str, Vec<String>)

Build the command and arguments to launch this agent headless.

Provided Methods§

Source

fn capabilities(&self) -> DriverCapabilities

Capabilities this driver declares (as-needed; default empty).

Source

fn parse_completion(&self, _output: &str) -> Option<AgentResult>

Parse this agent’s completion signal out of captured output; None when the transport is process-exit (no event stream to scan).

Source

fn health(&self, _state: &State) -> Result<(), String>

Driver-specific pre-launch health check.

Source

fn environment(&self) -> Vec<(String, String)>

Extra environment variables for the agent process tree.

Source

fn sandbox_requirements(&self) -> SandboxRequirements

Sandbox requirements for this agent’s launch.

Source

fn discover(&self) -> Result<(), String>

Discover capabilities from the installed CLI (e.g. codex features list).

Source

fn test_contract(&self) -> Vec<ContractResult>

The conformance suite every driver must pass (37-04).

Source

fn interactivity_mode(&self, _stage: Stage) -> InteractivityMode

The interactivity requirement for running stage headless.

Source

fn workflow_root(&self) -> String

The directory holding this agent’s GSD workflow files, used by the workflow-reference renderer. Defaults to the Codex install; a driver with a different install (e.g. Pi) overrides it.

Source

fn health_classification(&self, state: &State) -> DriverHealth

Classify this driver’s health (the pass/fail AgentDriver::health mapped onto the richer DriverHealth).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§