@tarquinen/opencode-dcp 3.0.4 → 3.1.1

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 -10
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected-content.js","sourceRoot":"","sources":["../../../lib/compress/protected-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CompressionBlock, SessionState } from "../state";
2
+ import type { BoundaryReference, CompressRangeToolArgs, InjectedSummaryResult, ParsedBlockPlaceholder, ResolvedRangeCompression, SearchContext } from "./types";
3
+ export declare function validateArgs(args: CompressRangeToolArgs): void;
4
+ export declare function resolveRanges(args: CompressRangeToolArgs, searchContext: SearchContext, state: SessionState): ResolvedRangeCompression[];
5
+ export declare function validateNonOverlapping(plans: ResolvedRangeCompression[]): void;
6
+ export declare function parseBlockPlaceholders(summary: string): ParsedBlockPlaceholder[];
7
+ export declare function validateSummaryPlaceholders(placeholders: ParsedBlockPlaceholder[], requiredBlockIds: number[], startReference: BoundaryReference, endReference: BoundaryReference, summaryByBlockId: Map<number, CompressionBlock>): number[];
8
+ export declare function injectBlockPlaceholders(summary: string, placeholders: ParsedBlockPlaceholder[], summaryByBlockId: Map<number, CompressionBlock>, startReference: BoundaryReference, endReference: BoundaryReference): InjectedSummaryResult;
9
+ export declare function appendMissingBlockSummaries(summary: string, missingBlockIds: number[], summaryByBlockId: Map<number, CompressionBlock>, consumedBlockIds: number[]): InjectedSummaryResult;
10
+ //# sourceMappingURL=range-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-utils.d.ts","sourceRoot":"","sources":["../../../lib/compress/range-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EACR,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EAChB,MAAM,SAAS,CAAA;AAIhB,wBAAgB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAyB9D;AAED,wBAAgB,aAAa,CACzB,IAAI,EAAE,qBAAqB,EAC3B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,YAAY,GACpB,wBAAwB,EAAE,CAuB5B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,EAAE,GAAG,IAAI,CA+B9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAsBhF;AAED,wBAAgB,2BAA2B,CACvC,YAAY,EAAE,sBAAsB,EAAE,EACtC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,iBAAiB,EAC/B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAChD,MAAM,EAAE,CAmCV;AAED,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,sBAAsB,EAAE,EACtC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC/C,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,iBAAiB,GAChC,qBAAqB,CAgDvB;AAED,wBAAgB,2BAA2B,CACvC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EAAE,EACzB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC/C,gBAAgB,EAAE,MAAM,EAAE,GAC3B,qBAAqB,CAkCvB"}
@@ -0,0 +1,199 @@
1
+ import { resolveAnchorMessageId, resolveBoundaryIds, resolveSelection } from "./search";
2
+ const BLOCK_PLACEHOLDER_REGEX = /\(b(\d+)\)|\{block_(\d+)\}/gi;
3
+ export function validateArgs(args) {
4
+ if (typeof args.topic !== "string" || args.topic.trim().length === 0) {
5
+ throw new Error("topic is required and must be a non-empty string");
6
+ }
7
+ if (!Array.isArray(args.content) || args.content.length === 0) {
8
+ throw new Error("content is required and must be a non-empty array");
9
+ }
10
+ for (let index = 0; index < args.content.length; index++) {
11
+ const entry = args.content[index];
12
+ const prefix = `content[${index}]`;
13
+ if (typeof entry?.startId !== "string" || entry.startId.trim().length === 0) {
14
+ throw new Error(`${prefix}.startId is required and must be a non-empty string`);
15
+ }
16
+ if (typeof entry?.endId !== "string" || entry.endId.trim().length === 0) {
17
+ throw new Error(`${prefix}.endId is required and must be a non-empty string`);
18
+ }
19
+ if (typeof entry?.summary !== "string" || entry.summary.trim().length === 0) {
20
+ throw new Error(`${prefix}.summary is required and must be a non-empty string`);
21
+ }
22
+ }
23
+ }
24
+ export function resolveRanges(args, searchContext, state) {
25
+ return args.content.map((entry, index) => {
26
+ const normalizedEntry = {
27
+ startId: entry.startId.trim(),
28
+ endId: entry.endId.trim(),
29
+ summary: entry.summary,
30
+ };
31
+ const { startReference, endReference } = resolveBoundaryIds(searchContext, state, normalizedEntry.startId, normalizedEntry.endId);
32
+ const selection = resolveSelection(searchContext, startReference, endReference);
33
+ return {
34
+ index,
35
+ entry: normalizedEntry,
36
+ selection,
37
+ anchorMessageId: resolveAnchorMessageId(startReference),
38
+ };
39
+ });
40
+ }
41
+ export function validateNonOverlapping(plans) {
42
+ const sortedPlans = [...plans].sort((left, right) => left.selection.startReference.rawIndex - right.selection.startReference.rawIndex ||
43
+ left.selection.endReference.rawIndex - right.selection.endReference.rawIndex ||
44
+ left.index - right.index);
45
+ const issues = [];
46
+ for (let index = 1; index < sortedPlans.length; index++) {
47
+ const previous = sortedPlans[index - 1];
48
+ const current = sortedPlans[index];
49
+ if (!previous || !current) {
50
+ continue;
51
+ }
52
+ if (current.selection.startReference.rawIndex > previous.selection.endReference.rawIndex) {
53
+ continue;
54
+ }
55
+ issues.push(`content[${previous.index}] (${previous.entry.startId}..${previous.entry.endId}) overlaps content[${current.index}] (${current.entry.startId}..${current.entry.endId}). Overlapping ranges cannot be compressed in the same batch.`);
56
+ }
57
+ if (issues.length > 0) {
58
+ throw new Error(issues.length === 1 ? issues[0] : issues.map((issue) => `- ${issue}`).join("\n"));
59
+ }
60
+ }
61
+ export function parseBlockPlaceholders(summary) {
62
+ const placeholders = [];
63
+ const regex = new RegExp(BLOCK_PLACEHOLDER_REGEX);
64
+ let match;
65
+ while ((match = regex.exec(summary)) !== null) {
66
+ const full = match[0];
67
+ const blockIdPart = match[1] || match[2];
68
+ const parsed = Number.parseInt(blockIdPart, 10);
69
+ if (!Number.isInteger(parsed)) {
70
+ continue;
71
+ }
72
+ placeholders.push({
73
+ raw: full,
74
+ blockId: parsed,
75
+ startIndex: match.index,
76
+ endIndex: match.index + full.length,
77
+ });
78
+ }
79
+ return placeholders;
80
+ }
81
+ export function validateSummaryPlaceholders(placeholders, requiredBlockIds, startReference, endReference, summaryByBlockId) {
82
+ const boundaryOptionalIds = new Set();
83
+ if (startReference.kind === "compressed-block") {
84
+ if (startReference.blockId === undefined) {
85
+ throw new Error("Failed to map boundary matches back to raw messages");
86
+ }
87
+ boundaryOptionalIds.add(startReference.blockId);
88
+ }
89
+ if (endReference.kind === "compressed-block") {
90
+ if (endReference.blockId === undefined) {
91
+ throw new Error("Failed to map boundary matches back to raw messages");
92
+ }
93
+ boundaryOptionalIds.add(endReference.blockId);
94
+ }
95
+ const strictRequiredIds = requiredBlockIds.filter((id) => !boundaryOptionalIds.has(id));
96
+ const requiredSet = new Set(requiredBlockIds);
97
+ const keptPlaceholderIds = new Set();
98
+ const validPlaceholders = [];
99
+ for (const placeholder of placeholders) {
100
+ const isKnown = summaryByBlockId.has(placeholder.blockId);
101
+ const isRequired = requiredSet.has(placeholder.blockId);
102
+ const isDuplicate = keptPlaceholderIds.has(placeholder.blockId);
103
+ if (isKnown && isRequired && !isDuplicate) {
104
+ validPlaceholders.push(placeholder);
105
+ keptPlaceholderIds.add(placeholder.blockId);
106
+ }
107
+ }
108
+ placeholders.length = 0;
109
+ placeholders.push(...validPlaceholders);
110
+ return strictRequiredIds.filter((id) => !keptPlaceholderIds.has(id));
111
+ }
112
+ export function injectBlockPlaceholders(summary, placeholders, summaryByBlockId, startReference, endReference) {
113
+ let cursor = 0;
114
+ let expanded = summary;
115
+ const consumed = [];
116
+ const consumedSeen = new Set();
117
+ if (placeholders.length > 0) {
118
+ expanded = "";
119
+ for (const placeholder of placeholders) {
120
+ const target = summaryByBlockId.get(placeholder.blockId);
121
+ if (!target) {
122
+ throw new Error(`Compressed block not found: (b${placeholder.blockId})`);
123
+ }
124
+ expanded += summary.slice(cursor, placeholder.startIndex);
125
+ expanded += restoreSummary(target.summary);
126
+ cursor = placeholder.endIndex;
127
+ if (!consumedSeen.has(placeholder.blockId)) {
128
+ consumedSeen.add(placeholder.blockId);
129
+ consumed.push(placeholder.blockId);
130
+ }
131
+ }
132
+ expanded += summary.slice(cursor);
133
+ }
134
+ expanded = injectBoundarySummary(expanded, startReference, "start", summaryByBlockId, consumed, consumedSeen);
135
+ expanded = injectBoundarySummary(expanded, endReference, "end", summaryByBlockId, consumed, consumedSeen);
136
+ return {
137
+ expandedSummary: expanded,
138
+ consumedBlockIds: consumed,
139
+ };
140
+ }
141
+ export function appendMissingBlockSummaries(summary, missingBlockIds, summaryByBlockId, consumedBlockIds) {
142
+ const consumedSeen = new Set(consumedBlockIds);
143
+ const consumed = [...consumedBlockIds];
144
+ const missingSummaries = [];
145
+ for (const blockId of missingBlockIds) {
146
+ if (consumedSeen.has(blockId)) {
147
+ continue;
148
+ }
149
+ const target = summaryByBlockId.get(blockId);
150
+ if (!target) {
151
+ throw new Error(`Compressed block not found: (b${blockId})`);
152
+ }
153
+ missingSummaries.push(`\n### (b${blockId})\n${restoreSummary(target.summary)}`);
154
+ consumedSeen.add(blockId);
155
+ consumed.push(blockId);
156
+ }
157
+ if (missingSummaries.length === 0) {
158
+ return {
159
+ expandedSummary: summary,
160
+ consumedBlockIds: consumed,
161
+ };
162
+ }
163
+ const heading = "\n\nThe following previously compressed summaries were also part of this conversation section:";
164
+ return {
165
+ expandedSummary: summary + heading + missingSummaries.join(""),
166
+ consumedBlockIds: consumed,
167
+ };
168
+ }
169
+ function restoreSummary(summary) {
170
+ const headerMatch = summary.match(/^\s*\[Compressed conversation(?: section)?(?: b\d+)?\]/i);
171
+ if (!headerMatch) {
172
+ return summary;
173
+ }
174
+ const afterHeader = summary.slice(headerMatch[0].length);
175
+ const withoutLeadingBreaks = afterHeader.replace(/^(?:\r?\n)+/, "");
176
+ return withoutLeadingBreaks
177
+ .replace(/(?:\r?\n)*<dcp-message-id>b\d+<\/dcp-message-id>\s*$/i, "")
178
+ .replace(/(?:\r?\n)+$/, "");
179
+ }
180
+ function injectBoundarySummary(summary, reference, position, summaryByBlockId, consumed, consumedSeen) {
181
+ if (reference.kind !== "compressed-block" || reference.blockId === undefined) {
182
+ return summary;
183
+ }
184
+ if (consumedSeen.has(reference.blockId)) {
185
+ return summary;
186
+ }
187
+ const target = summaryByBlockId.get(reference.blockId);
188
+ if (!target) {
189
+ throw new Error(`Compressed block not found: (b${reference.blockId})`);
190
+ }
191
+ const injectedBody = restoreSummary(target.summary);
192
+ const left = position === "start" ? injectedBody.trim() : summary.trim();
193
+ const right = position === "start" ? summary.trim() : injectedBody.trim();
194
+ const next = !left ? right : !right ? left : `${left}\n\n${right}`;
195
+ consumedSeen.add(reference.blockId);
196
+ consumed.push(reference.blockId);
197
+ return next;
198
+ }
199
+ //# sourceMappingURL=range-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-utils.js","sourceRoot":"","sources":["../../../lib/compress/range-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import type { ToolContext } from "./types";
3
+ export declare function createCompressRangeTool(ctx: ToolContext): ReturnType<typeof tool>;
4
+ //# sourceMappingURL=range.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,86 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { countTokens } from "../strategies/utils";
3
+ import { RANGE_FORMAT_OVERLAY } from "../prompts/internal-overlays";
4
+ import { finalizeSession, prepareSession } from "./pipeline";
5
+ import { appendProtectedTools, appendProtectedUserMessages } from "./protected-content";
6
+ import { appendMissingBlockSummaries, injectBlockPlaceholders, parseBlockPlaceholders, resolveRanges, validateArgs, validateNonOverlapping, validateSummaryPlaceholders, } from "./range-utils";
7
+ import { COMPRESSED_BLOCK_HEADER, allocateBlockId, allocateRunId, applyCompressionState, wrapCompressedSummary, } from "./state";
8
+ function buildSchema() {
9
+ return {
10
+ topic: tool.schema
11
+ .string()
12
+ .describe("Short label (3-5 words) for display - e.g., 'Auth System Exploration'"),
13
+ content: tool.schema
14
+ .array(tool.schema.object({
15
+ startId: tool.schema
16
+ .string()
17
+ .describe("Message or block ID marking the beginning of range (e.g. m0001, b2)"),
18
+ endId: tool.schema
19
+ .string()
20
+ .describe("Message or block ID marking the end of range (e.g. m0012, b5)"),
21
+ summary: tool.schema
22
+ .string()
23
+ .describe("Complete technical summary replacing all content in range"),
24
+ }))
25
+ .describe("One or more ranges to compress, each with start/end boundaries and a summary"),
26
+ };
27
+ }
28
+ export function createCompressRangeTool(ctx) {
29
+ ctx.prompts.reload();
30
+ const runtimePrompts = ctx.prompts.getRuntimePrompts();
31
+ return tool({
32
+ description: runtimePrompts.compressRange + RANGE_FORMAT_OVERLAY,
33
+ args: buildSchema(),
34
+ async execute(args, toolCtx) {
35
+ const input = args;
36
+ validateArgs(input);
37
+ const { rawMessages, searchContext } = await prepareSession(ctx, toolCtx, `Compress Range: ${input.topic}`);
38
+ const resolvedPlans = resolveRanges(input, searchContext, ctx.state);
39
+ validateNonOverlapping(resolvedPlans);
40
+ const notifications = [];
41
+ const preparedPlans = [];
42
+ let totalCompressedMessages = 0;
43
+ for (const plan of resolvedPlans) {
44
+ const parsedPlaceholders = parseBlockPlaceholders(plan.entry.summary);
45
+ const missingBlockIds = validateSummaryPlaceholders(parsedPlaceholders, plan.selection.requiredBlockIds, plan.selection.startReference, plan.selection.endReference, searchContext.summaryByBlockId);
46
+ const injected = injectBlockPlaceholders(plan.entry.summary, parsedPlaceholders, searchContext.summaryByBlockId, plan.selection.startReference, plan.selection.endReference);
47
+ const summaryWithUsers = appendProtectedUserMessages(injected.expandedSummary, plan.selection, searchContext, ctx.state, ctx.config.compress.protectUserMessages);
48
+ const summaryWithTools = await appendProtectedTools(ctx.client, ctx.state, ctx.config.experimental.allowSubAgents, summaryWithUsers, plan.selection, searchContext, ctx.config.compress.protectedTools, ctx.config.protectedFilePatterns);
49
+ const completedSummary = appendMissingBlockSummaries(summaryWithTools, missingBlockIds, searchContext.summaryByBlockId, injected.consumedBlockIds);
50
+ preparedPlans.push({
51
+ entry: plan.entry,
52
+ selection: plan.selection,
53
+ anchorMessageId: plan.anchorMessageId,
54
+ finalSummary: completedSummary.expandedSummary,
55
+ consumedBlockIds: completedSummary.consumedBlockIds,
56
+ });
57
+ }
58
+ const runId = allocateRunId(ctx.state);
59
+ for (const preparedPlan of preparedPlans) {
60
+ const blockId = allocateBlockId(ctx.state);
61
+ const storedSummary = wrapCompressedSummary(blockId, preparedPlan.finalSummary);
62
+ const summaryTokens = countTokens(storedSummary);
63
+ const applied = applyCompressionState(ctx.state, {
64
+ topic: input.topic,
65
+ batchTopic: input.topic,
66
+ startId: preparedPlan.entry.startId,
67
+ endId: preparedPlan.entry.endId,
68
+ mode: "range",
69
+ runId,
70
+ compressMessageId: toolCtx.messageID,
71
+ summaryTokens,
72
+ }, preparedPlan.selection, preparedPlan.anchorMessageId, blockId, storedSummary, preparedPlan.consumedBlockIds);
73
+ totalCompressedMessages += applied.messageIds.length;
74
+ notifications.push({
75
+ blockId,
76
+ runId,
77
+ summary: preparedPlan.finalSummary,
78
+ summaryTokens,
79
+ });
80
+ }
81
+ await finalizeSession(ctx, toolCtx, rawMessages, notifications, input.topic);
82
+ return `Compressed ${totalCompressedMessages} messages into ${COMPRESSED_BLOCK_HEADER}.`;
83
+ },
84
+ });
85
+ }
86
+ //# sourceMappingURL=range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../lib/compress/range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { SessionState, WithParts } from "../state";
2
+ import type { BoundaryReference, SearchContext, SelectionResolution } from "./types";
3
+ export declare function fetchSessionMessages(client: any, sessionId: string): Promise<WithParts[]>;
4
+ export declare function buildSearchContext(state: SessionState, rawMessages: WithParts[]): SearchContext;
5
+ export declare function resolveBoundaryIds(context: SearchContext, state: SessionState, startId: string, endId: string): {
6
+ startReference: BoundaryReference;
7
+ endReference: BoundaryReference;
8
+ };
9
+ export declare function resolveSelection(context: SearchContext, startReference: BoundaryReference, endReference: BoundaryReference): SelectionResolution;
10
+ export declare function resolveAnchorMessageId(startReference: BoundaryReference): string;
11
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../lib/compress/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEpF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAO/F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,aAAa,CA4B/F;AAED,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACd;IAAE,cAAc,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,iBAAiB,CAAA;CAAE,CAwDxE;AAED,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,iBAAiB,GAChC,mBAAmB,CAoFrB;AAED,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,iBAAiB,GAAG,MAAM,CAYhF"}
@@ -0,0 +1,204 @@
1
+ import { formatBlockRef, parseBoundaryId } from "../message-ids";
2
+ import { isIgnoredUserMessage } from "../messages/utils";
3
+ import { countAllMessageTokens } from "../strategies/utils";
4
+ export async function fetchSessionMessages(client, sessionId) {
5
+ const response = await client.session.messages({
6
+ path: { id: sessionId },
7
+ });
8
+ const payload = (response?.data || response);
9
+ return Array.isArray(payload) ? payload : [];
10
+ }
11
+ export function buildSearchContext(state, rawMessages) {
12
+ const rawMessagesById = new Map();
13
+ const rawIndexById = new Map();
14
+ for (const msg of rawMessages) {
15
+ rawMessagesById.set(msg.info.id, msg);
16
+ }
17
+ for (let index = 0; index < rawMessages.length; index++) {
18
+ const message = rawMessages[index];
19
+ if (!message) {
20
+ continue;
21
+ }
22
+ rawIndexById.set(message.info.id, index);
23
+ }
24
+ const summaryByBlockId = new Map();
25
+ for (const [blockId, block] of state.prune.messages.blocksById) {
26
+ if (!block.active) {
27
+ continue;
28
+ }
29
+ summaryByBlockId.set(blockId, block);
30
+ }
31
+ return {
32
+ rawMessages,
33
+ rawMessagesById,
34
+ rawIndexById,
35
+ summaryByBlockId,
36
+ };
37
+ }
38
+ export function resolveBoundaryIds(context, state, startId, endId) {
39
+ const lookup = buildBoundaryLookup(context, state);
40
+ const issues = [];
41
+ const parsedStartId = parseBoundaryId(startId);
42
+ const parsedEndId = parseBoundaryId(endId);
43
+ if (parsedStartId === null) {
44
+ issues.push("startId is invalid. Use an injected message ID (mNNNN) or block ID (bN).");
45
+ }
46
+ if (parsedEndId === null) {
47
+ issues.push("endId is invalid. Use an injected message ID (mNNNN) or block ID (bN).");
48
+ }
49
+ if (issues.length > 0) {
50
+ throw new Error(issues.length === 1 ? issues[0] : issues.map((issue) => `- ${issue}`).join("\n"));
51
+ }
52
+ if (!parsedStartId || !parsedEndId) {
53
+ throw new Error("Invalid boundary ID(s)");
54
+ }
55
+ const startReference = lookup.get(parsedStartId.ref);
56
+ const endReference = lookup.get(parsedEndId.ref);
57
+ if (!startReference) {
58
+ issues.push(`startId ${parsedStartId.ref} is not available in the current conversation context. Choose an injected ID visible in context.`);
59
+ }
60
+ if (!endReference) {
61
+ issues.push(`endId ${parsedEndId.ref} is not available in the current conversation context. Choose an injected ID visible in context.`);
62
+ }
63
+ if (issues.length > 0) {
64
+ throw new Error(issues.length === 1 ? issues[0] : issues.map((issue) => `- ${issue}`).join("\n"));
65
+ }
66
+ if (!startReference || !endReference) {
67
+ throw new Error("Failed to resolve boundary IDs");
68
+ }
69
+ if (startReference.rawIndex > endReference.rawIndex) {
70
+ throw new Error(`startId ${parsedStartId.ref} appears after endId ${parsedEndId.ref} in the conversation. Start must come before end.`);
71
+ }
72
+ return { startReference, endReference };
73
+ }
74
+ export function resolveSelection(context, startReference, endReference) {
75
+ const startRawIndex = startReference.rawIndex;
76
+ const endRawIndex = endReference.rawIndex;
77
+ const messageIds = [];
78
+ const messageSeen = new Set();
79
+ const toolIds = [];
80
+ const toolSeen = new Set();
81
+ const requiredBlockIds = [];
82
+ const requiredBlockSeen = new Set();
83
+ const messageTokenById = new Map();
84
+ for (let index = startRawIndex; index <= endRawIndex; index++) {
85
+ const rawMessage = context.rawMessages[index];
86
+ if (!rawMessage) {
87
+ continue;
88
+ }
89
+ if (isIgnoredUserMessage(rawMessage)) {
90
+ continue;
91
+ }
92
+ const messageId = rawMessage.info.id;
93
+ if (!messageSeen.has(messageId)) {
94
+ messageSeen.add(messageId);
95
+ messageIds.push(messageId);
96
+ }
97
+ if (!messageTokenById.has(messageId)) {
98
+ messageTokenById.set(messageId, countAllMessageTokens(rawMessage));
99
+ }
100
+ const parts = Array.isArray(rawMessage.parts) ? rawMessage.parts : [];
101
+ for (const part of parts) {
102
+ if (part.type !== "tool" || !part.callID) {
103
+ continue;
104
+ }
105
+ if (toolSeen.has(part.callID)) {
106
+ continue;
107
+ }
108
+ toolSeen.add(part.callID);
109
+ toolIds.push(part.callID);
110
+ }
111
+ }
112
+ const selectedMessageIds = new Set(messageIds);
113
+ const summariesInSelection = [];
114
+ for (const summary of context.summaryByBlockId.values()) {
115
+ if (!selectedMessageIds.has(summary.anchorMessageId)) {
116
+ continue;
117
+ }
118
+ const anchorIndex = context.rawIndexById.get(summary.anchorMessageId);
119
+ if (anchorIndex === undefined) {
120
+ continue;
121
+ }
122
+ summariesInSelection.push({
123
+ blockId: summary.blockId,
124
+ rawIndex: anchorIndex,
125
+ });
126
+ }
127
+ summariesInSelection.sort((a, b) => a.rawIndex - b.rawIndex || a.blockId - b.blockId);
128
+ for (const summary of summariesInSelection) {
129
+ if (requiredBlockSeen.has(summary.blockId)) {
130
+ continue;
131
+ }
132
+ requiredBlockSeen.add(summary.blockId);
133
+ requiredBlockIds.push(summary.blockId);
134
+ }
135
+ if (messageIds.length === 0) {
136
+ throw new Error("Failed to map boundary matches back to raw messages. Choose boundaries that include original conversation messages.");
137
+ }
138
+ return {
139
+ startReference,
140
+ endReference,
141
+ messageIds,
142
+ messageTokenById,
143
+ toolIds,
144
+ requiredBlockIds,
145
+ };
146
+ }
147
+ export function resolveAnchorMessageId(startReference) {
148
+ if (startReference.kind === "compressed-block") {
149
+ if (!startReference.anchorMessageId) {
150
+ throw new Error("Failed to map boundary matches back to raw messages");
151
+ }
152
+ return startReference.anchorMessageId;
153
+ }
154
+ if (!startReference.messageId) {
155
+ throw new Error("Failed to map boundary matches back to raw messages");
156
+ }
157
+ return startReference.messageId;
158
+ }
159
+ function buildBoundaryLookup(context, state) {
160
+ const lookup = new Map();
161
+ for (const [messageRef, messageId] of state.messageIds.byRef) {
162
+ const rawMessage = context.rawMessagesById.get(messageId);
163
+ if (!rawMessage) {
164
+ continue;
165
+ }
166
+ if (isIgnoredUserMessage(rawMessage)) {
167
+ continue;
168
+ }
169
+ const rawIndex = context.rawIndexById.get(messageId);
170
+ if (rawIndex === undefined) {
171
+ continue;
172
+ }
173
+ lookup.set(messageRef, {
174
+ kind: "message",
175
+ rawIndex,
176
+ messageId,
177
+ });
178
+ }
179
+ const summaries = Array.from(context.summaryByBlockId.values()).sort((a, b) => a.blockId - b.blockId);
180
+ for (const summary of summaries) {
181
+ const anchorMessage = context.rawMessagesById.get(summary.anchorMessageId);
182
+ if (!anchorMessage) {
183
+ continue;
184
+ }
185
+ if (isIgnoredUserMessage(anchorMessage)) {
186
+ continue;
187
+ }
188
+ const rawIndex = context.rawIndexById.get(summary.anchorMessageId);
189
+ if (rawIndex === undefined) {
190
+ continue;
191
+ }
192
+ const blockRef = formatBlockRef(summary.blockId);
193
+ if (!lookup.has(blockRef)) {
194
+ lookup.set(blockRef, {
195
+ kind: "compressed-block",
196
+ rawIndex,
197
+ blockId: summary.blockId,
198
+ anchorMessageId: summary.anchorMessageId,
199
+ });
200
+ }
201
+ }
202
+ return lookup;
203
+ }
204
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../lib/compress/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SessionState } from "../state";
2
+ import type { AppliedCompressionResult, CompressionStateInput, SelectionResolution } from "./types";
3
+ export declare const COMPRESSED_BLOCK_HEADER = "[Compressed conversation section]";
4
+ export declare function allocateBlockId(state: SessionState): number;
5
+ export declare function allocateRunId(state: SessionState): number;
6
+ export declare function wrapCompressedSummary(blockId: number, summary: string): string;
7
+ export declare function applyCompressionState(state: SessionState, input: CompressionStateInput, selection: SelectionResolution, anchorMessageId: string, blockId: number, summary: string, consumedBlockIds: number[]): AppliedCompressionResult;
8
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/compress/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEnG,eAAO,MAAM,uBAAuB,sCAAsC,CAAA;AAE1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAS3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CASzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ9E;AAED,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EAAE,GAC3B,wBAAwB,CAoM1B"}