From 4c142da3f6b025e590e4ca49d902cbd17d2a33c3 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 15 Apr 2026 22:27:55 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20expand=20OpenRouter=20list=20per=20fee?= =?UTF-8?q?dback=20=E2=80=94=20Claude=204.5=20gen,=20Opus,=20R1,=20Maveric?= =?UTF-8?q?k,=20Mistral?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenRouter / _FALLBACK_MODELS (7 → 13 models): - Add gpt-5.4 (full OpenAI alongside Mini) - Restore claude-sonnet-4-5 (keep 4.5 generation alongside 4.6) - Add claude-opus-4.6 (flagship) - Add deepseek-r1 (popular reasoning model) - Add llama-4-maverick (larger open-weight option) - Add mistral-large-latest (Mistral via OpenRouter) Structural: - Add mistralai to _PROVIDER_MODELS for correct prefix-stripping routing - Add mistralai to _PROVIDER_DISPLAY for correct group label --- api/config.py | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/api/config.py b/api/config.py index 921249a..11270db 100644 --- a/api/config.py +++ b/api/config.py @@ -406,13 +406,25 @@ CLI_TOOLSETS = get_config().get("platform_toolsets", {}).get("cli", _DEFAULT_TOO # Hardcoded fallback models (used when no config.yaml or agent is available) # Also used as the OpenRouter model list — keep this curated to current, widely-used models. _FALLBACK_MODELS = [ - {"provider": "OpenAI", "id": "openai/gpt-5.4-mini", "label": "GPT-5.4 Mini"}, - {"provider": "Anthropic", "id": "anthropic/claude-sonnet-4.6", "label": "Claude Sonnet 4.6"}, - {"provider": "Anthropic", "id": "anthropic/claude-haiku-4-5", "label": "Claude Haiku 4.5"}, - {"provider": "Google", "id": "google/gemini-3.1-pro", "label": "Gemini 3.1 Pro"}, - {"provider": "Google", "id": "google/gemini-3-flash", "label": "Gemini 3 Flash"}, - {"provider": "DeepSeek", "id": "deepseek/deepseek-chat-v3-0324","label": "DeepSeek V3"}, - {"provider": "Meta", "id": "meta-llama/llama-4-scout", "label": "Llama 4 Scout"}, + # OpenAI + {"provider": "OpenAI", "id": "openai/gpt-5.4-mini", "label": "GPT-5.4 Mini"}, + {"provider": "OpenAI", "id": "openai/gpt-5.4", "label": "GPT-5.4"}, + # Anthropic — 4.6 flagship + 4.5 generation + {"provider": "Anthropic", "id": "anthropic/claude-opus-4.6", "label": "Claude Opus 4.6"}, + {"provider": "Anthropic", "id": "anthropic/claude-sonnet-4.6", "label": "Claude Sonnet 4.6"}, + {"provider": "Anthropic", "id": "anthropic/claude-sonnet-4-5", "label": "Claude Sonnet 4.5"}, + {"provider": "Anthropic", "id": "anthropic/claude-haiku-4-5", "label": "Claude Haiku 4.5"}, + # Google + {"provider": "Google", "id": "google/gemini-3.1-pro", "label": "Gemini 3.1 Pro"}, + {"provider": "Google", "id": "google/gemini-3-flash", "label": "Gemini 3 Flash"}, + # DeepSeek + {"provider": "DeepSeek", "id": "deepseek/deepseek-chat-v3-0324", "label": "DeepSeek V3"}, + {"provider": "DeepSeek", "id": "deepseek/deepseek-r1", "label": "DeepSeek R1"}, + # Meta + {"provider": "Meta", "id": "meta-llama/llama-4-scout", "label": "Llama 4 Scout"}, + {"provider": "Meta", "id": "meta-llama/llama-4-maverick", "label": "Llama 4 Maverick"}, + # Mistral + {"provider": "Mistral", "id": "mistralai/mistral-large-latest", "label": "Mistral Large"}, ] # Provider display names for known Hermes provider IDs @@ -435,6 +447,7 @@ _PROVIDER_DISPLAY = { "opencode-zen": "OpenCode Zen", "opencode-go": "OpenCode Go", "lmstudio": "LM Studio", + "mistralai": "Mistral", } # Well-known models per provider (used to populate dropdown for direct API providers) @@ -552,6 +565,11 @@ _PROVIDER_MODELS = { {"id": "gemini-3.1-pro", "label": "Gemini 3.1 Pro"}, {"id": "gemini-3-flash", "label": "Gemini 3 Flash"}, ], + # Mistral — prefix used in OpenRouter model IDs (mistralai/mistral-large-latest) + "mistralai": [ + {"id": "mistral-large-latest", "label": "Mistral Large"}, + {"id": "mistral-small-latest", "label": "Mistral Small"}, + ], }