feat(hermes): align provider schema with Hermes Agent 0.10.0

Hermes 0.10.0 tightened custom_providers validation (commit 2cdae233):
invalid base_urls are rejected, unknown fields produce warnings, and
new fields (rate_limit_delay, bedrock_converse, key_env) landed.

- Add bedrock_converse to the api_mode selector (and i18n labels)
- Expose rate_limit_delay in a provider-level advanced panel
- Validate base_url client-side (URL shape, template-token friendly)
- Drop per-model max_tokens — not in _VALID_CUSTOM_PROVIDER_FIELDS
- Round-trip test asserts set_provider preserves rate_limit_delay /
  key_env / any unknown forward-compat field
This commit is contained in:
Jason
2026-04-20 22:13:54 +08:00
parent 111ddf8d73
commit 0be75668cc
9 changed files with 375 additions and 89 deletions
+8 -2
View File
@@ -1655,6 +1655,10 @@
"apiModeChatCompletions": "OpenAI Chat Completions",
"apiModeAnthropicMessages": "Anthropic Messages",
"apiModeCodexResponses": "OpenAI Responses",
"apiModeBedrockConverse": "AWS Bedrock Converse",
"baseUrlRequired": "API endpoint is required",
"baseUrlScheme": "Use an http:// or https:// address",
"baseUrlInvalid": "API endpoint is not a valid URL",
"models": "Models",
"addModel": "Add model",
"noModels": "No models configured. Switching to this provider won't change the default model.",
@@ -1663,11 +1667,13 @@
"modelName": "Display name",
"modelNamePlaceholder": "Claude Opus 4.7",
"contextLength": "Context length",
"maxTokens": "Max output tokens",
"advancedOptions": "Advanced options",
"modelsHint": "On switch, the first model is written to top-level model.default.",
"primaryModel": "Default",
"fallbackModel": "Alternate"
"fallbackModel": "Alternate",
"providerAdvanced": "Provider advanced options",
"rateLimitDelay": "Rate limit delay (seconds)",
"rateLimitDelayHint": "Minimum delay in seconds between consecutive requests (optional). Leave empty for no limit."
},
"webui": {
"open": "Open Hermes Web UI",
+8 -2
View File
@@ -1655,6 +1655,10 @@
"apiModeChatCompletions": "OpenAI Chat Completions",
"apiModeAnthropicMessages": "Anthropic Messages",
"apiModeCodexResponses": "OpenAI Responses",
"apiModeBedrockConverse": "AWS Bedrock Converse",
"baseUrlRequired": "API エンドポイントは必須です",
"baseUrlScheme": "http:// または https:// で始まるアドレスを指定してください",
"baseUrlInvalid": "API エンドポイントは有効な URL ではありません",
"models": "モデル一覧",
"addModel": "モデルを追加",
"noModels": "モデル未設定。このプロバイダーに切り替えてもデフォルトモデルは更新されません。",
@@ -1663,11 +1667,13 @@
"modelName": "表示名",
"modelNamePlaceholder": "Claude Opus 4.7",
"contextLength": "コンテキスト長",
"maxTokens": "最大出力トークン",
"advancedOptions": "詳細オプション",
"modelsHint": "切り替え時、最初のモデルが model.default に書き込まれます。",
"primaryModel": "デフォルト",
"fallbackModel": "予備"
"fallbackModel": "予備",
"providerAdvanced": "プロバイダー詳細オプション",
"rateLimitDelay": "リクエスト間隔(秒)",
"rateLimitDelayHint": "連続したリクエスト間の最小待機秒数(任意)。空欄の場合は制限なし。"
},
"webui": {
"open": "Hermes Web UI を開く",
+8 -2
View File
@@ -1655,6 +1655,10 @@
"apiModeChatCompletions": "OpenAI Chat Completions",
"apiModeAnthropicMessages": "Anthropic Messages",
"apiModeCodexResponses": "OpenAI Responses",
"apiModeBedrockConverse": "AWS Bedrock Converse",
"baseUrlRequired": "API 端点不能为空",
"baseUrlScheme": "请使用 http:// 或 https:// 开头的地址",
"baseUrlInvalid": "API 端点不是有效的 URL",
"models": "模型列表",
"addModel": "添加模型",
"noModels": "暂无模型配置。切换到此供应商时将不会更新默认模型。",
@@ -1663,11 +1667,13 @@
"modelName": "显示名称",
"modelNamePlaceholder": "Claude Opus 4.7",
"contextLength": "上下文长度",
"maxTokens": "最大输出 Tokens",
"advancedOptions": "高级选项",
"modelsHint": "切换到此供应商时,第一个模型会写入顶层 model.default。",
"primaryModel": "默认模型",
"fallbackModel": "备选模型"
"fallbackModel": "备选模型",
"providerAdvanced": "供应商高级选项",
"rateLimitDelay": "请求间隔(秒)",
"rateLimitDelayHint": "连续请求间的最小间隔秒数(可选)。留空表示无限制。"
},
"webui": {
"open": "打开 Hermes Web UI",