From 7b04f44bf215654571b7bb8e2b6de7248c1c5587 Mon Sep 17 00:00:00 2001 From: kamilbenkirane Date: Mon, 9 Feb 2026 14:36:52 +0100 Subject: [PATCH 1/2] feat: add web search support for Anthropic models Register WEB_SEARCH: Bool() constraint on all Claude models and add WebSearchMapper to the Anthropic text parameter mappers. --- .../modalities/text/providers/anthropic/models.py | 9 ++++++++- .../modalities/text/providers/anthropic/parameters.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/celeste/modalities/text/providers/anthropic/models.py b/src/celeste/modalities/text/providers/anthropic/models.py index 58cdd4e5..c36ad07f 100644 --- a/src/celeste/modalities/text/providers/anthropic/models.py +++ b/src/celeste/modalities/text/providers/anthropic/models.py @@ -1,6 +1,6 @@ """Anthropic models for text modality.""" -from celeste.constraints import ImagesConstraint, Range, Schema +from celeste.constraints import Bool, ImagesConstraint, Range, Schema from celeste.core import Modality, Operation, Parameter, Provider from celeste.models import Model @@ -17,6 +17,7 @@ Parameter.MAX_TOKENS: Range(min=1, max=64000), TextParameter.THINKING_BUDGET: Range(min=-1, max=64000), TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -30,6 +31,7 @@ Parameter.MAX_TOKENS: Range(min=1, max=64000), TextParameter.THINKING_BUDGET: Range(min=-1, max=32000), TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -43,6 +45,7 @@ Parameter.MAX_TOKENS: Range(min=1, max=32000), TextParameter.THINKING_BUDGET: Range(min=-1, max=32000), TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -56,6 +59,7 @@ Parameter.MAX_TOKENS: Range(min=1, max=64000), TextParameter.THINKING_BUDGET: Range(min=-1, max=32000), TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -69,6 +73,7 @@ Parameter.MAX_TOKENS: Range(min=1, max=64000), TextParameter.THINKING_BUDGET: Range(min=-1, max=32000), TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -81,6 +86,7 @@ parameter_constraints={ Parameter.MAX_TOKENS: Range(min=1, max=64000), TextParameter.THINKING_BUDGET: Range(min=-1, max=64000), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), @@ -93,6 +99,7 @@ parameter_constraints={ Parameter.MAX_TOKENS: Range(min=1, max=32000), TextParameter.THINKING_BUDGET: Range(min=-1, max=32000), + TextParameter.WEB_SEARCH: Bool(), TextParameter.IMAGE: ImagesConstraint(), }, ), diff --git a/src/celeste/modalities/text/providers/anthropic/parameters.py b/src/celeste/modalities/text/providers/anthropic/parameters.py index 563a794c..3c29d718 100644 --- a/src/celeste/modalities/text/providers/anthropic/parameters.py +++ b/src/celeste/modalities/text/providers/anthropic/parameters.py @@ -16,6 +16,9 @@ from celeste.providers.anthropic.messages.parameters import ( ThinkingMapper as _ThinkingMapper, ) +from celeste.providers.anthropic.messages.parameters import ( + WebSearchMapper as _WebSearchMapper, +) from ...parameters import TextParameter @@ -63,11 +66,18 @@ class OutputSchemaMapper(_OutputFormatMapper): name = TextParameter.OUTPUT_SCHEMA +class WebSearchMapper(_WebSearchMapper): + """Map web_search to Anthropic's tools parameter.""" + + name = TextParameter.WEB_SEARCH + + ANTHROPIC_PARAMETER_MAPPERS: list[ParameterMapper] = [ TemperatureMapper(), MaxTokensMapper(), ThinkingBudgetMapper(), OutputSchemaMapper(), + WebSearchMapper(), ] __all__ = ["ANTHROPIC_PARAMETER_MAPPERS"] From 19b760bf8d9a91e9834a412dd3d5609a91eda5fe Mon Sep 17 00:00:00 2001 From: kamilbenkirane Date: Mon, 9 Feb 2026 14:41:15 +0100 Subject: [PATCH 2/2] ci: use Opus 4.6 for Claude Code PR reviews --- .github/workflows/claude-code-review.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml index 25f4ad18..e401981f 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/claude-code-review.yml @@ -38,6 +38,7 @@ jobs: claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} plugin_marketplaces: 'https://github.com/anthropics/claude-code.git' plugins: 'code-review@claude-code-plugins' + model: claude-opus-4-6 prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}' # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md # or https://code.claude.com/docs/en/cli-reference for available options