From 4687226bd81d9cfd2a4a44d51999711649efa236 Mon Sep 17 00:00:00 2001 From: robbond Date: Wed, 19 Aug 2026 16:14:50 +0100 Subject: [PATCH] test(experiment): repair relationship discovery result handling --- .../rto-fragment-relationship-discovery.mjs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/scripts/experimental/rto-fragment-relationship-discovery.mjs b/scripts/experimental/rto-fragment-relationship-discovery.mjs index 2d0b766..b6e13d2 100644 --- a/scripts/experimental/rto-fragment-relationship-discovery.mjs +++ b/scripts/experimental/rto-fragment-relationship-discovery.mjs @@ -389,20 +389,12 @@ async function executeLive() { console.log(`Model response received in ${elapsedMs}ms`); - // Parse the JSON output - let parsedResult; - try { - const jsonMatch = raw.match(/\{[\s\S]*\}/); - if (jsonMatch) { - parsedResult = JSON.parse(jsonMatch[0]); - } else { - throw new Error("No JSON object found in response"); - } - } catch (e) { - console.error("Failed to parse model output as JSON:", e.message); - console.error("Raw response:\n", raw); + // Provider returns a parsed JavaScript object via recoverJson(). + // Do NOT regex-extract — the result is already structured. + const parsedResult = typeof raw === "object" && raw !== null ? raw : (() => { + console.error("Provider returned unexpected type (expected parsed object):", typeof raw); process.exit(1); - } + })(); // Validate output contract const errors = validateRelationshipOutput(parsedResult);