diff --git a/src-tauri/src/provider.rs b/src-tauri/src/provider.rs index c1bcf304..d1302073 100644 --- a/src-tauri/src/provider.rs +++ b/src-tauri/src/provider.rs @@ -596,6 +596,11 @@ pub struct OpenCodeModel { /// 模型额外选项(provider 路由等) #[serde(skip_serializing_if = "Option::is_none")] pub options: Option>, + + /// 额外字段(cost、modalities、thinking、variants 等) + /// 使用 flatten 捕获所有未明确定义的字段 + #[serde(flatten, default, skip_serializing_if = "HashMap::is_empty")] + pub extra: HashMap, } /// OpenCode 模型限制 diff --git a/src/types.ts b/src/types.ts index 00767430..14c32e02 100644 --- a/src/types.ts +++ b/src/types.ts @@ -310,6 +310,8 @@ export interface OpenCodeModel { output?: number; }; options?: Record; // 模型级别额外选项(provider 路由等) + // 支持任意额外字段(cost、modalities、thinking、variants 等) + [key: string]: unknown; } // OpenCode 供应商选项