From f3c57ab88864bc837dcf4a3789e4696948a33f98 Mon Sep 17 00:00:00 2001 From: jif-oai Date: Tue, 14 Oct 2025 13:34:20 +0100 Subject: [PATCH] V13 --- codex-rs/cli/src/infty/commands.rs | 18 ++++++++++++++++-- codex-rs/infty.md | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/codex-rs/cli/src/infty/commands.rs b/codex-rs/cli/src/infty/commands.rs index de451bdedf..df82426aad 100644 --- a/codex-rs/cli/src/infty/commands.rs +++ b/codex-rs/cli/src/infty/commands.rs @@ -35,6 +35,8 @@ use super::args::ShowArgs; use super::progress::TerminalProgressReporter; use super::summary::print_run_summary_box; +const DEFAULT_VERIFIER_ROLES: [&str; 3] = ["verifier-alpha", "verifier-beta", "verifier-gamma"]; + pub(crate) const DEFAULT_TIMEOUT_SECS: u64 = 60; #[derive(Debug, Serialize)] @@ -69,15 +71,19 @@ pub(crate) async fn run_create( bail!("run {run_id} already exists at {}", run_path.display()); } - let orchestrator = InftyOrchestrator::with_runs_root(auth, runs_root.clone()).with_progress( + let orchestrator = InftyOrchestrator::with_runs_root(auth, runs_root).with_progress( Arc::new(TerminalProgressReporter::with_color(color_enabled)), ); + let verifiers: Vec = DEFAULT_VERIFIER_ROLES + .iter() + .map(|role| RoleConfig::new(role.to_string(), config.clone())) + .collect(); let run_params = RunParams { run_id: run_id.clone(), run_root: Some(run_path.clone()), solver: RoleConfig::new("solver", config.clone()), director: RoleConfig::new("director", config.clone()), - verifiers: Vec::new(), + verifiers, }; if let Some(objective) = args.objective { @@ -367,6 +373,14 @@ mod tests { use super::*; use tempfile::TempDir; + #[test] + fn default_verifier_roles_are_stable() { + assert_eq!( + DEFAULT_VERIFIER_ROLES, + ["verifier-alpha", "verifier-beta", "verifier-gamma"] + ); + } + #[test] fn validates_run_ids() { assert!(validate_run_id("run-20241030-123000").is_ok()); diff --git a/codex-rs/infty.md b/codex-rs/infty.md index a652fdf84a..2bcafa5a85 100644 --- a/codex-rs/infty.md +++ b/codex-rs/infty.md @@ -12,7 +12,7 @@ Status: Proposed • Scope: New crates using `codex-core` • Compatibility: Non - No systematic review → we must verify before returning. ## 2) Approach (High‑Level) -Run three coordinated roles as independent `codex-core` sessions. Reuse existing tools (shell, apply_patch, read_file, list_dir, grep_files) for persistence and retrieval. Add one clean, first‑class cross‑session facility in core for direction/verification — orchestrator‑driven, no model‑visible tool. +Run three coordinated roles as independent `codex-core` sessions. Reuse existing tools (shell, apply_patch, read_file, list_dir, grep_files) for persistence and retrieval. Add one clean, first-class cross-session facility in core for direction/verification — orchestrator-driven, no model-visible tool. The CLI currently spawns a solver, a director, and three verifiers (`verifier-alpha`, `verifier-beta`, `verifier-gamma`) by default. - Solver (Model A): executes plan; writes all results to memory/artifacts; never asks humans to continue. - Director (Model B): answers Solver’s direction questions and re‑plans when needed.