import type { Metadata } from "next"; import { headers } from "next/headers"; import { auth } from "@/lib/auth/server"; import { db, userAiKeys, userModelPrefs, eq } from "@epicure/db"; import { ByokManager } from "@/components/settings/byok-manager"; import { ModelPrefsForm } from "@/components/settings/model-prefs-form"; export const metadata: Metadata = { title: "AI & Models – Settings" }; export default async function AiSettingsPage() { const session = await auth.api.getSession({ headers: await headers() }); if (!session) return null; const [aiKeys, modelPrefs] = await Promise.all([ db.query.userAiKeys.findMany({ where: eq(userAiKeys.userId, session.user.id), columns: { provider: true }, }), db.query.userModelPrefs.findFirst({ where: eq(userModelPrefs.userId, session.user.id), }), ]); return (

Your API Keys (BYOK)

Use your own API keys instead of the app's shared quota. Keys are encrypted at rest.

k.provider)} />

Model Preferences

Choose which model to use for each task. Defaults to your first configured provider.

); }