feat(llm): add Claude Sonnet 5 and Fable 5 to the catalog

- refresh the Anthropic lineup to the current GA set (Fable 5, Opus 4.8,
  Sonnet 5, Opus 4.7, Haiku 4.5)
- extend the effort gate to single-number Claude 5 IDs (claude-sonnet-5,
  claude-fable-5) so their effort setting is honored
This commit is contained in:
Yijia-Xiao
2026-07-05 14:29:07 +00:00
parent 43bd32befa
commit 0f70af2f31
4 changed files with 30 additions and 14 deletions

View File

@@ -57,6 +57,16 @@ class TestEffortGate:
mod.AnthropicClient(model=model, effort="low", api_key="x").get_llm()
assert captured["kwargs"]["effort"] == "low"
@pytest.mark.parametrize(
"model",
# Claude 5 family uses single-number version IDs; all are effort-capable.
["claude-sonnet-5", "claude-fable-5", "claude-mythos-5"],
)
def test_claude_5_family_receives_effort(self, monkeypatch, model):
captured = _capture_kwargs(monkeypatch)
mod.AnthropicClient(model=model, effort="high", api_key="x").get_llm()
assert captured["kwargs"]["effort"] == "high"
def test_mythos_preview_receives_effort(self, monkeypatch):
captured = _capture_kwargs(monkeypatch)
mod.AnthropicClient(

View File

@@ -16,9 +16,12 @@ class TestTemperatureForwarding:
@pytest.mark.parametrize(
"provider,model",
[
# gpt-4.1 is intentionally a non-reasoning model: the GPT-5 family
# are reasoning models and correctly drop temperature (see
# test_openai_reasoning_effort), so forwarding is tested on gpt-4.1.
("openai", "gpt-4.1"),
("anthropic", "claude-sonnet-4-6"),
("google", "gemini-2.5-flash"),
("anthropic", "claude-sonnet-5"),
("google", "gemini-3.5-flash"),
("deepseek", "deepseek-chat"),
],
)