import { NextResponse } from "next/server"; import { apiError } from "@/lib/api.ts"; import { requireUser } from "@/lib/auth/session.ts"; import { listModels, getPresets } from "@/lib/openrouter/registry.ts"; export async function GET() { try { await requireUser(); const models = await listModels(); const presets = getPresets(); // L'étudiant voit le palier de coût, pas les prix détaillés (réservés à l'admin). return NextResponse.json({ models: models.map((m) => ({ id: m.id, name: m.name, provider: m.provider, description: m.description, contextLength: m.contextLength, supportsImages: m.supportsImages, supportsFiles: m.supportsFiles, supportsReasoning: m.supportsReasoning, isFree: m.isFree, costTier: m.costTier, favorite: m.favorite, })), presets, }); } catch (e) { return apiError(e); } }