use super::streaming_cli::CliHarness;
use super::types::{HarnessName, HarnessRunConfig};
#[derive(Debug, Default)]
pub struct CodexHarness;
impl CliHarness for CodexHarness {
fn harness_name(&self) -> HarnessName {
HarnessName::Codex
}
fn binary(&self) -> &str {
"codex"
}
fn build_args(&self, config: &HarnessRunConfig) -> Vec<String> {
let mut args = vec!["exec".to_string()];
if let Some(model) = config.model.as_deref() {
args.push("--model".to_string());
args.push(model.to_string());
}
if config.allow_all {
args.push("--yolo".to_string());
}
args.push(config.prompt.clone());
args
}
}
#[cfg(test)]
#[path = "codex_tests.rs"]
mod codex_tests;