mirror of
https://github.com/openai/codex.git
synced 2026-11-02 19:43:24 +00:00
## Why The recent `codex-tools` migration steps have moved shared tool models and low-coupling spec helpers out of `codex-core`, but `core/src/tools/spec.rs` still owned a large block of pure collaboration-tool spec construction. Those builders do not need session state or runtime behavior; they only need a small amount of core-owned configuration injected at the seam. Moving that cohesive slice into `codex-tools` makes the crate boundary more honest and removes a substantial amount of passive tool-spec logic from `codex-core` without trying to move the runtime-coupled multi-agent handlers at the same time. ## What changed - added `agent_tool.rs`, `request_user_input_tool.rs`, and `agent_job_tool.rs` to `codex-tools`, with sibling `*_tests.rs` coverage and an exports-only `lib.rs` - moved the pure `ToolSpec` builders for: - collaboration tools such as `spawn_agent`, `send_input`, `send_message`, `assign_task`, `resume_agent`, `wait_agent`, `list_agents`, and `close_agent` - `request_user_input` - agent-job specs `spawn_agents_on_csv` and `report_agent_job_result` - rewired `core/src/tools/spec.rs` to call the extracted builders while still supplying the core-owned inputs, such as spawn-agent role descriptions and wait timeout bounds - updated the `core/src/tools/spec.rs` seam tests to build expected collaboration specs through `codex-tools` - updated `codex-rs/tools/README.md` so the crate documentation reflects the broader collaboration-tool boundary ## Test plan - `CARGO_TARGET_DIR=/tmp/codex-tools-collab-specs cargo test -p codex-tools` - `CARGO_TARGET_DIR=/tmp/codex-core-collab-specs cargo test -p codex-core --lib tools::spec::` - `just fix -p codex-tools -p codex-core` - `just argument-comment-lint` ## References - #15923 - #15928 - #15944 - #15953 - #16031 - #16047 - #16129 - #16132 - #16138
66 lines
2.6 KiB
Rust
66 lines
2.6 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 json_schema;
|
|
mod local_tool;
|
|
mod mcp_tool;
|
|
mod request_user_input_tool;
|
|
mod responses_api;
|
|
mod tool_definition;
|
|
mod tool_spec;
|
|
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::tool_spec_to_code_mode_tool_definition;
|
|
pub use dynamic_tool::parse_dynamic_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_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_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 view_image::ViewImageToolOptions;
|
|
pub use view_image::create_view_image_tool;
|