@tarquinen/opencode-dcp 3.2.2-beta0 → 3.2.4-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 (132) hide show
  1. package/README.md +4 -16
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/commands/compression-targets.d.ts +1 -0
  6. package/dist/lib/commands/compression-targets.d.ts.map +1 -1
  7. package/dist/lib/commands/compression-targets.js +1 -0
  8. package/dist/lib/commands/compression-targets.js.map +1 -1
  9. package/dist/lib/commands/manual.js +1 -1
  10. package/dist/lib/commands/manual.js.map +1 -1
  11. package/dist/lib/commands/stats.d.ts.map +1 -1
  12. package/dist/lib/commands/stats.js +41 -6
  13. package/dist/lib/commands/stats.js.map +1 -1
  14. package/dist/lib/compress/message-utils.d.ts +2 -2
  15. package/dist/lib/compress/message-utils.d.ts.map +1 -1
  16. package/dist/lib/compress/message-utils.js +87 -31
  17. package/dist/lib/compress/message-utils.js.map +1 -1
  18. package/dist/lib/compress/message.d.ts.map +1 -1
  19. package/dist/lib/compress/message.js +10 -6
  20. package/dist/lib/compress/message.js.map +1 -1
  21. package/dist/lib/compress/pipeline.d.ts.map +1 -1
  22. package/dist/lib/compress/pipeline.js +2 -0
  23. package/dist/lib/compress/pipeline.js.map +1 -1
  24. package/dist/lib/compress/range.d.ts.map +1 -1
  25. package/dist/lib/compress/range.js +6 -2
  26. package/dist/lib/compress/range.js.map +1 -1
  27. package/dist/lib/compress/state.d.ts +2 -1
  28. package/dist/lib/compress/state.d.ts.map +1 -1
  29. package/dist/lib/compress/state.js +16 -0
  30. package/dist/lib/compress/state.js.map +1 -1
  31. package/dist/lib/compress/timing.d.ts +18 -0
  32. package/dist/lib/compress/timing.d.ts.map +1 -0
  33. package/dist/lib/compress/timing.js +42 -0
  34. package/dist/lib/compress/timing.js.map +1 -0
  35. package/dist/lib/compress/types.d.ts +2 -0
  36. package/dist/lib/compress/types.d.ts.map +1 -1
  37. package/dist/lib/config.js +1 -1
  38. package/dist/lib/config.js.map +1 -1
  39. package/dist/lib/hooks.d.ts +3 -0
  40. package/dist/lib/hooks.d.ts.map +1 -1
  41. package/dist/lib/hooks.js +72 -2
  42. package/dist/lib/hooks.js.map +1 -1
  43. package/dist/lib/messages/inject/inject.js +2 -2
  44. package/dist/lib/messages/inject/utils.d.ts +0 -1
  45. package/dist/lib/messages/inject/utils.d.ts.map +1 -1
  46. package/dist/lib/messages/inject/utils.js +1 -27
  47. package/dist/lib/messages/inject/utils.js.map +1 -1
  48. package/dist/lib/messages/utils.d.ts +1 -1
  49. package/dist/lib/messages/utils.d.ts.map +1 -1
  50. package/dist/lib/messages/utils.js +5 -12
  51. package/dist/lib/messages/utils.js.map +1 -1
  52. package/dist/lib/prompts/compress-message.d.ts +1 -1
  53. package/dist/lib/prompts/compress-message.d.ts.map +1 -1
  54. package/dist/lib/prompts/compress-message.js +11 -12
  55. package/dist/lib/prompts/compress-message.js.map +1 -1
  56. package/dist/lib/prompts/compress-range.d.ts +1 -1
  57. package/dist/lib/prompts/compress-range.d.ts.map +1 -1
  58. package/dist/lib/prompts/compress-range.js +1 -1
  59. package/dist/lib/prompts/context-limit-nudge.d.ts +1 -1
  60. package/dist/lib/prompts/context-limit-nudge.d.ts.map +1 -1
  61. package/dist/lib/prompts/context-limit-nudge.js +3 -9
  62. package/dist/lib/prompts/context-limit-nudge.js.map +1 -1
  63. package/dist/lib/prompts/extensions/nudge.d.ts +5 -0
  64. package/dist/lib/prompts/extensions/nudge.d.ts.map +1 -0
  65. package/dist/lib/prompts/extensions/nudge.js +35 -0
  66. package/dist/lib/prompts/extensions/nudge.js.map +1 -0
  67. package/dist/lib/prompts/extensions/system.d.ts +4 -0
  68. package/dist/lib/prompts/extensions/system.d.ts.map +1 -0
  69. package/dist/lib/prompts/extensions/system.js +30 -0
  70. package/dist/lib/prompts/extensions/system.js.map +1 -0
  71. package/dist/lib/prompts/extensions/tool.d.ts +3 -0
  72. package/dist/lib/prompts/extensions/tool.d.ts.map +1 -0
  73. package/dist/lib/prompts/extensions/tool.js +34 -0
  74. package/dist/lib/prompts/extensions/tool.js.map +1 -0
  75. package/dist/lib/prompts/index.d.ts +1 -1
  76. package/dist/lib/prompts/index.d.ts.map +1 -1
  77. package/dist/lib/prompts/index.js +12 -13
  78. package/dist/lib/prompts/index.js.map +1 -1
  79. package/dist/lib/prompts/iteration-nudge.d.ts +1 -1
  80. package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -1
  81. package/dist/lib/prompts/iteration-nudge.js +0 -2
  82. package/dist/lib/prompts/iteration-nudge.js.map +1 -1
  83. package/dist/lib/prompts/store.d.ts +2 -2
  84. package/dist/lib/prompts/store.d.ts.map +1 -1
  85. package/dist/lib/prompts/store.js +6 -6
  86. package/dist/lib/prompts/store.js.map +1 -1
  87. package/dist/lib/prompts/system.d.ts +1 -1
  88. package/dist/lib/prompts/system.d.ts.map +1 -1
  89. package/dist/lib/prompts/system.js +0 -13
  90. package/dist/lib/prompts/system.js.map +1 -1
  91. package/dist/lib/prompts/turn-nudge.d.ts +1 -1
  92. package/dist/lib/prompts/turn-nudge.d.ts.map +1 -1
  93. package/dist/lib/prompts/turn-nudge.js +1 -2
  94. package/dist/lib/prompts/turn-nudge.js.map +1 -1
  95. package/dist/lib/state/persistence.d.ts.map +1 -1
  96. package/dist/lib/state/persistence.js +13 -16
  97. package/dist/lib/state/persistence.js.map +1 -1
  98. package/dist/lib/state/state.d.ts.map +1 -1
  99. package/dist/lib/state/state.js +9 -0
  100. package/dist/lib/state/state.js.map +1 -1
  101. package/dist/lib/state/types.d.ts +4 -0
  102. package/dist/lib/state/types.d.ts.map +1 -1
  103. package/dist/lib/state/utils.d.ts +7 -6
  104. package/dist/lib/state/utils.d.ts.map +1 -1
  105. package/dist/lib/state/utils.js +17 -0
  106. package/dist/lib/state/utils.js.map +1 -1
  107. package/lib/compress/index.ts +3 -0
  108. package/lib/compress/message-utils.ts +250 -0
  109. package/lib/compress/message.ts +137 -0
  110. package/lib/compress/pipeline.ts +106 -0
  111. package/lib/compress/protected-content.ts +154 -0
  112. package/lib/compress/range-utils.ts +308 -0
  113. package/lib/compress/range.ts +180 -0
  114. package/lib/compress/search.ts +267 -0
  115. package/lib/compress/state.ts +268 -0
  116. package/lib/compress/timing.ts +77 -0
  117. package/lib/compress/types.ts +108 -0
  118. package/lib/config.ts +1 -1
  119. package/lib/message-ids.ts +172 -0
  120. package/lib/state/persistence.ts +20 -24
  121. package/lib/state/state.ts +10 -0
  122. package/lib/state/types.ts +4 -0
  123. package/lib/state/utils.ts +30 -6
  124. package/package.json +12 -5
  125. package/dist/lib/prompts/internal-overlays.d.ts +0 -5
  126. package/dist/lib/prompts/internal-overlays.d.ts.map +0 -1
  127. package/dist/lib/prompts/internal-overlays.js +0 -49
  128. package/dist/lib/prompts/internal-overlays.js.map +0 -1
  129. package/dist/lib/prompts/message-priority-guidance.d.ts +0 -2
  130. package/dist/lib/prompts/message-priority-guidance.d.ts.map +0 -1
  131. package/dist/lib/prompts/message-priority-guidance.js +0 -9
  132. package/dist/lib/prompts/message-priority-guidance.js.map +0 -1
package/README.md CHANGED
@@ -9,25 +9,13 @@ Automatically reduces token usage in OpenCode by managing conversation context.
9
9
 
10
10
  ## Installation
11
11
 
12
- Add to your OpenCode configs:
12
+ Install with the OpenCode CLI:
13
13
 
14
- ```jsonc
15
- // opencode.jsonc
16
- {
17
- "plugin": ["@tarquinen/opencode-dcp@beta"],
18
- }
14
+ ```bash
15
+ opencode plugin @tarquinen/opencode-dcp@beta --global
19
16
  ```
20
17
 
21
- ```jsonc
22
- // tui.jsonc
23
- {
24
- "plugin": ["@tarquinen/opencode-dcp@beta"],
25
- }
26
- ```
27
-
28
- Using `@beta` keeps you on the current prerelease channel when OpenCode starts.
29
-
30
- Restart OpenCode. The plugin will automatically start optimizing your sessions.
18
+ This installs the package and adds it to your global OpenCode config.
31
19
 
32
20
  ## How It Works
33
21
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;AAwIjD,wBAGC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;AAyIjD,wBAGC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { compressDisabledByOpencode, hasExplicitToolPermission, } from "./lib/ho
4
4
  import { Logger } from "./lib/logger";
5
5
  import { createSessionState } from "./lib/state";
6
6
  import { PromptStore } from "./lib/prompts/store";
7
- import { createChatMessageHandler, createChatMessageTransformHandler, createCommandExecuteHandler, createSystemPromptHandler, createTextCompleteHandler, } from "./lib/hooks";
7
+ import { createChatMessageHandler, createChatMessageTransformHandler, createCommandExecuteHandler, createEventHandler, createSystemPromptHandler, createTextCompleteHandler, } from "./lib/hooks";
8
8
  import { configureClientAuth, isSecureMode } from "./lib/auth";
9
9
  const id = "opencode-dynamic-context-pruning";
10
10
  const server = (async (ctx) => {
@@ -39,6 +39,7 @@ const server = (async (ctx) => {
39
39
  "chat.message": createChatMessageHandler(state, logger, config, hostPermissions),
40
40
  "experimental.text.complete": createTextCompleteHandler(),
41
41
  "command.execute.before": createCommandExecuteHandler(ctx.client, state, logger, config, ctx.directory, hostPermissions),
42
+ event: createEventHandler(state, logger),
42
43
  tool: {
43
44
  ...(config.compress.permission !== "deny" && {
44
45
  compress: config.compress.mode === "message"
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,GAE5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EACH,wBAAwB,EACxB,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAC5B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,EAAE,GAAG,kCAAkC,CAAA;AAE7C,MAAM,MAAM,GAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACzF,MAAM,eAAe,GAA2B;QAC5C,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,EAAE;KACb,CAAA;IAED,IAAI,YAAY,EAAE,EAAE,CAAC;QACjB,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,wEAAwE;IAC5E,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAG;QACxB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;KACV,CAAA;IAED,OAAO;QACH,oCAAoC,EAAE,yBAAyB,CAC3D,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,CACV;QAED,sCAAsC,EAAE,iCAAiC,CACrE,GAAG,CAAC,MAAM,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,eAAe,CACX;QACR,cAAc,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;QAChF,4BAA4B,EAAE,yBAAyB,EAAE;QACzD,wBAAwB,EAAE,2BAA2B,CACjD,GAAG,CAAC,MAAM,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,GAAG,CAAC,SAAS,EACb,eAAe,CAClB;QACD,IAAI,EAAE;YACF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,IAAI;gBACzC,QAAQ,EACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;oBAC9B,CAAC,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;oBAChD,CAAC,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;aACzD,CAAC;SACL;QACD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC7B,IACI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM;gBACrC,0BAA0B,CAAC,cAAc,CAAC,UAAU,CAAC,EACvD,CAAC;gBACC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAA;YACvC,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACnE,cAAc,CAAC,OAAO,KAAK,EAAE,CAAA;gBAC7B,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;oBAC5B,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,6BAA6B;iBAC7C,CAAA;YACL,CAAC;YAED,MAAM,UAAU,GAAa,EAAE,CAAA;YAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC/E,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC/B,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAA;gBAC7E,cAAc,CAAC,YAAY,GAAG;oBAC1B,GAAG,cAAc,CAAC,YAAY;oBAC9B,aAAa,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,UAAU,CAAC;iBAC1D,CAAA;YACL,CAAC;YAED,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;gBACpE,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,IAAI,EAAE,CAAA;gBAClD,cAAc,CAAC,UAAU,GAAG;oBACxB,GAAG,UAAU;oBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;iBAClB,CAAA;YAC1B,CAAC;YAED,eAAe,CAAC,MAAM,GAAG,cAAc,CAAC,UAAU,CAAA;YAClD,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CACvC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC9D,IAAI;gBACJ,KAAK,EAAE,UAAU;aACpB,CAAC,CACL,CAAA;QACL,CAAC;KACJ,CAAA;AACL,CAAC,CAAkB,CAAA;AAEnB,eAAe;IACX,EAAE;IACF,MAAM;CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface CompressionTarget {
4
4
  runId: number;
5
5
  topic: string;
6
6
  compressedTokens: number;
7
+ durationMs: number;
7
8
  grouped: boolean;
8
9
  blocks: CompressionBlock[];
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compression-targets.d.ts","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AA0DD,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,kBAAkB,GAClC,iBAAiB,EAAE,CAMrB;AAED,wBAAgB,mCAAmC,CAC/C,aAAa,EAAE,kBAAkB,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,GACjC,iBAAiB,EAAE,CA+BrB;AAED,wBAAgB,wBAAwB,CACpC,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAkB1B"}
1
+ {"version":3,"file":"compression-targets.d.ts","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AA2DD,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,kBAAkB,GAClC,iBAAiB,EAAE,CAMrB;AAED,wBAAgB,mCAAmC,CAC/C,aAAa,EAAE,kBAAkB,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,GACjC,iBAAiB,EAAE,CA+BrB;AAED,wBAAgB,wBAAwB,CACpC,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAkB1B"}
@@ -13,6 +13,7 @@ function buildTarget(blocks) {
13
13
  runId: first.runId,
14
14
  topic: grouped ? first.batchTopic || first.topic : first.topic,
15
15
  compressedTokens: ordered.reduce((total, block) => total + block.compressedTokens, 0),
16
+ durationMs: ordered.reduce((total, block) => Math.max(total, block.durationMs), 0),
16
17
  grouped,
17
18
  blocks: ordered,
18
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compression-targets.js","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"AAWA,SAAS,SAAS,CAAC,CAAmB,EAAE,CAAmB;IACvD,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B;IAC3C,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAA;IACxC,OAAO;QACH,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;QAC9D,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrF,OAAO;QACP,MAAM,EAAE,OAAO;KAClB,CAAA;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B;IAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAA;IAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzC,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,SAAQ;QACZ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B;IAC5C,MAAM,aAAa,GAAuB,EAAE,CAAA;IAC5C,MAAM,YAAY,GAAuB,EAAE,CAAA;IAE3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,GAAG,kBAAkB,CAAC,aAAa,CAAC;KACvC,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,aAAiC;IAEjC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SACxD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACvD,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAE1E,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,mCAAmC,CAC/C,aAAiC,EACjC,mBAAgC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7E,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAA;IAC3D,MAAM,aAAa,GAAwB,EAAE,CAAA;IAE7C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACJ,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC3C,CAAC;YACD,SAAQ;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,aAAiC,EACjC,OAAe;IAEf,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC/D,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CACjF,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"compression-targets.js","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { sendIgnoredMessage } from "../ui/notification";
10
10
  import { getCurrentParams } from "../token-utils";
11
- import { buildCompressedBlockGuidance } from "../messages/inject/utils";
11
+ import { buildCompressedBlockGuidance } from "../prompts/extensions/nudge";
12
12
  import { isIgnoredUserMessage } from "../messages/query";
13
13
  const MANUAL_MODE_ON = "Manual mode is now ON. Use /dcp compress to trigger context tools manually.";
14
14
  const MANUAL_MODE_OFF = "Manual mode is now OFF.";
@@ -1 +1 @@
1
- {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../lib/commands/manual.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMvD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AA8BD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuChF"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOvD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AAwED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhF"}
@@ -6,17 +6,20 @@ import { sendIgnoredMessage } from "../ui/notification";
6
6
  import { formatTokenCount } from "../ui/utils";
7
7
  import { loadAllSessionStats } from "../state/persistence";
8
8
  import { getCurrentParams } from "../token-utils";
9
- function formatStatsMessage(sessionTokens, sessionTools, sessionMessages, allTime) {
9
+ import { getActiveCompressionTargets } from "./compression-targets";
10
+ function formatStatsMessage(sessionTokens, sessionSummaryTokens, sessionTools, sessionMessages, sessionDurationMs, allTime) {
10
11
  const lines = [];
11
12
  lines.push("╭───────────────────────────────────────────────────────────╮");
12
13
  lines.push("│ DCP Statistics │");
13
14
  lines.push("╰───────────────────────────────────────────────────────────╯");
14
15
  lines.push("");
15
- lines.push("Session:");
16
+ lines.push("Compression:");
16
17
  lines.push("─".repeat(60));
17
- lines.push(` Tokens pruned: ~${formatTokenCount(sessionTokens)}`);
18
- lines.push(` Tools pruned: ${sessionTools}`);
19
- lines.push(` Messages pruned: ${sessionMessages}`);
18
+ lines.push(` Tokens in|out: ~${formatTokenCount(sessionTokens)} | ~${formatTokenCount(sessionSummaryTokens)}`);
19
+ lines.push(` Ratio: ${formatCompressionRatio(sessionTokens, sessionSummaryTokens)}`);
20
+ lines.push(` Time: ${formatCompressionTime(sessionDurationMs)}`);
21
+ lines.push(` Messages: ${sessionMessages}`);
22
+ lines.push(` Tools: ${sessionTools}`);
20
23
  lines.push("");
21
24
  lines.push("All-time:");
22
25
  lines.push("─".repeat(60));
@@ -26,10 +29,40 @@ function formatStatsMessage(sessionTokens, sessionTools, sessionMessages, allTim
26
29
  lines.push(` Sessions: ${allTime.sessionCount}`);
27
30
  return lines.join("\n");
28
31
  }
32
+ function formatCompressionRatio(inputTokens, outputTokens) {
33
+ if (inputTokens <= 0) {
34
+ return "0:1";
35
+ }
36
+ if (outputTokens <= 0) {
37
+ return "∞:1";
38
+ }
39
+ const ratio = Math.max(1, Math.round(inputTokens / outputTokens));
40
+ return `${ratio}:1`;
41
+ }
42
+ function formatCompressionTime(ms) {
43
+ const safeMs = Math.max(0, Math.round(ms));
44
+ if (safeMs < 1000) {
45
+ return `${safeMs} ms`;
46
+ }
47
+ const totalSeconds = safeMs / 1000;
48
+ if (totalSeconds < 60) {
49
+ return `${totalSeconds.toFixed(1)} s`;
50
+ }
51
+ const wholeSeconds = Math.floor(totalSeconds);
52
+ const hours = Math.floor(wholeSeconds / 3600);
53
+ const minutes = Math.floor((wholeSeconds % 3600) / 60);
54
+ const seconds = wholeSeconds % 60;
55
+ if (hours > 0) {
56
+ return `${hours}h ${minutes}m ${seconds}s`;
57
+ }
58
+ return `${minutes}m ${seconds}s`;
59
+ }
29
60
  export async function handleStatsCommand(ctx) {
30
61
  const { client, state, logger, sessionId, messages } = ctx;
31
62
  // Session stats from in-memory state
32
63
  const sessionTokens = state.stats.totalPruneTokens;
64
+ const sessionSummaryTokens = Array.from(state.prune.messages.blocksById.values()).reduce((total, block) => (block.active ? total + block.summaryTokens : total), 0);
65
+ const sessionDurationMs = getActiveCompressionTargets(state.prune.messages).reduce((total, target) => total + target.durationMs, 0);
33
66
  const prunedToolIds = new Set(state.prune.tools.keys());
34
67
  for (const block of state.prune.messages.blocksById.values()) {
35
68
  if (block.active) {
@@ -47,13 +80,15 @@ export async function handleStatsCommand(ctx) {
47
80
  }
48
81
  // All-time stats from storage files
49
82
  const allTime = await loadAllSessionStats(logger);
50
- const message = formatStatsMessage(sessionTokens, sessionTools, sessionMessages, allTime);
83
+ const message = formatStatsMessage(sessionTokens, sessionSummaryTokens, sessionTools, sessionMessages, sessionDurationMs, allTime);
51
84
  const params = getCurrentParams(state, messages, logger);
52
85
  await sendIgnoredMessage(client, sessionId, message, params, logger);
53
86
  logger.info("Stats command executed", {
54
87
  sessionTokens,
88
+ sessionSummaryTokens,
55
89
  sessionTools,
56
90
  sessionMessages,
91
+ sessionDurationMs,
57
92
  allTimeTokens: allTime.totalTokens,
58
93
  allTimeTools: allTime.totalTools,
59
94
  allTimeMessages: allTime.totalMessages,
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAUnE,SAAS,kBAAkB,CACvB,aAAqB,EACrB,oBAA4B,EAC5B,YAAoB,EACpB,eAAuB,EACvB,iBAAyB,EACzB,OAAwB;IAExB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CACN,wBAAwB,gBAAgB,CAAC,aAAa,CAAC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,CACzG,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAChG,KAAK,CAAC,IAAI,CAAC,uBAAuB,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,uBAAuB,eAAe,EAAE,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB,EAAE,YAAoB;IACrE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAA;IACjE,OAAO,GAAG,KAAK,IAAI,CAAA;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,MAAM,KAAK,CAAA;IACzB,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,CAAA;IAClC,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAA;IAEjC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,GAAG,KAAK,KAAK,OAAO,KAAK,OAAO,GAAG,CAAA;IAC9C,CAAC;IAED,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAE1D,qCAAqC;IACrC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAA;IAClD,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACpF,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EACtE,CAAC,CACJ,CAAA;IACD,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9E,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAC5C,CAAC,CACJ,CAAA;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC1C,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAA;IAEvC,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,eAAe,EAAE,CAAA;QACrB,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,kBAAkB,CAC9B,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,OAAO,CACV,CAAA;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxD,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;QAClC,aAAa;QACb,oBAAoB;QACpB,YAAY;QACZ,eAAe;QACf,iBAAiB;QACjB,aAAa,EAAE,OAAO,CAAC,WAAW;QAClC,YAAY,EAAE,OAAO,CAAC,UAAU;QAChC,eAAe,EAAE,OAAO,CAAC,aAAa;KACzC,CAAC,CAAA;AACN,CAAC"}
@@ -2,7 +2,7 @@ import type { PluginConfig } from "../config";
2
2
  import type { SessionState } from "../state";
3
3
  import type { CompressMessageToolArgs, ResolvedMessageCompressionsResult, SearchContext } from "./types";
4
4
  export declare function validateArgs(args: CompressMessageToolArgs): void;
5
- export declare function formatResult(processedCount: number, skippedIssues: string[]): string;
6
- export declare function formatIssues(skippedIssues: string[]): string;
5
+ export declare function formatResult(processedCount: number, skippedIssues: string[], skippedCount: number): string;
6
+ export declare function formatIssues(skippedIssues: string[], skippedCount: number): string;
7
7
  export declare function resolveMessages(args: CompressMessageToolArgs, searchContext: SearchContext, state: SessionState, config: PluginConfig): ResolvedMessageCompressionsResult;
8
8
  //# sourceMappingURL=message-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../lib/compress/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAK5C,OAAO,KAAK,EAER,uBAAuB,EAEvB,iCAAiC,EACjC,aAAa,EAChB,MAAM,SAAS,CAAA;AAIhB,wBAAgB,YAAY,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAyBhE;AAED,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAcpF;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAI5D;AAED,wBAAgB,eAAe,CAC3B,IAAI,EAAE,uBAAuB,EAC7B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,GACrB,iCAAiC,CAwCnC"}
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../lib/compress/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAK5C,OAAO,KAAK,EAER,uBAAuB,EAEvB,iCAAiC,EACjC,aAAa,EAChB,MAAM,SAAS,CAAA;AAiBhB,wBAAgB,YAAY,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAyBhE;AAED,wBAAgB,YAAY,CACxB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,MAAM,GACrB,MAAM,CAcR;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAIlF;AAkED,wBAAgB,eAAe,CAC3B,IAAI,EAAE,uBAAuB,EAC7B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,GACrB,iCAAiC,CAuCnC"}
@@ -3,6 +3,13 @@ import { isIgnoredUserMessage, isProtectedUserMessage } from "../messages/query"
3
3
  import { resolveAnchorMessageId, resolveBoundaryIds, resolveSelection } from "./search";
4
4
  import { COMPRESSED_BLOCK_HEADER } from "./state";
5
5
  class SoftIssue extends Error {
6
+ kind;
7
+ messageId;
8
+ constructor(kind, messageId, message) {
9
+ super(message);
10
+ this.kind = kind;
11
+ this.messageId = messageId;
12
+ }
6
13
  }
7
14
  export function validateArgs(args) {
8
15
  if (typeof args.topic !== "string" || args.topic.trim().length === 0) {
@@ -25,22 +32,79 @@ export function validateArgs(args) {
25
32
  }
26
33
  }
27
34
  }
28
- export function formatResult(processedCount, skippedIssues) {
35
+ export function formatResult(processedCount, skippedIssues, skippedCount) {
29
36
  const messageNoun = processedCount === 1 ? "message" : "messages";
30
37
  const processedText = processedCount > 0
31
38
  ? `Compressed ${processedCount} ${messageNoun} into ${COMPRESSED_BLOCK_HEADER}.`
32
39
  : "Compressed 0 messages.";
33
- if (skippedIssues.length === 0) {
40
+ if (skippedCount === 0) {
34
41
  return processedText;
35
42
  }
36
- const issueNoun = skippedIssues.length === 1 ? "issue" : "issues";
43
+ const issueNoun = skippedCount === 1 ? "issue" : "issues";
37
44
  const issueLines = skippedIssues.map((issue) => `- ${issue}`).join("\n");
38
- return `${processedText}\nSkipped ${skippedIssues.length} ${issueNoun}:\n${issueLines}`;
45
+ return `${processedText}\nSkipped ${skippedCount} ${issueNoun}:\n${issueLines}`;
39
46
  }
40
- export function formatIssues(skippedIssues) {
41
- const issueNoun = skippedIssues.length === 1 ? "issue" : "issues";
47
+ export function formatIssues(skippedIssues, skippedCount) {
48
+ const issueNoun = skippedCount === 1 ? "issue" : "issues";
42
49
  const issueLines = skippedIssues.map((issue) => `- ${issue}`).join("\n");
43
- return `Unable to compress any messages. Found ${skippedIssues.length} ${issueNoun}:\n${issueLines}`;
50
+ return `Unable to compress any messages. Found ${skippedCount} ${issueNoun}:\n${issueLines}`;
51
+ }
52
+ const ISSUE_TEMPLATES = {
53
+ blocked: [
54
+ "refers to a protected message and cannot be compressed.",
55
+ "refer to protected messages and cannot be compressed.",
56
+ ],
57
+ "invalid-format": [
58
+ "is invalid. Use an injected raw message ID of the form mNNNN.",
59
+ "are invalid. Use injected raw message IDs of the form mNNNN.",
60
+ ],
61
+ "block-id": [
62
+ "is invalid here. Block IDs like bN are not allowed; use an mNNNN message ID instead.",
63
+ "are invalid here. Block IDs like bN are not allowed; use mNNNN message IDs instead.",
64
+ ],
65
+ "not-in-context": [
66
+ "is not available in the current conversation context. Choose an injected mNNNN ID visible in context.",
67
+ "are not available in the current conversation context. Choose injected mNNNN IDs visible in context.",
68
+ ],
69
+ protected: [
70
+ "refers to a protected message and cannot be compressed.",
71
+ "refer to protected messages and cannot be compressed.",
72
+ ],
73
+ "already-compressed": [
74
+ "is already part of an active compression.",
75
+ "are already part of active compressions.",
76
+ ],
77
+ duplicate: [
78
+ "was selected more than once in this batch.",
79
+ "were each selected more than once in this batch.",
80
+ ],
81
+ };
82
+ function formatSkippedGroup(kind, messageIds) {
83
+ const templates = ISSUE_TEMPLATES[kind];
84
+ const ids = messageIds.join(", ");
85
+ const single = messageIds.length === 1;
86
+ const prefix = single ? "messageId" : "messageIds";
87
+ if (!templates) {
88
+ return `${prefix} ${ids}: unknown issue.`;
89
+ }
90
+ return `${prefix} ${ids} ${single ? templates[0] : templates[1]}`;
91
+ }
92
+ function groupSkippedIssues(issues) {
93
+ const groups = new Map();
94
+ const order = [];
95
+ for (const issue of issues) {
96
+ let ids = groups.get(issue.kind);
97
+ if (!ids) {
98
+ ids = [];
99
+ groups.set(issue.kind, ids);
100
+ order.push(issue.kind);
101
+ }
102
+ ids.push(issue.messageId);
103
+ }
104
+ return order.map((kind) => {
105
+ const ids = groups.get(kind);
106
+ return formatSkippedGroup(kind, ids);
107
+ });
44
108
  }
45
109
  export function resolveMessages(args, searchContext, state, config) {
46
110
  const issues = [];
@@ -49,7 +113,7 @@ export function resolveMessages(args, searchContext, state, config) {
49
113
  for (const entry of args.content) {
50
114
  const normalizedMessageId = entry.messageId.trim();
51
115
  if (seenMessageIds.has(normalizedMessageId)) {
52
- issues.push(`messageId ${normalizedMessageId} was selected more than once in this batch.`);
116
+ issues.push({ kind: "duplicate", messageId: normalizedMessageId });
53
117
  continue;
54
118
  }
55
119
  try {
@@ -62,7 +126,7 @@ export function resolveMessages(args, searchContext, state, config) {
62
126
  }
63
127
  catch (error) {
64
128
  if (error instanceof SoftIssue) {
65
- issues.push(error.message);
129
+ issues.push({ kind: error.kind, messageId: error.messageId });
66
130
  continue;
67
131
  }
68
132
  throw error;
@@ -70,45 +134,37 @@ export function resolveMessages(args, searchContext, state, config) {
70
134
  }
71
135
  return {
72
136
  plans,
73
- skippedIssues: issues,
137
+ skippedIssues: groupSkippedIssues(issues),
138
+ skippedCount: issues.length,
74
139
  };
75
140
  }
76
141
  function resolveMessage(entry, searchContext, state, config) {
77
142
  if (entry.messageId.toUpperCase() === "BLOCKED") {
78
- throw new SoftIssue("messageId BLOCKED refers to a protected message and cannot be compressed.");
143
+ throw new SoftIssue("blocked", "BLOCKED", "protected message");
79
144
  }
80
145
  const parsed = parseBoundaryId(entry.messageId);
81
146
  if (!parsed) {
82
- throw new Error(`messageId ${entry.messageId} is invalid. Use an injected raw message ID of the form mNNNN.`);
147
+ throw new SoftIssue("invalid-format", entry.messageId, "invalid format");
83
148
  }
84
149
  if (parsed.kind === "compressed-block") {
85
- throw new SoftIssue(`messageId ${entry.messageId} is invalid here. Block IDs like bN are not allowed; use an mNNNN message ID instead.`);
150
+ throw new SoftIssue("block-id", entry.messageId, "block ID used");
86
151
  }
87
152
  const messageId = state.messageIds.byRef.get(parsed.ref);
88
153
  const rawMessage = messageId ? searchContext.rawMessagesById.get(messageId) : undefined;
89
- const hasBoundary = !!rawMessage &&
90
- !!messageId &&
91
- searchContext.rawIndexById.has(messageId) &&
92
- !isIgnoredUserMessage(rawMessage);
93
- if (!hasBoundary) {
94
- throw new SoftIssue(`messageId ${parsed.ref} is not available in the current conversation context. Choose an injected mNNNN ID visible in context.`);
154
+ if (!messageId ||
155
+ !rawMessage ||
156
+ !searchContext.rawIndexById.has(messageId) ||
157
+ isIgnoredUserMessage(rawMessage)) {
158
+ throw new SoftIssue("not-in-context", parsed.ref, "not in context");
95
159
  }
96
160
  const { startReference, endReference } = resolveBoundaryIds(searchContext, state, parsed.ref, parsed.ref);
97
161
  const selection = resolveSelection(searchContext, startReference, endReference);
98
- const rawMessageId = selection.messageIds[0];
99
- if (!rawMessageId) {
100
- throw new Error(`messageId ${parsed.ref} could not be resolved to a raw message.`);
101
- }
102
- const message = searchContext.rawMessagesById.get(rawMessageId);
103
- if (!message) {
104
- throw new Error(`messageId ${parsed.ref} is not available in the current conversation.`);
105
- }
106
- if (isProtectedUserMessage(config, message)) {
107
- throw new SoftIssue(`messageId ${parsed.ref} refers to a protected message and cannot be compressed.`);
162
+ if (isProtectedUserMessage(config, rawMessage)) {
163
+ throw new SoftIssue("protected", parsed.ref, "protected message");
108
164
  }
109
- const pruneEntry = state.prune.messages.byMessageId.get(rawMessageId);
165
+ const pruneEntry = state.prune.messages.byMessageId.get(messageId);
110
166
  if (pruneEntry && pruneEntry.activeBlockIds.length > 0) {
111
- throw new Error(`messageId ${parsed.ref} is already part of an active compression.`);
167
+ throw new SoftIssue("already-compressed", parsed.ref, "already compressed");
112
168
  }
113
169
  return {
114
170
  entry: {
@@ -1 +1 @@
1
- {"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../../../lib/compress/message-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AASjD,MAAM,SAAU,SAAQ,KAAK;CAAG;AAEhC,MAAM,UAAU,YAAY,CAAC,IAA6B;IACtD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,WAAW,KAAK,GAAG,CAAA;QAElC,IAAI,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,uDAAuD,CAAC,CAAA;QACrF,CAAC;QAED,IAAI,OAAO,KAAK,EAAE,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,mDAAmD,CAAC,CAAA;QACjF,CAAC;QAED,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAA;QACnF,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,cAAsB,EAAE,aAAuB;IACxE,MAAM,WAAW,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IACjE,MAAM,aAAa,GACf,cAAc,GAAG,CAAC;QACd,CAAC,CAAC,cAAc,cAAc,IAAI,WAAW,SAAS,uBAAuB,GAAG;QAChF,CAAC,CAAC,wBAAwB,CAAA;IAElC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxE,OAAO,GAAG,aAAa,aAAa,aAAa,CAAC,MAAM,IAAI,SAAS,MAAM,UAAU,EAAE,CAAA;AAC3F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAAuB;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxE,OAAO,0CAA0C,aAAa,CAAC,MAAM,IAAI,SAAS,MAAM,UAAU,EAAE,CAAA;AACxG,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,IAA6B,EAC7B,aAA4B,EAC5B,KAAmB,EACnB,MAAoB;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAiC,EAAE,CAAA;IAC9C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IAExC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAClD,IAAI,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CACP,aAAa,mBAAmB,6CAA6C,CAChF,CAAA;YACD,SAAQ;QACZ,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CACvB;gBACI,GAAG,KAAK;gBACR,SAAS,EAAE,mBAAmB;aACjC,EACD,aAAa,EACb,KAAK,EACL,MAAM,CACT,CAAA;YACD,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,SAAQ;YACZ,CAAC;YAED,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IAED,OAAO;QACH,KAAK;QACL,aAAa,EAAE,MAAM;KACxB,CAAA;AACL,CAAC;AAED,SAAS,cAAc,CACnB,KAA2B,EAC3B,aAA4B,EAC5B,KAAmB,EACnB,MAAoB;IAEpB,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CACf,2EAA2E,CAC9E,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,aAAa,KAAK,CAAC,SAAS,gEAAgE,CAC/F,CAAA;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CACf,aAAa,KAAK,CAAC,SAAS,uFAAuF,CACtH,CAAA;IACL,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACvF,MAAM,WAAW,GACb,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS;QACX,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;QACzC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CACf,aAAa,MAAM,CAAC,GAAG,wGAAwG,CAClI,CAAA;IACL,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,kBAAkB,CACvD,aAAa,EACb,KAAK,EACL,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,GAAG,CACb,CAAA;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;IAC/E,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,0CAA0C,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,gDAAgD,CAAC,CAAA;IAC5F,CAAC;IAED,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACf,aAAa,MAAM,CAAC,GAAG,0DAA0D,CACpF,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACrE,IAAI,UAAU,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,4CAA4C,CAAC,CAAA;IACxF,CAAC;IAED,OAAO;QACH,KAAK,EAAE;YACH,SAAS,EAAE,MAAM,CAAC,GAAG;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;SACzB;QACD,SAAS;QACT,eAAe,EAAE,sBAAsB,CAAC,cAAc,CAAC;KAC1D,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../../../lib/compress/message-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../lib/compress/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAuC1C,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CA2FnF"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../lib/compress/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAuC1C,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAgGnF"}
@@ -1,6 +1,6 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
2
  import { countTokens } from "../token-utils";
3
- import { MESSAGE_FORMAT_OVERLAY } from "../prompts/internal-overlays";
3
+ import { MESSAGE_FORMAT_EXTENSION } from "../prompts/extensions/tool";
4
4
  import { formatIssues, formatResult, resolveMessages, validateArgs } from "./message-utils";
5
5
  import { finalizeSession, prepareSession } from "./pipeline";
6
6
  import { appendProtectedTools } from "./protected-content";
@@ -29,15 +29,18 @@ export function createCompressMessageTool(ctx) {
29
29
  ctx.prompts.reload();
30
30
  const runtimePrompts = ctx.prompts.getRuntimePrompts();
31
31
  return tool({
32
- description: runtimePrompts.compressMessage + MESSAGE_FORMAT_OVERLAY,
32
+ description: runtimePrompts.compressMessage + MESSAGE_FORMAT_EXTENSION,
33
33
  args: buildSchema(),
34
34
  async execute(args, toolCtx) {
35
35
  const input = args;
36
36
  validateArgs(input);
37
+ const callId = typeof toolCtx.callID === "string"
38
+ ? toolCtx.callID
39
+ : undefined;
37
40
  const { rawMessages, searchContext } = await prepareSession(ctx, toolCtx, `Compress Message: ${input.topic}`);
38
- const { plans, skippedIssues } = resolveMessages(input, searchContext, ctx.state, ctx.config);
39
- if (plans.length === 0 && skippedIssues.length > 0) {
40
- throw new Error(formatIssues(skippedIssues));
41
+ const { plans, skippedIssues, skippedCount } = resolveMessages(input, searchContext, ctx.state, ctx.config);
42
+ if (plans.length === 0 && skippedCount > 0) {
43
+ throw new Error(formatIssues(skippedIssues, skippedCount));
41
44
  }
42
45
  const notifications = [];
43
46
  const preparedPlans = [];
@@ -61,6 +64,7 @@ export function createCompressMessageTool(ctx) {
61
64
  mode: "message",
62
65
  runId,
63
66
  compressMessageId: toolCtx.messageID,
67
+ compressCallId: callId,
64
68
  summaryTokens,
65
69
  }, plan.selection, plan.anchorMessageId, blockId, storedSummary, []);
66
70
  notifications.push({
@@ -71,7 +75,7 @@ export function createCompressMessageTool(ctx) {
71
75
  });
72
76
  }
73
77
  await finalizeSession(ctx, toolCtx, rawMessages, notifications, input.topic);
74
- return formatResult(plans.length, skippedIssues);
78
+ return formatResult(plans.length, skippedIssues, skippedCount);
75
79
  },
76
80
  });
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../lib/compress/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../lib/compress/message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,UAAU;IAChB,GAAG,CAAC,KAAK,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;CAC/B;AAED,wBAAsB,cAAc,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,UAAU,UAAU;IAChB,GAAG,CAAC,KAAK,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;CAC/B;AAED,wBAAsB,cAAc,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -6,6 +6,7 @@ import { deduplicate, purgeErrors } from "../strategies";
6
6
  import { getCurrentParams } from "../token-utils";
7
7
  import { sendCompressNotification } from "../ui/notification";
8
8
  import { buildSearchContext, fetchSessionMessages } from "./search";
9
+ import { applyPendingCompressionDurations } from "./timing";
9
10
  export async function prepareSession(ctx, toolCtx, title) {
10
11
  if (ctx.state.manualMode && ctx.state.manualMode !== "compress-pending") {
11
12
  throw new Error("Manual mode: compress blocked. Do not retry until `<compress triggered manually>` appears in user context.");
@@ -29,6 +30,7 @@ export async function prepareSession(ctx, toolCtx, title) {
29
30
  }
30
31
  export async function finalizeSession(ctx, toolCtx, rawMessages, entries, batchTopic) {
31
32
  ctx.state.manualMode = ctx.state.manualMode ? "active" : false;
33
+ applyPendingCompressionDurations(ctx.state);
32
34
  await saveSessionState(ctx.state, ctx.logger);
33
35
  const params = getCurrentParams(ctx.state, rawMessages, ctx.logger);
34
36
  const sessionMessageIds = rawMessages
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../lib/compress/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAkD1C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CA2HjF"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../lib/compress/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAkD1C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAgIjF"}