From 70ba3d1e29805be9ca979911540e14139698726c 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 | 124 +++++++++++------------ 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, 105 insertions(+), 71 deletions(-) diff --git a/codex-rs/core/src/tools/spec.rs b/codex-rs/core/src/tools/spec.rs index 2cdd8ade23..f84fe38dc3 100644 --- a/codex-rs/core/src/tools/spec.rs +++ b/codex-rs/core/src/tools/spec.rs @@ -43,6 +43,8 @@ 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; @@ -79,6 +81,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; @@ -89,6 +92,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