diff --git a/codex-rs/core/src/tools/spec_plan.rs b/codex-rs/core/src/tools/spec_plan.rs index ab9d02f97c..e5d0043677 100644 --- a/codex-rs/core/src/tools/spec_plan.rs +++ b/codex-rs/core/src/tools/spec_plan.rs @@ -378,8 +378,21 @@ fn build_code_mode_executors( }) .collect::>(); let namespace_descriptions = code_mode_namespace_descriptions(&code_mode_nested_tool_specs); + let code_mode_exec_prompt_tool_specs = executors + .iter() + .filter_map(|executor| { + if matches!( + executor.exposure(), + ToolExposure::DirectModelOnly | ToolExposure::Deferred + ) { + return None; + } + + executor.spec() + }) + .collect::>(); let mut enabled_tools = - collect_code_mode_exec_prompt_tool_definitions(code_mode_nested_tool_specs.iter()); + collect_code_mode_exec_prompt_tool_definitions(code_mode_exec_prompt_tool_specs.iter()); enabled_tools .sort_by(|left, right| compare_code_mode_tools(left, right, &namespace_descriptions));