diff --git a/codex-rs/core/src/tools/discoverable.rs b/codex-rs/core/src/tools/discoverable.rs index e9403918e4..62386f3d1b 100644 --- a/codex-rs/core/src/tools/discoverable.rs +++ b/codex-rs/core/src/tools/discoverable.rs @@ -12,15 +12,6 @@ pub(crate) enum DiscoverableToolType { Plugin, } -impl DiscoverableToolType { - pub(crate) fn as_str(self) -> &'static str { - match self { - Self::Connector => "connector", - Self::Plugin => "plugin", - } - } -} - #[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub(crate) enum DiscoverableToolAction { @@ -28,15 +19,6 @@ pub(crate) enum DiscoverableToolAction { Enable, } -impl DiscoverableToolAction { - pub(crate) fn as_str(self) -> &'static str { - match self { - Self::Install => "install", - Self::Enable => "enable", - } - } -} - #[derive(Clone, Debug, PartialEq)] pub(crate) enum DiscoverableTool { Connector(Box), @@ -65,13 +47,6 @@ impl DiscoverableTool { } } - pub(crate) fn description(&self) -> Option<&str> { - match self { - Self::Connector(connector) => connector.description.as_deref(), - Self::Plugin(plugin) => plugin.description.as_deref(), - } - } - pub(crate) fn install_url(&self) -> Option<&str> { match self { Self::Connector(connector) => connector.install_url.as_deref(), diff --git a/codex-rs/core/src/tools/spec.rs b/codex-rs/core/src/tools/spec.rs index 782cb498db..81af0ca364 100644 --- a/codex-rs/core/src/tools/spec.rs +++ b/codex-rs/core/src/tools/spec.rs @@ -7,10 +7,7 @@ use crate::shell::Shell; use crate::shell::ShellType; use crate::tools::code_mode::PUBLIC_TOOL_NAME; use crate::tools::code_mode::WAIT_TOOL_NAME; -use crate::tools::discoverable::DiscoverablePluginInfo; use crate::tools::discoverable::DiscoverableTool; -use crate::tools::discoverable::DiscoverableToolAction; -use crate::tools::discoverable::DiscoverableToolType; use crate::tools::handlers::PLAN_TOOL; use crate::tools::handlers::TOOL_SEARCH_DEFAULT_LIMIT; use crate::tools::handlers::TOOL_SEARCH_TOOL_NAME; @@ -41,9 +38,11 @@ use codex_protocol::protocol::SandboxPolicy; use codex_protocol::protocol::SessionSource; use codex_protocol::protocol::SubAgentSource; use codex_tools::CommandToolOptions; -use codex_tools::ResponsesApiTool; use codex_tools::ShellToolOptions; use codex_tools::SpawnAgentToolOptions; +use codex_tools::ToolSearchAppInfo; +use codex_tools::ToolSuggestEntry; +use codex_tools::ToolSuggestEntryType; use codex_tools::ViewImageToolOptions; use codex_tools::WaitAgentTimeoutOptions; use codex_tools::augment_tool_spec_for_code_mode; @@ -71,6 +70,8 @@ use codex_tools::create_spawn_agent_tool_v1; use codex_tools::create_spawn_agent_tool_v2; use codex_tools::create_spawn_agents_on_csv_tool; use codex_tools::create_test_sync_tool; +use codex_tools::create_tool_search_tool; +use codex_tools::create_tool_suggest_tool; use codex_tools::create_view_image_tool; use codex_tools::create_wait_agent_tool_v1; use codex_tools::create_wait_agent_tool_v2; @@ -80,33 +81,17 @@ use codex_tools::dynamic_tool_to_responses_api_tool; use codex_tools::mcp_tool_to_responses_api_tool; use codex_tools::tool_spec_to_code_mode_tool_definition; use codex_utils_absolute_path::AbsolutePathBuf; -use codex_utils_template::Template; use serde::Deserialize; use serde::Serialize; use std::collections::BTreeMap; use std::collections::HashMap; use std::path::PathBuf; -use std::sync::LazyLock; pub type JsonSchema = codex_tools::JsonSchema; #[cfg(test)] 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"; -static TOOL_SEARCH_DESCRIPTION_TEMPLATE: LazyLock