From 13cc796a8ff0a34878119ae556d177d779e717a9 Mon Sep 17 00:00:00 2001 From: kamilbenkirane Date: Wed, 1 Jul 2026 15:30:28 +0200 Subject: [PATCH] feat(anthropic): add Claude Sonnet 5, Opus 4.8, and Fable 5 to catalog Adds the three current-generation Anthropic text models missing from the catalog. All three drop manual extended thinking (budget_tokens returns 400) in favor of adaptive thinking controlled via the effort parameter, matching the existing claude-opus-4-7 constraint shape. --- .../text/providers/anthropic/models.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/celeste/modalities/text/providers/anthropic/models.py b/src/celeste/modalities/text/providers/anthropic/models.py index 5b6667e..a78a378 100644 --- a/src/celeste/modalities/text/providers/anthropic/models.py +++ b/src/celeste/modalities/text/providers/anthropic/models.py @@ -16,6 +16,60 @@ from ...parameters import TextParameter MODELS: list[Model] = [ + Model( + id="claude-fable-5", + provider=Provider.ANTHROPIC, + display_name="Claude Fable 5", + operations={Modality.TEXT: {Operation.GENERATE, Operation.ANALYZE}}, + streaming=True, + parameter_constraints={ + Parameter.MAX_TOKENS: Range(min=1, max=128000), + TextParameter.THINKING_LEVEL: Choice( + options=["low", "medium", "high", "xhigh", "max"] + ), + TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.TOOLS: ToolSupport(tools=[WebSearch]), + TextParameter.TOOL_CHOICE: ToolChoiceSupport(), + TextParameter.IMAGE: ImagesConstraint(), + TextParameter.DOCUMENT: DocumentsConstraint(), + }, + ), + Model( + id="claude-opus-4-8", + provider=Provider.ANTHROPIC, + display_name="Claude Opus 4.8", + operations={Modality.TEXT: {Operation.GENERATE, Operation.ANALYZE}}, + streaming=True, + parameter_constraints={ + Parameter.MAX_TOKENS: Range(min=1, max=128000), + TextParameter.THINKING_LEVEL: Choice( + options=["low", "medium", "high", "xhigh", "max"] + ), + TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.TOOLS: ToolSupport(tools=[WebSearch]), + TextParameter.TOOL_CHOICE: ToolChoiceSupport(), + TextParameter.IMAGE: ImagesConstraint(), + TextParameter.DOCUMENT: DocumentsConstraint(), + }, + ), + Model( + id="claude-sonnet-5", + provider=Provider.ANTHROPIC, + display_name="Claude Sonnet 5", + operations={Modality.TEXT: {Operation.GENERATE, Operation.ANALYZE}}, + streaming=True, + parameter_constraints={ + Parameter.MAX_TOKENS: Range(min=1, max=128000), + TextParameter.THINKING_LEVEL: Choice( + options=["low", "medium", "high", "xhigh", "max"] + ), + TextParameter.OUTPUT_SCHEMA: Schema(), + TextParameter.TOOLS: ToolSupport(tools=[WebSearch]), + TextParameter.TOOL_CHOICE: ToolChoiceSupport(), + TextParameter.IMAGE: ImagesConstraint(), + TextParameter.DOCUMENT: DocumentsConstraint(), + }, + ), Model( id="claude-sonnet-4-5", provider=Provider.ANTHROPIC,