From b36ed5288369067d14bb35dfba33542c1a40d3f3 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 30 Sep 2025 01:48:15 -0700 Subject: fix(gateway:moderationAgent): Update model response handling --- .../src/listeners/moderationAgent/utilities.ts | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/gateway/src/listeners/moderationAgent/utilities.ts b/packages/gateway/src/listeners/moderationAgent/utilities.ts index 0f9e2a8..7611cab 100644 --- a/packages/gateway/src/listeners/moderationAgent/utilities.ts +++ b/packages/gateway/src/listeners/moderationAgent/utilities.ts @@ -369,7 +369,17 @@ Remember: Only enforce the exact rules provided. Do not make assumptions or inte jsonContent = jsonContent.replace(/\\'/g, "'"); } - return JSON.parse(jsonContent); + try { + const fixedJson = jsonContent + .replace(/"([^"]*):([^"]*)":/g, '"$1:$2":') + .replace(/: "([^"]*):([^"]*)"/g, ': "$1:$2"') + .replace(/: "([^"]*)"([^",}])/g, ': "$1"$2') + .replace(/"([^"]*)"([^",}:])/g, '"$1"$2'); + + return JSON.parse(fixedJson); + } catch (e) { + return JSON.parse(jsonContent); + } } catch (parseError) { console.error("Failed to parse OpenRouter response as JSON:", content); console.error("Parse error:", parseError); @@ -398,7 +408,17 @@ Remember: Only enforce the exact rules provided. Do not make assumptions or inte .replace(/'/g, '"') .replace(/\\"/g, '"'); - return JSON.parse(fallbackContent); + try { + const fixedJson = fallbackContent + .replace(/"([^"]*):([^"]*)":/g, '"$1:$2":') + .replace(/: "([^"]*):([^"]*)"/g, ': "$1:$2"') + .replace(/: "([^"]*)"([^",}])/g, ': "$1"$2') + .replace(/"([^"]*)"([^",}:])/g, '"$1"$2'); + + return JSON.parse(fixedJson); + } catch (e) { + return JSON.parse(fallbackContent); + } } catch (fallbackError) { console.error("Fallback parsing also failed:", fallbackError); return null; -- cgit v1.2.3