From 72a755dd121ea74f1cfa79fb50c4c96af551b604 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 6 Jun 2026 10:02:47 +0000 Subject: [PATCH] fix: handle Nipmod sending package as object instead of string Nipmod sends package as {name, id, ...} rather than a plain string. String({}) produces "[object Object]" in the DB. Extract .name first, fall back to .id, then JSON.stringify as last resort. https://claude.ai/code/session_01RHDXdEbGQsn88zks713gye --- src/app/api/nipmod/events/route.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/app/api/nipmod/events/route.ts b/src/app/api/nipmod/events/route.ts index 87e81ec..0b99133 100644 --- a/src/app/api/nipmod/events/route.ts +++ b/src/app/api/nipmod/events/route.ts @@ -49,9 +49,14 @@ export async function POST(req: NextRequest) { if (!isNaN(parsed.getTime())) eventTime = parsed.toISOString(); } + // package may arrive as a string or an object {name, id, ...} depending on Nipmod version + const pkgStr = typeof pkg === "object" && pkg !== null + ? String((pkg as Record).name ?? (pkg as Record).id ?? JSON.stringify(pkg)) + : String(pkg); + const row = { agent_id: normalizedAgentId, - package: String(pkg), + package: pkgStr, source: source ? String(source) : null, trust_score: typeof trust_score === "number" ? Math.min(100, Math.max(0, trust_score)) : null, risk_level: risk_level && validRisk.includes(String(risk_level)) ? String(risk_level) : "unknown",