diff --git a/dist/acp-agent.js b/dist/acp-agent.js index 77640e76b74eb95e5558975894206454044ab4ae..c9071444cfba16b05e5e91c1bd2314db5b4c46af 100644 --- a/dist/acp-agent.js +++ b/dist/acp-agent.js @@ -458,6 +458,7 @@ export class ClaudeAcpAgent { let handedOff = false; let errored = false; let stopReason = "end_turn"; + let sawResult = false; try { while (true) { const { value: message, done } = await session.query.next(); @@ -465,6 +466,9 @@ export class ClaudeAcpAgent { if (session.cancelled) { return { stopReason: "cancelled" }; } + if (sawResult) { + return { stopReason, usage: sessionUsage(session) }; + } break; } if (session.emitRawSDKMessages && @@ -533,7 +537,7 @@ export class ClaudeAcpAgent { break; } case "session_state_changed": { - if (message.state === "idle") { + if (message.state === "idle" && sawResult) { if (session.cancelled) { stopReason = "cancelled"; } @@ -698,6 +702,9 @@ export class ClaudeAcpAgent { unreachable(message, this.logger); break; } + if (!isTaskNotification) { + sawResult = true; + } break; } case "stream_event": {