import { NextRequest, NextResponse } from 'next/server' import { requireAdmin } from '@/lib/auth' import { getAiConfig } from '@/lib/app-settings' export async function POST(request: NextRequest) { const auth = await requireAdmin(request) if (auth instanceof NextResponse) return auth const { endpoint, model } = getAiConfig() if (!endpoint) { return NextResponse.json({ error: 'No endpoint configured' }, { status: 400 }) } const url = endpoint.replace(/\/+$/, '') + '/chat/completions' try { const controller = new AbortController() const timeout = setTimeout(() => controller.abort(), 10_000) const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, signal: controller.signal, body: JSON.stringify({ model: model || 'test', messages: [{ role: 'user', content: 'Hi' }], max_tokens: 1, }), }) clearTimeout(timeout) if (!res.ok) { const text = await res.text().catch(() => '') return NextResponse.json( { error: `LLM returned ${res.status}: ${text.slice(0, 200)}` }, { status: 502 } ) } return NextResponse.json({ ok: true }) } catch (err) { const message = err instanceof Error ? err.message : 'Unknown error' return NextResponse.json({ error: `Connection failed: ${message}` }, { status: 502 }) } }