@tarquinen/opencode-dcp 2.2.4-beta0 → 2.2.6-beta0

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.
Files changed (84) hide show
  1. package/README.md +29 -11
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/commands/context.d.ts.map +1 -1
  6. package/dist/lib/commands/context.js +4 -3
  7. package/dist/lib/commands/context.js.map +1 -1
  8. package/dist/lib/commands/stats.d.ts.map +1 -1
  9. package/dist/lib/commands/stats.js +15 -2
  10. package/dist/lib/commands/stats.js.map +1 -1
  11. package/dist/lib/config.d.ts +8 -2
  12. package/dist/lib/config.d.ts.map +1 -1
  13. package/dist/lib/config.js +81 -31
  14. package/dist/lib/config.js.map +1 -1
  15. package/dist/lib/hooks.d.ts.map +1 -1
  16. package/dist/lib/hooks.js +6 -4
  17. package/dist/lib/hooks.js.map +1 -1
  18. package/dist/lib/logger.d.ts +2 -2
  19. package/dist/lib/logger.d.ts.map +1 -1
  20. package/dist/lib/logger.js +8 -2
  21. package/dist/lib/logger.js.map +1 -1
  22. package/dist/lib/message-ids.d.ts.map +1 -1
  23. package/dist/lib/message-ids.js +19 -2
  24. package/dist/lib/message-ids.js.map +1 -1
  25. package/dist/lib/messages/index.d.ts +2 -0
  26. package/dist/lib/messages/index.d.ts.map +1 -1
  27. package/dist/lib/messages/index.js +2 -0
  28. package/dist/lib/messages/index.js.map +1 -1
  29. package/dist/lib/messages/inject/inject.d.ts.map +1 -1
  30. package/dist/lib/messages/inject/inject.js +13 -4
  31. package/dist/lib/messages/inject/inject.js.map +1 -1
  32. package/dist/lib/messages/inject/subagent-results.d.ts +4 -0
  33. package/dist/lib/messages/inject/subagent-results.d.ts.map +1 -0
  34. package/dist/lib/messages/inject/subagent-results.js +57 -0
  35. package/dist/lib/messages/inject/subagent-results.js.map +1 -0
  36. package/dist/lib/messages/inject/utils.d.ts +4 -1
  37. package/dist/lib/messages/inject/utils.d.ts.map +1 -1
  38. package/dist/lib/messages/inject/utils.js +46 -12
  39. package/dist/lib/messages/inject/utils.js.map +1 -1
  40. package/dist/lib/messages/prune.js +9 -4
  41. package/dist/lib/messages/prune.js.map +1 -1
  42. package/dist/lib/messages/sync.d.ts +4 -0
  43. package/dist/lib/messages/sync.d.ts.map +1 -0
  44. package/dist/lib/messages/sync.js +85 -0
  45. package/dist/lib/messages/sync.js.map +1 -0
  46. package/dist/lib/prompts/_codegen/system.generated.d.ts +1 -1
  47. package/dist/lib/prompts/_codegen/system.generated.d.ts.map +1 -1
  48. package/dist/lib/prompts/_codegen/system.generated.js +8 -0
  49. package/dist/lib/prompts/_codegen/system.generated.js.map +1 -1
  50. package/dist/lib/prompts/index.d.ts +1 -1
  51. package/dist/lib/prompts/index.d.ts.map +1 -1
  52. package/dist/lib/prompts/index.js +9 -3
  53. package/dist/lib/prompts/index.js.map +1 -1
  54. package/dist/lib/shared-utils.d.ts.map +1 -1
  55. package/dist/lib/shared-utils.js +2 -1
  56. package/dist/lib/shared-utils.js.map +1 -1
  57. package/dist/lib/state/persistence.d.ts +9 -5
  58. package/dist/lib/state/persistence.d.ts.map +1 -1
  59. package/dist/lib/state/persistence.js +15 -27
  60. package/dist/lib/state/persistence.js.map +1 -1
  61. package/dist/lib/state/state.d.ts.map +1 -1
  62. package/dist/lib/state/state.js +9 -10
  63. package/dist/lib/state/state.js.map +1 -1
  64. package/dist/lib/state/types.d.ts +30 -3
  65. package/dist/lib/state/types.d.ts.map +1 -1
  66. package/dist/lib/state/utils.d.ts +12 -2
  67. package/dist/lib/state/utils.d.ts.map +1 -1
  68. package/dist/lib/state/utils.js +116 -8
  69. package/dist/lib/state/utils.js.map +1 -1
  70. package/dist/lib/subagents/subagent-results.d.ts +5 -0
  71. package/dist/lib/subagents/subagent-results.d.ts.map +1 -0
  72. package/dist/lib/subagents/subagent-results.js +52 -0
  73. package/dist/lib/subagents/subagent-results.js.map +1 -0
  74. package/dist/lib/tools/compress-utils.d.ts +13 -7
  75. package/dist/lib/tools/compress-utils.d.ts.map +1 -1
  76. package/dist/lib/tools/compress-utils.js +164 -22
  77. package/dist/lib/tools/compress-utils.js.map +1 -1
  78. package/dist/lib/tools/compress.d.ts.map +1 -1
  79. package/dist/lib/tools/compress.js +9 -4
  80. package/dist/lib/tools/compress.js.map +1 -1
  81. package/dist/lib/ui/notification.d.ts.map +1 -1
  82. package/dist/lib/ui/notification.js +7 -1
  83. package/dist/lib/ui/notification.js.map +1 -1
  84. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAGpD,MAAM,8BAA8B,GAChC,+EAA+E,CAAA;AACnF,MAAM,mCAAmC,GAAG,yCAAyC,CAAA;AACrF,MAAM,iCAAiC,GAAG,qDAAqD,CAAA;AAE/F,MAAM,CAAC,MAAM,KAAK,GAAG,CACjB,KAAmB,EACnB,MAAc,EACd,MAAoB,EACpB,QAAqB,EACjB,EAAE;IACN,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,yCAAyC;IACzC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,MAAc,EAAE,QAAqB,EAAQ,EAAE;IACvF,MAAM,gBAAgB,GAAa,EAAE,CAAA;IAErC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,SAAQ;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,aAAa,GAAa,EAAE,CAAA;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,SAAQ;YACZ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChD,SAAQ;YACZ,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAQ;QACZ,CAAC;QAED,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CACzE,CAAA;QAED,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtC,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;IAC5B,CAAC;AACL,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAmB,EAAE,MAAc,EAAE,QAAqB,EAAQ,EAAE;IAC1F,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,SAAQ;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,SAAQ;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACpC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5E,SAAQ;YACZ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,8BAA8B,CAAA;QACtD,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAmB,EAAE,MAAc,EAAE,QAAqB,EAAQ,EAAE;IACzF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,SAAQ;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,SAAQ;YACZ,CAAC;YAED,uEAAuE;YACvE,gDAAgD;YAChD,4EAA4E;YAC5E,gEAAgE;YAChE,QAAQ;YACR,eAAe;YACf,IAAI;YAEJ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACpC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,SAAQ;YACZ,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,iCAAiC,CAAA;YAClE,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAmB,EAAE,MAAc,EAAE,QAAqB,EAAQ,EAAE;IACzF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,SAAQ;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,SAAQ;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAQ;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAChC,SAAQ;YACZ,CAAC;YAED,4CAA4C;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;YAC9B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACjC,KAAK,CAAC,GAAG,CAAC,GAAG,mCAAmC,CAAA;oBACpD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAC3B,KAAmB,EACnB,MAAc,EACd,QAAqB,EACjB,EAAE;IACN,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9B,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QAEzB,4DAA4D;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,KAAK,CAAC,CAAA;QAClF,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,iBAAiB,GAAI,OAAiC,CAAC,OAAO,CAAA;YACpE,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;oBAC/C,eAAe,EAAE,KAAK;oBACtB,OAAO,EAAG,OAAiC,CAAC,OAAO;iBACtD,CAAC,CAAA;YACN,CAAC;iBAAM,CAAC;gBACJ,kEAAkE;gBAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACtC,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBAE1D,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAmB,CAAA;oBAChD,MAAM,cAAc,GAAG,iBAAiB,CAAA;oBACxC,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAA;oBACnE,MAAM,CAAC,IAAI,CACP,0BAA0B,CACtB,WAAW,EACX,cAAc,EACd,QAAQ,CAAC,OAAO,EAChB,WAAW,CACd,CACJ,CAAA;oBAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;wBACrC,eAAe,EAAE,KAAK;wBACtB,aAAa,EAAE,cAAc,CAAC,MAAM;qBACvC,CAAC,CAAA;gBACN,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;wBACtD,eAAe,EAAE,KAAK;qBACzB,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,SAAQ;QACZ,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,kCAAkC;IAClC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA"}
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SessionState, WithParts } from "../state";
2
+ import type { Logger } from "../logger";
3
+ export declare const syncCompressionBlocks: (state: SessionState, logger: Logger, messages: WithParts[]) => void;
4
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../lib/messages/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAavC,eAAO,MAAM,qBAAqB,GAC9B,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,KACtB,IAgGF,CAAA"}
@@ -0,0 +1,85 @@
1
+ function sortBlocksByCreation(a, b) {
2
+ const createdAtDiff = a.createdAt - b.createdAt;
3
+ if (createdAtDiff !== 0) {
4
+ return createdAtDiff;
5
+ }
6
+ return a.blockId - b.blockId;
7
+ }
8
+ export const syncCompressionBlocks = (state, logger, messages) => {
9
+ const messagesState = state.prune.messages;
10
+ if (!messagesState?.blocksById?.size) {
11
+ return;
12
+ }
13
+ const messageIds = new Set(messages.map((msg) => msg.info.id));
14
+ const previousActiveBlockIds = new Set(Array.from(messagesState.blocksById.values())
15
+ .filter((block) => block.active)
16
+ .map((block) => block.blockId));
17
+ messagesState.activeBlockIds.clear();
18
+ messagesState.activeByAnchorMessageId.clear();
19
+ const now = Date.now();
20
+ const missingOriginBlockIds = [];
21
+ const orderedBlocks = Array.from(messagesState.blocksById.values()).sort(sortBlocksByCreation);
22
+ for (const block of orderedBlocks) {
23
+ const hasOriginMessage = typeof block.compressMessageId === "string" &&
24
+ block.compressMessageId.length > 0 &&
25
+ messageIds.has(block.compressMessageId);
26
+ if (!hasOriginMessage) {
27
+ block.active = false;
28
+ block.deactivatedAt = now;
29
+ block.deactivatedByBlockId = undefined;
30
+ missingOriginBlockIds.push(block.blockId);
31
+ continue;
32
+ }
33
+ for (const consumedBlockId of block.consumedBlockIds) {
34
+ if (!messagesState.activeBlockIds.has(consumedBlockId)) {
35
+ continue;
36
+ }
37
+ const consumedBlock = messagesState.blocksById.get(consumedBlockId);
38
+ if (consumedBlock) {
39
+ consumedBlock.active = false;
40
+ consumedBlock.deactivatedAt = now;
41
+ consumedBlock.deactivatedByBlockId = block.blockId;
42
+ const mappedBlockId = messagesState.activeByAnchorMessageId.get(consumedBlock.anchorMessageId);
43
+ if (mappedBlockId === consumedBlock.blockId) {
44
+ messagesState.activeByAnchorMessageId.delete(consumedBlock.anchorMessageId);
45
+ }
46
+ }
47
+ messagesState.activeBlockIds.delete(consumedBlockId);
48
+ }
49
+ block.active = true;
50
+ block.deactivatedAt = undefined;
51
+ block.deactivatedByBlockId = undefined;
52
+ messagesState.activeBlockIds.add(block.blockId);
53
+ if (messageIds.has(block.anchorMessageId)) {
54
+ messagesState.activeByAnchorMessageId.set(block.anchorMessageId, block.blockId);
55
+ }
56
+ }
57
+ for (const entry of messagesState.byMessageId.values()) {
58
+ const allBlockIds = Array.isArray(entry.allBlockIds)
59
+ ? [...new Set(entry.allBlockIds.filter((id) => Number.isInteger(id) && id > 0))]
60
+ : [];
61
+ entry.allBlockIds = allBlockIds;
62
+ entry.activeBlockIds = allBlockIds.filter((id) => messagesState.activeBlockIds.has(id));
63
+ }
64
+ const nextActiveBlockIds = messagesState.activeBlockIds;
65
+ let deactivatedCount = 0;
66
+ let reactivatedCount = 0;
67
+ for (const blockId of previousActiveBlockIds) {
68
+ if (!nextActiveBlockIds.has(blockId)) {
69
+ deactivatedCount++;
70
+ }
71
+ }
72
+ for (const blockId of nextActiveBlockIds) {
73
+ if (!previousActiveBlockIds.has(blockId)) {
74
+ reactivatedCount++;
75
+ }
76
+ }
77
+ if (missingOriginBlockIds.length > 0 || deactivatedCount > 0 || reactivatedCount > 0) {
78
+ logger.info("Synced compress block state", {
79
+ missingOriginCount: missingOriginBlockIds.length,
80
+ deactivatedCount,
81
+ reactivatedCount,
82
+ });
83
+ }
84
+ };
85
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../lib/messages/sync.ts"],"names":[],"mappings":"AAGA,SAAS,oBAAoB,CACzB,CAAyC,EACzC,CAAyC;IAEzC,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;IAC/C,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,aAAa,CAAA;IACxB,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,KAAmB,EACnB,MAAc,EACd,QAAqB,EACjB,EAAE;IACN,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC1C,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACnC,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAClC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;SAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CACrC,CAAA;IAED,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IACpC,aAAa,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAA;IAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,qBAAqB,GAAa,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAE9F,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAClB,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ;YAC3C,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAClC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAE3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAA;YACpB,KAAK,CAAC,aAAa,GAAG,GAAG,CAAA;YACzB,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAA;YACtC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACzC,SAAQ;QACZ,CAAC;QAED,KAAK,MAAM,eAAe,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBACrD,SAAQ;YACZ,CAAC;YAED,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACnE,IAAI,aAAa,EAAE,CAAC;gBAChB,aAAa,CAAC,MAAM,GAAG,KAAK,CAAA;gBAC5B,aAAa,CAAC,aAAa,GAAG,GAAG,CAAA;gBACjC,aAAa,CAAC,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAA;gBAElD,MAAM,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC,GAAG,CAC3D,aAAa,CAAC,eAAe,CAChC,CAAA;gBACD,IAAI,aAAa,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC1C,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;gBAC/E,CAAC;YACL,CAAC;YAED,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QACxD,CAAC;QAED,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QACnB,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;QAC/B,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAA;QACtC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,aAAa,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACnF,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,CAAA;QAER,KAAK,CAAC,WAAW,GAAG,WAAW,CAAA;QAC/B,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAA;IACvD,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IAExB,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,gBAAgB,EAAE,CAAA;QACtB,CAAC;IACL,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,gBAAgB,EAAE,CAAA;QACtB,CAAC;IACL,CAAC;IAED,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACvC,kBAAkB,EAAE,qBAAqB,CAAC,MAAM;YAChD,gBAAgB;YAChB,gBAAgB;SACnB,CAAC,CAAA;IACN,CAAC;AACL,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const SYSTEM = "<system-reminder>\n<instruction name=compress_tool attention_level=high>\nYou operate in a context-constrained environment. Manage context continuously to avoid buildup and preserve retrieval quality. Efficient context management is paramount for your agentic performance.\n\nThe ONLY tool you have for context management is `compress`. It replaces a contiguous portion of the conversation (inclusive) with a technical summary you produce.\n\nOPERATING STANCE\nPrefer short, closed, summary-safe ranges.\nWhen multiple independent stale ranges exist, prefer several short compressions (in parallel when possible) over one large-range compression.\n\nUse `compress` as steady housekeeping while you work.\n\nCADENCE, SIGNALS, AND LATENCY\n\n- No fixed threshold mandates compression\n- Prioritize closedness and independence over raw range size\n- Prefer smaller, regular compressions over infrequent massive compressions for better latency and summary quality\n- When multiple independent stale ranges are ready, batch compressions in parallel\n\nBOUNDARY MATCHING\n`compress` uses inclusive ID boundaries via `content.startId` and `content.endId`. IDs are injected in context as message refs (`mNNNN`) and compressed block refs (`bN`).\n\nEach message has an ID inside XML metadata tags like `<dcp-message-id>...</dcp-message-id>`.\nTreat these tags as boundary metadata only, not as tool result content.\n\nOnly choose IDs currently visible in context. Do not invent IDs.\n\nRESPECT THE CHRONOLOGY OF THE RANGE\n`content.startId` MUST refer to an item above/before `content.endId`\n`content.endId` MUST refer to an item below/after `content.startId`\nAlways provide boundaries via the tool schema fields `content.startId` and `content.endId`.\n\nTHE SUMMARY STANDARD\nYour summary MUST be technical and specific enough to preserve FULL understanding of what transpired, such that NO ambiguity remains about what asked, found, planned, done, or decided - yet noise free\n\nWhen compressing ranges that include user messages, preserve user intent faithfully. Do not reinterpret or redirect the request. Directly quote short user messages when that is the most reliable way to preserve exact meaning.\n\nPreserve key details: file paths, symbols, signatures, constraints, decisions, outcomes, commands, etc.. in order to produce a high fidelity, authoritative technical record\n\nDO NOT COMPRESS IF\n\n- raw context is still relevant and needed for edits or precise references\n- the task in the target range is still actively in progress\n\nEvaluate conversation signal-to-noise REGULARLY. Use `compress` deliberately with quality-first summaries. Prefer multiple short, independent range compressions before considering broader ranges, and prioritize ranges intelligently to maintain a high-signal context window that supports your agency\n\nIt is of your responsibility to keep a sharp, high-quality context window for optimal performance\n</instruction>\n\n<manual><instruction name=manual_mode policy_level=critical>\nManual mode is enabled. Do NOT use compress unless the user has explicitly triggered it through a manual marker.\n\nOnly use the compress tool after seeing `<compress triggered manually>` in the current user instruction context.\n\nAfter completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.\n</instruction></manual>\n\n</system-reminder>\n";
1
+ export declare const SYSTEM = "<system-reminder>\n<instruction name=compress_tool attention_level=high>\nYou operate in a context-constrained environment. Manage context continuously to avoid buildup and preserve retrieval quality. Efficient context management is paramount for your agentic performance.\n\nThe ONLY tool you have for context management is `compress`. It replaces a contiguous portion of the conversation (inclusive) with a technical summary you produce.\n\nOPERATING STANCE\nPrefer short, closed, summary-safe ranges.\nWhen multiple independent stale ranges exist, prefer several short compressions (in parallel when possible) over one large-range compression.\n\nUse `compress` as steady housekeeping while you work.\n\nCADENCE, SIGNALS, AND LATENCY\n\n- No fixed threshold mandates compression\n- Prioritize closedness and independence over raw range size\n- Prefer smaller, regular compressions over infrequent massive compressions for better latency and summary quality\n- When multiple independent stale ranges are ready, batch compressions in parallel\n\nBOUNDARY MATCHING\n`compress` uses inclusive ID boundaries via `content.startId` and `content.endId`. IDs are injected in context as message refs (`mNNNN`) and compressed block refs (`bN`).\n\nEach message has an ID inside XML metadata tags like `<dcp-message-id>...</dcp-message-id>`.\nTreat these tags as boundary metadata only, not as tool result content.\n\nOnly choose IDs currently visible in context. Do not invent IDs.\n\nRESPECT THE CHRONOLOGY OF THE RANGE\n`content.startId` MUST refer to an item above/before `content.endId`\n`content.endId` MUST refer to an item below/after `content.startId`\nAlways provide boundaries via the tool schema fields `content.startId` and `content.endId`.\n\nTHE SUMMARY STANDARD\nYour summary MUST be technical and specific enough to preserve FULL understanding of what transpired, such that NO ambiguity remains about what asked, found, planned, done, or decided - yet noise free\n\nWhen compressing ranges that include user messages, preserve user intent faithfully. Do not reinterpret or redirect the request. Directly quote short user messages when that is the most reliable way to preserve exact meaning.\n\nPreserve key details: file paths, symbols, signatures, constraints, decisions, outcomes, commands, etc.. in order to produce a high fidelity, authoritative technical record\n\nDO NOT COMPRESS IF\n\n- raw context is still relevant and needed for edits or precise references\n- the task in the target range is still actively in progress\n\nEvaluate conversation signal-to-noise REGULARLY. Use `compress` deliberately with quality-first summaries. Prefer multiple short, independent range compressions before considering broader ranges, and prioritize ranges intelligently to maintain a high-signal context window that supports your agency\n\nIt is of your responsibility to keep a sharp, high-quality context window for optimal performance\n</instruction>\n\n<manual><instruction name=manual_mode policy_level=critical>\nManual mode is enabled. Do NOT use compress unless the user has explicitly triggered it through a manual marker.\n\nOnly use the compress tool after seeing `<compress triggered manually>` in the current user instruction context.\n\nAfter completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.\n</instruction></manual>\n\n<subagent><instruction name=subagent_prompt_safety policy_level=critical>\nYou are operating in a subagent environment.\n\nThe initial subagent instruction is imperative and must be followed exactly.\nIt is the only user message intentionally not assigned a message ID, and therefore is not eligible for compression.\nAll subsequent messages in the session will have IDs.\n</instruction></subagent>\n\n</system-reminder>\n";
2
2
  //# sourceMappingURL=system.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/system.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,87GA0DlB,CAAA"}
1
+ {"version":3,"file":"system.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/system.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,g1HAkElB,CAAA"}
@@ -58,6 +58,14 @@ Only use the compress tool after seeing \`<compress triggered manually>\` in the
58
58
  After completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.
59
59
  </instruction></manual>
60
60
 
61
+ <subagent><instruction name=subagent_prompt_safety policy_level=critical>
62
+ You are operating in a subagent environment.
63
+
64
+ The initial subagent instruction is imperative and must be followed exactly.
65
+ It is the only user message intentionally not assigned a message ID, and therefore is not eligible for compression.
66
+ All subsequent messages in the session will have IDs.
67
+ </instruction></subagent>
68
+
61
69
  </system-reminder>
62
70
  `;
63
71
  //# sourceMappingURL=system.generated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/system.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,0DAA0D;AAC1D,+DAA+D;AAE/D,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DrB,CAAA"}
1
+ {"version":3,"file":"system.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/system.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,0DAA0D;AAC1D,+DAA+D;AAE/D,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkErB,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare function renderSystemPrompt(manual?: boolean): string;
1
+ export declare function renderSystemPrompt(manual?: boolean, subagent?: boolean): string;
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAU3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAa/E"}
@@ -1,10 +1,16 @@
1
1
  import { SYSTEM as SYSTEM_PROMPT } from "./_codegen/system.generated";
2
- export function renderSystemPrompt(manual) {
2
+ function stripConditionalTag(content, tagName) {
3
+ const regex = new RegExp(`<${tagName}>[\\s\\S]*?</${tagName}>`, "g");
4
+ return content.replace(regex, "");
5
+ }
6
+ export function renderSystemPrompt(manual, subagent) {
3
7
  let result = SYSTEM_PROMPT;
4
8
  result = result.replace(/\/\/.*?\/\//g, "");
5
9
  if (!manual) {
6
- const regex = new RegExp(`<manual>[\\s\\S]*?</manual>`, "g");
7
- result = result.replace(regex, "");
10
+ result = stripConditionalTag(result, "manual");
11
+ }
12
+ if (!subagent) {
13
+ result = stripConditionalTag(result, "subagent");
8
14
  }
9
15
  return result.replace(/\n([ \t]*\n)+/g, "\n\n").trim();
10
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAErE,MAAM,UAAU,kBAAkB,CAAC,MAAgB;IAC/C,IAAI,MAAM,GAAG,aAAa,CAAA;IAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QAC5D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAErE,SAAS,mBAAmB,CAAC,OAAe,EAAE,OAAe;IACzD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,gBAAgB,OAAO,GAAG,EAAE,GAAG,CAAC,CAAA;IACpE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAgB,EAAE,QAAkB;IACnE,IAAI,MAAM,GAAG,aAAa,CAAA;IAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-utils.d.ts","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGjD,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,EAAE,KAAK,SAAS,KAAG,OAQxE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC3B,UAAU,SAAS,EAAE,EACrB,aAAa,MAAM,KACpB,SAAS,GAAG,IASd,CAAA"}
1
+ {"version":3,"file":"shared-utils.d.ts","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGjD,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,EAAE,KAAK,SAAS,KAAG,OASxE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC3B,UAAU,SAAS,EAAE,EACrB,aAAa,MAAM,KACpB,SAAS,GAAG,IASd,CAAA"}
@@ -3,7 +3,8 @@ export const isMessageCompacted = (state, msg) => {
3
3
  if (msg.info.time.created < state.lastCompaction) {
4
4
  return true;
5
5
  }
6
- if (state.prune.messages.has(msg.info.id)) {
6
+ const pruneEntry = state.prune.messages.byMessageId.get(msg.info.id);
7
+ if (pruneEntry && pruneEntry.activeBlockIds.length > 0) {
7
8
  return true;
8
9
  }
9
10
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"shared-utils.js","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,GAAc,EAAW,EAAE;IAC/E,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAA;IACf,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,QAAqB,EACrB,UAAmB,EACH,EAAE;IAClB,MAAM,KAAK,GAAG,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"shared-utils.js","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,GAAc,EAAW,EAAE;IAC/E,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpE,IAAI,UAAU,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,QAAqB,EACrB,UAAmB,EACH,EAAE;IAClB,MAAM,KAAK,GAAG,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA"}
@@ -3,14 +3,19 @@
3
3
  * Persists pruned tool IDs across sessions so they survive OpenCode restarts.
4
4
  * Storage location: ~/.local/share/opencode/storage/plugin/dcp/{sessionId}.json
5
5
  */
6
- import type { SessionState, SessionStats, CompressSummary } from "./types";
6
+ import type { CompressionBlock, PrunedMessageEntry, SessionState, SessionStats } from "./types";
7
7
  import type { Logger } from "../logger";
8
8
  /** Prune state as stored on disk */
9
+ export interface PersistedPruneMessagesState {
10
+ byMessageId: Record<string, PrunedMessageEntry>;
11
+ blocksById: Record<string, CompressionBlock>;
12
+ activeBlockIds: number[];
13
+ activeByAnchorMessageId: Record<string, number>;
14
+ nextBlockId: number;
15
+ }
9
16
  export interface PersistedPrune {
10
17
  tools?: Record<string, number>;
11
- messages?: Record<string, number>;
12
- toolIds?: string[];
13
- messageIds?: string[];
18
+ messages?: PersistedPruneMessagesState;
14
19
  }
15
20
  export interface PersistedNudges {
16
21
  contextLimitAnchors: string[];
@@ -20,7 +25,6 @@ export interface PersistedNudges {
20
25
  export interface PersistedSessionState {
21
26
  sessionName?: string;
22
27
  prune: PersistedPrune;
23
- compressSummaries: CompressSummary[];
24
28
  nudges: PersistedNudges;
25
29
  stats: SessionStats;
26
30
  lastUpdated: string;
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAE3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,cAAc,CAAA;IACrB,iBAAiB,EAAE,eAAe,EAAE,CAAA;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACtB;AAoBD,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CA4GvC;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2ClF"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,oCAAoC;AACpC,MAAM,WAAW,2BAA2B;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,WAAW,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,2BAA2B,CAAA;CACzC;AAED,MAAM,WAAW,eAAe;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,cAAc,CAAA;IACrB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACtB;AAoBD,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAwFvC;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2ClF"}
@@ -26,9 +26,14 @@ export async function saveSessionState(sessionState, logger, sessionName) {
26
26
  sessionName: sessionName,
27
27
  prune: {
28
28
  tools: Object.fromEntries(sessionState.prune.tools),
29
- messages: Object.fromEntries(sessionState.prune.messages),
29
+ messages: {
30
+ byMessageId: Object.fromEntries(sessionState.prune.messages.byMessageId),
31
+ blocksById: Object.fromEntries(Array.from(sessionState.prune.messages.blocksById.entries()).map(([blockId, block]) => [String(blockId), block])),
32
+ activeBlockIds: Array.from(sessionState.prune.messages.activeBlockIds),
33
+ activeByAnchorMessageId: Object.fromEntries(sessionState.prune.messages.activeByAnchorMessageId),
34
+ nextBlockId: sessionState.prune.messages.nextBlockId,
35
+ },
30
36
  },
31
- compressSummaries: sessionState.compressSummaries,
32
37
  nudges: {
33
38
  contextLimitAnchors: Array.from(sessionState.nudges.contextLimitAnchors),
34
39
  turnNudgeAnchors: Array.from(sessionState.nudges.turnNudgeAnchors),
@@ -60,12 +65,13 @@ export async function loadSessionState(sessionId, logger) {
60
65
  }
61
66
  const content = await fs.readFile(filePath, "utf-8");
62
67
  const state = JSON.parse(content);
63
- const hasNewFormat = state?.prune?.tools && typeof state.prune.tools === "object";
64
- const hasLegacyFormat = Array.isArray(state?.prune?.toolIds);
68
+ const hasPruneTools = state?.prune?.tools && typeof state.prune.tools === "object";
69
+ const hasPruneMessages = state?.prune?.messages && typeof state.prune.messages === "object";
65
70
  const hasNudgeFormat = state?.nudges && typeof state.nudges === "object";
66
71
  if (!state ||
67
72
  !state.prune ||
68
- (!hasNewFormat && !hasLegacyFormat) ||
73
+ !hasPruneTools ||
74
+ !hasPruneMessages ||
69
75
  !state.stats ||
70
76
  !hasNudgeFormat) {
71
77
  logger.warn("Invalid session state file, ignoring", {
@@ -73,24 +79,6 @@ export async function loadSessionState(sessionId, logger) {
73
79
  });
74
80
  return null;
75
81
  }
76
- if (Array.isArray(state.compressSummaries)) {
77
- const validSummaries = state.compressSummaries.filter((s) => s !== null &&
78
- typeof s === "object" &&
79
- typeof s.blockId === "number" &&
80
- typeof s.anchorMessageId === "string" &&
81
- typeof s.summary === "string");
82
- if (validSummaries.length !== state.compressSummaries.length) {
83
- logger.warn("Filtered out malformed compressSummaries entries", {
84
- sessionId: sessionId,
85
- original: state.compressSummaries.length,
86
- valid: validSummaries.length,
87
- });
88
- }
89
- state.compressSummaries = validSummaries;
90
- }
91
- else {
92
- state.compressSummaries = [];
93
- }
94
82
  const rawContextLimitAnchors = Array.isArray(state.nudges.contextLimitAnchors)
95
83
  ? state.nudges.contextLimitAnchors
96
84
  : [];
@@ -165,10 +153,10 @@ export async function loadAllSessionStats(logger) {
165
153
  result.totalTokens += state.stats.totalPruneTokens;
166
154
  result.totalTools += state.prune.tools
167
155
  ? Object.keys(state.prune.tools).length
168
- : (state.prune.toolIds?.length ?? 0);
169
- result.totalMessages += state.prune.messages
170
- ? Object.keys(state.prune.messages).length
171
- : (state.prune.messageIds?.length ?? 0);
156
+ : 0;
157
+ result.totalMessages += state.prune.messages?.byMessageId
158
+ ? Object.keys(state.prune.messages.byMessageId).length
159
+ : 0;
172
160
  result.sessionCount++;
173
161
  }
174
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAYvC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,mBAAmB,OAAO,KAC3B,OAAO,CAAC,IAAI,CAwCd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAiCjD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CA+B3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwCf"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAcvC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,mBAAmB,OAAO,KAC3B,OAAO,CAAC,IAAI,CAwCd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAiCjD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CA+B3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -1,5 +1,5 @@
1
1
  import { loadSessionState, saveSessionState } from "./persistence";
2
- import { isSubAgentSession, findLastCompactionTimestamp, countTurns, resetOnCompaction, loadPruneMap, collectTurnNudgeAnchors, } from "./utils";
2
+ import { isSubAgentSession, findLastCompactionTimestamp, countTurns, resetOnCompaction, createPruneMessagesState, loadPruneMessagesState, loadPruneMap, collectTurnNudgeAnchors, } from "./utils";
3
3
  import { getLastUserMessage } from "../shared-utils";
4
4
  export const checkSession = async (client, state, logger, messages, manualModeDefault) => {
5
5
  const lastUserMessage = getLastUserMessage(messages);
@@ -39,9 +39,8 @@ export function createSessionState() {
39
39
  pendingManualTrigger: null,
40
40
  prune: {
41
41
  tools: new Map(),
42
- messages: new Map(),
42
+ messages: createPruneMessagesState(),
43
43
  },
44
- compressSummaries: [],
45
44
  nudges: {
46
45
  contextLimitAnchors: new Set(),
47
46
  turnNudgeAnchors: new Set(),
@@ -52,11 +51,12 @@ export function createSessionState() {
52
51
  totalPruneTokens: 0,
53
52
  },
54
53
  toolParameters: new Map(),
54
+ subAgentResultCache: new Map(),
55
55
  toolIdList: [],
56
56
  messageIds: {
57
57
  byRawId: new Map(),
58
58
  byRef: new Map(),
59
- nextRef: 0,
59
+ nextRef: 1,
60
60
  },
61
61
  lastCompaction: 0,
62
62
  currentTurn: 0,
@@ -72,9 +72,8 @@ export function resetSessionState(state) {
72
72
  state.pendingManualTrigger = null;
73
73
  state.prune = {
74
74
  tools: new Map(),
75
- messages: new Map(),
75
+ messages: createPruneMessagesState(),
76
76
  };
77
- state.compressSummaries = [];
78
77
  state.nudges = {
79
78
  contextLimitAnchors: new Set(),
80
79
  turnNudgeAnchors: new Set(),
@@ -85,11 +84,12 @@ export function resetSessionState(state) {
85
84
  totalPruneTokens: 0,
86
85
  };
87
86
  state.toolParameters.clear();
87
+ state.subAgentResultCache.clear();
88
88
  state.toolIdList = [];
89
89
  state.messageIds = {
90
90
  byRawId: new Map(),
91
91
  byRef: new Map(),
92
- nextRef: 0,
92
+ nextRef: 1,
93
93
  };
94
94
  state.lastCompaction = 0;
95
95
  state.currentTurn = 0;
@@ -116,9 +116,8 @@ export async function ensureSessionInitialized(client, state, sessionId, logger,
116
116
  if (persisted === null) {
117
117
  return;
118
118
  }
119
- state.prune.tools = loadPruneMap(persisted.prune.tools, persisted.prune.toolIds);
120
- state.prune.messages = loadPruneMap(persisted.prune.messages, persisted.prune.messageIds);
121
- state.compressSummaries = persisted.compressSummaries || [];
119
+ state.prune.tools = loadPruneMap(persisted.prune.tools);
120
+ state.prune.messages = loadPruneMessagesState(persisted.prune.messages);
122
121
  state.nudges.contextLimitAnchors = new Set(persisted.nudges.contextLimitAnchors || []);
123
122
  state.nudges.turnNudgeAnchors = new Set([
124
123
  ...state.nudges.turnNudgeAnchors,
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"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"}
@@ -16,14 +16,41 @@ export interface SessionStats {
16
16
  pruneTokenCounter: number;
17
17
  totalPruneTokens: number;
18
18
  }
19
- export interface CompressSummary {
19
+ export interface PrunedMessageEntry {
20
+ tokenCount: number;
21
+ allBlockIds: number[];
22
+ activeBlockIds: number[];
23
+ }
24
+ export interface CompressionBlock {
20
25
  blockId: number;
26
+ active: boolean;
27
+ topic: string;
28
+ startId: string;
29
+ endId: string;
21
30
  anchorMessageId: string;
31
+ compressMessageId: string;
32
+ includedBlockIds: number[];
33
+ consumedBlockIds: number[];
34
+ parentBlockIds: number[];
35
+ directMessageIds: string[];
36
+ directToolIds: string[];
37
+ effectiveMessageIds: string[];
38
+ effectiveToolIds: string[];
39
+ createdAt: number;
40
+ deactivatedAt?: number;
41
+ deactivatedByBlockId?: number;
22
42
  summary: string;
23
43
  }
44
+ export interface PruneMessagesState {
45
+ byMessageId: Map<string, PrunedMessageEntry>;
46
+ blocksById: Map<number, CompressionBlock>;
47
+ activeBlockIds: Set<number>;
48
+ activeByAnchorMessageId: Map<string, number>;
49
+ nextBlockId: number;
50
+ }
24
51
  export interface Prune {
25
52
  tools: Map<string, number>;
26
- messages: Map<string, number>;
53
+ messages: PruneMessagesState;
27
54
  }
28
55
  export interface PendingManualTrigger {
29
56
  sessionId: string;
@@ -45,10 +72,10 @@ export interface SessionState {
45
72
  manualMode: boolean;
46
73
  pendingManualTrigger: PendingManualTrigger | null;
47
74
  prune: Prune;
48
- compressSummaries: CompressSummary[];
49
75
  nudges: Nudges;
50
76
  stats: SessionStats;
51
77
  toolParameters: Map<string, ToolParameterEntry>;
78
+ subAgentResultCache: Map<string, string>;
52
79
  toolIdList: string[];
53
80
  messageIds: MessageIdState;
54
81
  lastCompaction: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,MAAM;IACnB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACjD,KAAK,EAAE,KAAK,CAAA;IACZ,iBAAiB,EAAE,eAAe,EAAE,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,EAAE,cAAc,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
- import type { SessionState, WithParts } from "./types";
1
+ import type { CompressionBlock, PruneMessagesState, PrunedMessageEntry, SessionState, WithParts } from "./types";
2
+ interface PersistedPruneMessagesState {
3
+ byMessageId?: Record<string, PrunedMessageEntry>;
4
+ blocksById?: Record<string, CompressionBlock>;
5
+ activeBlockIds?: number[];
6
+ activeByAnchorMessageId?: Record<string, number>;
7
+ nextBlockId?: number;
8
+ }
2
9
  export declare function isSubAgentSession(client: any, sessionID: string): Promise<boolean>;
3
10
  export declare function findLastCompactionTimestamp(messages: WithParts[]): number;
4
11
  export declare function countTurns(state: SessionState, messages: WithParts[]): number;
5
- export declare function loadPruneMap(obj?: Record<string, number>, legacyArr?: string[]): Map<string, number>;
12
+ export declare function loadPruneMap(obj?: Record<string, number>): Map<string, number>;
13
+ export declare function createPruneMessagesState(): PruneMessagesState;
14
+ export declare function loadPruneMessagesState(persisted?: PersistedPruneMessagesState): PruneMessagesState;
6
15
  export declare function collectTurnNudgeAnchors(messages: WithParts[]): Set<string>;
7
16
  export declare function resetOnCompaction(state: SessionState): void;
17
+ export {};
8
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAItD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAQzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAc7E;AAED,wBAAgB,YAAY,CACxB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIrB;AAcD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CA0B1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAU3D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACZ,MAAM,SAAS,CAAA;AAIhB,UAAU,2BAA2B;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAQzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAc7E;AAED,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9E;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAQ7D;AAED,wBAAgB,sBAAsB,CAClC,SAAS,CAAC,EAAE,2BAA2B,GACxC,kBAAkB,CAoIpB;AAcD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CA0B1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAS3D"}