import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; const BACKEND_URL = process.env.BACKEND_URL || 'http://localhost:3000'; /** * Hero-prop proxy (Truth-Everywhere Part 2, item 5) — forwards to the Express * /api/hero-prop, which reads the pre-graded snapshot for the largest * |model - consensus| gap among A/B grades (the read where VYNDR disagrees most * with the market). Empty slate → most recent real graded read. Any failure → * { available: false } so the card HIDES; there is NO hand-written fallback * (the old static Jokic card is gone). */ export async function GET(req: Request) { try { const upstream = await fetch(`${BACKEND_URL}/api/hero-prop`, { method: 'GET', headers: { Accept: 'application/json', ...(req.headers.get('authorization') ? { Authorization: req.headers.get('authorization')! } : {}) }, cache: 'no-store', }); const data = await upstream.json().catch(() => ({ available: false })); return NextResponse.json(data, { status: 200, headers: { 'Cache-Control': 'public, s-maxage=300, stale-while-revalidate=60' }, }); } catch { return NextResponse.json({ available: false }, { status: 200 }); } }