diff --git a/dist/acp-agent.js b/dist/acp-agent.js index 0a8f5e3c57ed05189cba546bd65fc18143744d09..a8522d86a5a2f1bbcdd446d222cb9b7b5acb79ca 100644 --- a/dist/acp-agent.js +++ b/dist/acp-agent.js @@ -421,6 +421,7 @@ export class ClaudeAcpAgent { session.promptRunning = true; let handedOff = false; let stopReason = "end_turn"; + let sawResult = false; try { while (true) { const { value: message, done } = await session.query.next(); @@ -428,6 +429,9 @@ export class ClaudeAcpAgent { if (session.cancelled) { return { stopReason: "cancelled" }; } + if (sawResult) { + return { stopReason, usage: sessionUsage(session) }; + } break; } if (session.emitRawSDKMessages && @@ -496,7 +500,7 @@ export class ClaudeAcpAgent { break; } case "session_state_changed": { - if (message.state === "idle") { + if (message.state === "idle" && sawResult) { return { stopReason, usage: sessionUsage(session) }; } break; @@ -601,6 +605,7 @@ export class ClaudeAcpAgent { unreachable(message, this.logger); break; } + sawResult = true; break; } case "stream_event": {