From 4aab72758fb66f1a6060471ab21de699556ba712 Mon Sep 17 00:00:00 2001 From: Devops Bot Date: Sun, 6 Sep 2026 17:22:10 +0000 Subject: [PATCH] fix: Add Claude Fable 5 and 5.1 model support --- asknews_sdk/api/chat.py | 2 ++ asknews_sdk/dto/alert.py | 4 ++++ tests/api/test_chat_model_types.py | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/asknews_sdk/api/chat.py b/asknews_sdk/api/chat.py index b1d8561..b151bc0 100644 --- a/asknews_sdk/api/chat.py +++ b/asknews_sdk/api/chat.py @@ -63,6 +63,8 @@ "gemini-3-pro", "claude-sonnet-4-6", "claude-opus-4-6", + "claude-fable-5", + "claude-fable-5-1", "claude-opus-4-5-20251101", "claude-sonnet-4-6", "claude-sonnet-5", diff --git a/asknews_sdk/dto/alert.py b/asknews_sdk/dto/alert.py index 2dd3d88..dc9abf1 100644 --- a/asknews_sdk/dto/alert.py +++ b/asknews_sdk/dto/alert.py @@ -27,6 +27,8 @@ "claude-sonnet-4-6", "claude-sonnet-5", "claude-opus-4-6", + "claude-fable-5", + "claude-fable-5-1", "claude-opus-4-5-20251101", "gemini-2.5-flash", "o3", @@ -64,6 +66,8 @@ "claude-sonnet-4-5-20250929", "claude-opus-4-5-20251101", "claude-opus-4-6", + "claude-fable-5", + "claude-fable-5-1", "claude-sonnet-4-6", "claude-sonnet-5", "gpt-5.6-sol", diff --git a/tests/api/test_chat_model_types.py b/tests/api/test_chat_model_types.py index 37016b7..62cd6b3 100644 --- a/tests/api/test_chat_model_types.py +++ b/tests/api/test_chat_model_types.py @@ -10,6 +10,7 @@ GPT_6_ASTRA = "gpt-6-astra" +CLAUDE_FABLE_MODELS = ("claude-fable-5", "claude-fable-5-1") def test_gpt_6_astra_is_a_direct_deepnews_model_only(): @@ -38,3 +39,10 @@ def test_gpt_6_astra_is_absent_from_alert_model_contracts(): for name, model in getmembers(alert_dto, isclass): if model.__module__ == alert_dto.__name__ and issubclass(model, BaseModel): assert GPT_6_ASTRA not in json.dumps(model.model_json_schema()), name + + +@pytest.mark.parametrize("model", CLAUDE_FABLE_MODELS) +def test_claude_fable_models_match_deepnews_and_alert_report_contracts(model): + assert model in get_args(DeepNewsModel) + assert model in get_args(alert_dto.DeepNewsModel) + assert model in get_args(alert_dto.AlertReportModel)