Skip to main content

codex_tools/
dynamic_tool.rs

1use crate::ToolDefinition;
2use crate::parse_tool_input_schema;
3use codex_protocol::dynamic_tools::DynamicToolFunctionSpec;
4
5pub fn parse_dynamic_tool(
6    tool: &DynamicToolFunctionSpec,
7) -> Result<ToolDefinition, serde_json::Error> {
8    Ok(ToolDefinition {
9        name: tool.name.clone(),
10        description: tool.description.clone(),
11        input_schema: parse_tool_input_schema(&tool.input_schema)?,
12        output_schema: None,
13        defer_loading: tool.defer_loading,
14    })
15}
16
17#[cfg(test)]
18#[path = "dynamic_tool_tests.rs"]
19mod tests;