Compare commits

...

1 Commits

Author SHA1 Message Date
starr-openai
19f8bb8dbe Extract turn executor from codex orchestrator
Keep the turn loop in codex.rs as the orchestrator and move prompt preparation, tool router assembly, and sampling/tool execution into a dedicated turn_executor module.

Co-authored-by: Codex <noreply@openai.com>
2026-03-11 16:03:15 -07:00
4 changed files with 1258 additions and 1180 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -10,9 +10,16 @@ use crate::config_loader::Sourced;
use crate::exec::ExecToolCallOutput;
use crate::function_tool::FunctionCallError;
use crate::mcp_connection_manager::ToolInfo;
use crate::mcp_connection_manager::filter_codex_apps_mcp_tools_only;
use crate::mcp_connection_manager::filter_mcp_tools_by_name;
use crate::models_manager::model_info;
use crate::shell::default_user_shell;
use crate::stream_events_utils::HandleOutputCtx;
use crate::stream_events_utils::handle_output_item_done;
use crate::tools::ToolRouter;
use crate::tools::format_exec_output_str;
use crate::tools::parallel::ToolCallRuntime;
use crate::turn_executor::AssistantMessageStreamParsers;
use codex_protocol::ThreadId;
use codex_protocol::models::FunctionCallOutputBody;
@@ -25,6 +32,7 @@ use codex_protocol::permissions::FileSystemSpecialPath;
use codex_protocol::protocol::ReadOnlyAccess;
use codex_protocol::protocol::SandboxPolicy;
use codex_protocol::request_permissions::PermissionGrantScope;
use codex_utils_stream_parser::ProposedPlanSegment;
use tracing::Span;
use crate::protocol::CompactedItem;
@@ -45,7 +53,6 @@ use crate::rollout::recorder::RolloutRecorderParams;
use crate::state::TaskKind;
use crate::tasks::SessionTask;
use crate::tasks::SessionTaskContext;
use crate::tools::ToolRouter;
use crate::tools::context::FunctionToolOutput;
use crate::tools::context::ToolInvocation;
use crate::tools::context::ToolPayload;

View File

@@ -114,6 +114,7 @@ pub mod state_db;
pub mod terminal;
mod tools;
pub mod turn_diff_tracker;
mod turn_executor;
mod turn_metadata;
mod turn_timing;
pub use rollout::ARCHIVED_SESSIONS_SUBDIR;

File diff suppressed because it is too large Load Diff