@tarquinen/opencode-dcp 3.0.4 → 3.1.0

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 (160) hide show
  1. package/README.md +22 -17
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/commands/compression-targets.d.ts +13 -0
  6. package/dist/lib/commands/compression-targets.d.ts.map +1 -0
  7. package/dist/lib/commands/compression-targets.js +97 -0
  8. package/dist/lib/commands/compression-targets.js.map +1 -0
  9. package/dist/lib/commands/context.js +1 -1
  10. package/dist/lib/commands/context.js.map +1 -1
  11. package/dist/lib/commands/decompress.d.ts.map +1 -1
  12. package/dist/lib/commands/decompress.js +43 -28
  13. package/dist/lib/commands/decompress.js.map +1 -1
  14. package/dist/lib/commands/manual.d.ts.map +1 -1
  15. package/dist/lib/commands/manual.js +6 -6
  16. package/dist/lib/commands/manual.js.map +1 -1
  17. package/dist/lib/commands/recompress.d.ts.map +1 -1
  18. package/dist/lib/commands/recompress.js +34 -31
  19. package/dist/lib/commands/recompress.js.map +1 -1
  20. package/dist/lib/compress/index.d.ts +4 -0
  21. package/dist/lib/compress/index.d.ts.map +1 -0
  22. package/dist/lib/compress/index.js +3 -0
  23. package/dist/lib/compress/index.js.map +1 -0
  24. package/dist/lib/compress/message-utils.d.ts +8 -0
  25. package/dist/lib/compress/message-utils.d.ts.map +1 -0
  26. package/dist/lib/compress/message-utils.js +123 -0
  27. package/dist/lib/compress/message-utils.js.map +1 -0
  28. package/dist/lib/compress/message.d.ts +4 -0
  29. package/dist/lib/compress/message.d.ts.map +1 -0
  30. package/dist/lib/compress/message.js +78 -0
  31. package/dist/lib/compress/message.js.map +1 -0
  32. package/dist/lib/compress/pipeline.d.ts +29 -0
  33. package/dist/lib/compress/pipeline.d.ts.map +1 -0
  34. package/dist/lib/compress/pipeline.js +40 -0
  35. package/dist/lib/compress/pipeline.js.map +1 -0
  36. package/dist/lib/compress/protected-content.d.ts +5 -0
  37. package/dist/lib/compress/protected-content.d.ts.map +1 -0
  38. package/dist/lib/compress/protected-content.js +106 -0
  39. package/dist/lib/compress/protected-content.js.map +1 -0
  40. package/dist/lib/compress/range-utils.d.ts +10 -0
  41. package/dist/lib/compress/range-utils.d.ts.map +1 -0
  42. package/dist/lib/compress/range-utils.js +199 -0
  43. package/dist/lib/compress/range-utils.js.map +1 -0
  44. package/dist/lib/compress/range.d.ts +4 -0
  45. package/dist/lib/compress/range.d.ts.map +1 -0
  46. package/dist/lib/compress/range.js +86 -0
  47. package/dist/lib/compress/range.js.map +1 -0
  48. package/dist/lib/compress/search.d.ts +11 -0
  49. package/dist/lib/compress/search.d.ts.map +1 -0
  50. package/dist/lib/compress/search.js +204 -0
  51. package/dist/lib/compress/search.js.map +1 -0
  52. package/dist/lib/compress/state.d.ts +8 -0
  53. package/dist/lib/compress/state.d.ts.map +1 -0
  54. package/dist/lib/compress/state.js +197 -0
  55. package/dist/lib/compress/state.js.map +1 -0
  56. package/dist/lib/compress/types.d.ts +92 -0
  57. package/dist/lib/compress/types.d.ts.map +1 -0
  58. package/dist/lib/{tools → compress}/types.js.map +1 -1
  59. package/dist/lib/config.d.ts +5 -7
  60. package/dist/lib/config.d.ts.map +1 -1
  61. package/dist/lib/config.js +24 -30
  62. package/dist/lib/config.js.map +1 -1
  63. package/dist/lib/hooks.d.ts.map +1 -1
  64. package/dist/lib/hooks.js +6 -8
  65. package/dist/lib/hooks.js.map +1 -1
  66. package/dist/lib/message-ids.d.ts +1 -1
  67. package/dist/lib/message-ids.d.ts.map +1 -1
  68. package/dist/lib/message-ids.js +19 -3
  69. package/dist/lib/message-ids.js.map +1 -1
  70. package/dist/lib/messages/inject/inject.d.ts +3 -2
  71. package/dist/lib/messages/inject/inject.d.ts.map +1 -1
  72. package/dist/lib/messages/inject/inject.js +31 -10
  73. package/dist/lib/messages/inject/inject.js.map +1 -1
  74. package/dist/lib/messages/inject/utils.d.ts +2 -2
  75. package/dist/lib/messages/inject/utils.d.ts.map +1 -1
  76. package/dist/lib/messages/inject/utils.js +102 -42
  77. package/dist/lib/messages/inject/utils.js.map +1 -1
  78. package/dist/lib/messages/priority.d.ts +13 -0
  79. package/dist/lib/messages/priority.d.ts.map +1 -0
  80. package/dist/lib/messages/priority.js +65 -0
  81. package/dist/lib/messages/priority.js.map +1 -0
  82. package/dist/lib/messages/prune.js +6 -4
  83. package/dist/lib/messages/prune.js.map +1 -1
  84. package/dist/lib/messages/utils.d.ts +9 -2
  85. package/dist/lib/messages/utils.d.ts.map +1 -1
  86. package/dist/lib/messages/utils.js +41 -9
  87. package/dist/lib/messages/utils.js.map +1 -1
  88. package/dist/lib/prompts/compress-message.d.ts +2 -0
  89. package/dist/lib/prompts/compress-message.d.ts.map +1 -0
  90. package/dist/lib/prompts/compress-message.js +44 -0
  91. package/dist/lib/prompts/compress-message.js.map +1 -0
  92. package/dist/lib/prompts/compress-range.d.ts +2 -0
  93. package/dist/lib/prompts/compress-range.d.ts.map +1 -0
  94. package/dist/lib/prompts/{compress.js → compress-range.js} +5 -29
  95. package/dist/lib/prompts/compress-range.js.map +1 -0
  96. package/dist/lib/prompts/internal-overlays.d.ts +2 -2
  97. package/dist/lib/prompts/internal-overlays.d.ts.map +1 -1
  98. package/dist/lib/prompts/internal-overlays.js +17 -11
  99. package/dist/lib/prompts/internal-overlays.js.map +1 -1
  100. package/dist/lib/prompts/message-priority-guidance.d.ts +2 -0
  101. package/dist/lib/prompts/message-priority-guidance.d.ts.map +1 -0
  102. package/dist/lib/prompts/message-priority-guidance.js +9 -0
  103. package/dist/lib/prompts/message-priority-guidance.js.map +1 -0
  104. package/dist/lib/prompts/store.d.ts +3 -2
  105. package/dist/lib/prompts/store.d.ts.map +1 -1
  106. package/dist/lib/prompts/store.js +24 -12
  107. package/dist/lib/prompts/store.js.map +1 -1
  108. package/dist/lib/prompts/system.d.ts +1 -1
  109. package/dist/lib/prompts/system.d.ts.map +1 -1
  110. package/dist/lib/prompts/system.js +26 -9
  111. package/dist/lib/prompts/system.js.map +1 -1
  112. package/dist/lib/shared-utils.d.ts +1 -0
  113. package/dist/lib/shared-utils.d.ts.map +1 -1
  114. package/dist/lib/shared-utils.js +7 -0
  115. package/dist/lib/shared-utils.js.map +1 -1
  116. package/dist/lib/state/persistence.d.ts +1 -0
  117. package/dist/lib/state/persistence.d.ts.map +1 -1
  118. package/dist/lib/state/persistence.js +1 -0
  119. package/dist/lib/state/persistence.js.map +1 -1
  120. package/dist/lib/state/types.d.ts +6 -0
  121. package/dist/lib/state/types.d.ts.map +1 -1
  122. package/dist/lib/state/utils.d.ts +1 -0
  123. package/dist/lib/state/utils.d.ts.map +1 -1
  124. package/dist/lib/state/utils.js +31 -9
  125. package/dist/lib/state/utils.js.map +1 -1
  126. package/dist/lib/strategies/index.d.ts +0 -1
  127. package/dist/lib/strategies/index.d.ts.map +1 -1
  128. package/dist/lib/strategies/index.js +0 -1
  129. package/dist/lib/strategies/index.js.map +1 -1
  130. package/dist/lib/strategies/utils.d.ts +1 -5
  131. package/dist/lib/strategies/utils.d.ts.map +1 -1
  132. package/dist/lib/strategies/utils.js +24 -28
  133. package/dist/lib/strategies/utils.js.map +1 -1
  134. package/dist/lib/ui/notification.d.ts +8 -1
  135. package/dist/lib/ui/notification.d.ts.map +1 -1
  136. package/dist/lib/ui/notification.js +66 -13
  137. package/dist/lib/ui/notification.js.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/lib/prompts/compress.d.ts +0 -2
  140. package/dist/lib/prompts/compress.d.ts.map +0 -1
  141. package/dist/lib/prompts/compress.js.map +0 -1
  142. package/dist/lib/strategies/supersede-writes.d.ts +0 -13
  143. package/dist/lib/strategies/supersede-writes.d.ts.map +0 -1
  144. package/dist/lib/strategies/supersede-writes.js +0 -94
  145. package/dist/lib/strategies/supersede-writes.js.map +0 -1
  146. package/dist/lib/tools/compress.d.ts +0 -4
  147. package/dist/lib/tools/compress.d.ts.map +0 -1
  148. package/dist/lib/tools/compress.js +0 -110
  149. package/dist/lib/tools/compress.js.map +0 -1
  150. package/dist/lib/tools/index.d.ts +0 -3
  151. package/dist/lib/tools/index.d.ts.map +0 -1
  152. package/dist/lib/tools/index.js +0 -2
  153. package/dist/lib/tools/index.js.map +0 -1
  154. package/dist/lib/tools/types.d.ts +0 -13
  155. package/dist/lib/tools/types.d.ts.map +0 -1
  156. package/dist/lib/tools/utils.d.ts +0 -80
  157. package/dist/lib/tools/utils.d.ts.map +0 -1
  158. package/dist/lib/tools/utils.js +0 -675
  159. package/dist/lib/tools/utils.js.map +0 -1
  160. /package/dist/lib/{tools → compress}/types.js +0 -0
@@ -1,23 +1,26 @@
1
1
  import { countTokens as anthropicCountTokens } from "@anthropic-ai/tokenizer";
2
2
  import { getLastUserMessage } from "../shared-utils";
3
- /**
4
- * Get current token usage from the last assistant message.
5
- * Returns total tokens (input + output + reasoning + cache).
6
- */
7
- export function getCurrentTokenUsage(messages) {
3
+ export function getCurrentTokenUsage(state, messages) {
8
4
  for (let i = messages.length - 1; i >= 0; i--) {
9
5
  const msg = messages[i];
10
- if (msg.info.role === "assistant") {
11
- const assistantInfo = msg.info;
12
- if (assistantInfo.tokens?.output > 0) {
13
- const input = assistantInfo.tokens?.input || 0;
14
- const output = assistantInfo.tokens?.output || 0;
15
- const reasoning = assistantInfo.tokens?.reasoning || 0;
16
- const cacheRead = assistantInfo.tokens?.cache?.read || 0;
17
- const cacheWrite = assistantInfo.tokens?.cache?.write || 0;
18
- return input + output + reasoning + cacheRead + cacheWrite;
19
- }
6
+ if (msg.info.role !== "assistant") {
7
+ continue;
20
8
  }
9
+ const assistantInfo = msg.info;
10
+ if ((assistantInfo.tokens?.output || 0) <= 0) {
11
+ continue;
12
+ }
13
+ if (state.lastCompaction > 0 &&
14
+ (msg.info.time.created < state.lastCompaction ||
15
+ (msg.info.summary === true && msg.info.time.created === state.lastCompaction))) {
16
+ return 0;
17
+ }
18
+ const input = assistantInfo.tokens?.input || 0;
19
+ const output = assistantInfo.tokens?.output || 0;
20
+ const reasoning = assistantInfo.tokens?.reasoning || 0;
21
+ const cacheRead = assistantInfo.tokens?.cache?.read || 0;
22
+ const cacheWrite = assistantInfo.tokens?.cache?.write || 0;
23
+ return input + output + reasoning + cacheRead + cacheWrite;
21
24
  }
22
25
  return 0;
23
26
  }
@@ -56,21 +59,14 @@ export function estimateTokensBatch(texts) {
56
59
  }
57
60
  export function extractToolContent(part) {
58
61
  const contents = [];
59
- if (part.tool === "question") {
60
- const questions = part.state?.input?.questions;
61
- if (questions !== undefined) {
62
- const content = typeof questions === "string" ? questions : JSON.stringify(questions);
63
- contents.push(content);
64
- }
62
+ if (part?.type !== "tool") {
65
63
  return contents;
66
64
  }
67
- if (part.tool === "edit" || part.tool === "write") {
68
- if (part.state?.input) {
69
- const inputContent = typeof part.state.input === "string"
70
- ? part.state.input
71
- : JSON.stringify(part.state.input);
72
- contents.push(inputContent);
73
- }
65
+ if (part.state?.input !== undefined) {
66
+ const inputContent = typeof part.state.input === "string"
67
+ ? part.state.input
68
+ : JSON.stringify(part.state.input);
69
+ contents.push(inputContent);
74
70
  }
75
71
  if (part.state?.status === "completed" && part.state?.output) {
76
72
  const content = typeof part.state.output === "string"
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/strategies/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/strategies/utils.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,14 @@ import { ToolParameterEntry } from "../state";
4
4
  import { PluginConfig } from "../config";
5
5
  export type PruneReason = "completion" | "noise" | "extraction";
6
6
  export declare const PRUNE_REASON_LABELS: Record<PruneReason, string>;
7
+ interface CompressionNotificationEntry {
8
+ blockId: number;
9
+ runId: number;
10
+ summary: string;
11
+ summaryTokens: number;
12
+ }
7
13
  export declare function sendUnifiedNotification(client: any, logger: Logger, config: PluginConfig, state: SessionState, sessionId: string, pruneToolIds: string[], toolMetadata: Map<string, ToolParameterEntry>, reason: PruneReason | undefined, params: any, workingDirectory: string): Promise<boolean>;
8
- export declare function sendCompressNotification(client: any, logger: Logger, config: PluginConfig, state: SessionState, sessionId: string, compressionId: number, summary: string, summaryTokens: number, totalSessionTokens: number, sessionMessageIds: string[], params: any): Promise<boolean>;
14
+ export declare function sendCompressNotification(client: any, logger: Logger, config: PluginConfig, state: SessionState, sessionId: string, entries: CompressionNotificationEntry[], batchTopic: string | undefined, totalSessionTokens: number, sessionMessageIds: string[], params: any): Promise<boolean>;
9
15
  export declare function sendIgnoredMessage(client: any, sessionID: string, text: string, params: any, logger: Logger): Promise<void>;
16
+ export {};
10
17
  //# sourceMappingURL=notification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../lib/ui/notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,CAAA;AAC/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI3D,CAAA;AAmED,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CAoFlB;AAED,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiCf"}
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../lib/ui/notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,CAAA;AAC/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI3D,CAAA;AAED,UAAU,4BAA4B;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAmED,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAiClB;AA4BD,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,4BAA4B,EAAE,EACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CA6HlB;AAED,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiCf"}
@@ -77,26 +77,79 @@ export async function sendUnifiedNotification(client, logger, config, state, ses
77
77
  await sendIgnoredMessage(client, sessionId, message, params, logger);
78
78
  return true;
79
79
  }
80
- export async function sendCompressNotification(client, logger, config, state, sessionId, compressionId, summary, summaryTokens, totalSessionTokens, sessionMessageIds, params) {
80
+ function buildCompressionSummary(entries, state) {
81
+ if (entries.length === 1) {
82
+ return entries[0]?.summary ?? "";
83
+ }
84
+ return entries
85
+ .map((entry) => {
86
+ const topic = state.prune.messages.blocksById.get(entry.blockId)?.topic ?? "(unknown topic)";
87
+ return `### ${topic}\n${entry.summary}`;
88
+ })
89
+ .join("\n\n");
90
+ }
91
+ function getCompressionLabel(entries) {
92
+ const runId = entries[0]?.runId;
93
+ if (runId === undefined) {
94
+ return "Compression";
95
+ }
96
+ return `Compression #${runId}`;
97
+ }
98
+ export async function sendCompressNotification(client, logger, config, state, sessionId, entries, batchTopic, totalSessionTokens, sessionMessageIds, params) {
81
99
  if (config.pruneNotification === "off") {
82
100
  return false;
83
101
  }
102
+ if (entries.length === 0) {
103
+ return false;
104
+ }
84
105
  let message;
106
+ const compressionLabel = getCompressionLabel(entries);
107
+ const summary = buildCompressionSummary(entries, state);
108
+ const summaryTokens = entries.reduce((total, entry) => total + entry.summaryTokens, 0);
85
109
  const summaryTokensStr = formatTokenCount(summaryTokens);
86
- const compressionBlock = state.prune.messages.blocksById.get(compressionId);
87
- if (!compressionBlock) {
88
- logger.error("Compression block missing for notification", {
89
- compressionId,
90
- sessionId,
91
- });
110
+ const compressedTokens = entries.reduce((total, entry) => {
111
+ const compressionBlock = state.prune.messages.blocksById.get(entry.blockId);
112
+ if (!compressionBlock) {
113
+ logger.error("Compression block missing for notification", {
114
+ compressionId: entry.blockId,
115
+ sessionId,
116
+ });
117
+ return total;
118
+ }
119
+ return total + compressionBlock.compressedTokens;
120
+ }, 0);
121
+ const newlyCompressedMessageIds = [];
122
+ const newlyCompressedToolIds = [];
123
+ const seenMessageIds = new Set();
124
+ const seenToolIds = new Set();
125
+ for (const entry of entries) {
126
+ const compressionBlock = state.prune.messages.blocksById.get(entry.blockId);
127
+ if (!compressionBlock) {
128
+ continue;
129
+ }
130
+ for (const messageId of compressionBlock.directMessageIds) {
131
+ if (seenMessageIds.has(messageId)) {
132
+ continue;
133
+ }
134
+ seenMessageIds.add(messageId);
135
+ newlyCompressedMessageIds.push(messageId);
136
+ }
137
+ for (const toolId of compressionBlock.directToolIds) {
138
+ if (seenToolIds.has(toolId)) {
139
+ continue;
140
+ }
141
+ seenToolIds.add(toolId);
142
+ newlyCompressedToolIds.push(toolId);
143
+ }
92
144
  }
93
- const newlyCompressedToolIds = compressionBlock?.directToolIds ?? [];
94
- const newlyCompressedMessageIds = compressionBlock?.directMessageIds ?? [];
95
- const topic = compressionBlock?.topic ?? "(unknown topic)";
96
- const compressedTokens = compressionBlock?.compressedTokens ?? 0;
145
+ const topic = batchTopic ??
146
+ (entries.length === 1
147
+ ? (state.prune.messages.blocksById.get(entries[0]?.blockId ?? -1)?.topic ??
148
+ "(unknown topic)")
149
+ : "(unknown topic)");
97
150
  if (config.pruneNotification === "minimal") {
98
151
  message = formatStatsHeader(state.stats.totalPruneTokens, state.stats.pruneTokenCounter);
99
- message += ` — Compression #${compressionId}`;
152
+ message += ` — ${compressionLabel}`;
100
153
  }
101
154
  else {
102
155
  message = formatStatsHeader(state.stats.totalPruneTokens, state.stats.pruneTokenCounter);
@@ -110,7 +163,7 @@ export async function sendCompressNotification(client, logger, config, state, se
110
163
  const progressBar = formatProgressBar(sessionMessageIds, activePrunedMessages, newlyCompressedMessageIds);
111
164
  const reduction = totalSessionTokens > 0 ? Math.round((compressedTokens / totalSessionTokens) * 100) : 0;
112
165
  message += `\n\n${progressBar}`;
113
- message += `\n▣ Compression #${compressionId} (${pruneTokenCounterStr} removed, ${reduction}% reduction)`;
166
+ message += `\n▣ ${compressionLabel} (${pruneTokenCounterStr} removed, ${reduction}% reduction)`;
114
167
  message += `\n→ Topic: ${topic}`;
115
168
  message += `\n→ Items: ${newlyCompressedMessageIds.length} messages`;
116
169
  if (newlyCompressedToolIds.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../lib/ui/notification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../lib/ui/notification.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@tarquinen/opencode-dcp",
4
- "version": "3.0.4",
4
+ "version": "3.1.0",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
7
7
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- export declare const COMPRESS = "Collapse a range in the conversation into a detailed summary.\n\nTHE PHILOSOPHY OF COMPRESS\n`compress` transforms verbose conversation sequences into dense, high-fidelity summaries. This is not cleanup - it is crystallization. Your summary becomes the authoritative record of what transpired.\n\nThink of compression as phase transitions: raw exploration becomes refined understanding. The original context served its purpose; your summary now carries that understanding forward.\n\nTHE SUMMARY\nYour summary must be EXHAUSTIVE. Capture file paths, function signatures, decisions made, constraints discovered, key findings... EVERYTHING that maintains context integrity. This is not a brief note - it is an authoritative record so faithful that the original conversation adds no value.\n\nUSER INTENT FIDELITY\nWhen the compressed range includes user messages, preserve the user's intent with extra care. Do not change scope, constraints, priorities, acceptance criteria, or requested outcomes.\nDirectly quote user messages when they are short enough to include safely. Direct quotes are preferred when they best preserve exact meaning.\n\nYet be LEAN. Strip away the noise: failed attempts that led nowhere, verbose tool outputs, back-and-forth exploration. What remains should be pure signal - golden nuggets of detail that preserve full understanding with zero ambiguity.\n\nCOMPRESSED BLOCK PLACEHOLDERS\nWhen the selected range includes previously compressed blocks, use this exact placeholder format when referencing one:\n\n- `(bN)`\n\nCompressed block sections in context are clearly marked with a header:\n\n- `[Compressed conversation section]`\n\nCompressed block IDs always use the `bN` form (never `mNNNN`) and are represented in the same XML metadata tag format.\n\nRules:\n\n- Include every required block placeholder exactly once.\n- Do not invent placeholders for blocks outside the selected range.\n- Treat `(bN)` placeholders as RESERVED TOKENS. Do not emit `(bN)` text anywhere except intentional placeholders.\n- If you need to mention a block in prose, use plain text like `compressed bN` (not as a placeholder).\n- Preflight check before finalizing: the set of `(bN)` placeholders in your summary must exactly match the required set, with no duplicates.\n\nThese placeholders are semantic references. They will be replaced with the full stored compressed block content when the tool processes your output.\n\nFLOW PRESERVATION WITH PLACEHOLDERS\nWhen you use compressed block placeholders, write the surrounding summary text so it still reads correctly AFTER placeholder expansion.\n\n- Treat each placeholder as a stand-in for a full conversation segment, not as a short label.\n- Ensure transitions before and after each placeholder preserve chronology and causality.\n- Do not write text that depends on the placeholder staying literal (for example, \"as noted in `(b2)`\").\n- Your final meaning must be coherent once each placeholder is replaced with its full compressed block content.\n\nTHE WAYS OF COMPRESS\nCompress when a range is genuinely closed and the raw conversation has served its purpose:\n\nResearch concluded and findings are clear\nImplementation finished and verified\nExploration exhausted and patterns understood\n\nCompress smaller ranges when:\nYou need to discard dead-end noise without waiting for a whole chapter to close\nYou need to preserve key findings from a narrow slice while freeing context quickly\nYou can bound a stale range cleanly with injected IDs\n\nDo NOT compress when:\nYou may need exact code, error messages, or file contents from the range in the immediate next steps\nWork in that area is still active or likely to resume immediately\nYou cannot identify reliable boundaries yet\n\nBefore compressing, ask: _\"Is this range closed enough to become summary-only right now?\"_ Compression is irreversible. The summary replaces everything in the range.\n\nBOUNDARY IDS\nYou specify boundaries by ID using the injected IDs visible in the conversation:\n\n- `mNNNN` IDs identify raw messages\n- `bN` IDs identify previously compressed blocks\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\nRules:\n\n- Pick `startId` and `endId` directly from injected IDs in context.\n- IDs must exist in the current visible context.\n- `startId` must appear before `endId`.\n- Prefer boundaries that produce short, closed ranges.\n- Do not invent IDs. Use only IDs that are present in context.\n\nPARALLEL COMPRESS EXECUTION\nWhen multiple independent ranges are ready and their boundaries do not overlap, launch MULTIPLE `compress` calls in parallel in a single response. This is the PREFERRED pattern over a single large-range compression when the work can be safely split. Run compression sequentially only when ranges overlap or when a later range depends on the result of an earlier compression.\n";
2
- //# sourceMappingURL=compress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,23JAmFpB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFvB,CAAA"}
@@ -1,13 +0,0 @@
1
- import { PluginConfig } from "../config";
2
- import { Logger } from "../logger";
3
- import type { SessionState, WithParts } from "../state";
4
- /**
5
- * Supersede Writes strategy - prunes write tool inputs for files that have
6
- * subsequently been read. When a file is written and later read, the original
7
- * write content becomes redundant since the current file state is captured
8
- * in the read result.
9
- *
10
- * Modifies the session state in place to add pruned tool call IDs.
11
- */
12
- export declare const supersedeWrites: (state: SessionState, logger: Logger, config: PluginConfig, messages: WithParts[]) => void;
13
- //# sourceMappingURL=supersede-writes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supersede-writes.d.ts","sourceRoot":"","sources":["../../../lib/strategies/supersede-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GACxB,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IA+FF,CAAA"}
@@ -1,94 +0,0 @@
1
- import { getFilePathsFromParameters, isFilePathProtected } from "../protected-patterns";
2
- import { getTotalToolTokens } from "./utils";
3
- /**
4
- * Supersede Writes strategy - prunes write tool inputs for files that have
5
- * subsequently been read. When a file is written and later read, the original
6
- * write content becomes redundant since the current file state is captured
7
- * in the read result.
8
- *
9
- * Modifies the session state in place to add pruned tool call IDs.
10
- */
11
- export const supersedeWrites = (state, logger, config, messages) => {
12
- if (state.manualMode && !config.manualMode.automaticStrategies) {
13
- return;
14
- }
15
- if (!config.strategies.supersedeWrites.enabled) {
16
- return;
17
- }
18
- const allToolIds = state.toolIdList;
19
- if (allToolIds.length === 0) {
20
- return;
21
- }
22
- // Filter out IDs already pruned
23
- const unprunedIds = allToolIds.filter((id) => !state.prune.tools.has(id));
24
- if (unprunedIds.length === 0) {
25
- return;
26
- }
27
- // Track write tools by file path: filePath -> [{ id, index }]
28
- // We track index to determine chronological order
29
- const writesByFile = new Map();
30
- // Track read file paths with their index
31
- const readsByFile = new Map();
32
- for (let i = 0; i < allToolIds.length; i++) {
33
- const id = allToolIds[i];
34
- const metadata = state.toolParameters.get(id);
35
- if (!metadata) {
36
- continue;
37
- }
38
- const filePaths = getFilePathsFromParameters(metadata.tool, metadata.parameters);
39
- if (filePaths.length === 0) {
40
- continue;
41
- }
42
- const filePath = filePaths[0];
43
- if (isFilePathProtected(filePaths, config.protectedFilePatterns)) {
44
- continue;
45
- }
46
- if (metadata.tool === "write") {
47
- if (!writesByFile.has(filePath)) {
48
- writesByFile.set(filePath, []);
49
- }
50
- const writes = writesByFile.get(filePath);
51
- if (writes) {
52
- writes.push({ id, index: i });
53
- }
54
- }
55
- else if (metadata.tool === "read") {
56
- if (!readsByFile.has(filePath)) {
57
- readsByFile.set(filePath, []);
58
- }
59
- const reads = readsByFile.get(filePath);
60
- if (reads) {
61
- reads.push(i);
62
- }
63
- }
64
- }
65
- // Find writes that are superseded by subsequent reads
66
- const newPruneIds = [];
67
- for (const [filePath, writes] of writesByFile.entries()) {
68
- const reads = readsByFile.get(filePath);
69
- if (!reads || reads.length === 0) {
70
- continue;
71
- }
72
- // For each write, check if there's a read that comes after it
73
- for (const write of writes) {
74
- // Skip if already pruned
75
- if (state.prune.tools.has(write.id)) {
76
- continue;
77
- }
78
- // Check if any read comes after this write
79
- const hasSubsequentRead = reads.some((readIndex) => readIndex > write.index);
80
- if (hasSubsequentRead) {
81
- newPruneIds.push(write.id);
82
- }
83
- }
84
- }
85
- if (newPruneIds.length > 0) {
86
- state.stats.totalPruneTokens += getTotalToolTokens(state, newPruneIds);
87
- for (const id of newPruneIds) {
88
- const entry = state.toolParameters.get(id);
89
- state.prune.tools.set(id, entry?.tokenCount ?? 0);
90
- }
91
- logger.debug(`Marked ${newPruneIds.length} superseded write tool calls for pruning`);
92
- }
93
- };
94
- //# sourceMappingURL=supersede-writes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supersede-writes.js","sourceRoot":"","sources":["../../../lib/strategies/supersede-writes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import type { ToolContext } from "./types";
3
- export declare function createCompressTool(ctx: ToolContext): ReturnType<typeof tool>;
4
- //# sourceMappingURL=compress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../lib/tools/compress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAyE1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAqJ5E"}
@@ -1,110 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import { ensureSessionInitialized } from "../state";
3
- import { appendMissingBlockSummaries, appendProtectedUserMessages, appendProtectedTools, wrapCompressedSummary, allocateBlockId, applyCompressionState, buildSearchContext, fetchSessionMessages, COMPRESSED_BLOCK_HEADER, injectBlockPlaceholders, parseBlockPlaceholders, resolveAnchorMessageId, resolveBoundaryIds, resolveRange, normalizeCompressArgs, validateCompressArgs, validateSummaryPlaceholders, } from "./utils";
4
- import { isIgnoredUserMessage } from "../messages/utils";
5
- import { assignMessageRefs } from "../message-ids";
6
- import { getCurrentParams, getCurrentTokenUsage, countTokens } from "../strategies/utils";
7
- import { deduplicate, purgeErrors } from "../strategies";
8
- import { saveSessionState } from "../state/persistence";
9
- import { sendCompressNotification } from "../ui/notification";
10
- import { NESTED_FORMAT_OVERLAY, FLAT_FORMAT_OVERLAY } from "../prompts/internal-overlays";
11
- // This schema looks better in the TUI (non primitive args aren't displayed), but LLMs are more likely to fail
12
- // the tool call
13
- function buildNestedSchema() {
14
- return {
15
- topic: tool.schema
16
- .string()
17
- .describe("Short label (3-5 words) for display - e.g., 'Auth System Exploration'"),
18
- content: tool.schema
19
- .object({
20
- startId: tool.schema
21
- .string()
22
- .describe("Message or block ID marking the beginning of range (e.g. m0001, b2)"),
23
- endId: tool.schema
24
- .string()
25
- .describe("Message or block ID marking the end of range (e.g. m0012, b5)"),
26
- summary: tool.schema
27
- .string()
28
- .describe("Complete technical summary replacing all content in range"),
29
- })
30
- .describe("Compression details: ID boundaries and replacement summary"),
31
- };
32
- }
33
- // Simpler schema for models that are not as good at tool calling reliably
34
- function buildFlatSchema() {
35
- return {
36
- topic: tool.schema
37
- .string()
38
- .describe("Short label (3-5 words) for display - e.g., 'Auth System Exploration'"),
39
- startId: tool.schema
40
- .string()
41
- .describe("Message or block ID marking the beginning of range (e.g. m0001, b2)"),
42
- endId: tool.schema
43
- .string()
44
- .describe("Message or block ID marking the end of range (e.g. m0012, b5)"),
45
- summary: tool.schema
46
- .string()
47
- .describe("Complete technical summary replacing all content in range"),
48
- };
49
- }
50
- export function createCompressTool(ctx) {
51
- ctx.prompts.reload();
52
- const runtimePrompts = ctx.prompts.getRuntimePrompts();
53
- const useFlatSchema = ctx.config.compress.flatSchema;
54
- return tool({
55
- description: runtimePrompts.compress + (useFlatSchema ? FLAT_FORMAT_OVERLAY : NESTED_FORMAT_OVERLAY),
56
- args: useFlatSchema ? buildFlatSchema() : buildNestedSchema(),
57
- async execute(args, toolCtx) {
58
- if (ctx.state.manualMode && ctx.state.manualMode !== "compress-pending") {
59
- throw new Error("Manual mode: compress blocked. Do not retry until `<compress triggered manually>` appears in user context.");
60
- }
61
- await toolCtx.ask({
62
- permission: "compress",
63
- patterns: ["*"],
64
- always: ["*"],
65
- metadata: {},
66
- });
67
- const compressArgs = normalizeCompressArgs(args);
68
- validateCompressArgs(compressArgs);
69
- toolCtx.metadata({
70
- title: `Compress: ${compressArgs.topic}`,
71
- });
72
- const rawMessages = await fetchSessionMessages(ctx.client, toolCtx.sessionID);
73
- await ensureSessionInitialized(ctx.client, ctx.state, toolCtx.sessionID, ctx.logger, rawMessages, ctx.config.manualMode.enabled);
74
- assignMessageRefs(ctx.state, rawMessages);
75
- deduplicate(ctx.state, ctx.logger, ctx.config, rawMessages);
76
- // supersedeWrites(ctx.state, ctx.logger, ctx.config, rawMessages)
77
- purgeErrors(ctx.state, ctx.logger, ctx.config, rawMessages);
78
- const searchContext = buildSearchContext(ctx.state, rawMessages);
79
- const { startReference, endReference } = resolveBoundaryIds(searchContext, ctx.state, compressArgs.content.startId, compressArgs.content.endId);
80
- const range = resolveRange(searchContext, startReference, endReference);
81
- const anchorMessageId = resolveAnchorMessageId(range.startReference);
82
- const parsedPlaceholders = parseBlockPlaceholders(compressArgs.content.summary);
83
- const missingRequiredBlockIds = validateSummaryPlaceholders(parsedPlaceholders, range.requiredBlockIds, range.startReference, range.endReference, searchContext.summaryByBlockId);
84
- const injected = injectBlockPlaceholders(compressArgs.content.summary, parsedPlaceholders, searchContext.summaryByBlockId, range.startReference, range.endReference);
85
- const summaryWithUserMessages = appendProtectedUserMessages(injected.expandedSummary, range, searchContext, ctx.state, ctx.config.compress.protectUserMessages);
86
- const summaryWithProtectedTools = await appendProtectedTools(ctx.client, ctx.state, ctx.config.experimental.allowSubAgents, summaryWithUserMessages, range, searchContext, ctx.config.compress.protectedTools, ctx.config.protectedFilePatterns);
87
- const finalSummaryResult = appendMissingBlockSummaries(summaryWithProtectedTools, missingRequiredBlockIds, searchContext.summaryByBlockId, injected.consumedBlockIds);
88
- const finalSummary = finalSummaryResult.expandedSummary;
89
- const blockId = allocateBlockId(ctx.state);
90
- const storedSummary = wrapCompressedSummary(blockId, finalSummary);
91
- const summaryTokens = countTokens(storedSummary);
92
- const applied = applyCompressionState(ctx.state, {
93
- topic: compressArgs.topic,
94
- startId: compressArgs.content.startId,
95
- endId: compressArgs.content.endId,
96
- compressMessageId: toolCtx.messageID,
97
- }, range, anchorMessageId, blockId, storedSummary, finalSummaryResult.consumedBlockIds);
98
- ctx.state.manualMode = ctx.state.manualMode ? "active" : false;
99
- await saveSessionState(ctx.state, ctx.logger);
100
- const params = getCurrentParams(ctx.state, rawMessages, ctx.logger);
101
- const totalSessionTokens = getCurrentTokenUsage(rawMessages);
102
- const sessionMessageIds = rawMessages
103
- .filter((msg) => !(msg.info.role === "user" && isIgnoredUserMessage(msg)))
104
- .map((msg) => msg.info.id);
105
- await sendCompressNotification(ctx.client, ctx.logger, ctx.config, ctx.state, toolCtx.sessionID, blockId, compressArgs.content.summary, summaryTokens, totalSessionTokens, sessionMessageIds, params);
106
- return `Compressed ${applied.messageIds.length} messages into ${COMPRESSED_BLOCK_HEADER}.`;
107
- },
108
- });
109
- }
110
- //# sourceMappingURL=compress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../lib/tools/compress.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { ToolContext } from "./types";
2
- export { createCompressTool } from "./compress";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
@@ -1,2 +0,0 @@
1
- export { createCompressTool } from "./compress";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
@@ -1,13 +0,0 @@
1
- import type { SessionState } from "../state";
2
- import type { PluginConfig } from "../config";
3
- import type { Logger } from "../logger";
4
- import type { PromptStore } from "../prompts/store";
5
- export interface ToolContext {
6
- client: any;
7
- state: SessionState;
8
- logger: Logger;
9
- config: PluginConfig;
10
- workingDirectory: string;
11
- prompts: PromptStore;
12
- }
13
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,WAAW,CAAA;CACvB"}