@tarquinen/opencode-dcp 2.1.7 → 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 (168) 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.d.ts.map +1 -1
  16. package/dist/lib/commands/sweep.js +2 -12
  17. package/dist/lib/commands/sweep.js.map +1 -1
  18. package/dist/lib/compress-logger.d.ts +15 -0
  19. package/dist/lib/compress-logger.d.ts.map +1 -0
  20. package/dist/lib/compress-logger.js +132 -0
  21. package/dist/lib/compress-logger.js.map +1 -0
  22. package/dist/lib/config.d.ts +5 -20
  23. package/dist/lib/config.d.ts.map +1 -1
  24. package/dist/lib/config.js +172 -348
  25. package/dist/lib/config.js.map +1 -1
  26. package/dist/lib/hooks.d.ts +7 -0
  27. package/dist/lib/hooks.d.ts.map +1 -1
  28. package/dist/lib/hooks.js +23 -17
  29. package/dist/lib/hooks.js.map +1 -1
  30. package/dist/lib/logger.d.ts.map +1 -1
  31. package/dist/lib/logger.js +6 -0
  32. package/dist/lib/logger.js.map +1 -1
  33. package/dist/lib/messages/index.d.ts +2 -3
  34. package/dist/lib/messages/index.d.ts.map +1 -1
  35. package/dist/lib/messages/index.js +2 -3
  36. package/dist/lib/messages/index.js.map +1 -1
  37. package/dist/lib/messages/inject/inject.d.ts +6 -0
  38. package/dist/lib/messages/inject/inject.d.ts.map +1 -0
  39. package/dist/lib/messages/inject/inject.js +99 -0
  40. package/dist/lib/messages/inject/inject.js.map +1 -0
  41. package/dist/lib/messages/inject/utils.d.ts +20 -0
  42. package/dist/lib/messages/inject/utils.d.ts.map +1 -0
  43. package/dist/lib/messages/inject/utils.js +137 -0
  44. package/dist/lib/messages/inject/utils.js.map +1 -0
  45. package/dist/lib/messages/utils.d.ts +7 -11
  46. package/dist/lib/messages/utils.d.ts.map +1 -1
  47. package/dist/lib/messages/utils.js +33 -132
  48. package/dist/lib/messages/utils.js.map +1 -1
  49. package/dist/lib/prompts/_codegen/system.generated.d.ts +1 -1
  50. package/dist/lib/prompts/_codegen/system.generated.d.ts.map +1 -1
  51. package/dist/lib/prompts/_codegen/system.generated.js +36 -32
  52. package/dist/lib/prompts/_codegen/system.generated.js.map +1 -1
  53. package/dist/lib/prompts/compress.d.ts +2 -0
  54. package/dist/lib/prompts/compress.d.ts.map +1 -0
  55. package/dist/lib/prompts/compress.js +122 -0
  56. package/dist/lib/prompts/compress.js.map +1 -0
  57. package/dist/lib/prompts/index.d.ts +6 -10
  58. package/dist/lib/prompts/index.d.ts.map +1 -1
  59. package/dist/lib/prompts/index.js +17 -40
  60. package/dist/lib/prompts/index.js.map +1 -1
  61. package/dist/lib/prompts/iteration-nudge.d.ts +2 -0
  62. package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -0
  63. package/dist/lib/prompts/iteration-nudge.js +9 -0
  64. package/dist/lib/prompts/iteration-nudge.js.map +1 -0
  65. package/dist/lib/prompts/nudge.d.ts +2 -0
  66. package/dist/lib/prompts/nudge.d.ts.map +1 -0
  67. package/dist/lib/prompts/nudge.js +40 -0
  68. package/dist/lib/prompts/nudge.js.map +1 -0
  69. package/dist/lib/prompts/turn-nudge.d.ts +2 -0
  70. package/dist/lib/prompts/turn-nudge.d.ts.map +1 -0
  71. package/dist/lib/prompts/turn-nudge.js +12 -0
  72. package/dist/lib/prompts/turn-nudge.js.map +1 -0
  73. package/dist/lib/state/persistence.d.ts +7 -2
  74. package/dist/lib/state/persistence.d.ts.map +1 -1
  75. package/dist/lib/state/persistence.js +58 -39
  76. package/dist/lib/state/persistence.js.map +1 -1
  77. package/dist/lib/state/state.d.ts.map +1 -1
  78. package/dist/lib/state/state.js +20 -8
  79. package/dist/lib/state/state.js.map +1 -1
  80. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  81. package/dist/lib/state/tool-cache.js +3 -17
  82. package/dist/lib/state/tool-cache.js.map +1 -1
  83. package/dist/lib/state/types.d.ts +7 -8
  84. package/dist/lib/state/types.d.ts.map +1 -1
  85. package/dist/lib/state/utils.d.ts +2 -2
  86. package/dist/lib/state/utils.d.ts.map +1 -1
  87. package/dist/lib/state/utils.js +29 -19
  88. package/dist/lib/state/utils.js.map +1 -1
  89. package/dist/lib/strategies/deduplication.d.ts.map +1 -1
  90. package/dist/lib/strategies/deduplication.js +0 -11
  91. package/dist/lib/strategies/deduplication.js.map +1 -1
  92. package/dist/lib/strategies/index.d.ts +0 -1
  93. package/dist/lib/strategies/index.d.ts.map +1 -1
  94. package/dist/lib/strategies/index.js +0 -1
  95. package/dist/lib/strategies/index.js.map +1 -1
  96. package/dist/lib/strategies/purge-errors.d.ts.map +1 -1
  97. package/dist/lib/strategies/purge-errors.js +0 -11
  98. package/dist/lib/strategies/purge-errors.js.map +1 -1
  99. package/dist/lib/strategies/supersede-writes.d.ts.map +1 -1
  100. package/dist/lib/strategies/supersede-writes.js +0 -11
  101. package/dist/lib/strategies/supersede-writes.js.map +1 -1
  102. package/dist/lib/strategies/utils.d.ts +1 -0
  103. package/dist/lib/strategies/utils.d.ts.map +1 -1
  104. package/dist/lib/strategies/utils.js +15 -0
  105. package/dist/lib/strategies/utils.js.map +1 -1
  106. package/dist/lib/tools/compress-utils.d.ts +7 -4
  107. package/dist/lib/tools/compress-utils.d.ts.map +1 -1
  108. package/dist/lib/tools/compress-utils.js +34 -25
  109. package/dist/lib/tools/compress-utils.js.map +1 -1
  110. package/dist/lib/tools/compress.d.ts +2 -2
  111. package/dist/lib/tools/compress.d.ts.map +1 -1
  112. package/dist/lib/tools/compress.js +21 -58
  113. package/dist/lib/tools/compress.js.map +1 -1
  114. package/dist/lib/tools/index.d.ts +1 -3
  115. package/dist/lib/tools/index.d.ts.map +1 -1
  116. package/dist/lib/tools/index.js +0 -2
  117. package/dist/lib/tools/index.js.map +1 -1
  118. package/dist/lib/tools/types.d.ts +1 -1
  119. package/dist/lib/tools/types.d.ts.map +1 -1
  120. package/dist/lib/ui/notification.d.ts +2 -2
  121. package/dist/lib/ui/notification.d.ts.map +1 -1
  122. package/dist/lib/ui/notification.js +31 -28
  123. package/dist/lib/ui/notification.js.map +1 -1
  124. package/dist/lib/ui/utils.d.ts +3 -4
  125. package/dist/lib/ui/utils.d.ts.map +1 -1
  126. package/dist/lib/ui/utils.js +165 -24
  127. package/dist/lib/ui/utils.js.map +1 -1
  128. package/package.json +2 -1
  129. package/dist/lib/messages/inject.d.ts +0 -14
  130. package/dist/lib/messages/inject.d.ts.map +0 -1
  131. package/dist/lib/messages/inject.js +0 -266
  132. package/dist/lib/messages/inject.js.map +0 -1
  133. package/dist/lib/messages/sync.d.ts +0 -4
  134. package/dist/lib/messages/sync.d.ts.map +0 -1
  135. package/dist/lib/messages/sync.js +0 -29
  136. package/dist/lib/messages/sync.js.map +0 -1
  137. package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts +0 -2
  138. package/dist/lib/prompts/_codegen/compress-nudge.generated.d.ts.map +0 -1
  139. package/dist/lib/prompts/_codegen/compress-nudge.generated.js +0 -15
  140. package/dist/lib/prompts/_codegen/compress-nudge.generated.js.map +0 -1
  141. package/dist/lib/prompts/_codegen/compress.generated.d.ts +0 -2
  142. package/dist/lib/prompts/_codegen/compress.generated.d.ts.map +0 -1
  143. package/dist/lib/prompts/_codegen/compress.generated.js +0 -66
  144. package/dist/lib/prompts/_codegen/compress.generated.js.map +0 -1
  145. package/dist/lib/prompts/_codegen/distill.generated.d.ts +0 -2
  146. package/dist/lib/prompts/_codegen/distill.generated.d.ts.map +0 -1
  147. package/dist/lib/prompts/_codegen/distill.generated.js +0 -33
  148. package/dist/lib/prompts/_codegen/distill.generated.js.map +0 -1
  149. package/dist/lib/prompts/_codegen/nudge.generated.d.ts +0 -2
  150. package/dist/lib/prompts/_codegen/nudge.generated.d.ts.map +0 -1
  151. package/dist/lib/prompts/_codegen/nudge.generated.js +0 -17
  152. package/dist/lib/prompts/_codegen/nudge.generated.js.map +0 -1
  153. package/dist/lib/prompts/_codegen/prune.generated.d.ts +0 -2
  154. package/dist/lib/prompts/_codegen/prune.generated.d.ts.map +0 -1
  155. package/dist/lib/prompts/_codegen/prune.generated.js +0 -23
  156. package/dist/lib/prompts/_codegen/prune.generated.js.map +0 -1
  157. package/dist/lib/tools/distill.d.ts +0 -4
  158. package/dist/lib/tools/distill.d.ts.map +0 -1
  159. package/dist/lib/tools/distill.js +0 -41
  160. package/dist/lib/tools/distill.js.map +0 -1
  161. package/dist/lib/tools/prune-shared.d.ts +0 -8
  162. package/dist/lib/tools/prune-shared.d.ts.map +0 -1
  163. package/dist/lib/tools/prune-shared.js +0 -127
  164. package/dist/lib/tools/prune-shared.js.map +0 -1
  165. package/dist/lib/tools/prune.d.ts +0 -4
  166. package/dist/lib/tools/prune.d.ts.map +0 -1
  167. package/dist/lib/tools/prune.js +0 -28
  168. package/dist/lib/tools/prune.js.map +0 -1
@@ -1,19 +1,126 @@
1
- import { extractParameterKey } from "../messages/utils";
2
1
  import { countTokens } from "../strategies/utils";
3
- export function countDistillationTokens(distillation) {
4
- if (!distillation || distillation.length === 0)
5
- return 0;
6
- return countTokens(distillation.join("\n"));
7
- }
8
- export function formatExtracted(distillation) {
9
- if (!distillation || distillation.length === 0) {
2
+ import { isIgnoredUserMessage } from "../messages/utils";
3
+ function extractParameterKey(tool, parameters) {
4
+ if (!parameters)
10
5
  return "";
6
+ if (tool === "read" && parameters.filePath) {
7
+ const offset = parameters.offset;
8
+ const limit = parameters.limit;
9
+ if (offset !== undefined && limit !== undefined) {
10
+ return `${parameters.filePath} (lines ${offset}-${offset + limit})`;
11
+ }
12
+ if (offset !== undefined) {
13
+ return `${parameters.filePath} (lines ${offset}+)`;
14
+ }
15
+ if (limit !== undefined) {
16
+ return `${parameters.filePath} (lines 0-${limit})`;
17
+ }
18
+ return parameters.filePath;
19
+ }
20
+ if ((tool === "write" || tool === "edit" || tool === "multiedit") && parameters.filePath) {
21
+ return parameters.filePath;
22
+ }
23
+ if (tool === "apply_patch" && typeof parameters.patchText === "string") {
24
+ const pathRegex = /\*\*\* (?:Add|Delete|Update) File: ([^\n\r]+)/g;
25
+ const paths = [];
26
+ let match;
27
+ while ((match = pathRegex.exec(parameters.patchText)) !== null) {
28
+ paths.push(match[1].trim());
29
+ }
30
+ if (paths.length > 0) {
31
+ const uniquePaths = [...new Set(paths)];
32
+ const count = uniquePaths.length;
33
+ const plural = count > 1 ? "s" : "";
34
+ if (count === 1)
35
+ return uniquePaths[0];
36
+ if (count === 2)
37
+ return uniquePaths.join(", ");
38
+ return `${count} file${plural}: ${uniquePaths[0]}, ${uniquePaths[1]}...`;
39
+ }
40
+ return "patch";
41
+ }
42
+ if (tool === "list") {
43
+ return parameters.path || "(current directory)";
44
+ }
45
+ if (tool === "glob") {
46
+ if (parameters.pattern) {
47
+ const pathInfo = parameters.path ? ` in ${parameters.path}` : "";
48
+ return `"${parameters.pattern}"${pathInfo}`;
49
+ }
50
+ return "(unknown pattern)";
51
+ }
52
+ if (tool === "grep") {
53
+ if (parameters.pattern) {
54
+ const pathInfo = parameters.path ? ` in ${parameters.path}` : "";
55
+ return `"${parameters.pattern}"${pathInfo}`;
56
+ }
57
+ return "(unknown pattern)";
58
+ }
59
+ if (tool === "bash") {
60
+ if (parameters.description)
61
+ return parameters.description;
62
+ if (parameters.command) {
63
+ return parameters.command.length > 50
64
+ ? parameters.command.substring(0, 50) + "..."
65
+ : parameters.command;
66
+ }
67
+ }
68
+ if (tool === "webfetch" && parameters.url) {
69
+ return parameters.url;
70
+ }
71
+ if (tool === "websearch" && parameters.query) {
72
+ return `"${parameters.query}"`;
73
+ }
74
+ if (tool === "codesearch" && parameters.query) {
75
+ return `"${parameters.query}"`;
76
+ }
77
+ if (tool === "todowrite") {
78
+ return `${parameters.todos?.length || 0} todos`;
11
79
  }
12
- let result = `\n\n▣ Extracted`;
13
- for (const finding of distillation) {
14
- result += `\n───\n${finding}`;
80
+ if (tool === "todoread") {
81
+ return "read todo list";
15
82
  }
16
- return result;
83
+ if (tool === "task" && parameters.description) {
84
+ return parameters.description;
85
+ }
86
+ if (tool === "skill" && parameters.name) {
87
+ return parameters.name;
88
+ }
89
+ if (tool === "lsp") {
90
+ const op = parameters.operation || "lsp";
91
+ const path = parameters.filePath || "";
92
+ const line = parameters.line;
93
+ const char = parameters.character;
94
+ if (path && line !== undefined && char !== undefined) {
95
+ return `${op} ${path}:${line}:${char}`;
96
+ }
97
+ if (path) {
98
+ return `${op} ${path}`;
99
+ }
100
+ return op;
101
+ }
102
+ if (tool === "question") {
103
+ const questions = parameters.questions;
104
+ if (Array.isArray(questions) && questions.length > 0) {
105
+ const headers = questions
106
+ .map((q) => q.header || "")
107
+ .filter(Boolean)
108
+ .slice(0, 3);
109
+ const count = questions.length;
110
+ const plural = count > 1 ? "s" : "";
111
+ if (headers.length > 0) {
112
+ const suffix = count > 3 ? ` (+${count - 3} more)` : "";
113
+ return `${count} question${plural}: ${headers.join(", ")}${suffix}`;
114
+ }
115
+ return `${count} question${plural}`;
116
+ }
117
+ return "question";
118
+ }
119
+ const paramStr = JSON.stringify(parameters);
120
+ if (paramStr === "{}" || paramStr === "[]" || paramStr === "null") {
121
+ return "";
122
+ }
123
+ return paramStr.substring(0, 50);
17
124
  }
18
125
  export function formatStatsHeader(totalTokensSaved, pruneTokenCounter) {
19
126
  const totalTokensSavedStr = `~${formatTokenCount(totalTokensSaved + pruneTokenCounter)}`;
@@ -30,21 +137,55 @@ export function truncate(str, maxLen = 60) {
30
137
  return str;
31
138
  return str.slice(0, maxLen - 3) + "...";
32
139
  }
33
- export function formatProgressBar(total, start, end, width = 20) {
34
- if (total <= 0)
35
- return `│${" ".repeat(width)}│`;
36
- const startIdx = Math.floor((start / total) * width);
37
- const endIdx = Math.min(width - 1, Math.floor((end / total) * width));
38
- let bar = "";
39
- for (let i = 0; i < width; i++) {
40
- if (i >= startIdx && i <= endIdx) {
41
- bar += "░";
140
+ export function formatSessionMap(messageIds, prunedMessages, width = 50) {
141
+ const total = messageIds.length;
142
+ if (total === 0)
143
+ return `│${"░".repeat(width)}│`;
144
+ const bar = new Array(width).fill("█");
145
+ for (let m = 0; m < total; m++) {
146
+ if (prunedMessages.has(messageIds[m])) {
147
+ const start = Math.floor((m / total) * width);
148
+ const end = Math.floor(((m + 1) / total) * width);
149
+ for (let i = start; i < end; i++) {
150
+ bar[i] = "░";
151
+ }
152
+ }
153
+ }
154
+ return `│${bar.join("")}│`;
155
+ }
156
+ export function cacheSystemPromptTokens(state, messages) {
157
+ let firstInputTokens = 0;
158
+ for (const msg of messages) {
159
+ if (msg.info.role !== "assistant") {
160
+ continue;
161
+ }
162
+ const info = msg.info;
163
+ const input = info?.tokens?.input || 0;
164
+ const cacheRead = info?.tokens?.cache?.read || 0;
165
+ if (input > 0 || cacheRead > 0) {
166
+ firstInputTokens = input + cacheRead;
167
+ break;
42
168
  }
43
- else {
44
- bar += "█";
169
+ }
170
+ if (firstInputTokens <= 0) {
171
+ state.systemPromptTokens = undefined;
172
+ return;
173
+ }
174
+ let firstUserText = "";
175
+ for (const msg of messages) {
176
+ if (msg.info.role !== "user" || isIgnoredUserMessage(msg)) {
177
+ continue;
178
+ }
179
+ const parts = Array.isArray(msg.parts) ? msg.parts : [];
180
+ for (const part of parts) {
181
+ if (part.type === "text" && !part.ignored) {
182
+ firstUserText += part.text;
183
+ }
45
184
  }
185
+ break;
46
186
  }
47
- return `│${bar}│`;
187
+ const estimatedSystemTokens = Math.max(0, firstInputTokens - countTokens(firstUserText));
188
+ state.systemPromptTokens = estimatedSystemTokens > 0 ? estimatedSystemTokens : undefined;
48
189
  }
49
190
  export function shortenPath(input, workingDirectory) {
50
191
  const inPathMatch = input.match(/^(.+) in (.+)$/);
@@ -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.7",
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,4 +0,0 @@
1
- import type { SessionState, WithParts } from "../state";
2
- import type { Logger } from "../logger";
3
- export declare const syncToolOrigins: (state: SessionState, logger: Logger, messages: WithParts[]) => void;
4
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../lib/messages/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,eAAO,MAAM,eAAe,GACxB,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,KACtB,IA+BF,CAAA"}
@@ -1,29 +0,0 @@
1
- export const syncToolOrigins = (state, logger, messages) => {
2
- if (!state.prune.origins?.size) {
3
- return;
4
- }
5
- const messageIds = new Set(messages.map((msg) => msg.info.id));
6
- let removedToolCount = 0;
7
- let removedOriginCount = 0;
8
- for (const [toolId, origin] of state.prune.origins.entries()) {
9
- if (!state.prune.tools.has(toolId)) {
10
- state.prune.origins.delete(toolId);
11
- removedOriginCount++;
12
- continue;
13
- }
14
- if (!messageIds.has(origin.originMessageId)) {
15
- state.prune.origins.delete(toolId);
16
- removedOriginCount++;
17
- if (state.prune.tools.delete(toolId)) {
18
- removedToolCount++;
19
- }
20
- }
21
- }
22
- if (removedToolCount > 0 || removedOriginCount > 0) {
23
- logger.info("Synced prune origins", {
24
- removedToolCount,
25
- removedOriginCount,
26
- });
27
- }
28
- };
29
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../lib/messages/sync.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,KAAmB,EACnB,MAAc,EACd,QAAqB,EACjB,EAAE;IACN,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7B,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAE1B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAClC,kBAAkB,EAAE,CAAA;YACpB,SAAQ;QACZ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAClC,kBAAkB,EAAE,CAAA;YACpB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,gBAAgB,EAAE,CAAA;YACtB,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB,GAAG,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,gBAAgB;YAChB,kBAAkB;SACrB,CAAC,CAAA;IACN,CAAC;AACL,CAAC,CAAA"}
@@ -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"}