@agentclientprotocol/claude-agent-acp 0.77.1-preview.1 → 0.77.1-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acp-agent.d.ts +4 -0
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +92 -20
- package/dist/context-compaction.d.ts +96 -10
- package/dist/context-compaction.d.ts.map +1 -1
- package/dist/context-compaction.js +264 -70
- package/package.json +1 -1
package/dist/acp-agent.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { ContextCompactionMetadata } from "./context-compaction-meta.js";
|
|
|
13
13
|
import { type SessionFailureState } from "./session-failure-extension.js";
|
|
14
14
|
import { type ClaudeSubscriptionGuardState } from "./hide-claude-auth.js";
|
|
15
15
|
import { type FileChangeAuditSupport, type FileChangeAuditTurnState } from "./file-change-audit.js";
|
|
16
|
+
import { ContextCompactionLifecycle } from "./context-compaction.js";
|
|
16
17
|
import { TaskState } from "./tools.js";
|
|
17
18
|
import { Pushable } from "./utils.js";
|
|
18
19
|
import { MODE_CONFIG_ID } from "./session-mode.js";
|
|
@@ -513,6 +514,9 @@ export type Session = {
|
|
|
513
514
|
/** Session-owned async task controller. Prompt cancellation intentionally
|
|
514
515
|
* does not finish it because background work may outlive a prompt. */
|
|
515
516
|
asyncTaskRuntime?: AsyncTaskRuntime;
|
|
517
|
+
/** The consumer's compaction lifecycle, exposed so the PostCompact hook can
|
|
518
|
+
* hand it the retained summary. */
|
|
519
|
+
contextCompaction?: ContextCompactionLifecycle;
|
|
516
520
|
/** Whether any top-level assistant text reached the client since the last
|
|
517
521
|
* stretch boundary. Set as a side effect of sending in the consumer's
|
|
518
522
|
* `sendUpdate`, never at an emission site; read at the terminal `result`
|
package/dist/acp-agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EAGnB,kBAAkB,EAClB,kBAAkB,EAClB,+BAA+B,EAC/B,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EAGb,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EAEd,mBAAmB,EACnB,oBAAoB,EAEpB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,UAAU,EAEV,sBAAsB,EACtB,aAAa,EAKb,SAAS,EAIT,OAAO,EACP,cAAc,EAEd,KAAK,EAKL,gBAAgB,EAChB,0BAA0B,EAE1B,cAAc,EACd,QAAQ,EAGT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAKL,WAAW,EACX,mBAAmB,EACnB,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,sBAAsB,EAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,cAAc,EACd,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,cAAc,EAQpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AA8BlG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAUL,KAAK,mBAAmB,EAGzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAKL,KAAK,4BAA4B,EAMlC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAQL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAK9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAI3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAcL,SAAS,EAMV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAwC,QAAQ,EAAe,MAAM,YAAY,CAAC;AAUzF,OAAO,EAAE,cAAc,EAAsB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,QACuC,CAAC;AAyBtE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjC;AAED,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;yDACyD;AACzD,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AA8IxD,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAgCF;mDACmD;AACnD,KAAK,SAAS,GAAG;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,gBAAgB,CAAC;KACjC,CAAC;CACH,CAAC;AAEF;;;4CAG4C;AAC5C,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;4EAE4E;AAC5E,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE,GACvB;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC7B;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAgC3D;;;;iFAIiF;AACjF,KAAK,IAAI,GAAG;IACV;qEACiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB;;4DAEwD;IACxD,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;sEAGkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC;0DACsD;IACtD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;8CAE0C;IAC1C,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;2EACuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB;;;+EAG2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;qDAOiD;IACjD,eAAe,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IACtE;;;;;;;;iCAQ6B;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;6EAQyE;IACzE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAuCgC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;;;;;;;;;;gEAe4D;IAC5D,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B;8EAC0E;IAC1E,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;oFACgF;IAChF,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB;4EACwE;IACxE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IACnB;2EACuE;IACvE,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB;;6DAEyD;IACzD,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC;;yEAEqE;IACrE,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;+EAI2E;IAC3E,iBAAiB,CAAC,EAAE;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;QAC9B,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;QAC1C,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF;mEAC+D;IAC/D,iBAAiB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC;;;;;;;;;;;;;+EAa2E;IAC3E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;0DAGsD;IACtD,0CAA0C,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzD;;;;;;;;;;;;;;;;;;;;;;;gDAuB4C;IAC5C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC/D;;uEAEmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;0EAGsE;IACtE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;iCAE6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;;4CAIwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ;+EAC2E;IAC3E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC;oFACgF;IAChF,sBAAsB,CAAC,EAAE,QAAQ,CAAC;IAClC,2EAA2E;IAC3E,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;+DAE2D;IAC3D,qBAAqB,CAAC,EAAE,eAAe,CAAC;IACxC;;;mEAG+D;IAC/D,qBAAqB,CAAC,EAAE,eAAe,CAAC;IACxC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,8EAA8E;IAC9E,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,gFAAgF;IAChF,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC;;wEAEoE;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;;;sCAOkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;uDAEmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;gFAK4E;IAC5E,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,eAAe,EAAE,eAAe,CAAC;IACjC;;;;;uEAKmE;IACnE,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC;;kBAEc;IACd,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACjD,kBAAkB,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACjD;+EAC2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;2BAGuB;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;2CAQuC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;8CAK0C;IAC1C,0BAA0B,EAAE,OAAO,CAAC;IACpC;;;;;;;;+EAQ2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB;yEACqE;IACrE,SAAS,EAAE,SAAS,CAAC;IACrB;;;;4CAIwC;IACxC,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;wEAMoE;IACpE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C;8EAC0E;IAC1E,+BAA+B,CAAC,EAAE;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,2BAA2B,CAAC,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,cAAc,CAAC;KACtB,CAAC;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAsC6B;IAC7B,mBAAmB,EAAE,GAAG,CACtB,MAAM,EACN;QACE,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;QACpB;;;;;;;;;;;;iDAYyC;QACzC,aAAa,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;KACzC,CACF,CAAC;IACF;;+EAE2E;IAC3E,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtD;sDACkD;IAClD,+BAA+B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD;;6DAEyD;IACzD,+BAA+B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD;8BAC0B;IAC1B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF;2EACuE;IACvE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;wCACoC;IACpC,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;sEAwBkE;IAClE,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;;uCAKmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAAC;IAC1D;;;;;;;;;;;;;;;iCAe6B;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;;;;;uBAgBmB;IACnB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;2EAEuE;IACvE,mBAAmB,EAAE,mBAAmB,CAAC;IACzC;wEACoE;IACpE,uBAAuB,CAAC,EAAE,4BAA4B,CAAC;IACvD;;;uEAGmE;IACnE,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B;;;mDAG+C;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAoEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE;QACX;;;;;;;;;;;;;;;;;WAiBG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;;;;WAMG;QACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAC;KACnD,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CACH,CAAC;AAEF,KAAK,kBAAkB,GAAG,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAwB5E;;;;;GAKG;AACH,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+CAA+C;IAC/C,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,UAAU,CAAC,EAAE;QAIX,QAAQ,EAAE,MAAM,CAAC;QAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,YAAY,CAAC,EAAE,OAAO,CAAC;QAIvB,eAAe,CAAC,EAAE,MAAM,CAAC;QAMzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAG1B,YAAY,CAAC,EAAE,MAAM,CAAC;QAKtB,QAAQ,CAAC,EAAE,IAAI,CAAC;QAGhB,KAAK,CAAC,EAAE,MAAM,CAAC;QAGf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,eAAe,CAAC,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;CACH,CAAC;AA8CF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,cAAc,CAAC;QACtD,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;wEACoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB;2EACuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;0EACsE;IACtE,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;AA0DjF,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAsCrD;AA2ED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CA0B1E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAepE;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D;;kFAE8E;IAC9E,iBAAiB,CACf,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtC,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E;iFAC6E;IAC7E,iBAAiB,CACf,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtC,mBAAmB,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yEAAyE;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AAmOD,qBAAa,cAAc;IACzB,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,SAAS,CAAC;IAClB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qFAAqF;IACrF,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D;yEACqE;IACrE,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B;;qBAEiB;IACjB,OAAO,CAAC,YAAY,CAAgD;IACpE;;6EAEyE;IACzE,OAAO,CAAC,SAAS,CAAK;IACtB;sCACkC;IAClC,OAAO,CAAC,0BAA0B,CAAS;IAC3C,4DAA4D;IAC5D,OAAO,CAAC,uBAAuB,CAAS;IACxC;8EAC0E;IAC1E,OAAO,CAAC,kBAAkB,CAAS;IACnC;;+BAE2B;IAC3B,kBAAkB,EAAE,MAAM,CAAiC;gBAE/C,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IAmDxC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6LnE,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAclE,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS9E,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAY3E,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmBrE,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkB9E;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/D;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAiBjD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;;;mBAIe;IACf,OAAO,CAAC,kBAAkB;IAc1B,4EAA4E;YAC9D,eAAe;IAgE7B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,mCAAmC;IAkBrC,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAc3F;;;;;OAKG;IACG,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoDpF;;;OAGG;IACG,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAShG,qBAAqB,IAAI,cAAc,GAAG,IAAI;IAI9C,OAAO,CAAC,qBAAqB;IA0BvB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7C,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAsG5D;;yEAEqE;IACrE,OAAO,CAAC,6BAA6B;IAIrC;;;;;;;;;;;;;;;;;;;;;6EAqByE;IACzE,OAAO,CAAC,4BAA4B;IAuBpC;;;;;;;;;;;;;;;;;;;;;;;;iFAwB6E;IAC7E,OAAO,CAAC,uBAAuB;YAajB,mBAAmB;YAenB,sBAAsB;IAyCpC;;;;;;;;mFAQ+E;IAC/E,OAAO,CAAC,0BAA0B;IA2B5B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAc/C,WAAW;YAcX,eAAe;YAUf,qBAAqB;YAoBrB,kBAAkB;IAgBhC;;;;;;;;;;;;;;;;;;;;;;;;;;mEA0B+D;IACzD,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAyEnD,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAejF;;;iFAG6E;IAC7E,OAAO,CAAC,qBAAqB;IAS7B;qFACiF;IACjF,OAAO,CAAC,cAAc;IActB;;;;qEAIiE;YACnD,WAAW;IAo4FzB;;;;;;;;;;;;;;yDAcqD;IACrD,OAAO,CAAC,kBAAkB;IAapB,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2RvD,0EAA0E;IAC1E,OAAO,CAAC,wBAAwB;IAchC;;;;;;;;;;;;;;;;;;gBAkBY;IACZ,OAAO,CAAC,gBAAgB;IAYxB;yDACqD;YACvC,eAAe;IAgC7B,4EAA4E;IACtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQxE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAU3E,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9E,sBAAsB,CAC1B,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,8BAA8B,CAAC;YA+F5B,oBAAoB;IA6X5B,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKxE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKjF;;;yCAGqC;YACvB,oBAAoB;IAWlC;;;;;0EAKsE;YACxD,2BAA2B;IAwCzC;;;;;;;;;;;iEAW6D;YAC/C,qBAAqB;IA+CnC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IA+MzC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;;OAIG;YACW,qBAAqB;IAqCnC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;YAkCV,2BAA2B;YAa3B,kBAAkB;YAmBlB,sBAAsB;IA6LpC;;;;;;;kDAO8C;YAChC,4BAA4B;IA+B1C;;;oBAGgB;IAChB,OAAO,CAAC,qBAAqB;IAW7B;;;iEAG6D;YAC/C,aAAa;IAQ3B;;;;;;;;;;;;;;;;;;;;;;yEAsBqE;YACvD,iBAAiB;YAkDjB,kBAAkB;IAmDhC;;;;;OAKG;YACW,WAAW;YAuBX,aAAa;IAisB3B;;;;OAIG;YACW,qBAAqB;IAmDnC;;2EAEuE;IACvE,OAAO,CAAC,iCAAiC;CA6C1C;AAkTD;;;8CAG8C;AAC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C;+DAC+D;AAC/D,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,aAAa,QAAQ,CAAC;AAGnC;;;gCAGgC;AAChC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAElE;AAqBD;;;;2DAI2D;AAC3D,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACzC,sBAAsB,GAAG,SAAS,CAEpC;AAED;;;sEAGsE;AACtE,wBAAgB,kCAAkC,CAChD,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAC7C,OAAO,CAET;AAED;;4CAE4C;AAC5C,wBAAgB,oCAAoC,CAClD,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAC7C,OAAO,CAET;AAED;;;;;;;;;+CAS+C;AAC/C,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,cAAc,CAAC,EAAE,sBAAsB,GACtC,mBAAmB,CAwBrB;AAED;;0CAE0C;AAC1C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAYrF;AAED;6EAC6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,gBAAgB,EAAE,OAAO,CAAC;IAC1B;kDAC8C;IAC9C,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC;gFAC4E;IAC5E,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,QAAQ,CAAC,EAAE,mBAAmB,EAC9B,YAAY,CAAC,EAAE,wBAAwB,GACtC,mBAAmB,EAAE,CA2BvB;AA4DD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAmFpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,GAAG,SAAS,CAYrB;AA6OD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,EAAE,GAAG,wBAAwB,EAAE,EACvF,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;IAOtB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAM/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,OAAO,CAAC;IAIxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,mBAAmB,EAAE,CAyavB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,0BAA0B,EACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,GACA,mBAAmB,EAAE,CAgIvB;AAED;;;;;;;;;;;oEAWoE;AACpE,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM;;;EAqDrC"}
|
package/dist/acp-agent.js
CHANGED
|
@@ -28,7 +28,7 @@ import { SettingsManager } from "./settings.js";
|
|
|
28
28
|
import { activeUsageLimitMessage, airSessionFailureCapabilityMeta, assistantMessageText, createSessionFailureState, isSyntheticUsageLimitMessage, providerFailureCategory, SessionFailureController, sessionFailureMeta, supportsAirSessionFailures, } from "./session-failure-extension.js";
|
|
29
29
|
import { billsClaudeSubscription, CLAUDE_SUBSCRIPTION_NOT_SUPPORTED_MESSAGE, CLAUDE_SUBSCRIPTION_NOT_SUPPORTED_REASON, claudeLoginRequiredError, claudeSubscriptionNotSupportedError, holdsNonSubscriptionCredential, refuseClaudeSubscriptionTurn, shouldHideClaudeAuth, warnClaudeSubscriptionGuardDegraded, } from "./hide-claude-auth.js";
|
|
30
30
|
import { AGENT_FILE_CHANGE_REPORT_CAPABILITY, agentFileChangeReportMeta, agentFileChangeReportRequestId, containsFileChangeAuditMarker, createFileChangeAuditSupport, createFileChangeAuditTurnState, FILE_CHANGE_AUDIT_SERVER_NAME, isFileChangeAuditReportPhase, isFileChangeAuditTool, supportsAgentFileChangeReport, } from "./file-change-audit.js";
|
|
31
|
-
import { ContextCompactionLifecycle, contextCompactionMetadataFromBoundary, } from "./context-compaction.js";
|
|
31
|
+
import { ContextCompactionLifecycle, clientSupportsCompactionUpdates, contextCompactionMetadataFromBoundary, isCompactSummaryMessage, } from "./context-compaction.js";
|
|
32
32
|
import { applyTaskCreate, applyTaskList, applyTaskUpdate, clearHookCallbacks, completeHookCallback, createPostToolUseHook, createTaskHook, parseTaskCreateOutput, parseTaskListOutput, parseTaskUpdateOutput, planEntries, registerHookCallback, taskStateToPlanEntries, toolInfoFromToolUse, toolUpdateFromDiffToolResponse, toolUpdateFromToolResult, unregisterHookCallback, } from "./tools.js";
|
|
33
33
|
import { nodeToWebReadable, nodeToWebWritable, Pushable, unreachable } from "./utils.js";
|
|
34
34
|
import { acceptedPlanToolResult, ExitPlanCoordinator, executionDiagnostic, exitPlanModeRawOutput, observeExitPlanToolResults, } from "./exit-plan.js";
|
|
@@ -1888,7 +1888,14 @@ export class ClaudeAcpAgent {
|
|
|
1888
1888
|
* as the turn's answer. */
|
|
1889
1889
|
const subagents = (session.nativeSubagentRuntime ??= new NativeSubagentRuntime(clientSupportsSubagents(this.clientCapabilities), params.sessionId, session, async (notification) => this.client.sessionUpdate(asSdkSessionNotification(notification)), this.logger));
|
|
1890
1890
|
const asyncTasks = (session.asyncTaskRuntime ??= new AsyncTaskRuntime(clientSupportsAsyncTasks(this.clientCapabilities), params.sessionId, async (notification) => this.client.sessionUpdate(asSdkSessionNotification(notification))));
|
|
1891
|
-
const compaction = new ContextCompactionLifecycle((notification) => sendUpdate(notification)
|
|
1891
|
+
const compaction = new ContextCompactionLifecycle((notification) => sendUpdate(notification), {
|
|
1892
|
+
sessionId: params.sessionId,
|
|
1893
|
+
presentation: clientSupportsCompactionUpdates(this.clientCapabilities)
|
|
1894
|
+
? "compaction_update"
|
|
1895
|
+
: "tool_call",
|
|
1896
|
+
logError: (message, error) => this.logger.error(message, error),
|
|
1897
|
+
});
|
|
1898
|
+
session.contextCompaction = compaction;
|
|
1892
1899
|
const sendUpdate = async (notification) => {
|
|
1893
1900
|
const { update } = notification;
|
|
1894
1901
|
const claudeMeta = update._meta?.claudeCode;
|
|
@@ -1913,7 +1920,9 @@ export class ClaudeAcpAgent {
|
|
|
1913
1920
|
update.sessionUpdate === "agent_thought_chunk" ||
|
|
1914
1921
|
update.sessionUpdate === "user_message_chunk" ||
|
|
1915
1922
|
update.sessionUpdate === "tool_call" ||
|
|
1916
|
-
update.sessionUpdate === "tool_call_update"
|
|
1923
|
+
update.sessionUpdate === "tool_call_update" ||
|
|
1924
|
+
update.sessionUpdate === "compaction_update" ||
|
|
1925
|
+
update.sessionUpdate === "compaction_summary_chunk")) {
|
|
1917
1926
|
return;
|
|
1918
1927
|
}
|
|
1919
1928
|
if (update.sessionUpdate === "agent_message_chunk") {
|
|
@@ -2723,13 +2732,13 @@ export class ClaudeAcpAgent {
|
|
|
2723
2732
|
break;
|
|
2724
2733
|
case "status": {
|
|
2725
2734
|
if (message.status === "compacting") {
|
|
2726
|
-
await compaction.start(message.
|
|
2735
|
+
await compaction.start(message.uuid);
|
|
2727
2736
|
}
|
|
2728
2737
|
else if (message.compact_result === "success") {
|
|
2729
|
-
await compaction.finish(message.
|
|
2738
|
+
await compaction.finish(message.uuid, "completed");
|
|
2730
2739
|
}
|
|
2731
2740
|
else if (message.compact_result === "failed") {
|
|
2732
|
-
await compaction.finish(message.
|
|
2741
|
+
await compaction.finish(message.uuid, "failed", {
|
|
2733
2742
|
...(message.compact_error ? { error: message.compact_error } : {}),
|
|
2734
2743
|
});
|
|
2735
2744
|
}
|
|
@@ -2752,7 +2761,7 @@ export class ClaudeAcpAgent {
|
|
|
2752
2761
|
// window.
|
|
2753
2762
|
//
|
|
2754
2763
|
const compactMetadata = message.compact_metadata;
|
|
2755
|
-
await compaction.finish(message.
|
|
2764
|
+
await compaction.finish(message.uuid, "completed", compactMetadata ? contextCompactionMetadataFromBoundary(compactMetadata) : {}, true);
|
|
2756
2765
|
const usedTokens = compactMetadata?.post_tokens ?? 0;
|
|
2757
2766
|
lastAssistantUsage = null;
|
|
2758
2767
|
lastAssistantTotalUsage = usedTokens;
|
|
@@ -2839,7 +2848,7 @@ export class ClaudeAcpAgent {
|
|
|
2839
2848
|
// the interrupted turn's tokens entirely (issue #844). Zero
|
|
2840
2849
|
// when the cancel pre-empted the result (wedge/force-cancel).
|
|
2841
2850
|
if (session.cancelled && session.activeTurn && !session.activeTurn.settled) {
|
|
2842
|
-
compaction.reset();
|
|
2851
|
+
await compaction.reset();
|
|
2843
2852
|
settleActive(turnOutcome(session, "cancelled"));
|
|
2844
2853
|
// An interrupt can pre-empt the turn's result entirely
|
|
2845
2854
|
// (nothing ran the result-case `finally`), so close the
|
|
@@ -2904,7 +2913,7 @@ export class ClaudeAcpAgent {
|
|
|
2904
2913
|
else if (!session.cancelled &&
|
|
2905
2914
|
session.activeTurn &&
|
|
2906
2915
|
!session.activeTurn.settled) {
|
|
2907
|
-
compaction.reset();
|
|
2916
|
+
await compaction.reset();
|
|
2908
2917
|
// Deliberately only the ACTIVE turn: a queued turn that
|
|
2909
2918
|
// was never echoed is NOT failed here, because an idle
|
|
2910
2919
|
// can legitimately precede the SDK picking up freshly
|
|
@@ -3795,6 +3804,17 @@ export class ClaudeAcpAgent {
|
|
|
3795
3804
|
// then, so both branches no-op); cancellation is left to the
|
|
3796
3805
|
// idle/abort path. settleActive is idempotent, so a duplicate
|
|
3797
3806
|
// idle is a no-op.
|
|
3807
|
+
//
|
|
3808
|
+
// A result also closes this compaction lifecycle — before the
|
|
3809
|
+
// settle, so a `cancelled` terminal for an entity the runtime
|
|
3810
|
+
// left open lands inside the prompt response rather than after
|
|
3811
|
+
// it (clients may stop consuming at the response). Reset here
|
|
3812
|
+
// rather than at idle: an owed idle from this turn can arrive
|
|
3813
|
+
// after the next turn has already started and must not erase
|
|
3814
|
+
// that turn's compaction state.
|
|
3815
|
+
if (!isAutonomousResult) {
|
|
3816
|
+
await compaction.reset();
|
|
3817
|
+
}
|
|
3798
3818
|
if (!session.cancelled) {
|
|
3799
3819
|
settleOrDefer(turnOutcome(session, stopReason));
|
|
3800
3820
|
}
|
|
@@ -3802,22 +3822,29 @@ export class ClaudeAcpAgent {
|
|
|
3802
3822
|
finally {
|
|
3803
3823
|
if (!isAutonomousResult) {
|
|
3804
3824
|
session.emittedAssistantText = false;
|
|
3805
|
-
//
|
|
3806
|
-
//
|
|
3807
|
-
|
|
3808
|
-
// turn's compaction state.
|
|
3809
|
-
compaction.reset();
|
|
3825
|
+
// The early exits above (cancelled guard, refusal) skip the
|
|
3826
|
+
// pre-settle reset; idempotent, so a no-op on the normal path.
|
|
3827
|
+
await compaction.reset();
|
|
3810
3828
|
}
|
|
3811
3829
|
}
|
|
3812
3830
|
break;
|
|
3813
3831
|
}
|
|
3814
3832
|
case "stream_event": {
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3833
|
+
// The API's compaction block streams the retained summary text;
|
|
3834
|
+
// `content` is null on the opening block and on a failed compaction.
|
|
3835
|
+
// Only the root conversation's compaction is the session's: a
|
|
3836
|
+
// subagent compacting its own context must not touch it.
|
|
3837
|
+
const compactionBlock = message.parent_tool_use_id !== null
|
|
3838
|
+
? undefined
|
|
3839
|
+
: message.event.type === "content_block_start" &&
|
|
3840
|
+
message.event.content_block.type === "compaction"
|
|
3841
|
+
? message.event.content_block
|
|
3842
|
+
: message.event.type === "content_block_delta" &&
|
|
3843
|
+
message.event.delta.type === "compaction_delta"
|
|
3844
|
+
? message.event.delta
|
|
3845
|
+
: undefined;
|
|
3846
|
+
if (compactionBlock) {
|
|
3847
|
+
await compaction.heartbeat(message.uuid, compactionBlock.content ?? undefined);
|
|
3821
3848
|
}
|
|
3822
3849
|
// `message_start` carries the Anthropic API message id; capture it
|
|
3823
3850
|
// so the streamed chunks that follow (whose delta events don't carry
|
|
@@ -4725,6 +4752,7 @@ export class ClaudeAcpAgent {
|
|
|
4725
4752
|
}
|
|
4726
4753
|
session.queryClosed = true;
|
|
4727
4754
|
session.consumer = undefined;
|
|
4755
|
+
session.contextCompaction = undefined;
|
|
4728
4756
|
session.settingsManager.dispose();
|
|
4729
4757
|
session.input.end();
|
|
4730
4758
|
session.query.close();
|
|
@@ -4897,6 +4925,7 @@ export class ClaudeAcpAgent {
|
|
|
4897
4925
|
let replayingFileChangeAudit = false;
|
|
4898
4926
|
const replayFileChangeAuditToolUseIds = new Set();
|
|
4899
4927
|
const nativeReplayEnabled = clientSupportsSubagents(this.clientCapabilities);
|
|
4928
|
+
const replayCompactionUpdates = clientSupportsCompactionUpdates(this.clientCapabilities);
|
|
4900
4929
|
const replayTerminalStates = new Map();
|
|
4901
4930
|
const replayChildren = new Map();
|
|
4902
4931
|
if (nativeReplayEnabled) {
|
|
@@ -5097,6 +5126,29 @@ export class ClaudeAcpAgent {
|
|
|
5097
5126
|
continue;
|
|
5098
5127
|
}
|
|
5099
5128
|
}
|
|
5129
|
+
// Claude persists the retained summary as a user message framed with
|
|
5130
|
+
// continuation instructions for the model. Clients on the compaction
|
|
5131
|
+
// contract get it materialized as the completed compaction entity at
|
|
5132
|
+
// this transcript position (the boundary's own system record comes back
|
|
5133
|
+
// from getSessionMessages without its metadata, so the summary message
|
|
5134
|
+
// is the one durable marker); other clients keep the transcript text.
|
|
5135
|
+
// The entity is keyed by the summary message's uuid, which differs from
|
|
5136
|
+
// the live id (the `compacting` status uuid) — replay is terminal-first
|
|
5137
|
+
// by the RFD, and no client merges a replay into a live entity store.
|
|
5138
|
+
// A subagent's own compaction summary is not the root session's, and a
|
|
5139
|
+
// summary whose framing is unrecognized stays visible as transcript
|
|
5140
|
+
// text rather than vanishing behind a summary-less entity.
|
|
5141
|
+
if (replayCompactionUpdates &&
|
|
5142
|
+
isCompactSummaryMessage(message) &&
|
|
5143
|
+
parentToolUseId === null &&
|
|
5144
|
+
typeof message.uuid === "string" &&
|
|
5145
|
+
message.uuid.length > 0) {
|
|
5146
|
+
const replayCompaction = new ContextCompactionLifecycle((notification) => this.client.sessionUpdate(notification), { sessionId, presentation: "compaction_update" });
|
|
5147
|
+
if (replayCompaction.recordSummary(assistantMessageText(message.message))) {
|
|
5148
|
+
await replayCompaction.finish(message.uuid, "completed");
|
|
5149
|
+
continue;
|
|
5150
|
+
}
|
|
5151
|
+
}
|
|
5100
5152
|
for (const notification of toAcpNotifications(
|
|
5101
5153
|
// @ts-expect-error - untyped in SDK but we handle all of these
|
|
5102
5154
|
content,
|
|
@@ -6168,6 +6220,26 @@ export class ClaudeAcpAgent {
|
|
|
6168
6220
|
],
|
|
6169
6221
|
},
|
|
6170
6222
|
],
|
|
6223
|
+
// The retained summary reaches the SDK stream only as the persisted
|
|
6224
|
+
// user message that frames it with model-facing continuation
|
|
6225
|
+
// instructions; the hook carries the raw summary for the ACP
|
|
6226
|
+
// compaction_update. The CLI awaits this hook before emitting the
|
|
6227
|
+
// compaction's terminal frames, so the summary is normally recorded
|
|
6228
|
+
// while the entity is still in progress and rides on the terminal
|
|
6229
|
+
// update. Subagent compactions stay out of the root session's entity.
|
|
6230
|
+
PostCompact: [
|
|
6231
|
+
...(userProvidedOptions?.hooks?.PostCompact || []),
|
|
6232
|
+
{
|
|
6233
|
+
hooks: [
|
|
6234
|
+
async (input) => {
|
|
6235
|
+
if (input.hook_event_name === "PostCompact" && !input.agent_id) {
|
|
6236
|
+
this.sessions[sessionId]?.contextCompaction?.recordSummary(input.compact_summary);
|
|
6237
|
+
}
|
|
6238
|
+
return { continue: true };
|
|
6239
|
+
},
|
|
6240
|
+
],
|
|
6241
|
+
},
|
|
6242
|
+
],
|
|
6171
6243
|
...(fileChangeAuditSupport
|
|
6172
6244
|
? {
|
|
6173
6245
|
Stop: [
|
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
import { SessionNotification } from "@agentclientprotocol/sdk";
|
|
1
|
+
import { ClientCapabilities, SessionNotification } from "@agentclientprotocol/sdk";
|
|
2
2
|
import { ContextCompactionMetadata } from "./context-compaction-meta.js";
|
|
3
3
|
type CompactionStatus = "completed" | "failed";
|
|
4
|
+
type TerminalStatus = CompactionStatus | "cancelled";
|
|
5
|
+
/**
|
|
6
|
+
* How compaction reaches the client.
|
|
7
|
+
*
|
|
8
|
+
* - `compaction_update`: the ACP session-compaction contract (ID-addressed
|
|
9
|
+
* `compaction_update` / `compaction_summary_chunk`), used when the v1 client
|
|
10
|
+
* advertises `clientCapabilities.session.compaction`.
|
|
11
|
+
* - `tool_call`: the legacy synthetic "Compact conversation" tool call, kept
|
|
12
|
+
* for clients that do not advertise the capability.
|
|
13
|
+
*/
|
|
14
|
+
export type CompactionPresentation = "tool_call" | "compaction_update";
|
|
4
15
|
type CompactionState = {
|
|
5
|
-
toolCallId
|
|
6
|
-
|
|
16
|
+
/** Doubles as the toolCallId under the legacy presentation. */
|
|
17
|
+
compactionId: string;
|
|
18
|
+
terminalStatus?: TerminalStatus;
|
|
7
19
|
heartbeatSent: boolean;
|
|
20
|
+
/** User-displayable summary reported by the PostCompact hook. While the
|
|
21
|
+
* compaction is in progress it awaits the terminal update; on a `completed`
|
|
22
|
+
* state it has been sent. */
|
|
23
|
+
summary?: string;
|
|
8
24
|
};
|
|
9
25
|
type SendUpdate = (notification: SessionNotification) => Promise<void>;
|
|
26
|
+
export type ContextCompactionLifecycleOptions = {
|
|
27
|
+
sessionId: string;
|
|
28
|
+
presentation?: CompactionPresentation;
|
|
29
|
+
/** Receives failures of the send that must not propagate: the turn-boundary
|
|
30
|
+
* `cancelled` terminal. */
|
|
31
|
+
logError?: (message: string, error: unknown) => void;
|
|
32
|
+
};
|
|
33
|
+
export declare function clientSupportsCompactionUpdates(capabilities?: ClientCapabilities | null): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Reduce Claude's compaction output to the user-displayable summary.
|
|
36
|
+
*
|
|
37
|
+
* The PostCompact hook reports the model's raw output, which wraps the
|
|
38
|
+
* summary in `<summary>` tags (often preceded by an `<analysis>` block). The
|
|
39
|
+
* persisted transcript instead frames the same summary with continuation
|
|
40
|
+
* instructions for the model. Neither framing belongs in the ACP `summary`,
|
|
41
|
+
* and a continuation prompt whose framing is not recognized yields no summary
|
|
42
|
+
* at all rather than model-facing instructions.
|
|
43
|
+
*/
|
|
44
|
+
export declare function compactionSummaryText(raw: string): string | undefined;
|
|
45
|
+
/** True for the post-compaction user message Claude Code persists (and
|
|
46
|
+
* `getSessionMessages` returns) with the summary of the dropped history. */
|
|
47
|
+
export declare function isCompactSummaryMessage(message: unknown): boolean;
|
|
10
48
|
/**
|
|
11
|
-
* Translates Claude's compaction signals into one idempotent ACP
|
|
49
|
+
* Translates Claude's compaction signals into one idempotent ACP lifecycle.
|
|
12
50
|
*
|
|
13
51
|
* The SDK can duplicate terminal compact_result messages and can omit the
|
|
14
52
|
* opening status on replay. State therefore lives until the owning turn's
|
|
@@ -20,18 +58,66 @@ export declare class ContextCompactionLifecycle {
|
|
|
20
58
|
private activeCompaction;
|
|
21
59
|
private outputDelivered;
|
|
22
60
|
private duplicateErrorOutput;
|
|
23
|
-
|
|
61
|
+
/** Summary reported by PostCompact before the opening status was consumed.
|
|
62
|
+
* Deliberately survives `reset()`: the CLI awaits the hook before emitting
|
|
63
|
+
* the compaction's terminal frames, so a pending summary always belongs to
|
|
64
|
+
* a compaction whose frames are still ahead of the consumer — possibly
|
|
65
|
+
* queued behind a previous turn's result. */
|
|
66
|
+
private pendingSummary;
|
|
67
|
+
private readonly sessionId;
|
|
68
|
+
readonly presentation: CompactionPresentation;
|
|
69
|
+
private readonly logError;
|
|
70
|
+
constructor(sendUpdate: SendUpdate, options: ContextCompactionLifecycleOptions);
|
|
24
71
|
get hasDeliveredOutput(): boolean;
|
|
25
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Close the lifecycle at a turn boundary (result, cancel, idle-abandon).
|
|
74
|
+
*
|
|
75
|
+
* A `compaction_update` entity still `in_progress` here never received its
|
|
76
|
+
* terminal signal from the runtime and gets its one terminal status,
|
|
77
|
+
* `cancelled`. The legacy tool call is deliberately left as it was (an
|
|
78
|
+
* `in_progress` call): ACP `ToolCallStatus` has no cancelled state and that
|
|
79
|
+
* presentation's behavior predates this lifecycle. Never throws — a failed
|
|
80
|
+
* send is logged, so callers can settle the turn unconditionally.
|
|
81
|
+
*/
|
|
82
|
+
reset(): Promise<void>;
|
|
26
83
|
/**
|
|
27
84
|
* Claude also emits a failed manual compaction's error as local-command
|
|
28
|
-
* stdout. Consume that one duplicate after the
|
|
85
|
+
* stdout. Consume that one duplicate after the lifecycle carried it,
|
|
29
86
|
* without hiding unrelated command output.
|
|
30
87
|
*/
|
|
31
88
|
consumeDuplicateErrorOutput(content: string): boolean;
|
|
32
|
-
start(
|
|
33
|
-
|
|
34
|
-
|
|
89
|
+
start(compactionId: string): Promise<CompactionState>;
|
|
90
|
+
/**
|
|
91
|
+
* Streaming progress from the API's compaction content block.
|
|
92
|
+
*
|
|
93
|
+
* Under `compaction_update` the block's text is the retained summary and
|
|
94
|
+
* streams as `compaction_summary_chunk`s — but only into an entity the CLI
|
|
95
|
+
* announced with its `compacting` status. The block alone carries no
|
|
96
|
+
* terminal signal, so opening an entity from it would leave nothing but the
|
|
97
|
+
* turn-boundary `cancelled` to close a compaction that succeeded. The legacy
|
|
98
|
+
* tool call keeps its historical behavior: open on first sight, re-assert
|
|
99
|
+
* `in_progress` once.
|
|
100
|
+
*/
|
|
101
|
+
heartbeat(fallbackId: string, summaryChunk?: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* The PostCompact hook's summary. The CLI awaits the hook before emitting
|
|
104
|
+
* the compaction's terminal frames, so the summary lands while its
|
|
105
|
+
* compaction is `in_progress` and rides on the terminal update. Anything
|
|
106
|
+
* else — no entity yet, or the entity is a previous, already-terminal
|
|
107
|
+
* compaction of the same turn whose status frame the consumer is still
|
|
108
|
+
* catching up to — belongs to the compaction whose frames are ahead of the
|
|
109
|
+
* consumer, and waits for it. Only the `compaction_update` presentation
|
|
110
|
+
* carries the summary; the legacy tool call never exposed it. Never throws:
|
|
111
|
+
* it runs detached from a hook callback. Returns whether a summary was
|
|
112
|
+
* retained.
|
|
113
|
+
*/
|
|
114
|
+
recordSummary(rawSummary: unknown): boolean;
|
|
115
|
+
finish(compactionId: string, status: CompactionStatus, metadata?: Omit<ContextCompactionMetadata, "version">, enrichTerminal?: boolean): Promise<void>;
|
|
116
|
+
/** Make `compactionId` the active entity, moving a pending hook summary onto
|
|
117
|
+
* it, and mark compaction output as delivered for the owning turn. */
|
|
118
|
+
private open;
|
|
119
|
+
private send;
|
|
120
|
+
private sendQuietly;
|
|
35
121
|
}
|
|
36
122
|
export declare function contextCompactionMetadataFromBoundary(compactMetadata: {
|
|
37
123
|
trigger: "manual" | "auto";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../src/context-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../src/context-compaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,87 @@
|
|
|
1
1
|
import { createContextCompactionMeta, } from "./context-compaction-meta.js";
|
|
2
|
+
export function clientSupportsCompactionUpdates(capabilities) {
|
|
3
|
+
const compaction = capabilities?.session?.compaction;
|
|
4
|
+
return typeof compaction === "object" && compaction !== null && !Array.isArray(compaction);
|
|
5
|
+
}
|
|
6
|
+
/** Tags on their own line, as the model emits them; a summary that merely
|
|
7
|
+
* quotes `<summary>` mid-sentence must not be truncated at the mention. */
|
|
8
|
+
const SUMMARY_OPEN_LINE = /^[ \t]*<summary>[ \t]*\r?\n/gim;
|
|
9
|
+
const SUMMARY_CLOSE_LINE = /^[ \t]*<\/summary>[ \t]*$/gim;
|
|
10
|
+
/** The model's private reasoning block that precedes the summary; stripped
|
|
11
|
+
* first so a `<summary>` it merely mentions cannot anchor the summary span,
|
|
12
|
+
* and even when the summary tags themselves are missing. Own-line tags
|
|
13
|
+
* anywhere; inline tags only as a leading block, since a summary body may
|
|
14
|
+
* quote both tag names. */
|
|
15
|
+
const ANALYSIS_BLOCKS = [
|
|
16
|
+
/^[ \t]*<analysis>[ \t]*\r?\n[\s\S]*?\n[ \t]*<\/analysis>[ \t]*$/gim,
|
|
17
|
+
/^\s*<analysis>[\s\S]*?<\/analysis>/i,
|
|
18
|
+
];
|
|
19
|
+
/** The framing Claude Code wraps around the retained summary when it persists
|
|
20
|
+
* it as the post-compaction user message. */
|
|
21
|
+
const CONTINUATION_PREAMBLE = /^\s*This session is being continued from a previous conversation/i;
|
|
22
|
+
const PERSISTED_PREAMBLE = /^\s*This session is being continued from a previous conversation[^\n]*\n+Summary:[ \t]*\r?\n/;
|
|
23
|
+
const PERSISTED_TRAILERS = [
|
|
24
|
+
/\n+If you need specific details from before compaction[\s\S]*$/,
|
|
25
|
+
/\n+(?:Please )?[Cc]ontinue the conversation from where it left (?:it )?off[\s\S]*$/,
|
|
26
|
+
];
|
|
2
27
|
/**
|
|
3
|
-
*
|
|
28
|
+
* Reduce Claude's compaction output to the user-displayable summary.
|
|
29
|
+
*
|
|
30
|
+
* The PostCompact hook reports the model's raw output, which wraps the
|
|
31
|
+
* summary in `<summary>` tags (often preceded by an `<analysis>` block). The
|
|
32
|
+
* persisted transcript instead frames the same summary with continuation
|
|
33
|
+
* instructions for the model. Neither framing belongs in the ACP `summary`,
|
|
34
|
+
* and a continuation prompt whose framing is not recognized yields no summary
|
|
35
|
+
* at all rather than model-facing instructions.
|
|
36
|
+
*/
|
|
37
|
+
export function compactionSummaryText(raw) {
|
|
38
|
+
let text = raw;
|
|
39
|
+
for (const block of ANALYSIS_BLOCKS) {
|
|
40
|
+
text = text.replace(block, "");
|
|
41
|
+
}
|
|
42
|
+
const tagged = taggedSummary(text);
|
|
43
|
+
if (tagged !== undefined) {
|
|
44
|
+
text = tagged;
|
|
45
|
+
}
|
|
46
|
+
else if (CONTINUATION_PREAMBLE.test(text)) {
|
|
47
|
+
const body = text.replace(PERSISTED_PREAMBLE, "");
|
|
48
|
+
if (body === text)
|
|
49
|
+
return undefined;
|
|
50
|
+
text = body;
|
|
51
|
+
for (const trailer of PERSISTED_TRAILERS) {
|
|
52
|
+
text = text.replace(trailer, "");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
text = text.trim();
|
|
56
|
+
return text.length > 0 ? text : undefined;
|
|
57
|
+
}
|
|
58
|
+
function taggedSummary(raw) {
|
|
59
|
+
const close = [...raw.matchAll(SUMMARY_CLOSE_LINE)].at(-1);
|
|
60
|
+
if (close?.index !== undefined) {
|
|
61
|
+
const open = [...raw.slice(0, close.index).matchAll(SUMMARY_OPEN_LINE)].at(-1);
|
|
62
|
+
if (open?.index !== undefined) {
|
|
63
|
+
return raw.slice(open.index + open[0].length, close.index);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Inline tags: the widest span, so a quoted `</summary>` inside the body
|
|
67
|
+
// does not end it early. Plain index scans keep an unterminated tag linear.
|
|
68
|
+
const openInline = raw.search(/<summary>/i);
|
|
69
|
+
const closeInline = raw.toLowerCase().lastIndexOf("</summary>");
|
|
70
|
+
if (openInline >= 0 && closeInline > openInline) {
|
|
71
|
+
return raw.slice(openInline + "<summary>".length, closeInline);
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
/** True for the post-compaction user message Claude Code persists (and
|
|
76
|
+
* `getSessionMessages` returns) with the summary of the dropped history. */
|
|
77
|
+
export function isCompactSummaryMessage(message) {
|
|
78
|
+
return (typeof message === "object" &&
|
|
79
|
+
message !== null &&
|
|
80
|
+
message.type === "user" &&
|
|
81
|
+
message.isCompactSummary === true);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Translates Claude's compaction signals into one idempotent ACP lifecycle.
|
|
4
85
|
*
|
|
5
86
|
* The SDK can duplicate terminal compact_result messages and can omit the
|
|
6
87
|
* opening status on replay. State therefore lives until the owning turn's
|
|
@@ -12,20 +93,51 @@ export class ContextCompactionLifecycle {
|
|
|
12
93
|
activeCompaction;
|
|
13
94
|
outputDelivered = false;
|
|
14
95
|
duplicateErrorOutput;
|
|
15
|
-
|
|
96
|
+
/** Summary reported by PostCompact before the opening status was consumed.
|
|
97
|
+
* Deliberately survives `reset()`: the CLI awaits the hook before emitting
|
|
98
|
+
* the compaction's terminal frames, so a pending summary always belongs to
|
|
99
|
+
* a compaction whose frames are still ahead of the consumer — possibly
|
|
100
|
+
* queued behind a previous turn's result. */
|
|
101
|
+
pendingSummary;
|
|
102
|
+
sessionId;
|
|
103
|
+
presentation;
|
|
104
|
+
logError;
|
|
105
|
+
constructor(sendUpdate, options) {
|
|
16
106
|
this.sendUpdate = sendUpdate;
|
|
107
|
+
this.sessionId = options.sessionId;
|
|
108
|
+
this.presentation = options.presentation ?? "tool_call";
|
|
109
|
+
this.logError = options.logError ?? (() => { });
|
|
17
110
|
}
|
|
18
111
|
get hasDeliveredOutput() {
|
|
19
112
|
return this.outputDelivered;
|
|
20
113
|
}
|
|
21
|
-
|
|
114
|
+
/**
|
|
115
|
+
* Close the lifecycle at a turn boundary (result, cancel, idle-abandon).
|
|
116
|
+
*
|
|
117
|
+
* A `compaction_update` entity still `in_progress` here never received its
|
|
118
|
+
* terminal signal from the runtime and gets its one terminal status,
|
|
119
|
+
* `cancelled`. The legacy tool call is deliberately left as it was (an
|
|
120
|
+
* `in_progress` call): ACP `ToolCallStatus` has no cancelled state and that
|
|
121
|
+
* presentation's behavior predates this lifecycle. Never throws — a failed
|
|
122
|
+
* send is logged, so callers can settle the turn unconditionally.
|
|
123
|
+
*/
|
|
124
|
+
async reset() {
|
|
125
|
+
const state = this.activeCompaction;
|
|
22
126
|
this.activeCompaction = undefined;
|
|
23
127
|
this.outputDelivered = false;
|
|
24
128
|
this.duplicateErrorOutput = undefined;
|
|
129
|
+
if (!state || state.terminalStatus || this.presentation !== "compaction_update")
|
|
130
|
+
return;
|
|
131
|
+
state.terminalStatus = "cancelled";
|
|
132
|
+
await this.sendQuietly({
|
|
133
|
+
sessionUpdate: "compaction_update",
|
|
134
|
+
compactionId: state.compactionId,
|
|
135
|
+
status: "cancelled",
|
|
136
|
+
}, "cancelled compaction");
|
|
25
137
|
}
|
|
26
138
|
/**
|
|
27
139
|
* Claude also emits a failed manual compaction's error as local-command
|
|
28
|
-
* stdout. Consume that one duplicate after the
|
|
140
|
+
* stdout. Consume that one duplicate after the lifecycle carried it,
|
|
29
141
|
* without hiding unrelated command output.
|
|
30
142
|
*/
|
|
31
143
|
consumeDuplicateErrorOutput(content) {
|
|
@@ -36,92 +148,174 @@ export class ContextCompactionLifecycle {
|
|
|
36
148
|
this.duplicateErrorOutput = undefined;
|
|
37
149
|
return true;
|
|
38
150
|
}
|
|
39
|
-
async start(
|
|
151
|
+
async start(compactionId) {
|
|
40
152
|
if (this.activeCompaction && !this.activeCompaction.terminalStatus) {
|
|
41
153
|
return this.activeCompaction;
|
|
42
154
|
}
|
|
43
|
-
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
sessionUpdate: "tool_call",
|
|
49
|
-
toolCallId,
|
|
50
|
-
title: "Compact conversation",
|
|
51
|
-
kind: "think",
|
|
155
|
+
const state = this.open(compactionId);
|
|
156
|
+
if (this.presentation === "compaction_update") {
|
|
157
|
+
await this.send({
|
|
158
|
+
sessionUpdate: "compaction_update",
|
|
159
|
+
compactionId,
|
|
52
160
|
status: "in_progress",
|
|
53
|
-
_meta:
|
|
54
|
-
}
|
|
161
|
+
_meta: createContextCompactionMeta(),
|
|
162
|
+
});
|
|
163
|
+
return state;
|
|
164
|
+
}
|
|
165
|
+
await this.send({
|
|
166
|
+
sessionUpdate: "tool_call",
|
|
167
|
+
toolCallId: compactionId,
|
|
168
|
+
title: "Compact conversation",
|
|
169
|
+
kind: "think",
|
|
170
|
+
status: "in_progress",
|
|
171
|
+
_meta: compactionToolMeta(),
|
|
55
172
|
});
|
|
56
|
-
return
|
|
173
|
+
return state;
|
|
57
174
|
}
|
|
58
|
-
|
|
59
|
-
|
|
175
|
+
/**
|
|
176
|
+
* Streaming progress from the API's compaction content block.
|
|
177
|
+
*
|
|
178
|
+
* Under `compaction_update` the block's text is the retained summary and
|
|
179
|
+
* streams as `compaction_summary_chunk`s — but only into an entity the CLI
|
|
180
|
+
* announced with its `compacting` status. The block alone carries no
|
|
181
|
+
* terminal signal, so opening an entity from it would leave nothing but the
|
|
182
|
+
* turn-boundary `cancelled` to close a compaction that succeeded. The legacy
|
|
183
|
+
* tool call keeps its historical behavior: open on first sight, re-assert
|
|
184
|
+
* `in_progress` once.
|
|
185
|
+
*/
|
|
186
|
+
async heartbeat(fallbackId, summaryChunk) {
|
|
187
|
+
if (this.presentation === "compaction_update") {
|
|
188
|
+
const state = this.activeCompaction;
|
|
189
|
+
if (!state || state.terminalStatus || !summaryChunk)
|
|
190
|
+
return;
|
|
191
|
+
await this.send({
|
|
192
|
+
sessionUpdate: "compaction_summary_chunk",
|
|
193
|
+
compactionId: state.compactionId,
|
|
194
|
+
content: { type: "text", text: summaryChunk },
|
|
195
|
+
});
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const state = this.activeCompaction ?? (await this.start(fallbackId));
|
|
60
199
|
if (state.terminalStatus || state.heartbeatSent)
|
|
61
200
|
return;
|
|
62
201
|
state.heartbeatSent = true;
|
|
63
|
-
await this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
status: "in_progress",
|
|
69
|
-
_meta: compactionToolMeta(),
|
|
70
|
-
},
|
|
202
|
+
await this.send({
|
|
203
|
+
sessionUpdate: "tool_call_update",
|
|
204
|
+
toolCallId: state.compactionId,
|
|
205
|
+
status: "in_progress",
|
|
206
|
+
_meta: compactionToolMeta(),
|
|
71
207
|
});
|
|
72
208
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
kind: "think",
|
|
92
|
-
status,
|
|
93
|
-
...(status === "failed" && metadata.error
|
|
94
|
-
? { content: [compactionErrorContent(metadata.error)] }
|
|
95
|
-
: {}),
|
|
96
|
-
...(rawOutput ? { rawOutput } : {}),
|
|
97
|
-
_meta: compactionToolMeta(metadata),
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
209
|
+
/**
|
|
210
|
+
* The PostCompact hook's summary. The CLI awaits the hook before emitting
|
|
211
|
+
* the compaction's terminal frames, so the summary lands while its
|
|
212
|
+
* compaction is `in_progress` and rides on the terminal update. Anything
|
|
213
|
+
* else — no entity yet, or the entity is a previous, already-terminal
|
|
214
|
+
* compaction of the same turn whose status frame the consumer is still
|
|
215
|
+
* catching up to — belongs to the compaction whose frames are ahead of the
|
|
216
|
+
* consumer, and waits for it. Only the `compaction_update` presentation
|
|
217
|
+
* carries the summary; the legacy tool call never exposed it. Never throws:
|
|
218
|
+
* it runs detached from a hook callback. Returns whether a summary was
|
|
219
|
+
* retained.
|
|
220
|
+
*/
|
|
221
|
+
recordSummary(rawSummary) {
|
|
222
|
+
if (this.presentation !== "compaction_update" || typeof rawSummary !== "string")
|
|
223
|
+
return false;
|
|
224
|
+
const summary = compactionSummaryText(rawSummary);
|
|
225
|
+
if (!summary)
|
|
226
|
+
return false;
|
|
102
227
|
const state = this.activeCompaction;
|
|
103
|
-
if (state
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
228
|
+
if (state && !state.terminalStatus) {
|
|
229
|
+
state.summary = summary;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
this.pendingSummary = summary;
|
|
233
|
+
}
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
async finish(compactionId, status, metadata = {}, enrichTerminal = false) {
|
|
237
|
+
// The opening status can be missed (replay, or a terminal-only runtime):
|
|
238
|
+
// the first update for the ID is then already terminal.
|
|
239
|
+
const opened = this.activeCompaction === undefined;
|
|
240
|
+
const firstTerminal = !this.activeCompaction?.terminalStatus;
|
|
241
|
+
const state = this.activeCompaction ?? this.open(compactionId, status);
|
|
242
|
+
if (firstTerminal) {
|
|
107
243
|
state.terminalStatus = status;
|
|
244
|
+
}
|
|
245
|
+
else if (!enrichTerminal) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
108
248
|
if (status === "failed" && metadata.error) {
|
|
109
249
|
this.duplicateErrorOutput = metadata.error;
|
|
110
250
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
251
|
+
const terminalStatus = state.terminalStatus ?? status;
|
|
252
|
+
const hasMetadata = Object.keys(metadata).length > 0;
|
|
253
|
+
if (this.presentation === "compaction_update") {
|
|
254
|
+
const summary = firstTerminal && terminalStatus === "completed" ? state.summary : undefined;
|
|
255
|
+
await this.send({
|
|
256
|
+
sessionUpdate: "compaction_update",
|
|
257
|
+
compactionId: state.compactionId,
|
|
258
|
+
status: terminalStatus,
|
|
259
|
+
...(summary !== undefined ? { summary: [{ type: "text", text: summary }] } : {}),
|
|
260
|
+
...(terminalStatus === "failed" && metadata.error ? { error: metadata.error } : {}),
|
|
261
|
+
// `_meta` is a replace-patch: seed it with the first terminal, then
|
|
262
|
+
// only re-send it when the boundary adds facts, so a status-only
|
|
263
|
+
// duplicate can't wipe the token counts.
|
|
264
|
+
...(firstTerminal || hasMetadata ? { _meta: createContextCompactionMeta(metadata) } : {}),
|
|
265
|
+
});
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const rawOutput = hasMetadata ? metadata : undefined;
|
|
269
|
+
const errorContent = status === "failed" && metadata.error
|
|
270
|
+
? { content: [compactionErrorContent(metadata.error)] }
|
|
271
|
+
: {};
|
|
272
|
+
if (opened) {
|
|
273
|
+
await this.send({
|
|
274
|
+
sessionUpdate: "tool_call",
|
|
275
|
+
toolCallId: state.compactionId,
|
|
276
|
+
title: "Compact conversation",
|
|
277
|
+
kind: "think",
|
|
278
|
+
status,
|
|
279
|
+
...errorContent,
|
|
120
280
|
...(rawOutput ? { rawOutput } : {}),
|
|
121
281
|
_meta: compactionToolMeta(metadata),
|
|
122
|
-
}
|
|
282
|
+
});
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
await this.send({
|
|
286
|
+
sessionUpdate: "tool_call_update",
|
|
287
|
+
toolCallId: state.compactionId,
|
|
288
|
+
...(firstTerminal ? { status } : {}),
|
|
289
|
+
...errorContent,
|
|
290
|
+
...(rawOutput ? { rawOutput } : {}),
|
|
291
|
+
_meta: compactionToolMeta(metadata),
|
|
123
292
|
});
|
|
124
293
|
}
|
|
294
|
+
/** Make `compactionId` the active entity, moving a pending hook summary onto
|
|
295
|
+
* it, and mark compaction output as delivered for the owning turn. */
|
|
296
|
+
open(compactionId, terminalStatus) {
|
|
297
|
+
const state = {
|
|
298
|
+
compactionId,
|
|
299
|
+
heartbeatSent: false,
|
|
300
|
+
...(terminalStatus ? { terminalStatus } : {}),
|
|
301
|
+
...(this.pendingSummary !== undefined ? { summary: this.pendingSummary } : {}),
|
|
302
|
+
};
|
|
303
|
+
this.pendingSummary = undefined;
|
|
304
|
+
this.activeCompaction = state;
|
|
305
|
+
this.outputDelivered = true;
|
|
306
|
+
return state;
|
|
307
|
+
}
|
|
308
|
+
send(update) {
|
|
309
|
+
return this.sendUpdate({ sessionId: this.sessionId, update });
|
|
310
|
+
}
|
|
311
|
+
async sendQuietly(update, what) {
|
|
312
|
+
try {
|
|
313
|
+
await this.send(update);
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
this.logError(`Failed to send the ${what} update for session ${this.sessionId}`, error);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
125
319
|
}
|
|
126
320
|
export function contextCompactionMetadataFromBoundary(compactMetadata) {
|
|
127
321
|
return {
|
package/package.json
CHANGED