From b4e29be8a0a3cefed1ad2a2912498005245d2d60 Mon Sep 17 00:00:00 2001 From: Jason Date: Sun, 19 Apr 2026 10:49:11 +0800 Subject: [PATCH] chore(hermes): prune unused official presets and fix Nous endpoint Remove the Anthropic, OpenAI, and Google AI presets from the Hermes preset list. They were placeholder samples introduced when the Hermes module first landed and do not match the actual user paths in CC Switch (Claude / Codex go through OAuth, Gemini Native is its own adapter), and the upstream endpoints are not reachable for most of the target users anyway. Fix the Nous Research preset: its base_url was a fabricated domain (inference.nous.hermes.dev) that has never resolved. Point it at the real Nous Portal endpoint (inference-api.nousresearch.com/v1) and add apiKeyUrl so users can jump straight to portal.nousresearch.com to provision a key. Drop the now-orphan providerForm.presets.{anthropic,openai,googleai} i18n keys from zh / en / ja since no preset references them anymore. --- src/config/hermesProviderPresets.ts | 107 +--------------------------- src/i18n/locales/en.json | 3 - src/i18n/locales/ja.json | 3 - src/i18n/locales/zh.json | 3 - 4 files changed, 2 insertions(+), 114 deletions(-) diff --git a/src/config/hermesProviderPresets.ts b/src/config/hermesProviderPresets.ts index cb8b7273e..bfbba4a95 100644 --- a/src/config/hermesProviderPresets.ts +++ b/src/config/hermesProviderPresets.ts @@ -160,110 +160,6 @@ export const hermesProviderPresets: HermesProviderPreset[] = [ model: { default: "anthropic/claude-opus-4-7", provider: "openrouter" }, }, }, - { - name: "Anthropic", - nameKey: "providerForm.presets.anthropic", - websiteUrl: "https://console.anthropic.com", - apiKeyUrl: "https://console.anthropic.com/settings/keys", - settingsConfig: { - name: "anthropic", - base_url: "https://api.anthropic.com", - api_key: "", - api_mode: "anthropic_messages", - models: [ - { - id: "claude-opus-4-7", - name: "Claude Opus 4.7", - context_length: 200000, - max_tokens: 32000, - }, - { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - context_length: 200000, - max_tokens: 32000, - }, - { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - context_length: 200000, - max_tokens: 16000, - }, - ], - }, - isOfficial: true, - category: "official", - icon: "anthropic", - iconColor: "#D4915D", - suggestedDefaults: { - model: { default: "claude-opus-4-7", provider: "anthropic" }, - }, - }, - { - name: "OpenAI", - nameKey: "providerForm.presets.openai", - websiteUrl: "https://platform.openai.com", - apiKeyUrl: "https://platform.openai.com/api-keys", - settingsConfig: { - name: "openai", - base_url: "https://api.openai.com/v1", - api_key: "", - api_mode: "chat_completions", - models: [ - { - id: "gpt-5", - name: "GPT-5", - context_length: 400000, - }, - { - id: "gpt-5-codex", - name: "GPT-5 Codex", - context_length: 400000, - }, - { - id: "o3-mini", - name: "o3-mini", - context_length: 200000, - }, - ], - }, - isOfficial: true, - category: "official", - icon: "openai", - iconColor: "#000000", - suggestedDefaults: { - model: { default: "gpt-5", provider: "openai" }, - }, - }, - { - name: "Google AI", - nameKey: "providerForm.presets.googleai", - websiteUrl: "https://ai.google.dev", - apiKeyUrl: "https://aistudio.google.com/apikey", - settingsConfig: { - name: "google", - api_key: "", - models: [ - { - id: "gemini-3-pro", - name: "Gemini 3 Pro", - context_length: 1000000, - }, - { - id: "gemini-3-flash", - name: "Gemini 3 Flash", - context_length: 1000000, - }, - ], - }, - isOfficial: true, - category: "official", - icon: "gemini", - iconColor: "#4285F4", - suggestedDefaults: { - model: { default: "gemini-3-pro", provider: "google" }, - }, - }, { name: "DeepSeek", nameKey: "providerForm.presets.deepseek", @@ -337,9 +233,10 @@ export const hermesProviderPresets: HermesProviderPreset[] = [ { name: "Nous Research", websiteUrl: "https://nousresearch.com", + apiKeyUrl: "https://portal.nousresearch.com/", settingsConfig: { name: "nous", - base_url: "https://inference.nous.hermes.dev/v1", + base_url: "https://inference-api.nousresearch.com/v1", api_key: "", api_mode: "chat_completions", models: [ diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 48236c8da..d53be2af9 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -798,9 +798,6 @@ "ucloud": "Compshare", "shengsuanyun": "Shengsuanyun", "openrouter": "OpenRouter", - "anthropic": "Anthropic", - "openai": "OpenAI", - "googleai": "Google AI", "deepseek": "DeepSeek", "together": "Together AI" }, diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 806e67b29..c9b59ab4b 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -798,9 +798,6 @@ "ucloud": "Compshare", "shengsuanyun": "Shengsuanyun", "openrouter": "OpenRouter", - "anthropic": "Anthropic", - "openai": "OpenAI", - "googleai": "Google AI", "deepseek": "DeepSeek", "together": "Together AI" }, diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index a5c16611b..aa989e8f4 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -798,9 +798,6 @@ "ucloud": "优云智算", "shengsuanyun": "胜算云", "openrouter": "OpenRouter", - "anthropic": "Anthropic", - "openai": "OpenAI", - "googleai": "Google AI", "deepseek": "DeepSeek", "together": "Together AI" },