mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-28 14:57:14 +00:00
42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
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": {
|