From c01cd26f959fb7c5bb21c89130d1d83c50012d0d Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Thu, 20 Aug 2026 20:52:53 -0700 Subject: [PATCH] feat: stealth/ox-alpha free model in the OpenRouter catalog Adds OpenRouter's free "Ox Alpha" stealth reasoning model (stealth/ox-alpha) to the OpenRouter fallback snapshot, plus the provider-agnostic metadata it needs: - OPENROUTER_MODELS: free-tier entry (1M ctx) - DEFAULT_CONTEXT_LENGTHS: ox-alpha -> 1,048,576 (verified against OpenRouter live /api/v1/models; without this the slug fell through to no match) - reasoning_timeouts.py: 300s stale floor for ox-alpha and the OpenCode Zen twin slug x-preview-f-free (reasoning model, long-horizon agentic work per its model card) - model-catalog.json regenerated Pricing snapshot skipped: openrouter bills via official_models_api (live pricing; model is free anyway). --- agent/model_metadata.py | 3 +++ agent/reasoning_timeouts.py | 6 ++++++ hermes_cli/models.py | 1 + website/static/api/model-catalog.json | 6 +++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/agent/model_metadata.py b/agent/model_metadata.py index e6e6fc9cdc..af7bb194d3 100644 --- a/agent/model_metadata.py +++ b/agent/model_metadata.py @@ -559,6 +559,9 @@ DEFAULT_CONTEXT_LENGTHS = { # OpenCode Zen — "Ox Alpha" stealth model (x-preview-f-free). 1M context # per OpenCode's launch announcement (2026-08-20); free, ZDR. "x-preview-f": 1_048_576, + # OpenRouter — same "Ox Alpha" stealth model under its OpenRouter slug + # (stealth/ox-alpha). 1M context per OpenRouter live metadata (2026-08-20). + "ox-alpha": 1_048_576, # Nemotron — NVIDIA's open-weights series (128K context across all sizes) "nemotron": 131072, # Arcee diff --git a/agent/reasoning_timeouts.py b/agent/reasoning_timeouts.py index 486acad193..11c71c544a 100644 --- a/agent/reasoning_timeouts.py +++ b/agent/reasoning_timeouts.py @@ -125,6 +125,12 @@ _REASONING_STALE_TIMEOUT_FLOORS: tuple[tuple[str, int], ...] = ( ("grok-4.5", 300), ("grok-4.6", 300), ("grok-4-fast-non-reasoning", 180), + # "Ox Alpha" stealth reasoning model (stealth/ox-alpha on OpenRouter, + # x-preview-f-free on OpenCode Zen). Marketed as a reasoning model for + # long-horizon coding/agentic work; 1M context — same tier as the Grok + # reasoning variants. + ("ox-alpha", 300), + ("x-preview-f-free", 300), ) diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 1b47354548..e8b2125b22 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -133,6 +133,7 @@ OPENROUTER_MODELS: list[tuple[str, str]] = [ # OpenRouter routers ("openrouter/pareto-code", "auto-routes to cheapest coder meeting openrouter.min_coding_score"), # Free tier + ("stealth/ox-alpha", "free"), # "Ox Alpha" stealth reasoning model — 1M ctx ("openrouter/elephant-alpha", "free"), ("poolside/laguna-m.1:free", "free"), ("tencent/hy3:free", "free"), diff --git a/website/static/api/model-catalog.json b/website/static/api/model-catalog.json index 0565756223..1676905339 100644 --- a/website/static/api/model-catalog.json +++ b/website/static/api/model-catalog.json @@ -1,6 +1,6 @@ { "version": 1, - "updated_at": "2026-08-17T19:11:38Z", + "updated_at": "2026-08-21T03:50:21Z", "metadata": { "source": "hermes-agent repo", "docs": "https://hermes-agent.nousresearch.com/docs/reference/model-catalog" @@ -153,6 +153,10 @@ "id": "openrouter/pareto-code", "description": "auto-routes to cheapest coder meeting openrouter.min_coding_score" }, + { + "id": "stealth/ox-alpha", + "description": "free" + }, { "id": "openrouter/elephant-alpha", "description": "free"