feat(models): add stealth/union-alpha to the OpenRouter free-tier catalog
Union Alpha is OpenRouter's new $0 stealth model (262,144 ctx, tools + tool_choice supported, text+image in). It carries no ":free" suffix, so it needs an explicit "free, stealth model" description and an _OPENROUTER_ONLY entry to keep it out of the derived Nous Portal list, plus a "union-alpha" DEFAULT_CONTEXT_LENGTHS key so the offline resolver returns 262144 instead of the 256K catch-all. Docs manifest regenerated in the same commit. Live gate: max_tokens=64 tool-calling completion on origin/main key returned 200, echoed model stealth/union-alpha, usage.cost=0, finish_reason=tool_calls.
This commit is contained in:
@@ -380,9 +380,10 @@ DEFAULT_CONTEXT_LENGTHS = {
|
||||
"solar-open2": 262144, "solar-pro3": 131072, "solar-pro2": 65536, "solar-mini": 32768,
|
||||
# Tencent Hunyuan (262144 = 256 × 1024, aligned with OpenRouter live metadata)
|
||||
"hy4-preview": 1_048_576, "hy3-preview": 262144, "hy3": 262144,
|
||||
# "Ox Alpha" stealth model (OpenCode Zen / OpenRouter slugs); NVIDIA Nemotron (128K
|
||||
# "Ox Alpha" stealth model (OpenCode Zen / OpenRouter slugs); "Union Alpha" stealth model
|
||||
# (OpenRouter ``stealth/union-alpha``, 262144 per /api/v1/models); NVIDIA Nemotron (128K
|
||||
# except 3.5 Lightning); Poolside Laguna 2.1 (:free / -free slugs); Arcee; OpenRouter.
|
||||
"x-preview-f": 1_048_576, "ox-alpha": 1_048_576,
|
||||
"x-preview-f": 1_048_576, "ox-alpha": 1_048_576, "union-alpha": 262144,
|
||||
"nemotron-3.5-lightning": 1_000_000, "nemotron": 131072,
|
||||
"laguna-s-2.1": 262144, "laguna-xs-2.1": 262144, "trinity": 262144, "elephant": 262144,
|
||||
# Hugging Face Inference Providers — model IDs use org/name format
|
||||
|
||||
@@ -23,6 +23,7 @@ _OPENROUTER_DESCRIPTIONS = {
|
||||
"openai/gpt-6-astra-flex": "0.5x price, flex tier",
|
||||
"openai/gpt-6-astra-pro-fast": "2x price, priority tier",
|
||||
"openai/gpt-6-astra-pro-flex": "0.5x price, flex tier",
|
||||
"stealth/union-alpha": "free, stealth model",
|
||||
}
|
||||
OPENROUTER_MODELS: list[tuple[str, str]] = [
|
||||
(mid, _OPENROUTER_DESCRIPTIONS.get(mid, "free" if mid.endswith(":free") else ""))
|
||||
@@ -43,14 +44,16 @@ OPENROUTER_MODELS: list[tuple[str, str]] = [
|
||||
"openrouter/pareto-code", "thinkingmachines/inkling:free", "thinkingmachines/inkling-small:free",
|
||||
"minimax/minimax-m3:free", "z-ai/glm-5.2:free", "poolside/laguna-s-2.1:free", "poolside/laguna-xs-2.1:free",
|
||||
"nvidia/nemotron-3-super-120b-a12b:free", "nvidia/nemotron-3-ultra-550b-a55b:free",
|
||||
"nvidia/nemotron-3.5-lightning:free",
|
||||
"nvidia/nemotron-3.5-lightning:free", "stealth/union-alpha",
|
||||
)
|
||||
]
|
||||
|
||||
# OpenRouter entries the Nous Portal does not carry (routing/fast variants, free tier).
|
||||
# OpenRouter entries the Nous Portal does not carry (routing/fast variants, free tier —
|
||||
# ``stealth/union-alpha`` is a $0 stealth SKU without the ``:free`` suffix).
|
||||
_OPENROUTER_ONLY = {
|
||||
"anthropic/claude-opus-5-fast", "anthropic/claude-opus-4.8-fast", "meta/muse-spark-1.2",
|
||||
"meta/muse-spark-1.2-contributor", "meta/muse-spark-1.3", "meta/muse-spark-1.3-contributor", "openrouter/pareto-code",
|
||||
"stealth/union-alpha",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"updated_at": "2026-09-10T16:09:08Z",
|
||||
"updated_at": "2026-09-16T16:50:25Z",
|
||||
"metadata": {
|
||||
"source": "hermes-agent repo",
|
||||
"docs": "https://hermes-agent.nousresearch.com/docs/reference/model-catalog"
|
||||
@@ -244,6 +244,10 @@
|
||||
{
|
||||
"id": "nvidia/nemotron-3.5-lightning:free",
|
||||
"description": "free"
|
||||
},
|
||||
{
|
||||
"id": "stealth/union-alpha",
|
||||
"description": "free, stealth model"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user