diff options
| author | Frank <[email protected]> | 2026-02-11 00:05:04 -0500 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-02-11 00:05:04 -0500 |
| commit | 22125d13471f2e3166b4b1123eb437920b1dd9b0 (patch) | |
| tree | 6babdacc28f7a05eb89003a0521db09e0f68026c /packages | |
| parent | 8c120f2fab1c498a714c5ec643c599fb0380f5fa (diff) | |
| download | opencode-22125d13471f2e3166b4b1123eb437920b1dd9b0.tar.gz opencode-22125d13471f2e3166b4b1123eb437920b1dd9b0.zip | |
wip: zen
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/console/core/src/model.ts | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts index e1e540fb7..9a2908e32 100644 --- a/packages/console/core/src/model.ts +++ b/packages/console/core/src/model.ts @@ -53,8 +53,6 @@ export namespace ZenData { weight: z.number().optional(), disabled: z.boolean().optional(), storeModel: z.string().optional(), - headers: z.record(z.string(), z.string()).optional(), - bodyModifier: z.record(z.string(), z.string()).optional(), }), ), }) @@ -62,13 +60,20 @@ export namespace ZenData { const ProviderSchema = z.object({ api: z.string(), apiKey: z.string(), - format: FormatSchema, + format: FormatSchema.optional(), headerMappings: z.record(z.string(), z.string()).optional(), + family: z.string().optional(), + }) + + const ProviderFamilySchema = z.object({ + headers: z.record(z.string(), z.string()).optional(), + bodyModifier: z.record(z.string(), z.string()).optional(), }) const ModelsSchema = z.object({ models: z.record(z.string(), z.union([ModelSchema, z.array(ModelSchema.extend({ formatFilter: FormatSchema }))])), providers: z.record(z.string(), ProviderSchema), + providerFamilies: z.record(z.string(), ProviderFamilySchema), }) export const validate = fn(ModelsSchema, (input) => { @@ -98,7 +103,16 @@ export namespace ZenData { Resource.ZEN_MODELS19.value + Resource.ZEN_MODELS20.value, ) - return ModelsSchema.parse(json) + const { models, providers, providerFamilies } = ModelsSchema.parse(json) + return { + models, + providers: Object.fromEntries( + Object.entries(providers).map(([id, provider]) => [ + id, + { ...provider, ...(provider.family ? providerFamilies[provider.family] : {}) }, + ]), + ), + } }) } |
