import { z } from "zod"; import { requireAdmin } from "@/lib/middleware/admin"; import { ChatSDKError } from "@/lib/errors"; import { probeRunwareSeedImageSupport } from "@/lib/realtime/runware-capability"; const schema = z.object({ apiKey: z.string().min(1), modelId: z.string().min(1), }); function mapStatus(code: string) { if (code === "UPSTREAM_ERROR") return 502; return 400; } export async function POST(request: Request) { try { await requireAdmin(); const body = await request.json(); const data = schema.parse(body); const result = await probeRunwareSeedImageSupport({ apiKey: data.apiKey, modelId: data.modelId, }); if (!result.supported) { return Response.json(result, { status: mapStatus(result.code) }); } return Response.json(result); } catch (error) { if (error instanceof ChatSDKError) { return error.toResponse(); } if (error instanceof z.ZodError) { return new ChatSDKError("bad_request:api", error.message).toResponse(); } return new ChatSDKError("offline:admin").toResponse(); } }