summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorFrank <[email protected]>2026-02-11 00:05:04 -0500
committerFrank <[email protected]>2026-02-11 00:05:04 -0500
commit22125d13471f2e3166b4b1123eb437920b1dd9b0 (patch)
tree6babdacc28f7a05eb89003a0521db09e0f68026c /packages
parent8c120f2fab1c498a714c5ec643c599fb0380f5fa (diff)
downloadopencode-22125d13471f2e3166b4b1123eb437920b1dd9b0.tar.gz
opencode-22125d13471f2e3166b4b1123eb437920b1dd9b0.zip
wip: zen
Diffstat (limited to 'packages')
-rw-r--r--packages/console/core/src/model.ts22
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] : {}) },
+ ]),
+ ),
+ }
})
}