codex_tools/
dynamic_tool.rs1use 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;