import { z } from "zod"; import { guarded, json, body } from "@/lib/api"; import { listModels, updateModelFlags } from "@/lib/ai/registry"; import { getSetting, setSetting } from "@/lib/db"; export const GET = guarded(async (req) => { const all = req.nextUrl.searchParams.get("all") === "1"; const models = await listModels({ includeHidden: all }); const defaults = await getSetting<{ defaultModel?: string }>("models", {}); const registry = await getSetting>("registry", {}); return json({ models, defaultModel: defaults.defaultModel ?? null, registry }); }); export const PATCH = guarded(async (req) => { const b = await body(req, z.object({ id: z.string(), hidden: z.boolean().optional(), favorite: z.boolean().optional(), default: z.boolean().optional() })); await updateModelFlags(b.id, { hidden: b.hidden, favorite: b.favorite }); if (b.default) await setSetting("models", { ...(await getSetting>("models", {})), defaultModel: b.id }); return json({ ok: true }); });