@@ -2415,17 +2415,32 @@ async function runAgentTurn(params) {
|
2415 | 2415 | function parseAgentPayloadTexts(stdout) { |
2416 | 2416 | try { |
2417 | 2417 | const payload = JSON.parse(stdout); |
| 2418 | +const directTexts = [ |
| 2419 | +payload?.finalAssistantVisibleText, |
| 2420 | +payload?.finalAssistantRawText, |
| 2421 | +payload?.meta?.finalAssistantVisibleText, |
| 2422 | +payload?.meta?.finalAssistantRawText, |
| 2423 | +payload?.result?.finalAssistantVisibleText, |
| 2424 | +payload?.result?.finalAssistantRawText, |
| 2425 | +payload?.result?.meta?.finalAssistantVisibleText, |
| 2426 | +payload?.result?.meta?.finalAssistantRawText, |
| 2427 | +].filter((text): text is string => typeof text === "string"); |
2418 | 2428 | const entries = Array.isArray(payload?.payloads) |
2419 | 2429 | ? payload.payloads |
2420 | 2430 | : Array.isArray(payload?.result?.payloads) |
2421 | 2431 | ? payload.result.payloads |
2422 | 2432 | : []; |
2423 | | -if (!Array.isArray(entries)) { |
2424 | | -return []; |
2425 | | -} |
2426 | | -return entries.flatMap((entry) => (typeof entry?.text === "string" ? [entry.text] : [])); |
| 2433 | +const payloadTexts = Array.isArray(entries) |
| 2434 | +? entries.flatMap((entry) => (typeof entry?.text === "string" ? [entry.text] : [])) |
| 2435 | + : []; |
| 2436 | +return [...directTexts, ...payloadTexts]; |
2427 | 2437 | } catch { |
2428 | | -return stdout.trim() ? [stdout] : []; |
| 2438 | +const finalTextMatches = [ |
| 2439 | + ...stdout.matchAll( |
| 2440 | +/"(?:finalAssistantVisibleText|finalAssistantRawText|text)"\s*:\s*"([^"]*)"/gu, |
| 2441 | +), |
| 2442 | +].map((match) => match[1]); |
| 2443 | +return finalTextMatches.length > 0 ? finalTextMatches : stdout.trim() ? [stdout] : []; |
2429 | 2444 | } |
2430 | 2445 | } |
2431 | 2446 | |
|