mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-08-02 18:41:35 +08:00
feat: add Hermes UI components, presets, and config panels (Phase 8)
- Add 7 provider presets (OpenRouter, Anthropic, OpenAI, Google, DeepSeek, Together, Nous) - Create HermesFormFields + useHermesFormState for provider form integration - Create Model/Agent/Env config panels with save/load functionality - Create HermesHealthBanner for config warnings - Add hermes icon (violet winged H) to icon system - Integrate into App.tsx: 3 new view types (hermesModel/hermesAgent/hermesEnv), sidebar buttons (Brain/Bot/KeyRound), health banner, session support - Integrate into ProviderForm: presets, form state, key validation, rendering - Integrate into AddProviderDialog: universal tab exclusion, providerKey, base_url extraction - Add i18n keys for all Hermes UI (zh/en/ja)
This commit is contained in:
@@ -1630,6 +1630,64 @@
|
||||
"primaryModel": "Primary Model",
|
||||
"fallbackModel": "Fallback Model"
|
||||
},
|
||||
"hermes": {
|
||||
"form": {
|
||||
"baseUrl": "API Endpoint",
|
||||
"baseUrlHint": "The API endpoint URL for this provider.",
|
||||
"providerKey": "Provider Key",
|
||||
"providerKeyPlaceholder": "my-provider",
|
||||
"providerKeyHint": "Lowercase letters, numbers, and hyphens only. Used as the provider name in config.yaml.",
|
||||
"providerKeyLockedHint": "This provider is in Hermes config; key is locked.",
|
||||
"providerKeyRequired": "Provider key is required",
|
||||
"providerKeyInvalid": "Provider key can only contain lowercase letters, numbers, and hyphens",
|
||||
"providerKeyDuplicate": "This provider key already exists"
|
||||
},
|
||||
"model": {
|
||||
"title": "Model Config",
|
||||
"description": "Configure the default model settings in config.yaml's model section.",
|
||||
"default": "Default Model",
|
||||
"defaultHint": "The default model to use, e.g. anthropic/claude-opus-4-6",
|
||||
"provider": "Provider",
|
||||
"providerHint": "Provider name for model routing (e.g. openrouter, anthropic)",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHint": "Override the API endpoint URL for this model",
|
||||
"contextLength": "Context Length",
|
||||
"maxTokens": "Max Tokens",
|
||||
"saveSuccess": "Model config saved",
|
||||
"saveFailed": "Failed to save model config"
|
||||
},
|
||||
"agent": {
|
||||
"title": "Agent Config",
|
||||
"description": "Configure the agent behavior settings in config.yaml's agent section.",
|
||||
"maxTurns": "Max Turns",
|
||||
"maxTurnsHint": "Maximum number of agent turns per session",
|
||||
"reasoningEffort": "Reasoning Effort",
|
||||
"reasoningEffortHint": "Controls the depth of reasoning: none, minimal, low, medium, high, xhigh",
|
||||
"toolUseEnforcement": "Tool Use Enforcement",
|
||||
"toolUseHint": "Values: \"auto\", true, false, or a JSON array of tool names",
|
||||
"approvalsMode": "Approvals Mode",
|
||||
"approvalsModeHint": "Controls tool call approval: manual (always ask), smart (auto-approve safe), off (never ask)",
|
||||
"notSet": "Not set",
|
||||
"saveSuccess": "Agent config saved",
|
||||
"saveFailed": "Failed to save agent config"
|
||||
},
|
||||
"env": {
|
||||
"title": "Env Config",
|
||||
"description": "Edit the environment variables in Hermes .env file.",
|
||||
"editorHint": "Edit the Hermes .env file as a JSON key-value map. Keys become environment variable names.",
|
||||
"saveSuccess": "Env config saved",
|
||||
"saveFailed": "Failed to save env config",
|
||||
"empty": "Hermes env cannot be empty. Use {} for an empty object.",
|
||||
"invalidJson": "Hermes env must be valid JSON.",
|
||||
"objectRequired": "Hermes env must be a JSON object."
|
||||
},
|
||||
"health": {
|
||||
"title": "Hermes config warnings detected",
|
||||
"parseFailed": "config.yaml could not be parsed as valid YAML. Fix the file before editing it here.",
|
||||
"configNotFound": "Hermes config.yaml not found. Create it at ~/.hermes/config.yaml or configure the path in settings.",
|
||||
"envParseFailed": "The .env file could not be parsed."
|
||||
}
|
||||
},
|
||||
"env": {
|
||||
"warning": {
|
||||
"title": "Environment Variable Conflicts Detected",
|
||||
|
||||
@@ -1630,6 +1630,64 @@
|
||||
"primaryModel": "プライマリモデル",
|
||||
"fallbackModel": "フォールバックモデル"
|
||||
},
|
||||
"hermes": {
|
||||
"form": {
|
||||
"baseUrl": "API エンドポイント",
|
||||
"baseUrlHint": "プロバイダーの API エンドポイント URL。",
|
||||
"providerKey": "プロバイダーキー",
|
||||
"providerKeyPlaceholder": "my-provider",
|
||||
"providerKeyHint": "小文字、数字、ハイフンのみ。config.yaml のプロバイダー名として使用されます。",
|
||||
"providerKeyLockedHint": "このプロバイダーは Hermes 設定に追加済みのため、キーは変更できません。",
|
||||
"providerKeyRequired": "プロバイダーキーは必須です",
|
||||
"providerKeyInvalid": "プロバイダーキーは小文字、数字、ハイフンのみ使用できます",
|
||||
"providerKeyDuplicate": "このプロバイダーキーは既に存在します"
|
||||
},
|
||||
"model": {
|
||||
"title": "モデル設定",
|
||||
"description": "config.yaml の model セクションのデフォルトモデル設定を構成します。",
|
||||
"default": "デフォルトモデル",
|
||||
"defaultHint": "使用するデフォルトモデル(例: anthropic/claude-opus-4-6)",
|
||||
"provider": "プロバイダー",
|
||||
"providerHint": "モデルルーティングのプロバイダー名(例: openrouter、anthropic)",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHint": "このモデルの API エンドポイント URL を上書き",
|
||||
"contextLength": "コンテキスト長",
|
||||
"maxTokens": "最大トークン数",
|
||||
"saveSuccess": "モデル設定を保存しました",
|
||||
"saveFailed": "モデル設定の保存に失敗しました"
|
||||
},
|
||||
"agent": {
|
||||
"title": "エージェント設定",
|
||||
"description": "config.yaml の agent セクションの動作設定を構成します。",
|
||||
"maxTurns": "最大ターン数",
|
||||
"maxTurnsHint": "セッションごとの最大エージェントターン数",
|
||||
"reasoningEffort": "推論レベル",
|
||||
"reasoningEffortHint": "推論の深さを制御: none、minimal、low、medium、high、xhigh",
|
||||
"toolUseEnforcement": "ツール使用ポリシー",
|
||||
"toolUseHint": "値: \"auto\"、true、false、またはツール名の JSON 配列",
|
||||
"approvalsMode": "承認モード",
|
||||
"approvalsModeHint": "ツール呼び出しの承認を制御: manual(常に確認)、smart(安全な操作を自動承認)、off(確認なし)",
|
||||
"notSet": "未設定",
|
||||
"saveSuccess": "エージェント設定を保存しました",
|
||||
"saveFailed": "エージェント設定の保存に失敗しました"
|
||||
},
|
||||
"env": {
|
||||
"title": "環境変数",
|
||||
"description": "Hermes .env ファイルの環境変数を編集します。",
|
||||
"editorHint": "Hermes .env ファイルを JSON キー・バリュー形式で編集します。キーが環境変数名になります。",
|
||||
"saveSuccess": "環境変数を保存しました",
|
||||
"saveFailed": "環境変数の保存に失敗しました",
|
||||
"empty": "Hermes 環境変数は空にできません。空のオブジェクトには {} を使用してください。",
|
||||
"invalidJson": "Hermes 環境変数は有効な JSON である必要があります。",
|
||||
"objectRequired": "Hermes 環境変数は JSON オブジェクトである必要があります。"
|
||||
},
|
||||
"health": {
|
||||
"title": "Hermes 設定の警告を検出",
|
||||
"parseFailed": "config.yaml を有効な YAML として解析できません。ここで編集する前にファイルを修正してください。",
|
||||
"configNotFound": "Hermes config.yaml が見つかりません。~/.hermes/config.yaml に作成するか、設定でパスを構成してください。",
|
||||
"envParseFailed": ".env ファイルを解析できません。"
|
||||
}
|
||||
},
|
||||
"env": {
|
||||
"warning": {
|
||||
"title": "競合する環境変数を検出しました",
|
||||
|
||||
@@ -1631,6 +1631,64 @@
|
||||
"primaryModel": "默认模型",
|
||||
"fallbackModel": "回退模型"
|
||||
},
|
||||
"hermes": {
|
||||
"form": {
|
||||
"baseUrl": "API 端点",
|
||||
"baseUrlHint": "供应商的 API 端点地址。",
|
||||
"providerKey": "供应商标识",
|
||||
"providerKeyPlaceholder": "my-provider",
|
||||
"providerKeyHint": "只能使用小写字母、数字和连字符。用作 config.yaml 中的供应商名称。",
|
||||
"providerKeyLockedHint": "该供应商已添加到 Hermes 配置中,标识不可修改。",
|
||||
"providerKeyRequired": "供应商标识不能为空",
|
||||
"providerKeyInvalid": "供应商标识只能包含小写字母、数字和连字符",
|
||||
"providerKeyDuplicate": "该供应商标识已存在"
|
||||
},
|
||||
"model": {
|
||||
"title": "模型配置",
|
||||
"description": "配置 config.yaml 中 model 节的默认模型设置。",
|
||||
"default": "默认模型",
|
||||
"defaultHint": "使用的默认模型,如 anthropic/claude-opus-4-6",
|
||||
"provider": "供应商",
|
||||
"providerHint": "模型路由的供应商名称(如 openrouter、anthropic)",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHint": "覆盖此模型的 API 端点 URL",
|
||||
"contextLength": "上下文长度",
|
||||
"maxTokens": "最大 Tokens",
|
||||
"saveSuccess": "模型配置已保存",
|
||||
"saveFailed": "保存模型配置失败"
|
||||
},
|
||||
"agent": {
|
||||
"title": "Agent 配置",
|
||||
"description": "配置 config.yaml 中 agent 节的行为设置。",
|
||||
"maxTurns": "最大轮次",
|
||||
"maxTurnsHint": "每个会话的最大 Agent 轮次",
|
||||
"reasoningEffort": "推理深度",
|
||||
"reasoningEffortHint": "控制推理深度:none、minimal、low、medium、high、xhigh",
|
||||
"toolUseEnforcement": "工具使用策略",
|
||||
"toolUseHint": "值:\"auto\"、true、false 或工具名称的 JSON 数组",
|
||||
"approvalsMode": "审批模式",
|
||||
"approvalsModeHint": "控制工具调用审批:manual(始终询问)、smart(自动审批安全操作)、off(从不询问)",
|
||||
"notSet": "未设置",
|
||||
"saveSuccess": "Agent 配置已保存",
|
||||
"saveFailed": "保存 Agent 配置失败"
|
||||
},
|
||||
"env": {
|
||||
"title": "环境变量",
|
||||
"description": "编辑 Hermes .env 文件中的环境变量。",
|
||||
"editorHint": "以 JSON 键值对格式编辑 Hermes .env 文件。键名将作为环境变量名。",
|
||||
"saveSuccess": "环境变量已保存",
|
||||
"saveFailed": "保存环境变量失败",
|
||||
"empty": "Hermes 环境变量不能为空。使用 {} 表示空对象。",
|
||||
"invalidJson": "Hermes 环境变量必须是有效的 JSON。",
|
||||
"objectRequired": "Hermes 环境变量必须是 JSON 对象。"
|
||||
},
|
||||
"health": {
|
||||
"title": "检测到 Hermes 配置警告",
|
||||
"parseFailed": "config.yaml 无法解析为有效 YAML。请先修复文件再在此编辑。",
|
||||
"configNotFound": "未找到 Hermes config.yaml。请在 ~/.hermes/config.yaml 创建或在设置中配置路径。",
|
||||
"envParseFailed": ".env 文件无法解析。"
|
||||
}
|
||||
},
|
||||
"env": {
|
||||
"warning": {
|
||||
"title": "检测到系统环境变量冲突",
|
||||
|
||||
Reference in New Issue
Block a user