Add Anthropic web-search bridge for Responses providers#2034
Add Anthropic web-search bridge for Responses providers#2034linzj wants to merge 1 commit intofarion1231:mainfrom
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fb1682fd3b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
55319f6 to
aa52da8
Compare
|
To use Codex here, create a Codex account and connect to github. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa52da83dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Bridge Anthropic web_search tools, history replay, non-streaming responses, and SSE streaming onto OpenAI Responses web_search_call handling. Preserve usage accounting, keep non-query action metadata round-trippable across request replay and streaming, and tolerate Codex OAuth max_uses while still failing fast for generic Responses providers. Scope: this change applies to every Claude provider configured with api_format=openai_responses, not just codex_oauth, because the transform and streaming handlers are selected by API format.
aa52da8 to
28580da
Compare
Summary
Scope
This is not limited to
codex_oauth. It affects every Claude provider configured withapi_format = "openai_responses", because both request/response transforms and streaming handlers are selected by API format.Notes
tool_choiceforweb_searchfalls back toautoallowed_domainsare omitted instead of being sent as an empty Responses filter arrayblocked_domainsandmax_usesnow fail fast instead of being silently widened or ignoredweb_search_call.action.sources)server_tool_usefor non-query web search actions and deduplicates added/done tool-use emission