diff --git a/dist/acp-agent.js b/dist/acp-agent.js index e1d9aa9f0815f57ea2fd299a7f2b8ef0917ca191..875fdfb25fbfa905ca80728355d25a17e6d89148 100644 --- a/dist/acp-agent.js +++ b/dist/acp-agent.js @@ -436,6 +436,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(); @@ -443,6 +444,9 @@ export class ClaudeAcpAgent { if (session.cancelled) { return { stopReason: "cancelled" }; } + if (sawResult) { + return { stopReason, usage: sessionUsage(session) }; + } break; } if (session.emitRawSDKMessages && @@ -499,7 +503,7 @@ export class ClaudeAcpAgent { break; } case "session_state_changed": { - if (message.state === "idle") { + if (message.state === "idle" && sawResult) { return { stopReason, usage: sessionUsage(session) }; } break; @@ -621,6 +625,7 @@ export class ClaudeAcpAgent { unreachable(message, this.logger); break; } + sawResult = true; break; } case "stream_event": {