This commit is contained in:
Frank
2026-02-11 00:05:04 -05:00
parent 8c120f2fab
commit 22125d1347

View File

@@ -53,8 +53,6 @@ export namespace ZenData {
weight: z.number().optional(), weight: z.number().optional(),
disabled: z.boolean().optional(), disabled: z.boolean().optional(),
storeModel: z.string().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({ const ProviderSchema = z.object({
api: z.string(), api: z.string(),
apiKey: z.string(), apiKey: z.string(),
format: FormatSchema, format: FormatSchema.optional(),
headerMappings: z.record(z.string(), z.string()).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({ const ModelsSchema = z.object({
models: z.record(z.string(), z.union([ModelSchema, z.array(ModelSchema.extend({ formatFilter: FormatSchema }))])), models: z.record(z.string(), z.union([ModelSchema, z.array(ModelSchema.extend({ formatFilter: FormatSchema }))])),
providers: z.record(z.string(), ProviderSchema), providers: z.record(z.string(), ProviderSchema),
providerFamilies: z.record(z.string(), ProviderFamilySchema),
}) })
export const validate = fn(ModelsSchema, (input) => { export const validate = fn(ModelsSchema, (input) => {
@@ -98,7 +103,16 @@ export namespace ZenData {
Resource.ZEN_MODELS19.value + Resource.ZEN_MODELS19.value +
Resource.ZEN_MODELS20.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] : {}) },
]),
),
}
}) })
} }