import { PROVIDER_MODELS } from "@/shared/constants/models"; /** * Handle CORS preflight */ export async function OPTIONS() { return new Response(null, { headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, OPTIONS", "Access-Control-Allow-Headers": "*" } }); } /** * GET /v1beta/models - Gemini compatible models list * Returns models in Gemini API format */ export async function GET() { try { // Collect all models from all providers const models = []; for (const [provider, providerModels] of Object.entries(PROVIDER_MODELS)) { for (const model of providerModels) { models.push({ name: `models/${provider}/${model.id}`, displayName: model.name || model.id, description: `${provider} model: ${model.name || model.id}`, supportedGenerationMethods: ["generateContent"], inputTokenLimit: 128000, outputTokenLimit: 8192, }); } } return Response.json({ models }); } catch (error) { console.log("Error fetching models:", error); return Response.json({ error: { message: error.message } }, { status: 500 }); } }