@tarquinen/opencode-dcp 2.1.6 → 2.2.0-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 (156) hide show
  1. package/README.md +30 -49
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -29
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/commands/context.d.ts.map +1 -1
  6. package/dist/lib/commands/context.js +36 -8
  7. package/dist/lib/commands/context.js.map +1 -1
  8. package/dist/lib/commands/help.d.ts.map +1 -1
  9. package/dist/lib/commands/help.js +2 -6
  10. package/dist/lib/commands/help.js.map +1 -1
  11. package/dist/lib/commands/manual.d.ts +1 -3
  12. package/dist/lib/commands/manual.d.ts.map +1 -1
  13. package/dist/lib/commands/manual.js +4 -43
  14. package/dist/lib/commands/manual.js.map +1 -1
  15. package/dist/lib/commands/sweep.js +1 -1
  16. package/dist/lib/commands/sweep.js.map +1 -1
  17. package/dist/lib/compress-logger.d.ts +15 -0
  18. package/dist/lib/compress-logger.d.ts.map +1 -0
  19. package/dist/lib/compress-logger.js +132 -0
  20. package/dist/lib/compress-logger.js.map +1 -0
  21. package/dist/lib/config.d.ts +5 -20
  22. package/dist/lib/config.d.ts.map +1 -1
  23. package/dist/lib/config.js +172 -346
  24. package/dist/lib/config.js.map +1 -1
  25. package/dist/lib/hooks.d.ts +7 -0
  26. package/dist/lib/hooks.d.ts.map +1 -1
  27. package/dist/lib/hooks.js +23 -16
  28. package/dist/lib/hooks.js.map +1 -1
  29. package/dist/lib/logger.d.ts.map +1 -1
  30. package/dist/lib/logger.js +6 -0
  31. package/dist/lib/logger.js.map +1 -1
  32. package/dist/lib/messages/index.d.ts +2 -2
  33. package/dist/lib/messages/index.d.ts.map +1 -1
  34. package/dist/lib/messages/index.js +2 -2
  35. package/dist/lib/messages/index.js.map +1 -1
  36. package/dist/lib/messages/inject/inject.d.ts +6 -0
  37. package/dist/lib/messages/inject/inject.d.ts.map +1 -0
  38. package/dist/lib/messages/inject/inject.js +99 -0
  39. package/dist/lib/messages/inject/inject.js.map +1 -0
  40. package/dist/lib/messages/inject/utils.d.ts +20 -0
  41. package/dist/lib/messages/inject/utils.d.ts.map +1 -0
  42. package/dist/lib/messages/inject/utils.js +137 -0
  43. package/dist/lib/messages/inject/utils.js.map +1 -0
  44. package/dist/lib/messages/prune.js +7 -7
  45. package/dist/lib/messages/prune.js.map +1 -1
  46. package/dist/lib/messages/utils.d.ts +16 -28
  47. package/dist/lib/messages/utils.d.ts.map +1 -1
  48. package/dist/lib/messages/utils.js +40 -133
  49. package/dist/lib/messages/utils.js.map +1 -1
  50. package/dist/lib/prompts/_codegen/system.generated.d.ts +1 -1
  51. package/dist/lib/prompts/_codegen/system.generated.d.ts.map +1 -1
  52. package/dist/lib/prompts/_codegen/system.generated.js +36 -32
  53. package/dist/lib/prompts/_codegen/system.generated.js.map +1 -1
  54. package/dist/lib/prompts/compress.d.ts +2 -0
  55. package/dist/lib/prompts/compress.d.ts.map +1 -0
  56. package/dist/lib/prompts/compress.js +122 -0
  57. package/dist/lib/prompts/compress.js.map +1 -0
  58. package/dist/lib/prompts/index.d.ts +6 -10
  59. package/dist/lib/prompts/index.d.ts.map +1 -1
  60. package/dist/lib/prompts/index.js +17 -40
  61. package/dist/lib/prompts/index.js.map +1 -1
  62. package/dist/lib/prompts/iteration-nudge.d.ts +2 -0
  63. package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -0
  64. package/dist/lib/prompts/iteration-nudge.js +9 -0
  65. package/dist/lib/prompts/iteration-nudge.js.map +1 -0
  66. package/dist/lib/prompts/nudge.d.ts +2 -0
  67. package/dist/lib/prompts/nudge.d.ts.map +1 -0
  68. package/dist/lib/prompts/nudge.js +40 -0
  69. package/dist/lib/prompts/nudge.js.map +1 -0
  70. package/dist/lib/prompts/turn-nudge.d.ts +2 -0
  71. package/dist/lib/prompts/turn-nudge.d.ts.map +1 -0
  72. package/dist/lib/prompts/turn-nudge.js +12 -0
  73. package/dist/lib/prompts/turn-nudge.js.map +1 -0
  74. package/dist/lib/state/persistence.d.ts +6 -0
  75. package/dist/lib/state/persistence.d.ts.map +1 -1
  76. package/dist/lib/state/persistence.js +58 -38
  77. package/dist/lib/state/persistence.js.map +1 -1
  78. package/dist/lib/state/state.d.ts.map +1 -1
  79. package/dist/lib/state/state.js +20 -5
  80. package/dist/lib/state/state.js.map +1 -1
  81. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  82. package/dist/lib/state/tool-cache.js +3 -17
  83. package/dist/lib/state/tool-cache.js.map +1 -1
  84. package/dist/lib/state/types.d.ts +7 -2
  85. package/dist/lib/state/types.d.ts.map +1 -1
  86. package/dist/lib/state/utils.d.ts +1 -0
  87. package/dist/lib/state/utils.d.ts.map +1 -1
  88. package/dist/lib/state/utils.js +33 -6
  89. package/dist/lib/state/utils.js.map +1 -1
  90. package/dist/lib/strategies/index.d.ts +0 -1
  91. package/dist/lib/strategies/index.d.ts.map +1 -1
  92. package/dist/lib/strategies/index.js +0 -1
  93. package/dist/lib/strategies/index.js.map +1 -1
  94. package/dist/lib/strategies/utils.d.ts +1 -0
  95. package/dist/lib/strategies/utils.d.ts.map +1 -1
  96. package/dist/lib/strategies/utils.js +15 -0
  97. package/dist/lib/strategies/utils.js.map +1 -1
  98. package/dist/lib/tools/compress-utils.d.ts +7 -4
  99. package/dist/lib/tools/compress-utils.d.ts.map +1 -1
  100. package/dist/lib/tools/compress-utils.js +34 -25
  101. package/dist/lib/tools/compress-utils.js.map +1 -1
  102. package/dist/lib/tools/compress.d.ts +2 -2
  103. package/dist/lib/tools/compress.d.ts.map +1 -1
  104. package/dist/lib/tools/compress.js +21 -58
  105. package/dist/lib/tools/compress.js.map +1 -1
  106. package/dist/lib/tools/index.d.ts +1 -3
  107. package/dist/lib/tools/index.d.ts.map +1 -1
  108. package/dist/lib/tools/index.js +0 -2
  109. package/dist/lib/tools/index.js.map +1 -1
  110. package/dist/lib/tools/types.d.ts +1 -1
  111. package/dist/lib/tools/types.d.ts.map +1 -1
  112. package/dist/lib/ui/notification.d.ts +2 -2
  113. package/dist/lib/ui/notification.d.ts.map +1 -1
  114. package/dist/lib/ui/notification.js +31 -28
  115. package/dist/lib/ui/notification.js.map +1 -1
  116. package/dist/lib/ui/utils.d.ts +3 -4
  117. package/dist/lib/ui/utils.d.ts.map +1 -1
  118. package/dist/lib/ui/utils.js +165 -24
  119. package/dist/lib/ui/utils.js.map +1 -1
  120. package/package.json +2 -1
  121. package/dist/lib/messages/inject.d.ts +0 -14
  122. package/dist/lib/messages/inject.d.ts.map +0 -1
  123. package/dist/lib/messages/inject.js +0 -266
  124. package/dist/lib/messages/inject.js.map +0 -1
  125. package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts +0 -2
  126. package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts.map +0 -1
  127. package/dist/lib/prompts/_codegen/compress-nudge.generated.js +0 -15
  128. package/dist/lib/prompts/_codegen/compress-nudge.generated.js.map +0 -1
  129. package/dist/lib/prompts/_codegen/compress.generated.d.ts +0 -2
  130. package/dist/lib/prompts/_codegen/compress.generated.d.ts.map +0 -1
  131. package/dist/lib/prompts/_codegen/compress.generated.js +0 -66
  132. package/dist/lib/prompts/_codegen/compress.generated.js.map +0 -1
  133. package/dist/lib/prompts/_codegen/distill.generated.d.ts +0 -2
  134. package/dist/lib/prompts/_codegen/distill.generated.d.ts.map +0 -1
  135. package/dist/lib/prompts/_codegen/distill.generated.js +0 -33
  136. package/dist/lib/prompts/_codegen/distill.generated.js.map +0 -1
  137. package/dist/lib/prompts/_codegen/nudge.generated.d.ts +0 -2
  138. package/dist/lib/prompts/_codegen/nudge.generated.d.ts.map +0 -1
  139. package/dist/lib/prompts/_codegen/nudge.generated.js +0 -17
  140. package/dist/lib/prompts/_codegen/nudge.generated.js.map +0 -1
  141. package/dist/lib/prompts/_codegen/prune.generated.d.ts +0 -2
  142. package/dist/lib/prompts/_codegen/prune.generated.d.ts.map +0 -1
  143. package/dist/lib/prompts/_codegen/prune.generated.js +0 -23
  144. package/dist/lib/prompts/_codegen/prune.generated.js.map +0 -1
  145. package/dist/lib/tools/distill.d.ts +0 -4
  146. package/dist/lib/tools/distill.d.ts.map +0 -1
  147. package/dist/lib/tools/distill.js +0 -41
  148. package/dist/lib/tools/distill.js.map +0 -1
  149. package/dist/lib/tools/prune-shared.d.ts +0 -6
  150. package/dist/lib/tools/prune-shared.d.ts.map +0 -1
  151. package/dist/lib/tools/prune-shared.js +0 -113
  152. package/dist/lib/tools/prune-shared.js.map +0 -1
  153. package/dist/lib/tools/prune.d.ts +0 -4
  154. package/dist/lib/tools/prune.d.ts.map +0 -1
  155. package/dist/lib/tools/prune.js +0 -28
  156. package/dist/lib/tools/prune.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/ui/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/ui/utils.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": "2.1.6",
4
+ "version": "2.2.0-beta0",
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",
@@ -44,6 +44,7 @@
44
44
  "dependencies": {
45
45
  "@anthropic-ai/tokenizer": "^0.0.4",
46
46
  "@opencode-ai/sdk": "^1.1.48",
47
+ "fuzzball": "^2.2.3",
47
48
  "jsonc-parser": "^3.3.1",
48
49
  "zod": "^4.3.6"
49
50
  },
@@ -1,14 +0,0 @@
1
- import type { SessionState, WithParts } from "../state";
2
- import type { Logger } from "../logger";
3
- import type { PluginConfig } from "../config";
4
- export declare const wrapPrunableTools: (content: string) => string;
5
- export declare const wrapCompressContext: (messageCount: number) => string;
6
- export declare const wrapCooldownMessage: (flags: {
7
- prune: boolean;
8
- distill: boolean;
9
- compress: boolean;
10
- }) => string;
11
- export declare const buildPrunableToolsList: (state: SessionState, config: PluginConfig, logger: Logger) => string;
12
- export declare const insertPruneToolContext: (state: SessionState, config: PluginConfig, logger: Logger, messages: WithParts[]) => void;
13
- export declare const insertMessageIdContext: (state: SessionState, config: PluginConfig, messages: WithParts[]) => void;
14
- //# sourceMappingURL=inject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../lib/messages/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AA+B7C,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,MAKnD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,KAAG,MAIvC,CAAA;AAEpB,eAAO,MAAM,mBAAmB,GAAI,OAAO;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CACpB,KAAG,MAmBH,CAAA;AAwGD,eAAO,MAAM,sBAAsB,GAC/B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,KACf,MAiDF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAC/B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,KACtB,IA2FF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAC/B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IAuCF,CAAA"}
@@ -1,266 +0,0 @@
1
- import { formatMessageIdTag } from "../message-ids";
2
- import { renderNudge, renderCompressNudge } from "../prompts";
3
- import { extractParameterKey, createSyntheticTextPart, createSyntheticToolPart, isIgnoredUserMessage, appendMessageIdTagToToolOutput, findLastToolPart, } from "./utils";
4
- import { getFilePathsFromParameters, isProtected } from "../protected-file-patterns";
5
- import { getLastUserMessage, isMessageCompacted } from "../shared-utils";
6
- import { getCurrentTokenUsage } from "../strategies/utils";
7
- function parsePercentageString(value, total) {
8
- if (!value.endsWith("%"))
9
- return undefined;
10
- const percent = parseFloat(value.slice(0, -1));
11
- if (isNaN(percent)) {
12
- return undefined;
13
- }
14
- const roundedPercent = Math.round(percent);
15
- const clampedPercent = Math.max(0, Math.min(100, roundedPercent));
16
- return Math.round((clampedPercent / 100) * total);
17
- }
18
- // XML wrappers
19
- export const wrapPrunableTools = (content) => {
20
- return `<prunable-tools>
21
- The following tools have been invoked and are available for pruning. This list does not mandate immediate action. Consider your current goals and the resources you need before pruning valuable tool inputs or outputs. Consolidate your prunes for efficiency; it is rarely worth pruning a single tiny tool output. Keep the context free of noise.
22
- ${content}
23
- </prunable-tools>`;
24
- };
25
- export const wrapCompressContext = (messageCount) => `<compress-context>
26
- Compress available. Conversation: ${messageCount} messages.
27
- Compress collapses completed task sequences or exploration phases into summaries.
28
- Uses ID boundaries [startId, endId, topic, summary].
29
- </compress-context>`;
30
- export const wrapCooldownMessage = (flags) => {
31
- const enabledTools = [];
32
- if (flags.distill)
33
- enabledTools.push("distill");
34
- if (flags.compress)
35
- enabledTools.push("compress");
36
- if (flags.prune)
37
- enabledTools.push("prune");
38
- let toolName;
39
- if (enabledTools.length === 0) {
40
- toolName = "pruning tools";
41
- }
42
- else if (enabledTools.length === 1) {
43
- toolName = `${enabledTools[0]} tool`;
44
- }
45
- else {
46
- const last = enabledTools.pop();
47
- toolName = `${enabledTools.join(", ")} or ${last} tools`;
48
- }
49
- return `<context-info>
50
- Context management was just performed. Do NOT use the ${toolName} again. A fresh list will be available after your next tool use.
51
- </context-info>`;
52
- };
53
- const resolveContextLimit = (config, state, providerId, modelId) => {
54
- const modelLimits = config.tools.settings.modelLimits;
55
- const contextLimit = config.tools.settings.contextLimit;
56
- if (modelLimits) {
57
- const providerModelId = providerId !== undefined && modelId !== undefined
58
- ? `${providerId}/${modelId}`
59
- : undefined;
60
- const limit = providerModelId !== undefined ? modelLimits[providerModelId] : undefined;
61
- if (limit !== undefined) {
62
- if (typeof limit === "string" && limit.endsWith("%")) {
63
- if (state.modelContextLimit === undefined) {
64
- return undefined;
65
- }
66
- return parsePercentageString(limit, state.modelContextLimit);
67
- }
68
- return typeof limit === "number" ? limit : undefined;
69
- }
70
- }
71
- if (typeof contextLimit === "string") {
72
- if (contextLimit.endsWith("%")) {
73
- if (state.modelContextLimit === undefined) {
74
- return undefined;
75
- }
76
- return parsePercentageString(contextLimit, state.modelContextLimit);
77
- }
78
- return undefined;
79
- }
80
- return contextLimit;
81
- };
82
- const shouldInjectCompressNudge = (config, state, messages, providerId, modelId) => {
83
- if (config.tools.compress.permission === "deny") {
84
- return false;
85
- }
86
- const lastAssistant = messages.findLast((msg) => msg.info.role === "assistant");
87
- if (lastAssistant) {
88
- const parts = Array.isArray(lastAssistant.parts) ? lastAssistant.parts : [];
89
- const hasDcpTool = parts.some((part) => part.type === "tool" &&
90
- part.state.status === "completed" &&
91
- (part.tool === "compress" || part.tool === "prune" || part.tool === "distill"));
92
- if (hasDcpTool) {
93
- return false;
94
- }
95
- }
96
- const contextLimit = resolveContextLimit(config, state, providerId, modelId);
97
- if (contextLimit === undefined) {
98
- return false;
99
- }
100
- const currentTokens = getCurrentTokenUsage(messages);
101
- return currentTokens > contextLimit;
102
- };
103
- const getNudgeString = (config) => {
104
- const flags = {
105
- prune: config.tools.prune.permission !== "deny",
106
- distill: config.tools.distill.permission !== "deny",
107
- compress: config.tools.compress.permission !== "deny",
108
- manual: false,
109
- };
110
- if (!flags.prune && !flags.distill && !flags.compress) {
111
- return "";
112
- }
113
- return renderNudge(flags);
114
- };
115
- const getCooldownMessage = (config) => {
116
- return wrapCooldownMessage({
117
- prune: config.tools.prune.permission !== "deny",
118
- distill: config.tools.distill.permission !== "deny",
119
- compress: config.tools.compress.permission !== "deny",
120
- });
121
- };
122
- const buildCompressContext = (state, messages) => {
123
- const messageCount = messages.filter((msg) => !isMessageCompacted(state, msg)).length;
124
- return wrapCompressContext(messageCount);
125
- };
126
- export const buildPrunableToolsList = (state, config, logger) => {
127
- const lines = [];
128
- const toolIdList = state.toolIdList;
129
- state.toolParameters.forEach((toolParameterEntry, toolCallId) => {
130
- if (state.prune.tools.has(toolCallId)) {
131
- return;
132
- }
133
- const allProtectedTools = config.tools.settings.protectedTools;
134
- if (allProtectedTools.includes(toolParameterEntry.tool)) {
135
- return;
136
- }
137
- const filePaths = getFilePathsFromParameters(toolParameterEntry.tool, toolParameterEntry.parameters);
138
- if (isProtected(filePaths, config.protectedFilePatterns)) {
139
- return;
140
- }
141
- const numericId = toolIdList.indexOf(toolCallId);
142
- if (numericId === -1) {
143
- logger.warn(`Tool in cache but not in toolIdList - possible stale entry`, {
144
- toolCallId,
145
- tool: toolParameterEntry.tool,
146
- });
147
- return;
148
- }
149
- const paramKey = extractParameterKey(toolParameterEntry.tool, toolParameterEntry.parameters);
150
- const description = paramKey
151
- ? `${toolParameterEntry.tool}, ${paramKey}`
152
- : toolParameterEntry.tool;
153
- const tokenSuffix = toolParameterEntry.tokenCount !== undefined
154
- ? ` (~${toolParameterEntry.tokenCount} tokens)`
155
- : "";
156
- lines.push(`${numericId}: ${description}${tokenSuffix}`);
157
- logger.debug(`Prunable tool found - ID: ${numericId}, Tool: ${toolParameterEntry.tool}, Call ID: ${toolCallId}`);
158
- });
159
- if (lines.length === 0) {
160
- return "";
161
- }
162
- return wrapPrunableTools(lines.join("\n"));
163
- };
164
- export const insertPruneToolContext = (state, config, logger, messages) => {
165
- if (state.manualMode || state.pendingManualTrigger) {
166
- return;
167
- }
168
- const pruneEnabled = config.tools.prune.permission !== "deny";
169
- const distillEnabled = config.tools.distill.permission !== "deny";
170
- const compressEnabled = config.tools.compress.permission !== "deny";
171
- if (!pruneEnabled && !distillEnabled && !compressEnabled) {
172
- return;
173
- }
174
- const pruneOrDistillEnabled = pruneEnabled || distillEnabled;
175
- const contentParts = [];
176
- const lastUserMessage = getLastUserMessage(messages);
177
- const providerId = lastUserMessage
178
- ? lastUserMessage.info.model.providerID
179
- : undefined;
180
- const modelId = lastUserMessage
181
- ? lastUserMessage.info.model.modelID
182
- : undefined;
183
- if (state.lastToolPrune) {
184
- logger.debug("Last tool was prune - injecting cooldown message");
185
- contentParts.push(getCooldownMessage(config));
186
- }
187
- else {
188
- if (pruneOrDistillEnabled) {
189
- const prunableToolsList = buildPrunableToolsList(state, config, logger);
190
- if (prunableToolsList) {
191
- // logger.debug("prunable-tools: \n" + prunableToolsList)
192
- contentParts.push(prunableToolsList);
193
- }
194
- }
195
- if (compressEnabled) {
196
- const compressContext = buildCompressContext(state, messages);
197
- // logger.debug("compress-context: \n" + compressContext)
198
- contentParts.push(compressContext);
199
- }
200
- if (shouldInjectCompressNudge(config, state, messages, providerId, modelId)) {
201
- logger.info("Inserting compress nudge - token usage exceeds contextLimit");
202
- contentParts.push(renderCompressNudge());
203
- }
204
- else if (config.tools.settings.nudgeEnabled &&
205
- state.nudgeCounter >= Math.max(1, config.tools.settings.nudgeFrequency)) {
206
- logger.info("Inserting prune nudge message");
207
- contentParts.push(getNudgeString(config));
208
- }
209
- }
210
- if (contentParts.length === 0) {
211
- return;
212
- }
213
- const combinedContent = `\n${contentParts.join("\n")}`;
214
- if (!lastUserMessage) {
215
- return;
216
- }
217
- const lastNonIgnoredMessage = messages.findLast((msg) => !(msg.info.role === "user" && isIgnoredUserMessage(msg)));
218
- if (!lastNonIgnoredMessage) {
219
- return;
220
- }
221
- // When following a user message, append a synthetic text part since models like Claude
222
- // expect assistant turns to start with reasoning parts which cannot be easily faked.
223
- // For all other cases, append a synthetic tool part to the last message which works
224
- // across all models without disrupting their behavior.
225
- if (lastNonIgnoredMessage.info.role === "user") {
226
- const textPart = createSyntheticTextPart(lastNonIgnoredMessage, combinedContent, `${lastNonIgnoredMessage.info.id}:context`);
227
- lastNonIgnoredMessage.parts.push(textPart);
228
- }
229
- else {
230
- const toolPart = createSyntheticToolPart(lastNonIgnoredMessage, combinedContent, modelId ?? "", `${lastNonIgnoredMessage.info.id}:context`);
231
- lastNonIgnoredMessage.parts.push(toolPart);
232
- }
233
- };
234
- export const insertMessageIdContext = (state, config, messages) => {
235
- if (config.tools.compress.permission === "deny") {
236
- return;
237
- }
238
- const lastUserMessage = getLastUserMessage(messages);
239
- const toolModelId = lastUserMessage
240
- ? (lastUserMessage.info.model.modelID ?? "")
241
- : "";
242
- for (const message of messages) {
243
- if (message.info.role === "user" && isIgnoredUserMessage(message)) {
244
- continue;
245
- }
246
- const messageRef = state.messageIds.byRawId.get(message.info.id);
247
- if (!messageRef) {
248
- continue;
249
- }
250
- const tag = formatMessageIdTag(messageRef);
251
- const messageIdSeed = `${message.info.id}:message-id:${messageRef}`;
252
- if (message.info.role === "user") {
253
- message.parts.push(createSyntheticTextPart(message, tag, messageIdSeed));
254
- continue;
255
- }
256
- if (message.info.role !== "assistant") {
257
- continue;
258
- }
259
- const lastToolPart = findLastToolPart(message);
260
- if (lastToolPart && appendMessageIdTagToToolOutput(lastToolPart, tag)) {
261
- continue;
262
- }
263
- message.parts.push(createSyntheticToolPart(message, tag, toolModelId, messageIdSeed));
264
- }
265
- };
266
- //# sourceMappingURL=inject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../lib/messages/inject.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const COMPRESS_NUDGE = "<instruction name=context_limit_reached>\nCRITICAL CONTEXT LIMIT\nYour session context has exceeded the configured limit. Strict adherence to context compression is required.\n\nPROTOCOL\nYou should prioritize context management, but do not interrupt a critical atomic operation if one is in progress. Once the immediate step is done, you must perform context management.\n\nIMMEDIATE ACTION REQUIRED\nPHASE COMPLETION: If a phase is complete, use the `compress` tool to condense the entire sequence into a detailed summary\n</instruction>\n";
2
- //# sourceMappingURL=compress-nudge.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress-nudge.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/compress-nudge.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,kiBAU1B,CAAA"}
@@ -1,15 +0,0 @@
1
- // AUTO-GENERATED FILE - DO NOT EDIT
2
- // Generated from compress-nudge.md by scripts/generate-prompts.ts
3
- // To modify, edit compress-nudge.md and run `npm run generate:prompts`
4
- export const COMPRESS_NUDGE = `<instruction name=context_limit_reached>
5
- CRITICAL CONTEXT LIMIT
6
- Your session context has exceeded the configured limit. Strict adherence to context compression is required.
7
-
8
- PROTOCOL
9
- You should prioritize context management, but do not interrupt a critical atomic operation if one is in progress. Once the immediate step is done, you must perform context management.
10
-
11
- IMMEDIATE ACTION REQUIRED
12
- PHASE COMPLETION: If a phase is complete, use the \`compress\` tool to condense the entire sequence into a detailed summary
13
- </instruction>
14
- `;
15
- //# sourceMappingURL=compress-nudge.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress-nudge.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/compress-nudge.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,uEAAuE;AAEvE,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;CAU7B,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const COMPRESS = "Use this tool to collapse a contiguous range of conversation into a preserved 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\nWhen the selected range includes user messages, preserve the user's intent with extra care. Do not change scope, constraints, priorities, acceptance criteria, or requested outcomes.\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\nTHE WAYS OF COMPRESS\n`compress` when a chapter closes - when a phase of work is truly complete 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\nDo NOT compress when:\nYou may need exact code, error messages, or file contents from the range\nWork in that area is still active or may resume\nYou're mid-sprint on related functionality\n\nBefore compressing, ask: _\"Is this chapter closed?\"_ Compression is irreversible. The summary replaces everything in the range.\n\nBOUNDARY IDS\nYou specify boundaries by ID.\n\nUse the injected IDs visible in the conversation:\n\n- `mNNNN` IDs identify raw messages\n- `bN` IDs identify previously compressed blocks\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- Do not invent IDs.\n\nCOMPRESSED BLOCK PLACEHOLDERS\nWhen the selected range includes previously compressed blocks, use placeholders in this exact format:\n\n- `(bN)`\n\nRules:\n\n- Include every required placeholder exactly once.\n- Do not include placeholders for blocks outside the selected range.\n- Treat `(bN)` placeholders as reserved tokens and only use them intentionally.\n- If needed in prose, refer to a block as plain text like `compressed b3` (not as a placeholder token).\n\nTHE FORMAT OF COMPRESS\n`topic`: Short label (3-5 words) for display - e.g., \"Auth System Exploration\"\n`content`: Object containing:\n`startId`: Boundary ID marking the beginning of the range (`mNNNN` or `bN`)\n`endId`: Boundary ID marking the end of the range (`mNNNN` or `bN`)\n`summary`: Complete technical summary replacing all content in the range\n";
2
- //# sourceMappingURL=compress.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/compress.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,8+FA6DpB,CAAA"}
@@ -1,66 +0,0 @@
1
- // AUTO-GENERATED FILE - DO NOT EDIT
2
- // Generated from compress.md by scripts/generate-prompts.ts
3
- // To modify, edit compress.md and run `npm run generate:prompts`
4
- export const COMPRESS = `Use this tool to collapse a contiguous range of conversation into a preserved summary.
5
-
6
- THE PHILOSOPHY OF COMPRESS
7
- \`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.
8
-
9
- Think of compression as phase transitions: raw exploration becomes refined understanding. The original context served its purpose; your summary now carries that understanding forward.
10
-
11
- THE SUMMARY
12
- Your 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.
13
-
14
- When the selected range includes user messages, preserve the user's intent with extra care. Do not change scope, constraints, priorities, acceptance criteria, or requested outcomes.
15
-
16
- Yet 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.
17
-
18
- THE WAYS OF COMPRESS
19
- \`compress\` when a chapter closes - when a phase of work is truly complete and the raw conversation has served its purpose:
20
-
21
- Research concluded and findings are clear
22
- Implementation finished and verified
23
- Exploration exhausted and patterns understood
24
-
25
- Do NOT compress when:
26
- You may need exact code, error messages, or file contents from the range
27
- Work in that area is still active or may resume
28
- You're mid-sprint on related functionality
29
-
30
- Before compressing, ask: _"Is this chapter closed?"_ Compression is irreversible. The summary replaces everything in the range.
31
-
32
- BOUNDARY IDS
33
- You specify boundaries by ID.
34
-
35
- Use the injected IDs visible in the conversation:
36
-
37
- - \`mNNNN\` IDs identify raw messages
38
- - \`bN\` IDs identify previously compressed blocks
39
-
40
- Rules:
41
-
42
- - Pick \`startId\` and \`endId\` directly from injected IDs in context.
43
- - IDs must exist in the current visible context.
44
- - \`startId\` must appear before \`endId\`.
45
- - Do not invent IDs.
46
-
47
- COMPRESSED BLOCK PLACEHOLDERS
48
- When the selected range includes previously compressed blocks, use placeholders in this exact format:
49
-
50
- - \`(bN)\`
51
-
52
- Rules:
53
-
54
- - Include every required placeholder exactly once.
55
- - Do not include placeholders for blocks outside the selected range.
56
- - Treat \`(bN)\` placeholders as reserved tokens and only use them intentionally.
57
- - If needed in prose, refer to a block as plain text like \`compressed b3\` (not as a placeholder token).
58
-
59
- THE FORMAT OF COMPRESS
60
- \`topic\`: Short label (3-5 words) for display - e.g., "Auth System Exploration"
61
- \`content\`: Object containing:
62
- \`startId\`: Boundary ID marking the beginning of the range (\`mNNNN\` or \`bN\`)
63
- \`endId\`: Boundary ID marking the end of the range (\`mNNNN\` or \`bN\`)
64
- \`summary\`: Complete technical summary replacing all content in the range
65
- `;
66
- //# sourceMappingURL=compress.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compress.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/compress.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,4DAA4D;AAC5D,iEAAiE;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DvB,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const DISTILL = "Use this tool to distill relevant findings from a selection of raw tool outputs into preserved knowledge, in order to denoise key bits and parts of context.\n\nTHE PRUNABLE TOOLS LIST\nA <prunable-tools> will show in context when outputs are available for distillation (you don't need to look for it). Each entry follows the format `ID: tool, parameter (~token usage)` (e.g., `20: read, /path/to/file.ts (~1500 tokens)`). You MUST select outputs by their numeric ID. THESE ARE YOUR ONLY VALID TARGETS.\n\nTHE PHILOSOPHY OF DISTILLATION\n`distill` is your favored instrument for transforming raw tool outputs into preserved knowledge. This is not mere summarization; it is high-fidelity extraction that makes the original output obsolete.\n\nYour distillation must be COMPLETE. Capture function signatures, type definitions, business logic, constraints, configuration values... EVERYTHING essential. Think of it as creating a high signal technical substitute so faithful that re-fetching the original would yield no additional value. Be thorough; be comprehensive; leave no ambiguity, ensure that your distillation stands alone, and is designed for easy retrieval and comprehension.\n\nAIM FOR IMPACT. Distillation is most powerful when applied to outputs that contain signal buried in noise. A single line requires no distillation; a hundred lines of API documentation do. Make sure the distillation is meaningful.\n\nTHE WAYS OF DISTILL\n`distill` when you have extracted the essence from tool outputs and the raw form has served its purpose.\nHere are some examples:\nEXPLORATION: You've read extensively and grasp the architecture. The original file contents are no longer needed; your understanding, synthesized, is sufficient.\nPRESERVATION: Valuable technical details (signatures, logic, constraints) coexist with noise. Preserve the former; discard the latter.\n\nNot everything should be distilled. Prefer keeping raw outputs when:\nPRECISION MATTERS: You will edit the file, grep for exact strings, or need line-accurate references. Distillation sacrifices precision for essence.\nUNCERTAINTY REMAINS: If you might need to re-examine the original, defer. Distillation is irreversible; be certain before you commit.\n\nBefore distilling, ask yourself: _\"Will I need the raw output for upcoming work?\"_ If you plan to edit a file you just read, keep it intact. Distillation is for completed exploration, not active work.\n\nTHE FORMAT OF DISTILL\n`targets`: Array of objects, each containing:\n`id`: Numeric ID (as string) from the `<prunable-tools>` list\n`distillation`: Complete technical substitute for that tool output\n";
2
- //# sourceMappingURL=distill.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distill.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/distill.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,+kFA4BnB,CAAA"}
@@ -1,33 +0,0 @@
1
- // AUTO-GENERATED FILE - DO NOT EDIT
2
- // Generated from distill.md by scripts/generate-prompts.ts
3
- // To modify, edit distill.md and run `npm run generate:prompts`
4
- export const DISTILL = `Use this tool to distill relevant findings from a selection of raw tool outputs into preserved knowledge, in order to denoise key bits and parts of context.
5
-
6
- THE PRUNABLE TOOLS LIST
7
- A <prunable-tools> will show in context when outputs are available for distillation (you don't need to look for it). Each entry follows the format \`ID: tool, parameter (~token usage)\` (e.g., \`20: read, /path/to/file.ts (~1500 tokens)\`). You MUST select outputs by their numeric ID. THESE ARE YOUR ONLY VALID TARGETS.
8
-
9
- THE PHILOSOPHY OF DISTILLATION
10
- \`distill\` is your favored instrument for transforming raw tool outputs into preserved knowledge. This is not mere summarization; it is high-fidelity extraction that makes the original output obsolete.
11
-
12
- Your distillation must be COMPLETE. Capture function signatures, type definitions, business logic, constraints, configuration values... EVERYTHING essential. Think of it as creating a high signal technical substitute so faithful that re-fetching the original would yield no additional value. Be thorough; be comprehensive; leave no ambiguity, ensure that your distillation stands alone, and is designed for easy retrieval and comprehension.
13
-
14
- AIM FOR IMPACT. Distillation is most powerful when applied to outputs that contain signal buried in noise. A single line requires no distillation; a hundred lines of API documentation do. Make sure the distillation is meaningful.
15
-
16
- THE WAYS OF DISTILL
17
- \`distill\` when you have extracted the essence from tool outputs and the raw form has served its purpose.
18
- Here are some examples:
19
- EXPLORATION: You've read extensively and grasp the architecture. The original file contents are no longer needed; your understanding, synthesized, is sufficient.
20
- PRESERVATION: Valuable technical details (signatures, logic, constraints) coexist with noise. Preserve the former; discard the latter.
21
-
22
- Not everything should be distilled. Prefer keeping raw outputs when:
23
- PRECISION MATTERS: You will edit the file, grep for exact strings, or need line-accurate references. Distillation sacrifices precision for essence.
24
- UNCERTAINTY REMAINS: If you might need to re-examine the original, defer. Distillation is irreversible; be certain before you commit.
25
-
26
- Before distilling, ask yourself: _"Will I need the raw output for upcoming work?"_ If you plan to edit a file you just read, keep it intact. Distillation is for completed exploration, not active work.
27
-
28
- THE FORMAT OF DISTILL
29
- \`targets\`: Array of objects, each containing:
30
- \`id\`: Numeric ID (as string) from the \`<prunable-tools>\` list
31
- \`distillation\`: Complete technical substitute for that tool output
32
- `;
33
- //# sourceMappingURL=distill.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distill.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/distill.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,2DAA2D;AAC3D,gEAAgE;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BtB,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const NUDGE = "<instruction name=context_management_required>\nCRITICAL CONTEXT WARNING\nYour context window is filling with tool. Strict adherence to context hygiene is required.\n\nPROTOCOL\nYou should prioritize context management, but do not interrupt a critical atomic operation if one is in progress. Once the immediate step is done, you must perform context management.\n\nIMMEDIATE ACTION REQUIRED\n<distill>KNOWLEDGE PRESERVATION: If holding valuable raw data you POTENTIALLY will need in your task, use the `distill` tool. Produce a high-fidelity distillation to preserve insights - be thorough</distill>\n<compress>PHASE COMPLETION: If a phase is complete, use the `compress` tool to condense the entire sequence into a detailed summary</compress>\n<prune>NOISE REMOVAL: If you read files or ran commands that yielded no value, use the `prune` tool to remove them. If newer tools supersedes older ones, prune the old</prune>\n</instruction>\n";
2
- //# sourceMappingURL=nudge.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nudge.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/nudge.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,+6BAYjB,CAAA"}
@@ -1,17 +0,0 @@
1
- // AUTO-GENERATED FILE - DO NOT EDIT
2
- // Generated from nudge.md by scripts/generate-prompts.ts
3
- // To modify, edit nudge.md and run `npm run generate:prompts`
4
- export const NUDGE = `<instruction name=context_management_required>
5
- CRITICAL CONTEXT WARNING
6
- Your context window is filling with tool. Strict adherence to context hygiene is required.
7
-
8
- PROTOCOL
9
- You should prioritize context management, but do not interrupt a critical atomic operation if one is in progress. Once the immediate step is done, you must perform context management.
10
-
11
- IMMEDIATE ACTION REQUIRED
12
- <distill>KNOWLEDGE PRESERVATION: If holding valuable raw data you POTENTIALLY will need in your task, use the \`distill\` tool. Produce a high-fidelity distillation to preserve insights - be thorough</distill>
13
- <compress>PHASE COMPLETION: If a phase is complete, use the \`compress\` tool to condense the entire sequence into a detailed summary</compress>
14
- <prune>NOISE REMOVAL: If you read files or ran commands that yielded no value, use the \`prune\` tool to remove them. If newer tools supersedes older ones, prune the old</prune>
15
- </instruction>
16
- `;
17
- //# sourceMappingURL=nudge.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nudge.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/nudge.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yDAAyD;AACzD,8DAA8D;AAE9D,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;CAYpB,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const PRUNE = "Use this tool to remove tool outputs from context entirely. No preservation - pure deletion.\n\nTHE PRUNABLE TOOLS LIST\nA `<prunable-tools>` section surfaces in context showing outputs eligible for removal. Each line reads `ID: tool, parameter (~token usage)` (e.g., `20: read, /path/to/file.ts (~1500 tokens)`). Reference outputs by their numeric ID - these are your ONLY valid targets for pruning.\n\nTHE WAYS OF PRUNE\n`prune` is surgical deletion - eliminating noise (irrelevant or unhelpful outputs), superseded information (older outputs replaced by newer data), or wrong targets (you accessed something that turned out to be irrelevant). Use it to keep your context lean and focused.\n\nBATCH WISELY! Pruning is most effective when consolidated. Don't prune a single tiny output - accumulate several candidates before acting.\n\nDo NOT prune when:\nNEEDED LATER: You plan to edit the file or reference this context for implementation.\nUNCERTAINTY: If you might need to re-examine the original, keep it.\n\nBefore pruning, ask: _\"Is this noise, or will it serve me?\"_ If the latter, keep it. Pruning that forces re-fetching is a net loss.\n\nTHE FORMAT OF PRUNE\n`ids`: Array of numeric IDs (as strings) from the `<prunable-tools>` list\n";
2
- //# sourceMappingURL=prune.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune.generated.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/prune.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,quCAkBjB,CAAA"}
@@ -1,23 +0,0 @@
1
- // AUTO-GENERATED FILE - DO NOT EDIT
2
- // Generated from prune.md by scripts/generate-prompts.ts
3
- // To modify, edit prune.md and run `npm run generate:prompts`
4
- export const PRUNE = `Use this tool to remove tool outputs from context entirely. No preservation - pure deletion.
5
-
6
- THE PRUNABLE TOOLS LIST
7
- A \`<prunable-tools>\` section surfaces in context showing outputs eligible for removal. Each line reads \`ID: tool, parameter (~token usage)\` (e.g., \`20: read, /path/to/file.ts (~1500 tokens)\`). Reference outputs by their numeric ID - these are your ONLY valid targets for pruning.
8
-
9
- THE WAYS OF PRUNE
10
- \`prune\` is surgical deletion - eliminating noise (irrelevant or unhelpful outputs), superseded information (older outputs replaced by newer data), or wrong targets (you accessed something that turned out to be irrelevant). Use it to keep your context lean and focused.
11
-
12
- BATCH WISELY! Pruning is most effective when consolidated. Don't prune a single tiny output - accumulate several candidates before acting.
13
-
14
- Do NOT prune when:
15
- NEEDED LATER: You plan to edit the file or reference this context for implementation.
16
- UNCERTAINTY: If you might need to re-examine the original, keep it.
17
-
18
- Before pruning, ask: _"Is this noise, or will it serve me?"_ If the latter, keep it. Pruning that forces re-fetching is a net loss.
19
-
20
- THE FORMAT OF PRUNE
21
- \`ids\`: Array of numeric IDs (as strings) from the \`<prunable-tools>\` list
22
- `;
23
- //# sourceMappingURL=prune.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune.generated.js","sourceRoot":"","sources":["../../../../lib/prompts/_codegen/prune.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yDAAyD;AACzD,8DAA8D;AAE9D,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;CAkBpB,CAAA"}
@@ -1,4 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import type { PruneToolContext } from "./types";
3
- export declare function createDistillTool(ctx: PruneToolContext): ReturnType<typeof tool>;
4
- //# sourceMappingURL=distill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distill.d.ts","sourceRoot":"","sources":["../../../lib/tools/distill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAO/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAmDhF"}