Lumbridge Bench
CI / verify (push) Successful in 24s
CI / deploy (push) Failing after 1m14s

This commit is contained in:
Karti Tripathi
2026-08-04 00:44:07 -07:00
commit 006feee0f7
65 changed files with 13516 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
import { NextResponse } from "next/server";
import { parseHuggingFaceRef } from "@/lib/model-ref";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
const controlPlaneUrl = (
process.env.LUMBRIDGE_CONTROL_PLANE_URL ?? "http://127.0.0.1:8902"
).replace(/\/+$/, "");
/**
* Record a Hugging Face model suggestion for Karti to review manually.
*
* This endpoint only forwards an inert review record to the Lumbridge control
* plane. Neither service downloads, imports, schedules, or executes a model.
*/
export async function POST(req: Request) {
let body: { model?: string; notes?: string };
try {
body = await req.json();
} catch {
return NextResponse.json({ error: "invalid JSON" }, { status: 400 });
}
const ref = parseHuggingFaceRef(body.model ?? "");
if (!ref) {
return NextResponse.json(
{ error: "Expected a Hugging Face model reference like `owner/model`." },
{ status: 400 },
);
}
try {
const response = await fetch(`${controlPlaneUrl}/api/model-suggestions`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sourceUrl: `https://huggingface.co/${ref}`,
reason: "Suggested via Lumbridge Bench for manual model review.",
notes: (body.notes ?? "").slice(0, 2000) || undefined,
}),
cache: "no-store",
signal: AbortSignal.timeout(5_000),
});
if (!response.ok) {
const result = await response.json().catch(() => null) as {
error?: string;
} | null;
return NextResponse.json(
{
error:
result?.error ??
"The Lumbridge review inbox could not accept that suggestion.",
},
{ status: response.status },
);
}
} catch {
return NextResponse.json(
{ error: "The Lumbridge review inbox is temporarily unavailable." },
{ status: 503 },
);
}
return NextResponse.json({
ok: true,
model: ref,
message:
"Suggestion received. Karti reviews every model manually. Nothing is " +
"downloaded or run automatically; approved results appear on the board later.",
});
}