From 1222f23d0ca71ac4ee7e3754576b4fa610293a53 Mon Sep 17 00:00:00 2001 From: Friel Date: Sun, 29 Mar 2026 17:56:12 +0000 Subject: [PATCH] feat(core): expose agent tools in namespace --- codex-rs/core/src/tools/spec.rs | 126 +++++++++++------------ codex-rs/core/src/tools/spec_tests.rs | 6 +- codex-rs/core/tests/suite/search_tool.rs | 11 +- codex-rs/tools/src/code_mode.rs | 3 +- codex-rs/tools/src/tool_spec.rs | 4 + codex-rs/tools/src/tool_spec_tests.rs | 28 +++++ 6 files changed, 107 insertions(+), 71 deletions(-) diff --git a/codex-rs/core/src/tools/spec.rs b/codex-rs/core/src/tools/spec.rs index 782cb498db..bca1dfc075 100644 --- a/codex-rs/core/src/tools/spec.rs +++ b/codex-rs/core/src/tools/spec.rs @@ -41,6 +41,10 @@ use codex_protocol::protocol::SandboxPolicy; use codex_protocol::protocol::SessionSource; use codex_protocol::protocol::SubAgentSource; use codex_tools::CommandToolOptions; +use codex_tools::FreeformTool; +use codex_tools::FreeformToolFormat; +use codex_tools::ResponsesApiNamespace; +use codex_tools::ResponsesApiNamespaceTool; use codex_tools::ResponsesApiTool; use codex_tools::ShellToolOptions; use codex_tools::SpawnAgentToolOptions; @@ -86,6 +90,7 @@ use serde::Serialize; use std::collections::BTreeMap; use std::collections::HashMap; use std::path::PathBuf; +use std::sync::Arc; use std::sync::LazyLock; pub type JsonSchema = codex_tools::JsonSchema; @@ -96,6 +101,8 @@ pub(crate) use codex_tools::mcp_call_tool_result_output_schema; const TOOL_SEARCH_DESCRIPTION_TEMPLATE_SOURCE: &str = include_str!("../../templates/search_tool/tool_description.md"); const TOOL_SEARCH_DESCRIPTION_TEMPLATE_KEY: &str = "app_descriptions"; +const AGENT_TOOLS_NAMESPACE: &str = "agents"; +const AGENT_TOOLS_NAMESPACE_DESCRIPTION: &str = "Agent collaboration tools for spawning, messaging, waiting on, listing, and closing subagents."; static TOOL_SEARCH_DESCRIPTION_TEMPLATE: LazyLock