mirror of
https://github.com/openai/codex.git
synced 2026-09-13 11:47:17 +00:00
## Why `#16193` moved the pure `tool_search` and `tool_suggest` spec builders into `codex-tools`, but `codex-core` still owned the shared discoverable-tool model that those builders and the `tool_suggest` runtime both depend on. This change continues the migration by moving that reusable model boundary out of `codex-core` as well, so the discovery/suggestion stack uses one shared set of types and `core/src/tools` no longer needs its own `discoverable.rs` module. ## What changed - Moved `DiscoverableTool`, `DiscoverablePluginInfo`, and `filter_tool_suggest_discoverable_tools_for_client()` into `codex-rs/tools/src/tool_discovery.rs` alongside the extracted discovery/suggestion spec builders. - Added `codex-app-server-protocol` as a `codex-tools` dependency so the shared discoverable-tool model can own the connector-side `AppInfo` variant directly. - Updated `core/src/tools/handlers/tool_suggest.rs`, `core/src/tools/spec.rs`, `core/src/tools/router.rs`, `core/src/connectors.rs`, and `core/src/codex.rs` to consume the shared `codex-tools` model instead of the old core-local declarations. - Changed `core/src/plugins/discoverable.rs` to return `DiscoverablePluginInfo` directly, moved the pure client-filter coverage into `tool_discovery_tests.rs`, and deleted the old `core/src/tools/discoverable.rs` module. - Updated `codex-rs/tools/README.md` so the crate boundary documents that `codex-tools` now owns the discoverable-tool models in addition to the discovery/suggestion spec builders. ## Test plan - `cargo test -p codex-tools` - `CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib tools::handlers::tool_suggest::` - `CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib tools::spec::` - `CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib plugins::discoverable::` - `just bazel-lock-check` - `just argument-comment-lint` ## References - #16193 - #16154 - #15923 - #15928 - #15944 - #15953 - #16031 - #16047 - #16129 - #16132 - #16138 - #16141
88 lines
3.5 KiB
Rust
88 lines
3.5 KiB
Rust
//! Shared tool definitions and Responses API tool primitives that can live
|
|
//! outside `codex-core`.
|
|
|
|
mod agent_job_tool;
|
|
mod agent_tool;
|
|
mod code_mode;
|
|
mod dynamic_tool;
|
|
mod js_repl_tool;
|
|
mod json_schema;
|
|
mod local_tool;
|
|
mod mcp_resource_tool;
|
|
mod mcp_tool;
|
|
mod request_user_input_tool;
|
|
mod responses_api;
|
|
mod tool_definition;
|
|
mod tool_discovery;
|
|
mod tool_spec;
|
|
mod utility_tool;
|
|
mod view_image;
|
|
|
|
pub use agent_job_tool::create_report_agent_job_result_tool;
|
|
pub use agent_job_tool::create_spawn_agents_on_csv_tool;
|
|
pub use agent_tool::SpawnAgentToolOptions;
|
|
pub use agent_tool::WaitAgentTimeoutOptions;
|
|
pub use agent_tool::create_assign_task_tool;
|
|
pub use agent_tool::create_close_agent_tool_v1;
|
|
pub use agent_tool::create_close_agent_tool_v2;
|
|
pub use agent_tool::create_list_agents_tool;
|
|
pub use agent_tool::create_resume_agent_tool;
|
|
pub use agent_tool::create_send_input_tool_v1;
|
|
pub use agent_tool::create_send_message_tool;
|
|
pub use agent_tool::create_spawn_agent_tool_v1;
|
|
pub use agent_tool::create_spawn_agent_tool_v2;
|
|
pub use agent_tool::create_wait_agent_tool_v1;
|
|
pub use agent_tool::create_wait_agent_tool_v2;
|
|
pub use code_mode::augment_tool_spec_for_code_mode;
|
|
pub use code_mode::create_code_mode_tool;
|
|
pub use code_mode::create_wait_tool;
|
|
pub use code_mode::tool_spec_to_code_mode_tool_definition;
|
|
pub use dynamic_tool::parse_dynamic_tool;
|
|
pub use js_repl_tool::create_js_repl_reset_tool;
|
|
pub use js_repl_tool::create_js_repl_tool;
|
|
pub use json_schema::AdditionalProperties;
|
|
pub use json_schema::JsonSchema;
|
|
pub use json_schema::parse_tool_input_schema;
|
|
pub use local_tool::CommandToolOptions;
|
|
pub use local_tool::ShellToolOptions;
|
|
pub use local_tool::create_exec_command_tool;
|
|
pub use local_tool::create_request_permissions_tool;
|
|
pub use local_tool::create_shell_command_tool;
|
|
pub use local_tool::create_shell_tool;
|
|
pub use local_tool::create_write_stdin_tool;
|
|
pub use mcp_resource_tool::create_list_mcp_resource_templates_tool;
|
|
pub use mcp_resource_tool::create_list_mcp_resources_tool;
|
|
pub use mcp_resource_tool::create_read_mcp_resource_tool;
|
|
pub use mcp_tool::mcp_call_tool_result_output_schema;
|
|
pub use mcp_tool::parse_mcp_tool;
|
|
pub use request_user_input_tool::create_request_user_input_tool;
|
|
pub use responses_api::FreeformTool;
|
|
pub use responses_api::FreeformToolFormat;
|
|
pub use responses_api::ResponsesApiNamespace;
|
|
pub use responses_api::ResponsesApiNamespaceTool;
|
|
pub use responses_api::ResponsesApiTool;
|
|
pub use responses_api::ToolSearchOutputTool;
|
|
pub use responses_api::dynamic_tool_to_responses_api_tool;
|
|
pub use responses_api::mcp_tool_to_deferred_responses_api_tool;
|
|
pub use responses_api::mcp_tool_to_responses_api_tool;
|
|
pub use responses_api::tool_definition_to_responses_api_tool;
|
|
pub use tool_definition::ToolDefinition;
|
|
pub use tool_discovery::DiscoverablePluginInfo;
|
|
pub use tool_discovery::DiscoverableTool;
|
|
pub use tool_discovery::DiscoverableToolAction;
|
|
pub use tool_discovery::DiscoverableToolType;
|
|
pub use tool_discovery::ToolSearchAppInfo;
|
|
pub use tool_discovery::ToolSuggestEntry;
|
|
pub use tool_discovery::create_tool_search_tool;
|
|
pub use tool_discovery::create_tool_suggest_tool;
|
|
pub use tool_discovery::filter_tool_suggest_discoverable_tools_for_client;
|
|
pub use tool_spec::ConfiguredToolSpec;
|
|
pub use tool_spec::ResponsesApiWebSearchFilters;
|
|
pub use tool_spec::ResponsesApiWebSearchUserLocation;
|
|
pub use tool_spec::ToolSpec;
|
|
pub use tool_spec::create_tools_json_for_responses_api;
|
|
pub use utility_tool::create_list_dir_tool;
|
|
pub use utility_tool::create_test_sync_tool;
|
|
pub use view_image::ViewImageToolOptions;
|
|
pub use view_image::create_view_image_tool;
|