feat(models): add anthropic/claude-opus-5 to OpenRouter and Nous Portal catalogs
Anthropic released Claude Opus 5 (+ -fast variant) — both are live on OpenRouter and the Nous Portal /models endpoint (verified against both live APIs). Opus 4.8 entries are kept. - hermes_cli/models.py: opus-5 + opus-5-fast in OPENROUTER_MODELS; opus-5 in _PROVIDER_MODELS[nous] (Portal serves both, curated list carries the base model like the rest of the Nous Anthropic block). Ordering: below fable-5 flagship, above opus-4.8. - agent/model_metadata.py: claude-opus-5 -> 1M context (matches live OpenRouter metadata). - agent/reasoning_timeouts.py: claude-opus-5 -> 240s stale-timeout floor (same as the opus-4.x thinking family). - website/static/api/model-catalog.json: regenerated via scripts/build_model_catalog.py. Both providers bill via official_models_api (live pricing), so no _OFFICIAL_DOCS_PRICING snapshot entry is needed for these routes.
This commit is contained in:
@@ -215,6 +215,7 @@ DEFAULT_CONTEXT_LENGTHS = {
|
||||
# OpenRouter-prefixed models resolve via OpenRouter live API or models.dev.
|
||||
"claude-fable-5": 1000000,
|
||||
"claude-fable": 1000000,
|
||||
"claude-opus-5": 1000000,
|
||||
"claude-sonnet-5": 1000000,
|
||||
"claude-opus-4-8": 1000000,
|
||||
"claude-opus-4.8": 1000000,
|
||||
|
||||
@@ -102,6 +102,7 @@ _REASONING_STALE_TIMEOUT_FLOORS: tuple[tuple[str, int], ...] = (
|
||||
# ``claude-opus-4`` so non-thinking Claude 3.x or future
|
||||
# non-reasoning Claude variants don't match.
|
||||
("claude-opus-4", 240),
|
||||
("claude-opus-5", 240),
|
||||
("claude-sonnet-5", 180),
|
||||
("claude-sonnet-4.5", 180),
|
||||
("claude-sonnet-4.6", 180),
|
||||
|
||||
@@ -41,6 +41,8 @@ def _urlopen_model_catalog_request(req: urllib.request.Request, *, timeout: floa
|
||||
OPENROUTER_MODELS: list[tuple[str, str]] = [
|
||||
# Anthropic
|
||||
("anthropic/claude-fable-5", ""),
|
||||
("anthropic/claude-opus-5", ""),
|
||||
("anthropic/claude-opus-5-fast", "2x price, higher output speed"),
|
||||
("anthropic/claude-opus-4.8", ""),
|
||||
("anthropic/claude-opus-4.8-fast", "2x price, higher output speed"),
|
||||
("anthropic/claude-sonnet-5", ""),
|
||||
@@ -192,6 +194,7 @@ _PROVIDER_MODELS: dict[str, list[str]] = {
|
||||
"nous": [
|
||||
# Anthropic
|
||||
"anthropic/claude-fable-5",
|
||||
"anthropic/claude-opus-5",
|
||||
"anthropic/claude-opus-4.8",
|
||||
"anthropic/claude-sonnet-5",
|
||||
"anthropic/claude-haiku-4.5",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"updated_at": "2026-07-20T08:23:45Z",
|
||||
"updated_at": "2026-07-24T19:06:06Z",
|
||||
"metadata": {
|
||||
"source": "hermes-agent repo",
|
||||
"docs": "https://hermes-agent.nousresearch.com/docs/reference/model-catalog"
|
||||
@@ -16,6 +16,14 @@
|
||||
"id": "anthropic/claude-fable-5",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "anthropic/claude-opus-5",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "anthropic/claude-opus-5-fast",
|
||||
"description": "2x price, higher output speed"
|
||||
},
|
||||
{
|
||||
"id": "anthropic/claude-opus-4.8",
|
||||
"description": ""
|
||||
@@ -180,6 +188,9 @@
|
||||
{
|
||||
"id": "anthropic/claude-fable-5"
|
||||
},
|
||||
{
|
||||
"id": "anthropic/claude-opus-5"
|
||||
},
|
||||
{
|
||||
"id": "anthropic/claude-opus-4.8"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user