feat: add variants toggle (#6325)

Co-authored-by: Github Action <action@github.com>
This commit is contained in:
Aiden Cline
2025-12-29 19:43:50 -08:00
committed by GitHub
parent e1dd9c4ccb
commit ed0c0d90be
14 changed files with 339 additions and 52 deletions

View File

@@ -34,6 +34,7 @@ import { createCohere } from "@ai-sdk/cohere"
import { createGateway } from "@ai-sdk/gateway"
import { createTogetherAI } from "@ai-sdk/togetherai"
import { createPerplexity } from "@ai-sdk/perplexity"
import { ProviderTransform } from "./transform"
export namespace Provider {
const log = Log.create({ service: "provider" })
@@ -404,6 +405,16 @@ export namespace Provider {
},
}
export const Variant = z
.object({
disabled: z.boolean(),
})
.catchall(z.any())
.meta({
ref: "Variant",
})
export type Variant = z.infer<typeof Variant>
export const Model = z
.object({
id: z.string(),
@@ -467,6 +478,7 @@ export namespace Provider {
options: z.record(z.string(), z.any()),
headers: z.record(z.string(), z.string()),
release_date: z.string(),
variants: z.record(z.string(), Variant).optional(),
})
.meta({
ref: "Model",
@@ -489,7 +501,7 @@ export namespace Provider {
export type Info = z.infer<typeof Info>
function fromModelsDevModel(provider: ModelsDev.Provider, model: ModelsDev.Model): Model {
return {
const m: Model = {
id: model.id,
providerID: provider.id,
name: model.name,
@@ -546,7 +558,12 @@ export namespace Provider {
interleaved: model.interleaved ?? false,
},
release_date: model.release_date,
variants: {},
}
m.variants = mapValues(ProviderTransform.variants(m), (v) => ({ disabled: false, ...v }))
return m
}
export function fromModelsDevProvider(provider: ModelsDev.Provider): Info {