feat(opencode): add extra options editor for SDK configuration

Add key-value pair editor for configuring additional SDK options like
timeout, setCacheKey, etc. Values are automatically parsed to appropriate
types (number, boolean, object) on save.

- Add `extra` field with serde flatten in Rust backend
- Add index signature to OpenCodeProviderOptions type
- Create ExtraOptionKeyInput component with local state pattern
- Place extra options section above models configuration
This commit is contained in:
Jason
2026-01-19 11:42:24 +08:00
parent 73013c10af
commit b0d0a2c466
7 changed files with 259 additions and 3 deletions
+9 -1
View File
@@ -481,7 +481,15 @@
"providerKeyHint": "Unique identifier in config file. Cannot be changed after creation. Use lowercase letters, numbers, and hyphens only.",
"providerKeyRequired": "Provider key is required",
"providerKeyDuplicate": "This key is already in use",
"providerKeyInvalid": "Invalid format. Use lowercase letters, numbers, and hyphens only."
"providerKeyInvalid": "Invalid format. Use lowercase letters, numbers, and hyphens only.",
"extraOptions": "Extra Options",
"extraOptionsHint": "Configure extra SDK options like timeout, setCacheKey, etc. Values are auto-parsed to appropriate types (number, boolean, etc.).",
"addExtraOption": "Add",
"extraOptionKey": "Key",
"extraOptionValue": "Value",
"extraOptionKeyPlaceholder": "timeout",
"extraOptionValuePlaceholder": "600000",
"noExtraOptions": "No extra options configured"
},
"providerPreset": {
"label": "Provider Preset",
+9 -1
View File
@@ -481,7 +481,15 @@
"providerKeyHint": "設定ファイルの一意の識別子。作成後は変更できません。小文字、数字、ハイフンのみ使用できます。",
"providerKeyRequired": "プロバイダーキーを入力してください",
"providerKeyDuplicate": "このキーは既に使用されています",
"providerKeyInvalid": "無効な形式です。小文字、数字、ハイフンのみ使用できます。"
"providerKeyInvalid": "無効な形式です。小文字、数字、ハイフンのみ使用できます。",
"extraOptions": "追加オプション",
"extraOptionsHint": "timeout、setCacheKey などの SDK オプションを設定。値は自動的に適切な型(数値、真偽値など)に変換されます。",
"addExtraOption": "追加",
"extraOptionKey": "キー名",
"extraOptionValue": "値",
"extraOptionKeyPlaceholder": "timeout",
"extraOptionValuePlaceholder": "600000",
"noExtraOptions": "追加オプションはありません"
},
"providerPreset": {
"label": "プロバイダータイプ",
+9 -1
View File
@@ -481,7 +481,15 @@
"providerKeyHint": "配置文件中的唯一标识符,创建后无法修改,只能使用小写字母、数字和连字符",
"providerKeyRequired": "请填写供应商标识",
"providerKeyDuplicate": "此标识已被使用,请更换",
"providerKeyInvalid": "标识格式无效,只能使用小写字母、数字和连字符"
"providerKeyInvalid": "标识格式无效,只能使用小写字母、数字和连字符",
"extraOptions": "额外选项",
"extraOptionsHint": "配置额外的 SDK 选项,如 timeout、setCacheKey 等。值会自动解析类型(数字、布尔值等)。",
"addExtraOption": "添加",
"extraOptionKey": "键名",
"extraOptionValue": "值",
"extraOptionKeyPlaceholder": "timeout",
"extraOptionValuePlaceholder": "600000",
"noExtraOptions": "暂无额外选项"
},
"providerPreset": {
"label": "预设供应商",