import { NextRequest, NextResponse } from "next/server"; import { isExtAuthorized } from "@/lib/render-pipeline/ext-auth"; import { toErrorResponse } from "@/lib/render-pipeline/errors"; import { registerMachine } from "@/lib/render-pipeline/machines"; // ── POST /api/ext/workers/register (E6) ────────────────────────────────────── // // Idempotent register/upsert on machine name. Returns the server-supplied // worker config (SystemConfig) so fleet tuning never touches worker installs. export async function POST(req: NextRequest) { if (!isExtAuthorized(req)) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } let body: { name?: string; hostname?: string; workerVersion?: string; aeVersion?: string; capabilities?: unknown; }; try { body = await req.json(); } catch { return NextResponse.json({ error: "Invalid JSON" }, { status: 400 }); } try { const result = await registerMachine(body); return NextResponse.json(result); } catch (err) { const { body: errBody, status } = toErrorResponse(err); return NextResponse.json(errBody, { status }); } }