2026-02-03 11:28:22 +09:00
|
|
|
import { z } from "zod"
|
|
|
|
|
|
2026-03-18 14:21:27 +01:00
|
|
|
export const FallbackModelObjectSchema = z.object({
|
|
|
|
|
model: z.string(),
|
|
|
|
|
variant: z.string().optional(),
|
2026-04-30 23:57:58 -04:00
|
|
|
reasoningEffort: z.enum(["none", "minimal", "low", "medium", "high", "xhigh", "max"]).optional(),
|
2026-03-18 14:21:27 +01:00
|
|
|
temperature: z.number().min(0).max(2).optional(),
|
|
|
|
|
top_p: z.number().min(0).max(1).optional(),
|
|
|
|
|
maxTokens: z.number().optional(),
|
|
|
|
|
thinking: z
|
|
|
|
|
.object({
|
|
|
|
|
type: z.enum(["enabled", "disabled"]),
|
|
|
|
|
budgetTokens: z.number().optional(),
|
|
|
|
|
})
|
|
|
|
|
.optional(),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
export type FallbackModelObject = z.infer<typeof FallbackModelObjectSchema>
|
|
|
|
|
|
2026-03-30 10:35:06 +09:00
|
|
|
export const FallbackModelStringArraySchema = z.array(z.string())
|
|
|
|
|
export const FallbackModelObjectArraySchema = z.array(FallbackModelObjectSchema)
|
|
|
|
|
export const FallbackModelMixedArraySchema = z.array(z.union([z.string(), FallbackModelObjectSchema]))
|
|
|
|
|
|
2026-03-18 14:21:27 +01:00
|
|
|
export const FallbackModelsSchema = z.union([
|
|
|
|
|
z.string(),
|
2026-03-30 10:35:06 +09:00
|
|
|
FallbackModelStringArraySchema,
|
|
|
|
|
FallbackModelObjectArraySchema,
|
|
|
|
|
FallbackModelMixedArraySchema,
|
2026-03-18 14:21:27 +01:00
|
|
|
])
|
2026-02-03 11:28:22 +09:00
|
|
|
|
|
|
|
|
export type FallbackModels = z.infer<typeof FallbackModelsSchema>
|