debug: log MEDIA extraction and parse Claude text for tokens
This commit is contained in:
@@ -289,8 +289,17 @@ const mediaNote =
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
const rawStdout = stdout.trim();
|
const rawStdout = stdout.trim();
|
||||||
const { text: trimmedText, mediaUrl: mediaFromCommand } =
|
let mediaFromCommand: string | undefined;
|
||||||
|
const { text: trimmedText, mediaUrl: mediaDirect } =
|
||||||
splitMediaFromOutput(rawStdout);
|
splitMediaFromOutput(rawStdout);
|
||||||
|
mediaFromCommand = mediaDirect;
|
||||||
|
if (isVerbose()) {
|
||||||
|
logVerbose(
|
||||||
|
mediaFromCommand
|
||||||
|
? `MEDIA token extracted from stdout: ${mediaFromCommand}`
|
||||||
|
: "No MEDIA token extracted from stdout",
|
||||||
|
);
|
||||||
|
}
|
||||||
let trimmed = trimmedText;
|
let trimmed = trimmedText;
|
||||||
if (stderr?.trim()) {
|
if (stderr?.trim()) {
|
||||||
logVerbose(`Command auto-reply stderr: ${stderr.trim()}`);
|
logVerbose(`Command auto-reply stderr: ${stderr.trim()}`);
|
||||||
@@ -310,6 +319,17 @@ const mediaNote =
|
|||||||
`Claude JSON parsed -> ${parsed.text.slice(0, 120)}${parsed.text.length > 120 ? "…" : ""}`,
|
`Claude JSON parsed -> ${parsed.text.slice(0, 120)}${parsed.text.length > 120 ? "…" : ""}`,
|
||||||
);
|
);
|
||||||
trimmed = parsed.text.trim();
|
trimmed = parsed.text.trim();
|
||||||
|
if (!mediaFromCommand) {
|
||||||
|
const { mediaUrl: mediaFromParsed } = splitMediaFromOutput(
|
||||||
|
parsed.text,
|
||||||
|
);
|
||||||
|
if (mediaFromParsed) {
|
||||||
|
mediaFromCommand = mediaFromParsed;
|
||||||
|
logVerbose(
|
||||||
|
`MEDIA token extracted after JSON parse: ${mediaFromParsed}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
logVerbose("Claude JSON parse failed; returning raw stdout");
|
logVerbose("Claude JSON parse failed; returning raw stdout");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ export function splitMediaFromOutput(raw: string): {
|
|||||||
let text = trimmedRaw;
|
let text = trimmedRaw;
|
||||||
let mediaUrl: string | undefined;
|
let mediaUrl: string | undefined;
|
||||||
|
|
||||||
|
const globalMatch = trimmedRaw.match(MEDIA_TOKEN_RE);
|
||||||
let mediaLine = trimmedRaw.split("\n").find((line) => MEDIA_LINE_RE.test(line));
|
let mediaLine = trimmedRaw.split("\n").find((line) => MEDIA_LINE_RE.test(line));
|
||||||
let mediaMatch = mediaLine?.match(MEDIA_TOKEN_RE) ?? trimmedRaw.match(MEDIA_TOKEN_RE);
|
let mediaMatch = mediaLine?.match(MEDIA_TOKEN_RE) ?? globalMatch;
|
||||||
if (!mediaMatch) {
|
if (!mediaMatch) {
|
||||||
return { text: trimmedRaw };
|
return { text: trimmedRaw };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user