spb/chat-spboucher-ai
Public
1import { z } from "zod";2import { guarded, json, body } from "@/lib/api";3import { listModels, updateModelFlags } from "@/lib/ai/registry";4import { getSetting, setSetting } from "@/lib/db";56export const GET = guarded(async (req) => {7 const all = req.nextUrl.searchParams.get("all") === "1";8 const models = await listModels({ includeHidden: all });9 const defaults = await getSetting<{ defaultModel?: string }>("models", {});10 const registry = await getSetting<Record<string, unknown>>("registry", {});11 return json({ models, defaultModel: defaults.defaultModel ?? null, registry });12});1314export const PATCH = guarded(async (req) => {15 const b = await body(req, z.object({ id: z.string(), hidden: z.boolean().optional(), favorite: z.boolean().optional(), default: z.boolean().optional() }));16 await updateModelFlags(b.id, { hidden: b.hidden, favorite: b.favorite });17 if (b.default) await setSetting("models", { ...(await getSetting<Record<string, unknown>>("models", {})), defaultModel: b.id });18 return json({ ok: true });19});20