@lucascouts/claude-agent-acp-plus 0.20.1 → 0.20.3
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 +19 -0
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +171 -24
- package/dist/context-compaction.d.ts +33 -0
- package/dist/context-compaction.d.ts.map +1 -1
- package/dist/context-compaction.js +49 -2
- package/dist/exit-plan.d.ts +3 -0
- package/dist/exit-plan.d.ts.map +1 -1
- package/dist/exit-plan.js +10 -0
- package/dist/index.js +5 -8
- package/dist/managed-policy.d.ts +19 -0
- package/dist/managed-policy.d.ts.map +1 -0
- package/dist/managed-policy.js +31 -0
- package/dist/permissions/modes.d.ts +8 -1
- package/dist/permissions/modes.d.ts.map +1 -1
- package/dist/permissions/modes.js +12 -3
- package/dist/permissions/options/shared.d.ts +2 -0
- package/dist/permissions/options/shared.d.ts.map +1 -1
- package/dist/permissions/options/tools.d.ts.map +1 -1
- package/dist/permissions/options/tools.js +33 -35
- package/dist/session-mode.d.ts +6 -1
- package/dist/session-mode.d.ts.map +1 -1
- package/dist/session-mode.js +11 -4
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +14 -1
- package/package.json +2 -2
package/dist/acp-agent.d.ts
CHANGED
|
@@ -317,6 +317,8 @@ export type Session = {
|
|
|
317
317
|
titles: SessionTitles;
|
|
318
318
|
accumulatedUsage: AccumulatedUsage;
|
|
319
319
|
modes: SessionModeState;
|
|
320
|
+
/** The mode the session left when it entered plan mode, if it is in plan. */
|
|
321
|
+
prePlanMode?: string;
|
|
320
322
|
models: SessionModelState;
|
|
321
323
|
modelInfos: ModelInfo[];
|
|
322
324
|
/** Prevents the model-specific Auto fallback from spamming the transcript. */
|
|
@@ -654,6 +656,23 @@ export type Session = {
|
|
|
654
656
|
* consumer can later clear with the same id and a higher revision. */
|
|
655
657
|
sessionFailureState: SessionFailureState;
|
|
656
658
|
};
|
|
659
|
+
/** Compute a stable fingerprint of the session-defining params so we can
|
|
660
|
+
* detect when a loadSession/resumeSession call requires tearing down and
|
|
661
|
+
* recreating the underlying Query process. MCP servers are sorted by name
|
|
662
|
+
* so that ordering differences don't trigger unnecessary recreations.
|
|
663
|
+
*
|
|
664
|
+
* Additional directories are part of it (the additionalDirectories half of
|
|
665
|
+
* upstream #1097): the SDK reads them only when the process starts, so a warm
|
|
666
|
+
* resume that changed them would otherwise keep the old workspace roots. They
|
|
667
|
+
* are resolved the way createSession resolves them -- the ACP field, else
|
|
668
|
+
* `_meta.additionalRoots` -- then de-duplicated and sorted, so an absent list
|
|
669
|
+
* and an empty one, or the same list reordered, reuse the running query. */
|
|
670
|
+
export declare function computeSessionFingerprint(params: {
|
|
671
|
+
cwd: string;
|
|
672
|
+
mcpServers?: NewSessionRequest["mcpServers"];
|
|
673
|
+
additionalDirectories?: NewSessionRequest["additionalDirectories"];
|
|
674
|
+
_meta?: NewSessionRequest["_meta"];
|
|
675
|
+
}): string;
|
|
657
676
|
export type SDKMessageFilter = {
|
|
658
677
|
type: string;
|
|
659
678
|
subtype?: string;
|
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,EACL,SAAS,EACT,UAAU,EAEV,sBAAsB,EACtB,aAAa,EAIb,SAAS,EAIT,OAAO,EACP,cAAc,EAEd,KAAK,EAKL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,QAAQ,EAET,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAKL,WAAW,EACX,mBAAmB,EACnB,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAyBlG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAWzE,OAAO,EAOL,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAUL,KAAK,mBAAmB,EAGzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAQL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAK9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAYL,SAAS,EAKV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAwC,QAAQ,EAAe,MAAM,YAAY,CAAC;AAUzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAIL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EAGrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAsB,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,QACuC,CAAC;AAMtE;;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;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;AAmEF;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;;;+EAG+E;AAC/E,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;;;yDAGyD;AACzD,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;iFAIiF;AACjF,KAAK,IAAI,GAAG;IACV;qEACiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB;;4DAEwD;IACxD,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;gDAG4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;4BAGwB;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC;;gDAE4C;IAC5C,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC;gEAC4D;IAC5D,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;uEACmE;IACnE,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,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;AAiBF;;;gFAGgF;AAChF,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,GAAG,SAAgD,GAC7D,MAAM,CAYR;AAED,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;;;;;;;;;;;;;;;;;;;;;;;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,2EAA2E;IAC3E,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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;;;qDAGiD;IACjD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;gEAC4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB;;wEAEoE;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB;;;;8EAI0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB;;;;gDAI4C;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;gEAK4D;IAC5D,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;wEAEoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;0CAMsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;;;gFAK4E;IAC5E,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;;qCAKiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;2EAEuE;IACvE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;oBAOgB;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;8CAE0C;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;;;mEAK+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,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;;;;;;qDAMiD;IACjD,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACnD,kBAAkB,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACjD;+EAC2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;yBAIqB;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;2CASuC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;;;;;;8CAiB0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;iEAY6D;IAC7D,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;;;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;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;;;;;;;;;;;;;;;;;;;;;;;;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;CAC1C,CAAC;AAwDF;;;;;;;;;;6EAU6E;AAC7E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACnE,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;CACpC,GAAG,MAAM,CAUT;AAED,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;;;;;;;;;;;;;;WAcG;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;;;;;OAKG;IACH,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,KAAK,kBAAkB,GAAG,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAoB5E;;;;;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;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAI3B,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;AAwBF,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;AA0HD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAyB1E;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,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;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,0BAA0B,CACxB,MAAM,EAAE,wBAAwB,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,yEAAyE;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AA0ED,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;;+BAE2B;IAC3B,kBAAkB,EAAE,MAAM,CAAiC;IAC3D;;;;;;8EAM0E;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IA+CxC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyKnE,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAalE,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqB9E,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAW3E,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAcrE,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkBxE,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,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;IAgC7C,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA6LtD,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAc/C,WAAW;YAcX,eAAe;IAU7B;yEACqE;IACrE,OAAO,CAAC,mBAAmB;IAI3B;;;;;;;;;;;;;;;;;OAiBG;IACH;;;;;;;;6CAQyC;YAC3B,mBAAmB;IAoEjC;;;;;;;;;qCASiC;IACjC,OAAO,CAAC,sBAAsB;YAmChB,qBAAqB;YAoBrB,kBAAkB;IAgBhC;;;;;;;;;;;;;;;;;;;;;;;;;;;mEA2B+D;IACzD,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAkEzD;;;iFAG6E;IAC7E,OAAO,CAAC,qBAAqB;IAS7B;qFACiF;IACjF,OAAO,CAAC,cAAc;IActB;;;;qEAIiE;YACnD,WAAW;IAi0FzB;;;;;;;;;;;;;;yDAcqD;IACrD,OAAO,CAAC,kBAAkB;IAapB,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsPvD;;;;;;;;;;;;;;;;;;gBAkBY;IACZ,OAAO,CAAC,gBAAgB;IAoBxB;yDACqD;YACvC,eAAe;IAwB7B,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;IAgB9E,sBAAsB,CAC1B,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,8BAA8B,CAAC;YA+H5B,oBAAoB;IA4K5B,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKxE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKjF;;;;;;+DAM2D;YAC7C,oBAAoB;IAelC;;;;;0EAKsE;YACxD,2BAA2B;IAsCzC;;;;;;;;;;;iEAW6D;YAC/C,qBAAqB;IA4CnC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAiNzC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;;OAIG;YACW,qBAAqB;IAqCnC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;YAqCV,2BAA2B;YAa3B,kBAAkB;YAmBlB,sBAAsB;IA+JpC;;;;;oEAKgE;YAClD,6BAA6B;IA+B3C;;;oBAGgB;IAChB,OAAO,CAAC,qBAAqB;IAW7B;;;iEAG6D;YAC/C,aAAa;IAQ3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEAqCkE;YACpD,oBAAoB;IAmQlC;;;;;;;;;;;;;;;;;;;;;;yEAsBqE;YACvD,iBAAiB;YAkDjB,kBAAkB;IA2ChC;;;;;OAKG;YACW,WAAW;YAuBX,aAAa;IA0sB3B;;;;OAIG;YACW,qBAAqB;CAkCpC;AAuLD,eAAO,MAAM,mBAAmB,aAM9B,CAAC;AAOH;;;gBAGgB;AAChB,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAOzE;AAED;;;8CAG8C;AAC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,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;;;;;;;;;+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,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,MAAM,GAAE,SAAS,EAAO,EACxB,YAAY,GAAE,MAAyB,EACvC,QAAQ,CAAC,EAAE,mBAAmB;AAC9B;;;;oCAIoC;AACpC,eAAe,CAAC,EAAE,OAAO;AACzB;;mDAEmD;AACnD,SAAS,CAAC,EAAE,oBAAoB;AAChC;;;;;iBAKiB;AACjB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,kBAAkB,GACjE,mBAAmB,EAAE,CA0IvB;AAoFD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CA+DhG;AAED;;;;;;;;;;;;;;;;;;;gFAmBgF;AAChF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAiCnF;AAqKD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,EACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/C,MAAM,CAAC,EAAE,MAAM,GACd,SAAS,EAAE,CAKb;AA2SD,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;AA8LD;;;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,CAiavB;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;;;EAgDrC"}
|
package/dist/acp-agent.js
CHANGED
|
@@ -21,7 +21,7 @@ import { ContextCompactionLifecycle, contextCompactionMetadataFromBoundary, } fr
|
|
|
21
21
|
import { createThinkingConfigOption, effectiveThinkingConfig, resolveThinkingSelection, THINKING_CONFIG_ID, } from "./thinking-option.js";
|
|
22
22
|
import { effortOptionValue, isUltracodeAvailable, isUltracodeValue, ULTRACODE_OPTION_NAME, ULTRACODE_OPTION_VALUE, ultracodeFlagSettings, } from "./ultracode.js";
|
|
23
23
|
import { handleRewindCommand, parseRewindInvocation } from "./rewind-command.js";
|
|
24
|
-
import {
|
|
24
|
+
import { resolvePermissionMode, sessionAllowsBypass } from "./permissions/modes.js";
|
|
25
25
|
import { normalizeDurablePermissionChangeSet } from "./permissions/normalization.js";
|
|
26
26
|
import { buildClaudePermissionOptions } from "./permissions/options.js";
|
|
27
27
|
import { buildClaudePermissionPresentation } from "./permissions/presentation.js";
|
|
@@ -30,7 +30,7 @@ import { activeUsageLimitMessage, airSessionFailureCapabilityMeta, assistantMess
|
|
|
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
31
|
import { applyTaskCreate, applyTaskList, applyTaskUpdate, createPostToolUseHook, createTaskHook, parseTaskCreateOutput, parseTaskListOutput, parseTaskUpdateOutput, planEntries, registerHookCallback, taskStateToPlanEntries, toolInfoFromToolUse, toolUpdateFromDiffToolResponse, toolUpdateFromToolResult, } from "./tools.js";
|
|
32
32
|
import { nodeToWebReadable, nodeToWebWritable, Pushable, unreachable } from "./utils.js";
|
|
33
|
-
import { acceptedPlanToolResult, ExitPlanCoordinator,
|
|
33
|
+
import { acceptedPlanToolResult, ExitPlanCoordinator, exitPlanModeRawOutput, isExitPlanInterruptionResult, observeExitPlanToolResults, } from "./exit-plan.js";
|
|
34
34
|
import { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID } from "./session-config-ids.js";
|
|
35
35
|
import { parseToolResultMeta } from "./tool-result-meta.js";
|
|
36
36
|
import { AccountUsageTracker } from "./account-usage.js";
|
|
@@ -201,10 +201,22 @@ function disarmForceCancel(session) {
|
|
|
201
201
|
/** Compute a stable fingerprint of the session-defining params so we can
|
|
202
202
|
* detect when a loadSession/resumeSession call requires tearing down and
|
|
203
203
|
* recreating the underlying Query process. MCP servers are sorted by name
|
|
204
|
-
* so that ordering differences don't trigger unnecessary recreations.
|
|
205
|
-
|
|
204
|
+
* so that ordering differences don't trigger unnecessary recreations.
|
|
205
|
+
*
|
|
206
|
+
* Additional directories are part of it (the additionalDirectories half of
|
|
207
|
+
* upstream #1097): the SDK reads them only when the process starts, so a warm
|
|
208
|
+
* resume that changed them would otherwise keep the old workspace roots. They
|
|
209
|
+
* are resolved the way createSession resolves them -- the ACP field, else
|
|
210
|
+
* `_meta.additionalRoots` -- then de-duplicated and sorted, so an absent list
|
|
211
|
+
* and an empty one, or the same list reordered, reuse the running query. */
|
|
212
|
+
export function computeSessionFingerprint(params) {
|
|
206
213
|
const servers = [...(params.mcpServers ?? [])].sort((a, b) => a.name.localeCompare(b.name));
|
|
207
|
-
|
|
214
|
+
const additionalDirectories = [
|
|
215
|
+
...new Set(params.additionalDirectories ??
|
|
216
|
+
params._meta?.additionalRoots ??
|
|
217
|
+
[]),
|
|
218
|
+
].sort();
|
|
219
|
+
return JSON.stringify({ cwd: params.cwd, mcpServers: servers, additionalDirectories });
|
|
208
220
|
}
|
|
209
221
|
const SUPPORTED_PROTOCOLS = ["anthropic", "bedrock", "vertex"];
|
|
210
222
|
const PROVIDER_ID = "main";
|
|
@@ -340,6 +352,16 @@ const SESSION_ENDED_MESSAGE = "The Claude Agent session has ended. Please start
|
|
|
340
352
|
// Slash commands that the SDK handles locally without replaying the user
|
|
341
353
|
// message and without invoking the model.
|
|
342
354
|
const LOCAL_ONLY_COMMANDS = new Set(["/context", "/heapdump", "/extra-usage"]);
|
|
355
|
+
// Commands whose marker-only transcript records are ACP/client-local UI noise,
|
|
356
|
+
// not model-visible user prompts. Marker-only custom slash skills are not in
|
|
357
|
+
// this list, so replay can reconstruct them from `<command-name>`/`<command-args>`.
|
|
358
|
+
const REPLAY_HIDDEN_COMMANDS = new Set([
|
|
359
|
+
...LOCAL_ONLY_COMMANDS,
|
|
360
|
+
"/compact",
|
|
361
|
+
"/model",
|
|
362
|
+
"/status",
|
|
363
|
+
"/usage",
|
|
364
|
+
]);
|
|
343
365
|
// The Claude SDK persists local slash command invocations (e.g. `/model`) and
|
|
344
366
|
// their output as user messages in the session transcript, wrapping the
|
|
345
367
|
// payload in these XML-like markers that the CLI uses for its own display.
|
|
@@ -390,6 +412,38 @@ function stripMarkerTags(text) {
|
|
|
390
412
|
}
|
|
391
413
|
return result + text.slice(copiedUpTo);
|
|
392
414
|
}
|
|
415
|
+
function markerTagText(text, tag) {
|
|
416
|
+
const open = `<${tag}>`;
|
|
417
|
+
const close = `</${tag}>`;
|
|
418
|
+
const start = text.indexOf(open);
|
|
419
|
+
if (start === -1)
|
|
420
|
+
return undefined;
|
|
421
|
+
const end = text.indexOf(close, start + open.length);
|
|
422
|
+
if (end === -1)
|
|
423
|
+
return undefined;
|
|
424
|
+
return text.slice(start + open.length, end);
|
|
425
|
+
}
|
|
426
|
+
function hasMarkerTag(text, tag) {
|
|
427
|
+
return markerTagText(text, tag) !== undefined;
|
|
428
|
+
}
|
|
429
|
+
function commandInvocationFromMarkerOnlyText(text) {
|
|
430
|
+
if (hasMarkerTag(text, "local-command-stdout") || hasMarkerTag(text, "local-command-stderr")) {
|
|
431
|
+
return null;
|
|
432
|
+
}
|
|
433
|
+
const commandName = markerTagText(text, "command-name")?.trim();
|
|
434
|
+
if (!commandName?.startsWith("/"))
|
|
435
|
+
return null;
|
|
436
|
+
if (REPLAY_HIDDEN_COMMANDS.has(commandName.split(" ", 1)[0]))
|
|
437
|
+
return null;
|
|
438
|
+
const commandArgs = markerTagText(text, "command-args")?.trim();
|
|
439
|
+
return commandArgs ? `${commandName} ${commandArgs}` : commandName;
|
|
440
|
+
}
|
|
441
|
+
function stripLocalCommandMetadataText(text) {
|
|
442
|
+
const stripped = stripMarkerTags(text);
|
|
443
|
+
if (stripped.trim() !== "")
|
|
444
|
+
return stripped;
|
|
445
|
+
return commandInvocationFromMarkerOnlyText(text);
|
|
446
|
+
}
|
|
393
447
|
/**
|
|
394
448
|
* Return user-message content with local-command and injected-context marker
|
|
395
449
|
* tags removed, or `null` if nothing meaningful remains (caller should skip
|
|
@@ -399,8 +453,7 @@ function stripMarkerTags(text) {
|
|
|
399
453
|
*/
|
|
400
454
|
export function stripLocalCommandMetadata(content) {
|
|
401
455
|
if (typeof content === "string") {
|
|
402
|
-
|
|
403
|
-
return stripped.trim() === "" ? null : stripped;
|
|
456
|
+
return stripLocalCommandMetadataText(content);
|
|
404
457
|
}
|
|
405
458
|
if (!Array.isArray(content))
|
|
406
459
|
return content;
|
|
@@ -412,8 +465,8 @@ export function stripLocalCommandMetadata(content) {
|
|
|
412
465
|
block.type === "text" &&
|
|
413
466
|
"text" in block &&
|
|
414
467
|
typeof block.text === "string") {
|
|
415
|
-
const stripped =
|
|
416
|
-
if (stripped
|
|
468
|
+
const stripped = stripLocalCommandMetadataText(block.text);
|
|
469
|
+
if (stripped === null)
|
|
417
470
|
continue;
|
|
418
471
|
kept.push({ ...block, text: stripped });
|
|
419
472
|
}
|
|
@@ -1961,6 +2014,10 @@ export class ClaudeAcpAgent {
|
|
|
1961
2014
|
* which is the canonical AIR carrier. Legacy clients keep the historical
|
|
1962
2015
|
* JSON-RPC rejection path. */
|
|
1963
2016
|
const failActiveWithSessionFailure = async (kind, error, title) => {
|
|
2017
|
+
// Both arms below end the turn, and neither reports a terminal for a
|
|
2018
|
+
// compaction that was open when the provider failed. Ahead of the
|
|
2019
|
+
// capability branch for that reason, and a no-op when nothing is open.
|
|
2020
|
+
await compaction.interrupt(params.sessionId);
|
|
1964
2021
|
if (!supportsAirSessionFailures(this.clientCapabilities)) {
|
|
1965
2022
|
failActive(error);
|
|
1966
2023
|
return;
|
|
@@ -2093,6 +2150,11 @@ export class ClaudeAcpAgent {
|
|
|
2093
2150
|
this.trackOrphanCommand(session, active.promptUuid, "started");
|
|
2094
2151
|
}
|
|
2095
2152
|
}
|
|
2153
|
+
// #1154's own case: this settles the turn "cancelled" while the
|
|
2154
|
+
// compaction the client is watching is still in_progress, and the
|
|
2155
|
+
// SDK will never send its terminal because the backstop fired
|
|
2156
|
+
// precisely because the SDK stopped answering.
|
|
2157
|
+
await compaction.interrupt(params.sessionId);
|
|
2096
2158
|
settleActive({ stopReason: "cancelled", usage: sessionUsage(session) });
|
|
2097
2159
|
// The cancelled turn's result may never come (that's why the
|
|
2098
2160
|
// backstop fired) — close its delivery stretch here so partial
|
|
@@ -2159,6 +2221,10 @@ export class ClaudeAcpAgent {
|
|
|
2159
2221
|
// a deferred turn's stored outcome (followup results never mutate
|
|
2160
2222
|
// it), but the stored one is the authoritative source.
|
|
2161
2223
|
const inFlight = session.activeTurn;
|
|
2224
|
+
// The stream is gone, so no terminal for an open compaction is ever
|
|
2225
|
+
// coming; close it before the turn settles, or the frame outlives the
|
|
2226
|
+
// query that would have finished it.
|
|
2227
|
+
await compaction.interrupt(params.sessionId);
|
|
2162
2228
|
settleActive(session.cancelled
|
|
2163
2229
|
? { stopReason: "cancelled", usage: sessionUsage(session) }
|
|
2164
2230
|
: (inFlight?.deferredSettle ?? { stopReason, usage: sessionUsage(session) }));
|
|
@@ -2470,6 +2536,11 @@ export class ClaudeAcpAgent {
|
|
|
2470
2536
|
// An interrupt can pre-empt the result entirely, so the
|
|
2471
2537
|
// lifecycle's own reset there never ran; close it here or a
|
|
2472
2538
|
// half-open compaction would leak into the next turn.
|
|
2539
|
+
//
|
|
2540
|
+
// reset() alone was not enough and looked like it was: it
|
|
2541
|
+
// drops the state without sending anything, so the opening
|
|
2542
|
+
// in_progress frame stayed the last word the client had.
|
|
2543
|
+
await compaction.interrupt(params.sessionId);
|
|
2473
2544
|
compaction.reset();
|
|
2474
2545
|
settleActive({ stopReason: "cancelled", usage: sessionUsage(session) });
|
|
2475
2546
|
// An interrupt can pre-empt the turn's result entirely
|
|
@@ -2536,7 +2607,10 @@ export class ClaudeAcpAgent {
|
|
|
2536
2607
|
session.activeTurn &&
|
|
2537
2608
|
!session.activeTurn.settled) {
|
|
2538
2609
|
// Same reason as the cancelled branch: this turn will never
|
|
2539
|
-
// reach the result that would have reset the lifecycle
|
|
2610
|
+
// reach the result that would have reset the lifecycle, and
|
|
2611
|
+
// reset() sends nothing, so the terminal has to be reported
|
|
2612
|
+
// before the state is dropped.
|
|
2613
|
+
await compaction.interrupt(params.sessionId);
|
|
2540
2614
|
compaction.reset();
|
|
2541
2615
|
// Deliberately only the ACTIVE turn: a queued turn that
|
|
2542
2616
|
// was never echoed is NOT failed here, because an idle
|
|
@@ -2975,7 +3049,9 @@ export class ClaudeAcpAgent {
|
|
|
2975
3049
|
session.pendingGoalUpdate = undefined;
|
|
2976
3050
|
const goalCommandFailed = message.is_error ||
|
|
2977
3051
|
message.stop_reason === "refusal" ||
|
|
2978
|
-
("result" in message &&
|
|
3052
|
+
("result" in message &&
|
|
3053
|
+
message.is_error &&
|
|
3054
|
+
message.result.includes("Please run /login"));
|
|
2979
3055
|
if (goalCommandFailed) {
|
|
2980
3056
|
await this.publishGoal(params.sessionId, pendingGoalUpdate.previous ?? null);
|
|
2981
3057
|
}
|
|
@@ -3128,6 +3204,36 @@ export class ClaudeAcpAgent {
|
|
|
3128
3204
|
// failActive a live turn (the held one, or the user's next
|
|
3129
3205
|
// prompt) whose own result recorded a different outcome.
|
|
3130
3206
|
if (isAutonomousResult) {
|
|
3207
|
+
// A held turn's followup can itself plan: the subagent
|
|
3208
|
+
// finishes, the model writes the plan and calls ExitPlanMode
|
|
3209
|
+
// inside the task-notification cycle, and the user answers it
|
|
3210
|
+
// within the still-open turn. The interrupted cycle's
|
|
3211
|
+
// diagnostic then carries that cycle's origin, so it lands
|
|
3212
|
+
// here rather than in the user-lane check below — and settling
|
|
3213
|
+
// the hold at it would end the turn with `end_turn`, silently
|
|
3214
|
+
// dropping an accepted clear-context plan (issue #1167).
|
|
3215
|
+
const heldTurn = session.activeTurn;
|
|
3216
|
+
if (isHeldOpen(heldTurn) &&
|
|
3217
|
+
pendingExitPlanModeInterruption &&
|
|
3218
|
+
isExitPlanInterruptionResult(message, pendingExitPlanModeInterruption)) {
|
|
3219
|
+
session.pendingExitPlanModeInterruption = undefined;
|
|
3220
|
+
if (pendingExitPlanContextReset &&
|
|
3221
|
+
pendingExitPlanContextReset.toolUseId ===
|
|
3222
|
+
pendingExitPlanModeInterruption.toolUseId) {
|
|
3223
|
+
// The fresh query has none of this one's background
|
|
3224
|
+
// tasks, so the hold can never drain there: drop it, and
|
|
3225
|
+
// let the continuation's own result settle the turn.
|
|
3226
|
+
heldTurn.deferredSettle = undefined;
|
|
3227
|
+
await this.exitPlan.restart(params.sessionId, session, pendingExitPlanContextReset);
|
|
3228
|
+
return;
|
|
3229
|
+
}
|
|
3230
|
+
// "No, keep planning": the turn ends cancelled, with the
|
|
3231
|
+
// usage its own result recorded — still held while other
|
|
3232
|
+
// subagents it spawned are live.
|
|
3233
|
+
session.pendingExitPlanContextReset = undefined;
|
|
3234
|
+
settleOrDefer({ ...heldTurn.deferredSettle, stopReason: "cancelled" });
|
|
3235
|
+
break;
|
|
3236
|
+
}
|
|
3131
3237
|
settleDeferredIfDrained();
|
|
3132
3238
|
// With no turn in flight OR QUEUED (also after the settle
|
|
3133
3239
|
// above), the stretch holds only autonomous prose — close
|
|
@@ -3149,13 +3255,8 @@ export class ClaudeAcpAgent {
|
|
|
3149
3255
|
// interrupt as an error-shaped diagnostic, so translate only a
|
|
3150
3256
|
// diagnostic causally paired with the recorded ExitPlanMode
|
|
3151
3257
|
// permission response.
|
|
3152
|
-
const diagnostic = executionDiagnostic(message);
|
|
3153
3258
|
if (pendingExitPlanModeInterruption &&
|
|
3154
|
-
pendingExitPlanModeInterruption
|
|
3155
|
-
message.is_error &&
|
|
3156
|
-
diagnostic &&
|
|
3157
|
-
/(?:^|\s)result_type=user(?:\s|$)/.test(diagnostic) &&
|
|
3158
|
-
/(?:^|\s)stop_reason=tool_use(?:\s|$)/.test(diagnostic)) {
|
|
3259
|
+
isExitPlanInterruptionResult(message, pendingExitPlanModeInterruption)) {
|
|
3159
3260
|
session.pendingExitPlanModeInterruption = undefined;
|
|
3160
3261
|
if (pendingExitPlanContextReset &&
|
|
3161
3262
|
pendingExitPlanContextReset.toolUseId ===
|
|
@@ -3217,7 +3318,7 @@ export class ClaudeAcpAgent {
|
|
|
3217
3318
|
}
|
|
3218
3319
|
switch (message.subtype) {
|
|
3219
3320
|
case "success": {
|
|
3220
|
-
if (message.result.includes("Please run /login")) {
|
|
3321
|
+
if (message.is_error && message.result.includes("Please run /login")) {
|
|
3221
3322
|
await failActiveWithSessionFailure("auth_required", RequestError.authRequired(), message.result);
|
|
3222
3323
|
break;
|
|
3223
3324
|
}
|
|
@@ -3339,6 +3440,15 @@ export class ClaudeAcpAgent {
|
|
|
3339
3440
|
// rather than at idle: an owed idle from this turn can arrive
|
|
3340
3441
|
// after the next turn has already started, and would erase that
|
|
3341
3442
|
// turn's compaction state instead of its own.
|
|
3443
|
+
//
|
|
3444
|
+
// interrupt() FIRST, and unconditionally: this `finally` is the
|
|
3445
|
+
// one point every exit from this case passes through, and the
|
|
3446
|
+
// arms that reach it without a terminal -- `auth_required`,
|
|
3447
|
+
// `is_error`, a refusal -- would otherwise leave the opening
|
|
3448
|
+
// in_progress frame as the client's last word, because reset()
|
|
3449
|
+
// sends nothing. A successful result has already reported its
|
|
3450
|
+
// own terminal, so this is a no-op there.
|
|
3451
|
+
await compaction.interrupt(params.sessionId);
|
|
3342
3452
|
compaction.reset();
|
|
3343
3453
|
// R1.2: a user turn's terminal result is the moment consumption
|
|
3344
3454
|
// actually changed, so refresh the account quota windows here —
|
|
@@ -3613,10 +3723,17 @@ export class ClaudeAcpAgent {
|
|
|
3613
3723
|
// next `result` can emit a usage_update tied to the right context
|
|
3614
3724
|
// window. Subagent messages are excluded to keep the snapshot
|
|
3615
3725
|
// aligned with what the user's current selection is producing.
|
|
3726
|
+
// Synthetic frames (spend limits, sign-in prompts, local command
|
|
3727
|
+
// output) are CLI-local banners with an all-zero usage object, not
|
|
3728
|
+
// model responses, so they must not erase the last real context
|
|
3729
|
+
// measurement. A turn with no real frame leaves the snapshot null
|
|
3730
|
+
// and the result emits no usage_update, keeping the client's value.
|
|
3616
3731
|
if (message.type === "assistant" && message.parent_tool_use_id === null) {
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3732
|
+
if (message.message.model !== "<synthetic>") {
|
|
3733
|
+
lastAssistantUsage = snapshotFromUsage(message.message.usage);
|
|
3734
|
+
lastAssistantTotalUsage = totalTokens(lastAssistantUsage);
|
|
3735
|
+
session.contextUsedTokens = lastAssistantTotalUsage;
|
|
3736
|
+
}
|
|
3620
3737
|
lastAssistantWasUsageLimit = isSyntheticUsageLimitMessage(message.message);
|
|
3621
3738
|
if (message.error || lastAssistantWasUsageLimit) {
|
|
3622
3739
|
lastAssistantFailureTitle = assistantMessageText(message.message);
|
|
@@ -3879,6 +3996,10 @@ export class ClaudeAcpAgent {
|
|
|
3879
3996
|
// Clear both the in-memory snapshot and the client's visible plan
|
|
3880
3997
|
// before any follow-up prompt can republish stale tasks.
|
|
3881
3998
|
session.taskState.clear();
|
|
3999
|
+
// A compaction open on the OLD transcript can never terminate on
|
|
4000
|
+
// the new one: the uuid its tool call is keyed by belongs to a
|
|
4001
|
+
// conversation that no longer exists.
|
|
4002
|
+
await compaction.interrupt(params.sessionId);
|
|
3882
4003
|
await this.publishTaskPlan(params.sessionId, session.taskState);
|
|
3883
4004
|
// A reset mounts a fresh transcript (`new_conversation_id`), so our
|
|
3884
4005
|
// cached title no longer describes the session: drop it and
|
|
@@ -3910,6 +4031,10 @@ export class ClaudeAcpAgent {
|
|
|
3910
4031
|
if (session.query !== myQuery) {
|
|
3911
4032
|
return;
|
|
3912
4033
|
}
|
|
4034
|
+
// The stream died, so no terminal for an open compaction is coming.
|
|
4035
|
+
// After the supersession guard, never before it: a superseded consumer
|
|
4036
|
+
// must not send anything on the live consumer's behalf.
|
|
4037
|
+
await compaction.interrupt(params.sessionId);
|
|
3913
4038
|
// The query stream itself died (a transport/process error surfaced from
|
|
3914
4039
|
// query.next()). Turn-level failures (auth, error results) are handled
|
|
3915
4040
|
// inline via failActive and never reach here. Reject every in-flight turn;
|
|
@@ -4759,6 +4884,7 @@ export class ClaudeAcpAgent {
|
|
|
4759
4884
|
allowPersistentOptions: !noPersistentRule,
|
|
4760
4885
|
defaultToNo,
|
|
4761
4886
|
availableModes: this.sessionModes.availableModeIds(session.modes),
|
|
4887
|
+
prePlanMode: session.prePlanMode,
|
|
4762
4888
|
contextUsedPercent: session.contextUsedTokens === undefined || session.contextWindowSize <= 0
|
|
4763
4889
|
? undefined
|
|
4764
4890
|
: Math.max(0, Math.min(100, Math.round((session.contextUsedTokens / session.contextWindowSize) * 100))),
|
|
@@ -4777,6 +4903,20 @@ export class ClaudeAcpAgent {
|
|
|
4777
4903
|
if (autoFallback.fallbackApplied) {
|
|
4778
4904
|
await this.sessionModes.publishFallbackWarning(sessionId, session);
|
|
4779
4905
|
}
|
|
4906
|
+
if (toolName === "ExitPlanMode" && permissionResult.behavior === "allow") {
|
|
4907
|
+
const modeUpdate = permissionResult.updatedPermissions?.find((update) => update.type === "setMode" && update.destination === "session");
|
|
4908
|
+
if (modeUpdate?.type === "setMode") {
|
|
4909
|
+
try {
|
|
4910
|
+
await this.sessionModes.publishCurrent(sessionId, modeUpdate.mode);
|
|
4911
|
+
await this.updateConfigOption(sessionId, MODE_CONFIG_ID, modeUpdate.mode);
|
|
4912
|
+
}
|
|
4913
|
+
catch (error) {
|
|
4914
|
+
// The user already approved the plan; a failed notification must not
|
|
4915
|
+
// turn that approval into a failed permission request.
|
|
4916
|
+
this.logger.error("Failed to publish mode after plan approval:", error);
|
|
4917
|
+
}
|
|
4918
|
+
}
|
|
4919
|
+
}
|
|
4780
4920
|
const clearContextMode = decodedPermission.contextResetMode
|
|
4781
4921
|
? this.sessionModes.effectiveMode(session, decodedPermission.contextResetMode)
|
|
4782
4922
|
: undefined;
|
|
@@ -5559,8 +5699,14 @@ export class ClaudeAcpAgent {
|
|
|
5559
5699
|
};
|
|
5560
5700
|
}
|
|
5561
5701
|
}
|
|
5562
|
-
|
|
5563
|
-
|
|
5702
|
+
// Decided once per session (upstream #1165): it gates the SDK flag, the
|
|
5703
|
+
// spawn-time mode -- the SDK rejects bypassPermissions without the flag --
|
|
5704
|
+
// and the mode catalog, so all three agree with what the CLI will accept.
|
|
5705
|
+
const allowBypass = sessionAllowsBypass(settingsManager.getSettings().permissions);
|
|
5706
|
+
const permissionMode = resolvePermissionMode(settingsManager.getSettings().permissions?.defaultMode, this.logger, allowBypass);
|
|
5707
|
+
const initialPermissionMode = creationOpts.permissionMode === "bypassPermissions" && !allowBypass
|
|
5708
|
+
? "default"
|
|
5709
|
+
: (creationOpts.permissionMode ?? permissionMode);
|
|
5564
5710
|
// Extract options from _meta if provided
|
|
5565
5711
|
const sessionMeta = params._meta;
|
|
5566
5712
|
const userProvidedOptions = sessionMeta?.claudeCode?.options;
|
|
@@ -5708,7 +5854,7 @@ export class ClaudeAcpAgent {
|
|
|
5708
5854
|
},
|
|
5709
5855
|
// If we want bypassPermissions to be an option, we have to allow it here.
|
|
5710
5856
|
// But it doesn't work in root mode, so we only activate it if it will work.
|
|
5711
|
-
allowDangerouslySkipPermissions:
|
|
5857
|
+
allowDangerouslySkipPermissions: allowBypass,
|
|
5712
5858
|
permissionMode: initialPermissionMode,
|
|
5713
5859
|
canUseTool: this.canUseTool(sessionId),
|
|
5714
5860
|
// Forward MCP elicitation requests onto ACP elicitation. Only attached
|
|
@@ -5907,6 +6053,7 @@ export class ClaudeAcpAgent {
|
|
|
5907
6053
|
requestedMode: initialPermissionMode,
|
|
5908
6054
|
currentModelInfo,
|
|
5909
6055
|
currentModelId: models.currentModelId,
|
|
6056
|
+
allowBypass,
|
|
5910
6057
|
});
|
|
5911
6058
|
const agents = await discoverCustomAgents(q);
|
|
5912
6059
|
// Only adopt the requested agent as the selected value if it's one we
|
|
@@ -141,6 +141,39 @@ export declare class ContextCompactionLifecycle {
|
|
|
141
141
|
* update, so the client still sees exactly one terminal transition.
|
|
142
142
|
*/
|
|
143
143
|
finish(sessionId: string, fallbackId: string, status: CompactionStatus, metadata?: Omit<ContextCompactionMetadata, "version">, enrichTerminal?: boolean): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Close an open compaction because the TURN ended, not because the runtime
|
|
146
|
+
* reported an outcome: a cancel, a force cancellation, the SDK stream
|
|
147
|
+
* ending, a conversation reset.
|
|
148
|
+
*
|
|
149
|
+
* Idempotent, and silent when nothing is open, because several of those paths
|
|
150
|
+
* run in sequence for one turn -- the force-cancel backstop settles the turn
|
|
151
|
+
* and the SDK's late trailing idle then reaches the cancelled-turn branch,
|
|
152
|
+
* and both call this.
|
|
153
|
+
*
|
|
154
|
+
* WHY IT EMITS, WHERE `reset()` DOES NOT. `reset()` returns the lifecycle to
|
|
155
|
+
* its unstarted state and sends nothing, which is right at a turn boundary
|
|
156
|
+
* the runtime closed properly. It is wrong at an interruption: the last frame
|
|
157
|
+
* the client saw is the opening `in_progress`, and dropping the reference
|
|
158
|
+
* leaves that frame standing -- a compaction row that spins for the rest of
|
|
159
|
+
* the session. So this reports the terminal, and the caller still resets
|
|
160
|
+
* afterwards for the turn-boundary state.
|
|
161
|
+
*
|
|
162
|
+
* WHY `failed`, AND WHY THAT IS NOT UPSTREAM'S ANSWER. Upstream's own
|
|
163
|
+
* `interrupt()` (a05aca6, #1154) deliberately leaves a legacy tool-call
|
|
164
|
+
* presentation untouched, saying why in as many words: ACP `ToolCallStatus`
|
|
165
|
+
* has no `cancelled` state. This fork has ONLY that presentation -- and,
|
|
166
|
+
* unlike upstream, it has a downstream reader for the terminal. Patch `0017`
|
|
167
|
+
* maps `acp::ToolCallStatus::Failed` to `ContextCompactionStatus::Canceled`,
|
|
168
|
+
* the terminal the crate's enum offers that claims the least. So `failed`
|
|
169
|
+
* here is not an invented convention; it is the one the other half of this
|
|
170
|
+
* chain was already built to receive.
|
|
171
|
+
*
|
|
172
|
+
* `nonExecutionKind: "interrupted"` is what keeps it distinguishable from a
|
|
173
|
+
* compaction that genuinely failed. It is the adapter's existing field for
|
|
174
|
+
* "why the tool never actually ran", and without it the two are one status.
|
|
175
|
+
*/
|
|
176
|
+
interrupt(sessionId: string): Promise<void>;
|
|
144
177
|
/** Arm {@link consumeDuplicateErrorOutput} for the stdout copy Claude emits. */
|
|
145
178
|
private rememberDuplicateErrorOutput;
|
|
146
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../src/context-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,yBAAyB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC,yEAAyE;AACzE,KAAK,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE/C,2CAA2C;AAC3C,KAAK,eAAe,GAAG;IACrB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,uEAAuE;IACvE,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvE;;;GAGG;AACH,qBAAa,0BAA0B;IAKzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJvC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAqB;gBAEpB,UAAU,EAAE,UAAU;IAEnD;;;;;;;;;OASG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,iEAAiE;IACjE,KAAK,IAAI,IAAI;IAMb;;;;;;;;;;OAUG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWrD;;;;;;;;OAQG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAqB5E;;;;;;OAMG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAM,EACzD,cAAc,UAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAgDhB,gFAAgF;IAChF,OAAO,CAAC,4BAA4B;CAQrC;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE;IACrE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAW7C"}
|
|
1
|
+
{"version":3,"file":"context-compaction.d.ts","sourceRoot":"","sources":["../src/context-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,yBAAyB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC,yEAAyE;AACzE,KAAK,gBAAgB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE/C,2CAA2C;AAC3C,KAAK,eAAe,GAAG;IACrB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,uEAAuE;IACvE,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvE;;;GAGG;AACH,qBAAa,0BAA0B;IAKzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJvC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAqB;gBAEpB,UAAU,EAAE,UAAU;IAEnD;;;;;;;;;OASG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,iEAAiE;IACjE,KAAK,IAAI,IAAI;IAMb;;;;;;;;;;OAUG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWrD;;;;;;;;OAQG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAqB5E;;;;;;OAMG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAM,EACzD,cAAc,UAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAgDhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjD,gFAAgF;IAChF,OAAO,CAAC,4BAA4B;CAQrC;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE;IACrE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAW7C"}
|
|
@@ -215,6 +215,53 @@ export class ContextCompactionLifecycle {
|
|
|
215
215
|
},
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Close an open compaction because the TURN ended, not because the runtime
|
|
220
|
+
* reported an outcome: a cancel, a force cancellation, the SDK stream
|
|
221
|
+
* ending, a conversation reset.
|
|
222
|
+
*
|
|
223
|
+
* Idempotent, and silent when nothing is open, because several of those paths
|
|
224
|
+
* run in sequence for one turn -- the force-cancel backstop settles the turn
|
|
225
|
+
* and the SDK's late trailing idle then reaches the cancelled-turn branch,
|
|
226
|
+
* and both call this.
|
|
227
|
+
*
|
|
228
|
+
* WHY IT EMITS, WHERE `reset()` DOES NOT. `reset()` returns the lifecycle to
|
|
229
|
+
* its unstarted state and sends nothing, which is right at a turn boundary
|
|
230
|
+
* the runtime closed properly. It is wrong at an interruption: the last frame
|
|
231
|
+
* the client saw is the opening `in_progress`, and dropping the reference
|
|
232
|
+
* leaves that frame standing -- a compaction row that spins for the rest of
|
|
233
|
+
* the session. So this reports the terminal, and the caller still resets
|
|
234
|
+
* afterwards for the turn-boundary state.
|
|
235
|
+
*
|
|
236
|
+
* WHY `failed`, AND WHY THAT IS NOT UPSTREAM'S ANSWER. Upstream's own
|
|
237
|
+
* `interrupt()` (a05aca6, #1154) deliberately leaves a legacy tool-call
|
|
238
|
+
* presentation untouched, saying why in as many words: ACP `ToolCallStatus`
|
|
239
|
+
* has no `cancelled` state. This fork has ONLY that presentation -- and,
|
|
240
|
+
* unlike upstream, it has a downstream reader for the terminal. Patch `0017`
|
|
241
|
+
* maps `acp::ToolCallStatus::Failed` to `ContextCompactionStatus::Canceled`,
|
|
242
|
+
* the terminal the crate's enum offers that claims the least. So `failed`
|
|
243
|
+
* here is not an invented convention; it is the one the other half of this
|
|
244
|
+
* chain was already built to receive.
|
|
245
|
+
*
|
|
246
|
+
* `nonExecutionKind: "interrupted"` is what keeps it distinguishable from a
|
|
247
|
+
* compaction that genuinely failed. It is the adapter's existing field for
|
|
248
|
+
* "why the tool never actually ran", and without it the two are one status.
|
|
249
|
+
*/
|
|
250
|
+
async interrupt(sessionId) {
|
|
251
|
+
const state = this.activeCompaction;
|
|
252
|
+
if (!state || state.terminalStatus)
|
|
253
|
+
return;
|
|
254
|
+
state.terminalStatus = "failed";
|
|
255
|
+
await this.sendUpdate({
|
|
256
|
+
sessionId,
|
|
257
|
+
update: {
|
|
258
|
+
sessionUpdate: "tool_call_update",
|
|
259
|
+
toolCallId: state.toolCallId,
|
|
260
|
+
status: "failed",
|
|
261
|
+
_meta: compactionToolMeta({}, "interrupted"),
|
|
262
|
+
},
|
|
263
|
+
});
|
|
264
|
+
}
|
|
218
265
|
/** Arm {@link consumeDuplicateErrorOutput} for the stdout copy Claude emits. */
|
|
219
266
|
rememberDuplicateErrorOutput(status, metadata) {
|
|
220
267
|
if (status === "failed" && metadata.error) {
|
|
@@ -251,10 +298,10 @@ const COMPACTION_TOOL_TITLE = "Compact conversation";
|
|
|
251
298
|
* module free of `acp-agent.ts` imports; the adapter widens `ToolUpdateMeta`
|
|
252
299
|
* with the matching optional field for its own call sites.
|
|
253
300
|
*/
|
|
254
|
-
function compactionToolMeta(metadata = {}) {
|
|
301
|
+
function compactionToolMeta(metadata = {}, nonExecutionKind) {
|
|
255
302
|
return {
|
|
256
303
|
...createContextCompactionMeta(metadata),
|
|
257
|
-
claudeCode: { toolName: "compact" },
|
|
304
|
+
claudeCode: { toolName: "compact", ...(nonExecutionKind ? { nonExecutionKind } : {}) },
|
|
258
305
|
};
|
|
259
306
|
}
|
|
260
307
|
/**
|
package/dist/exit-plan.d.ts
CHANGED
|
@@ -19,6 +19,9 @@ export declare function observeExitPlanToolResults(message: {
|
|
|
19
19
|
tool_result_meta?: unknown;
|
|
20
20
|
}, content: unknown, state: ExitPlanState): string | undefined;
|
|
21
21
|
export declare function executionDiagnostic(message: SDKResultMessage): string | undefined;
|
|
22
|
+
/** Whether `message` is the error-shaped diagnostic Claude emits for the cycle
|
|
23
|
+
* a recorded ExitPlanMode `interrupt: true` answer stopped. */
|
|
24
|
+
export declare function isExitPlanInterruptionResult(message: SDKResultMessage, pending: ExitPlanState["pendingExitPlanModeInterruption"]): boolean;
|
|
22
25
|
/** Claude wraps a rejected ExitPlanMode explanation in a Markdown code fence.
|
|
23
26
|
* Strip exactly one complete outer fence for that tool only. */
|
|
24
27
|
export declare function exitPlanModeRawOutput(toolName: string, content: unknown): unknown;
|
package/dist/exit-plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-plan.d.ts","sourceRoot":"","sources":["../src/exit-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAEtB,MAAM,gCAAgC,CAAC;AAGxC,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,mBAAmB,CAarB;AAeD,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAC3D,+BAA+B,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;IACjF,2BAA2B,CAAC,EAAE,iBAAiB,CAAC;CACjD,CAAC;AA0BF;+EAC+E;AAC/E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,EACrD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,GACnB,MAAM,GAAG,SAAS,CA0BpB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAKjF;AAED;gEACgE;AAChE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAMjF;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,SAAS,mBAAmB,CAAC,IAAI,CAAC,EACzC,IAAI,SAAS,gBAAgB,IAC3B,IAAI,CACN,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,EAC1C,qBAAqB,GAAG,qBAAqB,CAC9C,GAAG;IACF,aAAa,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1E,CAAC;AAEF;;oEAEoE;AACpE,qBAAa,mBAAmB,CAC9B,OAAO,SAAS,mBAAmB,CAAC,IAAI,CAAC,EACzC,IAAI,SAAS,gBAAgB;IAIjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;gBAElC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAErE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAiE/F"}
|
|
1
|
+
{"version":3,"file":"exit-plan.d.ts","sourceRoot":"","sources":["../src/exit-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAEtB,MAAM,gCAAgC,CAAC;AAGxC,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,mBAAmB,CAarB;AAeD,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAC3D,+BAA+B,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;IACjF,2BAA2B,CAAC,EAAE,iBAAiB,CAAC;CACjD,CAAC;AA0BF;+EAC+E;AAC/E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,EACrD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,GACnB,MAAM,GAAG,SAAS,CA0BpB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAKjF;AAED;+DAC+D;AAC/D,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,aAAa,CAAC,iCAAiC,CAAC,GACxD,OAAO,CAQT;AAED;gEACgE;AAChE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAMjF;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,SAAS,mBAAmB,CAAC,IAAI,CAAC,EACzC,IAAI,SAAS,gBAAgB,IAC3B,IAAI,CACN,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,EAC1C,qBAAqB,GAAG,qBAAqB,CAC9C,GAAG;IACF,aAAa,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1E,CAAC;AAEF;;oEAEoE;AACpE,qBAAa,mBAAmB,CAC9B,OAAO,SAAS,mBAAmB,CAAC,IAAI,CAAC,EACzC,IAAI,SAAS,gBAAgB;IAIjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;gBAElC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;IAErE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAiE/F"}
|
package/dist/exit-plan.js
CHANGED
|
@@ -68,6 +68,16 @@ export function executionDiagnostic(message) {
|
|
|
68
68
|
}
|
|
69
69
|
return message.errors.find((error) => error.startsWith("[ede_diagnostic]"));
|
|
70
70
|
}
|
|
71
|
+
/** Whether `message` is the error-shaped diagnostic Claude emits for the cycle
|
|
72
|
+
* a recorded ExitPlanMode `interrupt: true` answer stopped. */
|
|
73
|
+
export function isExitPlanInterruptionResult(message, pending) {
|
|
74
|
+
if (!pending?.toolResultSeen || !message.is_error)
|
|
75
|
+
return false;
|
|
76
|
+
const diagnostic = executionDiagnostic(message);
|
|
77
|
+
return (!!diagnostic &&
|
|
78
|
+
/(?:^|\s)result_type=user(?:\s|$)/.test(diagnostic) &&
|
|
79
|
+
/(?:^|\s)stop_reason=tool_use(?:\s|$)/.test(diagnostic));
|
|
80
|
+
}
|
|
71
81
|
/** Claude wraps a rejected ExitPlanMode explanation in a Markdown code fence.
|
|
72
82
|
* Strip exactly one complete outer fence for that tool only. */
|
|
73
83
|
export function exitPlanModeRawOutput(toolName, content) {
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";
|
|
3
2
|
import { claudeCliPath, runAcp } from "./acp-agent.js";
|
|
3
|
+
import { applyManagedPolicyEnv } from "./managed-policy.js";
|
|
4
4
|
import packageJson from "../package.json" with { type: "json" };
|
|
5
5
|
import { appendFileSync, mkdirSync } from "node:fs";
|
|
6
6
|
import { join } from "node:path";
|
|
@@ -43,13 +43,10 @@ else if (process.argv.includes("--version") || process.argv.includes("-v")) {
|
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
45
|
// Apply env vars from the managed-policy tier before any SDK call so the
|
|
46
|
-
// SDK subprocess inherits them.
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
for (const [key, value] of Object.entries(policy.effective.env ?? {})) {
|
|
51
|
-
process.env[key] = value;
|
|
52
|
-
}
|
|
46
|
+
// SDK subprocess inherits them. Reading the tier is best-effort: a transient
|
|
47
|
+
// failure leaves the agent running with no policy env instead of aborting
|
|
48
|
+
// module evaluation here, before any ACP traffic.
|
|
49
|
+
await applyManagedPolicyEnv();
|
|
53
50
|
// stdout is used to send messages to the client
|
|
54
51
|
// we redirect everything else to stderr to make sure it doesn't interfere with ACP
|
|
55
52
|
console.log = console.error;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Applies the managed-policy tier's env vars to `process.env` before any SDK
|
|
4
|
+
* call, so the SDK subprocess inherits them. Going through `resolveSettings`
|
|
5
|
+
* rather than a raw read of `managed-settings.json` also picks up MDM sources on
|
|
6
|
+
* macOS and `HKLM`/`HKCU` on Windows.
|
|
7
|
+
*
|
|
8
|
+
* Reading the tier is best-effort by nature: on a host with no MDM and no
|
|
9
|
+
* managed policy the result is empty and the agent behaves identically. So a
|
|
10
|
+
* transient failure to read it — `EINTR`, `EMFILE`, `EAGAIN` — must leave the
|
|
11
|
+
* agent running with no policy env rather than stop it from starting.
|
|
12
|
+
*
|
|
13
|
+
* That guard matters because the caller awaits this at module scope in an ESM
|
|
14
|
+
* entry point, where a rejection aborts module evaluation and the process exits
|
|
15
|
+
* before serving any ACP traffic. `SettingsManager.loadAllSettings` wraps the
|
|
16
|
+
* same SDK call for the same reason.
|
|
17
|
+
*/
|
|
18
|
+
export declare function applyManagedPolicyEnv(resolve?: typeof resolveSettings, env?: Record<string, string | undefined>): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=managed-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-policy.d.ts","sourceRoot":"","sources":["../src/managed-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,OAAO,eAAiC,EACjD,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Applies the managed-policy tier's env vars to `process.env` before any SDK
|
|
4
|
+
* call, so the SDK subprocess inherits them. Going through `resolveSettings`
|
|
5
|
+
* rather than a raw read of `managed-settings.json` also picks up MDM sources on
|
|
6
|
+
* macOS and `HKLM`/`HKCU` on Windows.
|
|
7
|
+
*
|
|
8
|
+
* Reading the tier is best-effort by nature: on a host with no MDM and no
|
|
9
|
+
* managed policy the result is empty and the agent behaves identically. So a
|
|
10
|
+
* transient failure to read it — `EINTR`, `EMFILE`, `EAGAIN` — must leave the
|
|
11
|
+
* agent running with no policy env rather than stop it from starting.
|
|
12
|
+
*
|
|
13
|
+
* That guard matters because the caller awaits this at module scope in an ESM
|
|
14
|
+
* entry point, where a rejection aborts module evaluation and the process exits
|
|
15
|
+
* before serving any ACP traffic. `SettingsManager.loadAllSettings` wraps the
|
|
16
|
+
* same SDK call for the same reason.
|
|
17
|
+
*/
|
|
18
|
+
export async function applyManagedPolicyEnv(resolve = resolveSettings, env = process.env) {
|
|
19
|
+
let policy;
|
|
20
|
+
try {
|
|
21
|
+
policy = await resolve({ settingSources: [] });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// stderr, so the ACP stream on stdout stays clean.
|
|
25
|
+
console.error("Failed to resolve managed policy settings:", error);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
for (const [key, value] of Object.entries(policy.effective.env ?? {})) {
|
|
29
|
+
env[key] = value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -3,6 +3,13 @@ interface PermissionModeLogger {
|
|
|
3
3
|
error: (...args: unknown[]) => void;
|
|
4
4
|
}
|
|
5
5
|
export declare const ALLOW_BYPASS: boolean;
|
|
6
|
-
|
|
6
|
+
/** Whether a session may offer bypass: never as root outside a sandbox, and never
|
|
7
|
+
* when any settings tier sets `permissions.disableBypassPermissionsMode` to
|
|
8
|
+
* `"disable"` -- the CLI refuses bypass then too. That key can only take a
|
|
9
|
+
* permission away, so it is honoured from every tier, project settings included. */
|
|
10
|
+
export declare function sessionAllowsBypass(permissions?: {
|
|
11
|
+
disableBypassPermissionsMode?: unknown;
|
|
12
|
+
}): boolean;
|
|
13
|
+
export declare function resolvePermissionMode(defaultMode?: unknown, logger?: PermissionModeLogger, allowBypass?: boolean): PermissionMode;
|
|
7
14
|
export {};
|
|
8
15
|
//# sourceMappingURL=modes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/permissions/modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAID,eAAO,MAAM,YAAY,SAAuC,CAAC;AAiBjE,wBAAgB,qBAAqB,CACnC,WAAW,CAAC,EAAE,OAAO,EACrB,MAAM,GAAE,oBAA8B,
|
|
1
|
+
{"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/permissions/modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAID,eAAO,MAAM,YAAY,SAAuC,CAAC;AAiBjE;;;qFAGqF;AACrF,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE;IAAE,4BAA4B,CAAC,EAAE,OAAO,CAAA;CAAE,WAE3F;AAED,wBAAgB,qBAAqB,CACnC,WAAW,CAAC,EAAE,OAAO,EACrB,MAAM,GAAE,oBAA8B,EACtC,WAAW,GAAE,OAAsB,GAClC,cAAc,CAgChB"}
|
|
@@ -15,7 +15,14 @@ const PERMISSION_MODE_ALIASES = {
|
|
|
15
15
|
bypasspermissions: "bypassPermissions",
|
|
16
16
|
bypass: "bypassPermissions",
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
/** Whether a session may offer bypass: never as root outside a sandbox, and never
|
|
19
|
+
* when any settings tier sets `permissions.disableBypassPermissionsMode` to
|
|
20
|
+
* `"disable"` -- the CLI refuses bypass then too. That key can only take a
|
|
21
|
+
* permission away, so it is honoured from every tier, project settings included. */
|
|
22
|
+
export function sessionAllowsBypass(permissions) {
|
|
23
|
+
return ALLOW_BYPASS && permissions?.disableBypassPermissionsMode !== "disable";
|
|
24
|
+
}
|
|
25
|
+
export function resolvePermissionMode(defaultMode, logger = console, allowBypass = ALLOW_BYPASS) {
|
|
19
26
|
if (defaultMode === undefined) {
|
|
20
27
|
return "default";
|
|
21
28
|
}
|
|
@@ -33,8 +40,10 @@ export function resolvePermissionMode(defaultMode, logger = console) {
|
|
|
33
40
|
logger.error(`Ignoring permissions.defaultMode from settings: unknown value '${defaultMode}'.`);
|
|
34
41
|
return "default";
|
|
35
42
|
}
|
|
36
|
-
if (mapped === "bypassPermissions" && !
|
|
37
|
-
logger.error(
|
|
43
|
+
if (mapped === "bypassPermissions" && !allowBypass) {
|
|
44
|
+
logger.error(ALLOW_BYPASS
|
|
45
|
+
? "Ignoring permissions.defaultMode from settings: bypassPermissions is disabled by permissions.disableBypassPermissionsMode."
|
|
46
|
+
: "Ignoring permissions.defaultMode from settings: bypassPermissions is not available when running as root.");
|
|
38
47
|
return "default";
|
|
39
48
|
}
|
|
40
49
|
return mapped;
|
|
@@ -25,6 +25,8 @@ export interface PermissionOptionContext {
|
|
|
25
25
|
* approvable by a single stray keystroke. */
|
|
26
26
|
defaultToNo?: boolean;
|
|
27
27
|
availableModes?: readonly string[];
|
|
28
|
+
/** The mode the session left when it entered plan mode. */
|
|
29
|
+
prePlanMode?: string;
|
|
28
30
|
contextUsedPercent?: number;
|
|
29
31
|
}
|
|
30
32
|
export declare function allowOnce(name?: string): PermissionOption;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/permissions/options/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;kDAC8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,IAAI,SAAQ,GAAG,gBAAgB,CAExD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAE/D;AAED,wBAAgB,MAAM,CAAC,IAAI,SAAO,GAAG,gBAAgB,CAEpD;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,UAAU,SAAO,GAChB,gBAAgB,EAAE,CAKpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAkBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,QAAQ,EAAE,MAAM,GACf,OAAO,CAYT;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAO,GAAG,gBAAgB,EAAE,CAEvF"}
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/permissions/options/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;kDAC8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,IAAI,SAAQ,GAAG,gBAAgB,CAExD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAE/D;AAED,wBAAgB,MAAM,CAAC,IAAI,SAAO,GAAG,gBAAgB,CAEpD;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,UAAU,SAAO,GAChB,gBAAgB,EAAE,CAKpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAkBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,GAAG,SAAS,EACjD,QAAQ,EAAE,MAAM,GACf,OAAO,CAYT;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAO,GAAG,gBAAgB,EAAE,CAEvF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/permissions/options/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAML,KAAK,uBAAuB,EAI7B,MAAM,aAAa,CAAC;AAErB,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAapB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAqBhG;AAED,wBAAgB,mCAAmC,IAAI,gBAAgB,EAAE,CAExE;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/permissions/options/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAML,KAAK,uBAAuB,EAI7B,MAAM,aAAa,CAAC;AAErB,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAapB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAqBhG;AAED,wBAAgB,mCAAmC,IAAI,gBAAgB,EAAE,CAExE;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAiEpB;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAOpB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAiBpB;AAID,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAWpB"}
|
|
@@ -42,50 +42,48 @@ export function buildEnterPlanModePermissionOptions() {
|
|
|
42
42
|
export function buildExitPlanModePermissionOptions(context) {
|
|
43
43
|
const modes = new Set(context.availableModes);
|
|
44
44
|
const options = [];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
// Claude Code offers bypass only when the user launched with it, so it can
|
|
46
|
+
// prefer bypass outright. The adapter advertises bypass by default, so Auto
|
|
47
|
+
// leads unless the session was in bypass before entering plan mode. Both stay
|
|
48
|
+
// selectable: they have different permission semantics.
|
|
49
|
+
const elevatedModes = (context.prePlanMode === "bypassPermissions"
|
|
50
|
+
? ["bypassPermissions", "auto"]
|
|
51
|
+
: ["auto", "bypassPermissions"]).filter((mode) => modes.has(mode));
|
|
52
|
+
const preferredMode = elevatedModes[0] ?? "acceptEdits";
|
|
50
53
|
if (plainString(context.input.plan)) {
|
|
51
54
|
const usage = context.contextUsedPercent === undefined ? "" : ` (${context.contextUsedPercent}% used)`;
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
options.push(preferredMode === "auto"
|
|
56
|
+
? {
|
|
54
57
|
optionId: PERMISSION_OPTION_ID.exitPlanClearAuto,
|
|
55
58
|
name: `Yes, clear context${usage} and use auto mode`,
|
|
56
59
|
kind: "allow_always",
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
}
|
|
61
|
+
: preferredMode === "bypassPermissions"
|
|
62
|
+
? {
|
|
63
|
+
optionId: PERMISSION_OPTION_ID.exitPlanClearBypass,
|
|
64
|
+
name: `Yes, clear context${usage} and bypass permissions`,
|
|
65
|
+
kind: "allow_always",
|
|
66
|
+
}
|
|
67
|
+
: {
|
|
68
|
+
optionId: PERMISSION_OPTION_ID.exitPlanClearAcceptEdits,
|
|
69
|
+
name: `Yes, clear context${usage} and auto-accept edits`,
|
|
70
|
+
kind: "allow_always",
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
for (const mode of elevatedModes) {
|
|
74
|
+
options.push(mode === "auto"
|
|
75
|
+
? {
|
|
76
|
+
optionId: PERMISSION_OPTION_ID.exitPlanAuto,
|
|
77
|
+
name: "Yes, and use auto mode",
|
|
63
78
|
kind: "allow_always",
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
optionId: PERMISSION_OPTION_ID.exitPlanClearAcceptEdits,
|
|
69
|
-
name: `Yes, clear context${usage} and auto-accept edits`,
|
|
79
|
+
}
|
|
80
|
+
: {
|
|
81
|
+
optionId: PERMISSION_OPTION_ID.exitPlanBypass,
|
|
82
|
+
name: "Yes, and bypass permissions",
|
|
70
83
|
kind: "allow_always",
|
|
71
84
|
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (elevatedMode === "auto") {
|
|
75
|
-
options.push({
|
|
76
|
-
optionId: PERMISSION_OPTION_ID.exitPlanAuto,
|
|
77
|
-
name: "Yes, and use auto mode",
|
|
78
|
-
kind: "allow_always",
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else if (elevatedMode === "bypassPermissions") {
|
|
82
|
-
options.push({
|
|
83
|
-
optionId: PERMISSION_OPTION_ID.exitPlanBypass,
|
|
84
|
-
name: "Yes, and bypass permissions",
|
|
85
|
-
kind: "allow_always",
|
|
86
|
-
});
|
|
87
85
|
}
|
|
88
|
-
|
|
86
|
+
if (elevatedModes.length === 0) {
|
|
89
87
|
options.push({
|
|
90
88
|
optionId: PERMISSION_OPTION_ID.exitPlanAcceptEdits,
|
|
91
89
|
name: "Yes, auto-accept edits",
|
package/dist/session-mode.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export type SessionMode = {
|
|
|
14
14
|
autoModeFallbackWarningShown?: boolean;
|
|
15
15
|
/** Initial mode fallback is reported after session/new, on the first prompt. */
|
|
16
16
|
autoModeFallbackWarningPending?: boolean;
|
|
17
|
+
/** The mode the session left when it entered plan mode, if it is in plan. */
|
|
18
|
+
prePlanMode?: string;
|
|
17
19
|
};
|
|
18
20
|
export type SessionModeManagerOptions<S extends SessionMode> = {
|
|
19
21
|
getSession(sessionId: string): S | undefined;
|
|
@@ -30,12 +32,15 @@ type InitializeSessionModeParams = {
|
|
|
30
32
|
requestedMode: PermissionMode;
|
|
31
33
|
currentModelInfo?: ModelInfo;
|
|
32
34
|
currentModelId: string;
|
|
35
|
+
/** Per-session bypass permission (see `sessionAllowsBypass`). Defaults to the
|
|
36
|
+
* process-wide root check when a caller has no settings to consult. */
|
|
37
|
+
allowBypass?: boolean;
|
|
33
38
|
};
|
|
34
39
|
/** Owns session-mode policy and the ACP/SDK synchronization it requires. */
|
|
35
40
|
export declare class SessionModeManager<S extends SessionMode> {
|
|
36
41
|
private readonly options;
|
|
37
42
|
constructor(options: SessionModeManagerOptions<S>);
|
|
38
|
-
initialize({ query, requestedMode, currentModelInfo, currentModelId, }: InitializeSessionModeParams): Promise<{
|
|
43
|
+
initialize({ query, requestedMode, currentModelInfo, currentModelId, allowBypass, }: InitializeSessionModeParams): Promise<{
|
|
39
44
|
modes: SessionModeState;
|
|
40
45
|
autoModeFallbackWarningPending: boolean;
|
|
41
46
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-mode.d.ts","sourceRoot":"","sources":["../src/session-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,KAAK,EACN,MAAM,gCAAgC,CAAC;AAGxC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,kBAAkB,EAAE,cAA8B,CAAC;AAKhE,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,8EAA8E;IAC9E,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,gFAAgF;IAChF,8BAA8B,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"session-mode.d.ts","sourceRoot":"","sources":["../src/session-mode.ts"],"names":[],"mappings":"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"}
|
package/dist/session-mode.js
CHANGED
|
@@ -9,8 +9,8 @@ export class SessionModeManager {
|
|
|
9
9
|
constructor(options) {
|
|
10
10
|
this.options = options;
|
|
11
11
|
}
|
|
12
|
-
async initialize({ query, requestedMode, currentModelInfo, currentModelId, }) {
|
|
13
|
-
const availableModes = this.buildAvailableModes();
|
|
12
|
+
async initialize({ query, requestedMode, currentModelInfo, currentModelId, allowBypass = ALLOW_BYPASS, }) {
|
|
13
|
+
const availableModes = this.buildAvailableModes(allowBypass);
|
|
14
14
|
let effectiveMode = requestedMode;
|
|
15
15
|
let autoModeFallbackWarningPending = false;
|
|
16
16
|
if (effectiveMode === "auto" &&
|
|
@@ -50,6 +50,13 @@ export class SessionModeManager {
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
syncConfig(session, mode) {
|
|
53
|
+
const previousMode = session.modes.currentModeId;
|
|
54
|
+
if (mode !== "plan") {
|
|
55
|
+
session.prePlanMode = undefined;
|
|
56
|
+
}
|
|
57
|
+
else if (previousMode !== "plan") {
|
|
58
|
+
session.prePlanMode = previousMode;
|
|
59
|
+
}
|
|
53
60
|
session.modes = { ...session.modes, currentModeId: mode };
|
|
54
61
|
session.configOptions = session.configOptions.map((option) => option.id === MODE_CONFIG_ID && typeof option.currentValue === "string"
|
|
55
62
|
? { ...option, currentValue: mode }
|
|
@@ -186,7 +193,7 @@ export class SessionModeManager {
|
|
|
186
193
|
throw new Error("Invalid Mode");
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
|
-
buildAvailableModes() {
|
|
196
|
+
buildAvailableModes(allowBypass) {
|
|
190
197
|
const modes = [
|
|
191
198
|
{
|
|
192
199
|
id: "default",
|
|
@@ -228,7 +235,7 @@ export class SessionModeManager {
|
|
|
228
235
|
description: "Don't prompt for permissions, deny if not pre-approved",
|
|
229
236
|
},
|
|
230
237
|
];
|
|
231
|
-
if (
|
|
238
|
+
if (allowBypass) {
|
|
232
239
|
modes.push({
|
|
233
240
|
id: "bypassPermissions",
|
|
234
241
|
name: "Bypass permissions",
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAaL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAKjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAGL,oBAAoB,EAEpB,6BAA6B,EAE9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,yCAAyC,EAGzC,qCAAqC,EAGrC,kCAAkC,EAGlC,+CAA+C,EAI/C,wBAAwB,EACxB,kCAAkC,EAIlC,gCAAgC,EAEhC,iCAAiC,EAClC,MAAM,sCAAsC,CAAC;AA2B9C,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,aAAa,CAAC,EAAE;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,eAAe,CAAC,EAAE;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,aAAa,CAAC,EAAE;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQpE;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -13,6 +13,19 @@ export function toDisplayPath(filePath, cwd) {
|
|
|
13
13
|
}
|
|
14
14
|
return filePath;
|
|
15
15
|
}
|
|
16
|
+
/** Read a Write tool_use input the way the CLI validates it. Since 2.1.280 the
|
|
17
|
+
* CLI accepts `path` for `file_path` and `file_text`/`file_content` for
|
|
18
|
+
* `content` when a model sends those spellings, but the streamed tool_use
|
|
19
|
+
* block still carries them raw — without this the call renders as
|
|
20
|
+
* "Preparing file…" with no diff while the write goes through. */
|
|
21
|
+
function normalizeWriteInput(input) {
|
|
22
|
+
if (!input || typeof input !== "object")
|
|
23
|
+
return undefined;
|
|
24
|
+
const raw = input;
|
|
25
|
+
const filePath = raw.file_path ?? (typeof raw.path === "string" ? raw.path : undefined);
|
|
26
|
+
const content = raw.content ?? raw.file_text ?? raw.file_content;
|
|
27
|
+
return { ...raw, file_path: filePath, content };
|
|
28
|
+
}
|
|
16
29
|
export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd) {
|
|
17
30
|
const name = toolUse.name;
|
|
18
31
|
switch (name) {
|
|
@@ -75,7 +88,7 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
|
|
|
75
88
|
};
|
|
76
89
|
}
|
|
77
90
|
case "Write": {
|
|
78
|
-
const input = toolUse.input;
|
|
91
|
+
const input = normalizeWriteInput(toolUse.input);
|
|
79
92
|
let content = [];
|
|
80
93
|
if (input && input.file_path) {
|
|
81
94
|
content = [
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.20.
|
|
6
|
+
"version": "0.20.3",
|
|
7
7
|
"description": "ACP adapter for the Claude Agent SDK with VS Code-parity UX for Zed and other ACP clients — checkbox multi-select questions, refusal consent dialog, dynamic agent name. Fork of claude-agent-acp.",
|
|
8
8
|
"main": "dist/lib.js",
|
|
9
9
|
"types": "dist/lib.d.ts",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"eslint": "10.10.0",
|
|
82
82
|
"eslint-config-prettier": "10.1.8",
|
|
83
83
|
"globals": "17.12.0",
|
|
84
|
-
"prettier": "3.9.
|
|
84
|
+
"prettier": "3.9.8",
|
|
85
85
|
"ts-node": "10.9.2",
|
|
86
86
|
"typescript": "6.0.3",
|
|
87
87
|
"vitest": "5.0.1"
|