Skip to content

Commit d495251

Browse files
adambaloghclaude
andauthored
Add Claude Sonnet 5.5 to the model registry (#172)
Claude-Session: https://claude.ai/code/session_01WZ4ELrAXe55aczokBw8HrW Co-authored-by: Claude <noreply@anthropic.com>
1 parent c8d9117 commit d495251

4 files changed

Lines changed: 32 additions & 2 deletions

File tree

‎CLAUDE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Server configuration:
127127
`model_registry.py` is the source of truth; this list mirrors it. Model name
128128
prefixes determine routing:
129129
- **OpenAI**: gpt-6-astra, gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.2, gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, gpt-5.5, gpt-5.6-sol/terra/luna, o3; image generation: gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2
130-
- **Anthropic**: claude-sonnet-4-5/4-6, claude-sonnet-5, claude-haiku-4-5, claude-opus-4-5/4-6/4-7/4-8, claude-opus-5, claude-opus-5-5, claude-fable-5, claude-fable-5-1
130+
- **Anthropic**: claude-sonnet-4-5/4-6, claude-sonnet-5, claude-sonnet-5-5, claude-haiku-4-5, claude-opus-4-5/4-6/4-7/4-8, claude-opus-5, claude-opus-5-5, claude-fable-5, claude-fable-5-1
131131
- **Google**: gemini-3.8-flash, gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-flash-preview, gemini-3.1-pro-preview; image generation: gemini-2.5-flash-image, gemini-3.1-flash-image
132132
- **xAI**: grok-4.7, grok-4.6, grok-4.5, grok-4.3, grok-4.20-reasoning, grok-4.20-non-reasoning; image generation: grok-2-image, grok-imagine-image-2.0
133133
- **ByteDance** (BytePlus ModelArk, OpenAI-compatible, ap-southeast): seed-1.6, seed-1.8, seed-2.0-lite, deepseek-v4-flash, deepseek-v4-pro, glm-5.2 (Z.ai's model served via a ModelArk deployment endpoint); image generation: seedream-4.0, seedream-5.0-lite, seedance-4.5, seedance-5.0

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The gateway solves this by running inside a hardware-isolated Nitro Enclave wher
3434
| Provider | Models |
3535
|----------|--------|
3636
| OpenAI | gpt-6-astra, gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.2, gpt-5.4, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, o3 |
37-
| Anthropic | claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5, claude-sonnet-5, claude-sonnet-4-6, claude-sonnet-4-5, claude-haiku-4-5 |
37+
| Anthropic | claude-sonnet-5-5, claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5, claude-sonnet-5, claude-sonnet-4-6, claude-sonnet-4-5, claude-haiku-4-5 |
3838
| Google | gemini-3.8-flash, gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-flash-preview, gemini-3.1-pro-preview |
3939
| xAI | grok-4.7, grok-4.6, grok-4.5, grok-4.3, grok-4.20-reasoning, grok-4.20-non-reasoning |
4040
| ByteDance | seed-1.6, seed-1.8, seed-2.0-lite, dola-seed-2.0-mini, deepseek-v4-flash, deepseek-v4-pro, glm-5.2 |

‎tee_gateway/model_registry.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,17 @@ class SupportedModel(Enum):
497497
input_price_usd=Decimal("0.000003"),
498498
output_price_usd=Decimal("0.000015"),
499499
)
500+
# Claude Sonnet 5.5 — the current Sonnet, released 2026-09-28 at $2/$10 per
501+
# MTok (below Sonnet 5's $3/$15). Adaptive thinking; setting temperature,
502+
# top_p or top_k to a non-default value returns HTTP 400, so
503+
# supports_temperature=False.
504+
CLAUDE_SONNET_5_5 = ModelConfig(
505+
provider="anthropic",
506+
api_name="claude-sonnet-5-5",
507+
input_price_usd=Decimal("0.000002"),
508+
output_price_usd=Decimal("0.00001"),
509+
supports_temperature=False,
510+
)
500511
# Claude Sonnet 5 — near-Opus quality on coding/agentic work at Sonnet cost.
501512
# Adaptive-thinking-only; like Opus 4.7+ it rejects the `temperature` field
502513
# (HTTP 400), so supports_temperature=False. Priced at the standard Sonnet
@@ -1072,6 +1083,8 @@ class SupportedModel(Enum):
10721083
# Anthropic
10731084
"claude-sonnet-4-5": SupportedModel.CLAUDE_SONNET_4_5,
10741085
"claude-sonnet-4-6": SupportedModel.CLAUDE_SONNET_4_6,
1086+
"claude-sonnet-5-5": SupportedModel.CLAUDE_SONNET_5_5,
1087+
"claude-sonnet-5.5": SupportedModel.CLAUDE_SONNET_5_5,
10751088
"claude-sonnet-5": SupportedModel.CLAUDE_SONNET_5,
10761089
"claude-haiku-4-5": SupportedModel.CLAUDE_HAIKU_4_5,
10771090
"claude-opus-4-5": SupportedModel.CLAUDE_OPUS_4_5,

‎tests/test_pricing.py‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,16 @@ def test_claude_sonnet_4_6_resolves(self):
9090
self.assertEqual(cfg.input_price_usd, Decimal("0.000003"))
9191
self.assertEqual(cfg.output_price_usd, Decimal("0.000015"))
9292

93+
def test_claude_sonnet_5_5_resolves(self):
94+
cfg = get_model_config("claude-sonnet-5-5")
95+
self.assertEqual(cfg.provider, "anthropic")
96+
self.assertEqual(cfg.api_name, "claude-sonnet-5-5")
97+
self.assertEqual(cfg.input_price_usd, Decimal("0.000002"))
98+
self.assertEqual(cfg.output_price_usd, Decimal("0.00001"))
99+
# Non-default temperature/top_p/top_k return HTTP 400
100+
self.assertFalse(cfg.supports_temperature)
101+
self.assertEqual(cfg, get_model_config("claude-sonnet-5.5"))
102+
93103
def test_claude_sonnet_5_resolves(self):
94104
cfg = get_model_config("claude-sonnet-5")
95105
self.assertEqual(cfg.provider, "anthropic")
@@ -833,6 +843,13 @@ def test_claude_opus_5_cost(self):
833843
# Same price tier as opus-4-5/4-6/4-7/4-8: 1000*0.000005 + 500*0.000025 = 0.0175 USD
834844
self.assertEqual(cost, 17_500_000_000_000_000)
835845

846+
def test_claude_sonnet_5_5_cost(self):
847+
cost = self._calc("claude-sonnet-5-5", 1000, 500)
848+
expected = _expected_cost_opg("claude-sonnet-5-5", 1000, 500)
849+
self.assertEqual(cost, expected)
850+
# 1000*0.000002 + 500*0.00001 = 0.002 + 0.005 = 0.007 USD = 7e15 wei
851+
self.assertEqual(cost, 7_000_000_000_000_000)
852+
836853
def test_claude_opus_5_5_cost(self):
837854
cost = self._calc("claude-opus-5-5", 1000, 500)
838855
expected = _expected_cost_opg("claude-opus-5-5", 1000, 500)

0 commit comments

Comments
 (0)