diff --git a/codex-rs/ext/web-search/src/extension.rs b/codex-rs/ext/web-search/src/extension.rs index 2a7f3b882fd5..30fc48961e41 100644 --- a/codex-rs/ext/web-search/src/extension.rs +++ b/codex-rs/ext/web-search/src/extension.rs @@ -169,12 +169,12 @@ mod tests { .tool_contributors() .iter() .flat_map(|contributor| contributor.tools(&session_store, &thread_store)) - .map(|tool| tool.tool_name()) + .map(|tool| (tool.tool_name(), tool.supports_parallel_tool_calls())) .collect::>(); assert_eq!( tool_names, - vec![ToolName::namespaced(WEB_NAMESPACE, RUN_TOOL_NAME)] + vec![(ToolName::namespaced(WEB_NAMESPACE, RUN_TOOL_NAME), true)] ); } } diff --git a/codex-rs/ext/web-search/src/tool.rs b/codex-rs/ext/web-search/src/tool.rs index 35b855c5c64d..9a09b73ebb10 100644 --- a/codex-rs/ext/web-search/src/tool.rs +++ b/codex-rs/ext/web-search/src/tool.rs @@ -70,6 +70,10 @@ impl ToolExecutor for WebSearchTool { ToolExposure::DirectModelOnly } + fn supports_parallel_tool_calls(&self) -> bool { + true + } + async fn handle(&self, call: ToolCall) -> Result, FunctionCallError> { let commands = parse_commands(&call)?; let command_action = command_action(&commands);