import { analyseScenario, PROMPT_VERSIONS, DEFAULT_PROMPT_VERSION, } from "@/lib/analysis"; import { withAuthenticatedApi } from "@/lib/supabase/api-auth.js"; async function post(request) { try { const body = await request.json(); if (!body.scenario || typeof body.scenario !== "string") { return Response.json( { error: "Request must include a 'scenario' string field" }, { status: 400 }, ); } // Optional prompt version override let promptVersion = DEFAULT_PROMPT_VERSION; if (body.promptVersion && PROMPT_VERSIONS.includes(body.promptVersion)) { promptVersion = body.promptVersion; } const result = await analyseScenario(body.scenario, { promptVersion }); if (!result.success) { return Response.json( { ...result, reconstruction: result.reconstruction || null }, { status: Number(result.statusCode) || 500 }, ); } return Response.json({ inputClassification: result.inputClassification, reconstruction: result.reconstruction, evidence: result.evidence, nextQuestion: result.nextQuestion, modelName: result.modelName, responseDurationMs: result.responseDurationMs, validationStatus: result.validationStatus, promptVersion: result.promptVersion, }); } catch (e) { return Response.json( { error: e.message || "Unknown server error", responseDurationMs: 0 }, { status: 500 }, ); } } export const POST = withAuthenticatedApi(post);