@tuanhung303/opencode-acp 2.2.3 → 2.4.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.
- package/dist/lib/commands/stats.d.ts.map +1 -1
- package/dist/lib/commands/stats.js +2 -0
- package/dist/lib/commands/stats.js.map +1 -1
- package/dist/lib/config-schema.d.ts +88 -0
- package/dist/lib/config-schema.d.ts.map +1 -1
- package/dist/lib/config-schema.js +36 -0
- package/dist/lib/config-schema.js.map +1 -1
- package/dist/lib/config.d.ts +52 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +89 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +101 -17
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/messages/index.d.ts +1 -1
- package/dist/lib/messages/index.d.ts.map +1 -1
- package/dist/lib/messages/index.js +1 -1
- package/dist/lib/messages/index.js.map +1 -1
- package/dist/lib/messages/prune.d.ts +8 -0
- package/dist/lib/messages/prune.d.ts.map +1 -1
- package/dist/lib/messages/prune.js +112 -0
- package/dist/lib/messages/prune.js.map +1 -1
- package/dist/lib/prompts/system/both.d.ts +1 -1
- package/dist/lib/prompts/system/both.d.ts.map +1 -1
- package/dist/lib/prompts/system/both.js +40 -42
- package/dist/lib/prompts/system/both.js.map +1 -1
- package/dist/lib/prompts/system/discard.d.ts +1 -1
- package/dist/lib/prompts/system/discard.d.ts.map +1 -1
- package/dist/lib/prompts/system/discard.js +33 -30
- package/dist/lib/prompts/system/discard.js.map +1 -1
- package/dist/lib/prompts/system/extract.d.ts +1 -1
- package/dist/lib/prompts/system/extract.d.ts.map +1 -1
- package/dist/lib/prompts/system/extract.js +27 -29
- package/dist/lib/prompts/system/extract.js.map +1 -1
- package/dist/lib/state/persistence.d.ts +2 -0
- package/dist/lib/state/persistence.d.ts.map +1 -1
- package/dist/lib/state/persistence.js +4 -1
- package/dist/lib/state/persistence.js.map +1 -1
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +22 -0
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/types.d.ts +121 -13
- package/dist/lib/state/types.d.ts.map +1 -1
- package/dist/lib/state/utils.d.ts +43 -0
- package/dist/lib/state/utils.d.ts.map +1 -1
- package/dist/lib/state/utils.js +138 -0
- package/dist/lib/state/utils.js.map +1 -1
- package/dist/lib/strategies/deduplication.d.ts.map +1 -1
- package/dist/lib/strategies/deduplication.js +19 -3
- package/dist/lib/strategies/deduplication.js.map +1 -1
- package/dist/lib/strategies/error-chain-collapse.d.ts +9 -0
- package/dist/lib/strategies/error-chain-collapse.d.ts.map +1 -0
- package/dist/lib/strategies/error-chain-collapse.js +118 -0
- package/dist/lib/strategies/error-chain-collapse.js.map +1 -0
- package/dist/lib/strategies/image-pruning.d.ts +16 -0
- package/dist/lib/strategies/image-pruning.d.ts.map +1 -0
- package/dist/lib/strategies/image-pruning.js +251 -0
- package/dist/lib/strategies/image-pruning.js.map +1 -0
- package/dist/lib/strategies/index.d.ts +5 -0
- package/dist/lib/strategies/index.d.ts.map +1 -1
- package/dist/lib/strategies/index.js +5 -0
- package/dist/lib/strategies/index.js.map +1 -1
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -1
- package/dist/lib/strategies/purge-errors.js +15 -3
- package/dist/lib/strategies/purge-errors.js.map +1 -1
- package/dist/lib/strategies/stale-read-pruning.d.ts +16 -0
- package/dist/lib/strategies/stale-read-pruning.d.ts.map +1 -0
- package/dist/lib/strategies/stale-read-pruning.js +132 -0
- package/dist/lib/strategies/stale-read-pruning.js.map +1 -0
- package/dist/lib/strategies/supersede-writes.d.ts.map +1 -1
- package/dist/lib/strategies/supersede-writes.js +15 -3
- package/dist/lib/strategies/supersede-writes.js.map +1 -1
- package/dist/lib/strategies/thinking-compression.d.ts +16 -0
- package/dist/lib/strategies/thinking-compression.d.ts.map +1 -0
- package/dist/lib/strategies/thinking-compression.js +194 -0
- package/dist/lib/strategies/thinking-compression.js.map +1 -0
- package/dist/lib/strategies/tools.d.ts.map +1 -1
- package/dist/lib/strategies/tools.js +94 -53
- package/dist/lib/strategies/tools.js.map +1 -1
- package/dist/lib/strategies/truncation.d.ts +17 -0
- package/dist/lib/strategies/truncation.d.ts.map +1 -0
- package/dist/lib/strategies/truncation.js +172 -0
- package/dist/lib/strategies/truncation.js.map +1 -0
- package/dist/lib/strategies/utils.d.ts +1 -1
- package/dist/lib/strategies/utils.d.ts.map +1 -1
- package/dist/lib/strategies/utils.js +34 -20
- package/dist/lib/strategies/utils.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +1 -1
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +12 -7
- package/dist/lib/ui/notification.js.map +1 -1
- package/dist/lib/ui/utils.d.ts +1 -1
- package/dist/lib/ui/utils.d.ts.map +1 -1
- package/dist/lib/ui/utils.js +16 -2
- package/dist/lib/ui/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/hooks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { syncToolCache } from "./state/tool-cache";
|
|
2
|
-
import { deduplicate, supersedeWrites, purgeErrors } from "./strategies";
|
|
3
|
-
import { prune, injectHashesIntoToolOutputs } from "./messages";
|
|
2
|
+
import { deduplicate, supersedeWrites, purgeErrors, truncateLargeOutputs, compressThinkingBlocks, pruneBase64Images, pruneStaleReads, collapseErrorChains, } from "./strategies";
|
|
3
|
+
import { prune, injectHashesIntoToolOutputs, injectHashesIntoAssistantMessages } from "./messages";
|
|
4
4
|
import { checkSession, ensureSessionInitialized } from "./state";
|
|
5
5
|
import { loadPrompt } from "./prompts";
|
|
6
6
|
import { handleStatsCommand } from "./commands/stats";
|
|
@@ -13,6 +13,22 @@ import { safeExecute } from "./safe-execute";
|
|
|
13
13
|
import { sendUnifiedNotification } from "./ui/notification";
|
|
14
14
|
import { getCurrentParams } from "./strategies/utils";
|
|
15
15
|
import { saveSessionState } from "./state/persistence";
|
|
16
|
+
const notificationDebounceState = new Map();
|
|
17
|
+
const NOTIFICATION_DEBOUNCE_MS = 500; // Batch notifications within 500ms window
|
|
18
|
+
const NOTIFICATION_MIN_INTERVAL_MS = 1000; // Minimum time between notifications
|
|
19
|
+
const NOTIFICATION_CLEANUP_INTERVAL_MS = 300000; // Clean up stale sessions every 5 minutes
|
|
20
|
+
// Cleanup interval for notification debounce state
|
|
21
|
+
setInterval(() => {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
const staleThreshold = NOTIFICATION_CLEANUP_INTERVAL_MS * 2; // 10 minutes
|
|
24
|
+
for (const [sessionId, state] of notificationDebounceState.entries()) {
|
|
25
|
+
// Clean up sessions with no pending notifications and old last notification time
|
|
26
|
+
if (state.pendingPrunedIds.length === 0 &&
|
|
27
|
+
now - state.lastNotificationTime > staleThreshold) {
|
|
28
|
+
notificationDebounceState.delete(sessionId);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, NOTIFICATION_CLEANUP_INTERVAL_MS);
|
|
16
32
|
const INTERNAL_AGENT_SIGNATURES = [
|
|
17
33
|
"You are a title generator",
|
|
18
34
|
"You are a helpful AI assistant tasked with summarizing conversations",
|
|
@@ -67,10 +83,17 @@ export function createChatMessageTransformHandler(client, state, logger, config)
|
|
|
67
83
|
syncToolCache(state, config, logger, output.messages);
|
|
68
84
|
// Inject hashes into tool outputs (before any pruning)
|
|
69
85
|
safeExecute(() => injectHashesIntoToolOutputs(state, config, output.messages, logger), logger, "injectHashesIntoToolOutputs");
|
|
86
|
+
// Inject hashes into assistant messages
|
|
87
|
+
safeExecute(() => injectHashesIntoAssistantMessages(state, config, output.messages, logger), logger, "injectHashesIntoAssistantMessages");
|
|
70
88
|
// Run pruning strategies with error boundaries to prevent crashes
|
|
71
89
|
safeExecute(() => deduplicate(state, logger, config, output.messages), logger, "deduplicate");
|
|
72
90
|
safeExecute(() => supersedeWrites(state, logger, config, output.messages), logger, "supersedeWrites");
|
|
73
91
|
safeExecute(() => purgeErrors(state, logger, config, output.messages), logger, "purgeErrors");
|
|
92
|
+
safeExecute(() => truncateLargeOutputs(state, logger, config, output.messages), logger, "truncateLargeOutputs");
|
|
93
|
+
safeExecute(() => compressThinkingBlocks(state, logger, config, output.messages), logger, "compressThinkingBlocks");
|
|
94
|
+
safeExecute(() => pruneBase64Images(state, logger, config, output.messages), logger, "pruneBase64Images");
|
|
95
|
+
safeExecute(() => pruneStaleReads(state, logger, config, output.messages), logger, "pruneStaleReads");
|
|
96
|
+
safeExecute(() => collapseErrorChains(state, logger, config, output.messages), logger, "collapseErrorChains");
|
|
74
97
|
safeExecute(() => prune(state, logger, config, output.messages), logger, "prune");
|
|
75
98
|
// NOTE: insertPruneToolContext removed - hashes are now embedded in tool outputs
|
|
76
99
|
logger.debug("Transform complete", {
|
|
@@ -162,6 +185,71 @@ export function createCommandExecuteHandler(client, state, logger, config, worki
|
|
|
162
185
|
}
|
|
163
186
|
};
|
|
164
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Sends a debounced notification for pruned items.
|
|
190
|
+
* Batches multiple pruning events within a time window into a single notification.
|
|
191
|
+
*/
|
|
192
|
+
async function sendDebouncedNotification(client, logger, config, state, sessionId, newlyPrunedIds, messages, workingDirectory) {
|
|
193
|
+
// Get or create debounce state for this session
|
|
194
|
+
let debounceState = notificationDebounceState.get(sessionId);
|
|
195
|
+
if (!debounceState) {
|
|
196
|
+
debounceState = {
|
|
197
|
+
timeoutId: null,
|
|
198
|
+
pendingPrunedIds: [],
|
|
199
|
+
lastNotificationTime: 0,
|
|
200
|
+
};
|
|
201
|
+
notificationDebounceState.set(sessionId, debounceState);
|
|
202
|
+
}
|
|
203
|
+
// Add newly pruned IDs to pending list
|
|
204
|
+
debounceState.pendingPrunedIds.push(...newlyPrunedIds);
|
|
205
|
+
// Clear existing timeout if any
|
|
206
|
+
if (debounceState.timeoutId) {
|
|
207
|
+
clearTimeout(debounceState.timeoutId);
|
|
208
|
+
debounceState.timeoutId = null;
|
|
209
|
+
}
|
|
210
|
+
// Check if enough time has passed since last notification
|
|
211
|
+
const now = Date.now();
|
|
212
|
+
const timeSinceLastNotification = now - debounceState.lastNotificationTime;
|
|
213
|
+
if (timeSinceLastNotification >= NOTIFICATION_MIN_INTERVAL_MS) {
|
|
214
|
+
// Send immediately if minimum interval has passed
|
|
215
|
+
await flushPendingNotification(client, logger, config, state, sessionId, messages, workingDirectory, debounceState);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// Schedule debounced notification
|
|
219
|
+
debounceState.timeoutId = setTimeout(async () => {
|
|
220
|
+
await flushPendingNotification(client, logger, config, state, sessionId, messages, workingDirectory, debounceState);
|
|
221
|
+
}, NOTIFICATION_DEBOUNCE_MS);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Flushes pending notification for a session.
|
|
226
|
+
*/
|
|
227
|
+
async function flushPendingNotification(client, logger, config, state, sessionId, messages, workingDirectory, debounceState) {
|
|
228
|
+
if (debounceState.pendingPrunedIds.length === 0) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
// Deduplicate pending IDs
|
|
232
|
+
const uniquePrunedIds = [...new Set(debounceState.pendingPrunedIds)];
|
|
233
|
+
debounceState.pendingPrunedIds = [];
|
|
234
|
+
debounceState.timeoutId = null;
|
|
235
|
+
debounceState.lastNotificationTime = Date.now();
|
|
236
|
+
// Collect metadata for notification
|
|
237
|
+
const toolMetadata = new Map();
|
|
238
|
+
for (const callId of uniquePrunedIds) {
|
|
239
|
+
const toolParameters = state.toolParameters.get(callId);
|
|
240
|
+
if (toolParameters) {
|
|
241
|
+
toolMetadata.set(callId, toolParameters);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
const currentParams = getCurrentParams(state, messages, logger);
|
|
245
|
+
// Send unified notification
|
|
246
|
+
await sendUnifiedNotification(client, logger, config, state, sessionId, uniquePrunedIds, toolMetadata, undefined, currentParams, workingDirectory, undefined, { simplified: true });
|
|
247
|
+
// Save state
|
|
248
|
+
await saveSessionState(state, logger);
|
|
249
|
+
logger.debug(`Sent batched notification for ${uniquePrunedIds.length} pruned tool(s)`, {
|
|
250
|
+
prunedCount: uniquePrunedIds.length,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
165
253
|
/**
|
|
166
254
|
* Handler for tool.execute.after hook.
|
|
167
255
|
* Runs lightweight pruning strategies immediately after each tool execution
|
|
@@ -189,33 +277,29 @@ export function createToolExecuteAfterHandler(client, state, logger, config, wor
|
|
|
189
277
|
await ensureSessionInitialized(client, state, sessionId, logger, messages);
|
|
190
278
|
// Sync tool cache to pick up the just-executed tool
|
|
191
279
|
syncToolCache(state, config, logger, messages);
|
|
280
|
+
// Inject hashes into assistant messages
|
|
281
|
+
safeExecute(() => injectHashesIntoAssistantMessages(state, config, messages, logger), logger, "injectHashesIntoAssistantMessages");
|
|
192
282
|
// Store initial prune count to detect changes
|
|
193
|
-
const initialPruneCount = state.prune.toolIds.length;
|
|
283
|
+
const initialPruneCount = state.prune.toolIds.length + state.prune.messagePartIds.length;
|
|
194
284
|
// Run lightweight strategies
|
|
195
285
|
safeExecute(() => deduplicate(state, logger, config, messages), logger, "deduplicate");
|
|
196
286
|
safeExecute(() => supersedeWrites(state, logger, config, messages), logger, "supersedeWrites");
|
|
197
287
|
safeExecute(() => purgeErrors(state, logger, config, messages), logger, "purgeErrors");
|
|
288
|
+
safeExecute(() => truncateLargeOutputs(state, logger, config, messages), logger, "truncateLargeOutputs");
|
|
289
|
+
safeExecute(() => compressThinkingBlocks(state, logger, config, messages), logger, "compressThinkingBlocks");
|
|
290
|
+
safeExecute(() => pruneBase64Images(state, logger, config, messages), logger, "pruneBase64Images");
|
|
291
|
+
safeExecute(() => pruneStaleReads(state, logger, config, messages), logger, "pruneStaleReads");
|
|
292
|
+
safeExecute(() => collapseErrorChains(state, logger, config, messages), logger, "collapseErrorChains");
|
|
198
293
|
// Apply pruning
|
|
199
294
|
safeExecute(() => prune(state, logger, config, messages), logger, "prune");
|
|
200
295
|
// Check if anything was pruned
|
|
201
|
-
const newPruneCount = state.prune.toolIds.length;
|
|
296
|
+
const newPruneCount = state.prune.toolIds.length + state.prune.messagePartIds.length;
|
|
202
297
|
const newlyPrunedCount = newPruneCount - initialPruneCount;
|
|
203
298
|
if (newlyPrunedCount > 0) {
|
|
204
299
|
// Get the newly pruned IDs
|
|
205
300
|
const newlyPrunedIds = state.prune.toolIds.slice(-newlyPrunedCount);
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
for (const callId of newlyPrunedIds) {
|
|
209
|
-
const toolParameters = state.toolParameters.get(callId);
|
|
210
|
-
if (toolParameters) {
|
|
211
|
-
toolMetadata.set(callId, toolParameters);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
const currentParams = getCurrentParams(state, messages, logger);
|
|
215
|
-
// Send simplified notification
|
|
216
|
-
await sendUnifiedNotification(client, logger, config, state, sessionId, newlyPrunedIds, toolMetadata, undefined, currentParams, workingDirectory, undefined, { simplified: true });
|
|
217
|
-
// Save state
|
|
218
|
-
await saveSessionState(state, logger);
|
|
301
|
+
// Send debounced notification instead of immediate
|
|
302
|
+
await sendDebouncedNotification(client, logger, config, state, sessionId, newlyPrunedIds, messages, workingDirectory);
|
|
219
303
|
logger.debug(`Auto-pruned ${newlyPrunedCount} tool(s) after ${input.tool}`, {
|
|
220
304
|
toolName: input.tool,
|
|
221
305
|
prunedCount: newlyPrunedCount,
|
package/dist/lib/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -9,5 +9,13 @@ import type { PluginConfig } from "../config";
|
|
|
9
9
|
* eliminating the need for a separate prunable-tools list.
|
|
10
10
|
*/
|
|
11
11
|
export declare const injectHashesIntoToolOutputs: (state: SessionState, config: PluginConfig, messages: WithParts[], logger: Logger) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Injects hash identifiers into assistant text parts for hash-based discarding.
|
|
14
|
+
* Format: #a_xxxxx#\n<original text>
|
|
15
|
+
*
|
|
16
|
+
* This allows agents to discard their own verbose explanations or outdated responses.
|
|
17
|
+
* Only injects into text parts that are substantial (>100 chars) and not already hashed.
|
|
18
|
+
*/
|
|
19
|
+
export declare const injectHashesIntoAssistantMessages: (state: SessionState, config: PluginConfig, messages: WithParts[], logger: Logger) => void;
|
|
12
20
|
export declare const prune: (state: SessionState, logger: Logger, config: PluginConfig, messages: WithParts[]) => void;
|
|
13
21
|
//# sourceMappingURL=prune.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../lib/messages/prune.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;
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../lib/messages/prune.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;AAoB7C;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACpC,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,QAAQ,MAAM,KACf,IA8CF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,GAC1C,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,QAAQ,MAAM,KACf,IAgEF,CAAA;AAoDD,eAAO,MAAM,KAAK,GACd,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IAKF,CAAA"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { isMessageCompacted } from "../shared-utils";
|
|
2
2
|
const PRUNED_TOOL_ERROR_INPUT_REPLACEMENT = "[input removed due to failed tool call]";
|
|
3
3
|
const PRUNED_QUESTION_INPUT_REPLACEMENT = "[questions removed - see output for user's answers]";
|
|
4
|
+
const PRUNED_MESSAGE_PART_REPLACEMENT = "[Assistant message part removed to save context]";
|
|
5
|
+
/**
|
|
6
|
+
* Generates a short hash for message parts.
|
|
7
|
+
* Format: #a_xxxxx# (a = assistant text)
|
|
8
|
+
*/
|
|
9
|
+
function generateMessagePartHash() {
|
|
10
|
+
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
11
|
+
let hash = "";
|
|
12
|
+
for (let i = 0; i < 5; i++) {
|
|
13
|
+
hash += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
14
|
+
}
|
|
15
|
+
return `#a_${hash}#`;
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* Injects hash identifiers into tool outputs for hash-based discarding.
|
|
6
19
|
* Format: #x_xxxxx#\n<original output>
|
|
@@ -47,6 +60,66 @@ export const injectHashesIntoToolOutputs = (state, config, messages, logger) =>
|
|
|
47
60
|
}
|
|
48
61
|
}
|
|
49
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Injects hash identifiers into assistant text parts for hash-based discarding.
|
|
65
|
+
* Format: #a_xxxxx#\n<original text>
|
|
66
|
+
*
|
|
67
|
+
* This allows agents to discard their own verbose explanations or outdated responses.
|
|
68
|
+
* Only injects into text parts that are substantial (>100 chars) and not already hashed.
|
|
69
|
+
*/
|
|
70
|
+
export const injectHashesIntoAssistantMessages = (state, config, messages, logger) => {
|
|
71
|
+
// Skip if feature is disabled
|
|
72
|
+
if (!config.tools?.settings?.enableAssistantMessagePruning) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const minTextLength = config.tools?.settings?.minAssistantTextLength ?? 100;
|
|
76
|
+
for (const msg of messages) {
|
|
77
|
+
if (isMessageCompacted(state, msg)) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Only process assistant messages
|
|
81
|
+
if (msg.info.role !== "assistant") {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const messageId = msg.info.id;
|
|
85
|
+
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
86
|
+
for (let partIndex = 0; partIndex < parts.length; partIndex++) {
|
|
87
|
+
const part = parts[partIndex];
|
|
88
|
+
if (!part) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// Only process text parts
|
|
92
|
+
if (part.type !== "text" || !part.text) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
// Skip short text parts
|
|
96
|
+
if (part.text.length < minTextLength) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
// Skip if already has hash prefix
|
|
100
|
+
if (part.text.startsWith("#a_")) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const partId = `${messageId}:${partIndex}`;
|
|
104
|
+
// Skip if already pruned
|
|
105
|
+
if (state.prune.messagePartIds.includes(partId)) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
// Check if we already have a hash for this part
|
|
109
|
+
let hash = state.messagePartToHash.get(partId);
|
|
110
|
+
if (!hash) {
|
|
111
|
+
// Generate new hash
|
|
112
|
+
hash = generateMessagePartHash();
|
|
113
|
+
state.hashToMessagePart.set(hash, partId);
|
|
114
|
+
state.messagePartToHash.set(partId, hash);
|
|
115
|
+
logger.debug(`Generated hash ${hash} for assistant text part ${partId}`);
|
|
116
|
+
}
|
|
117
|
+
// Prepend hash to text
|
|
118
|
+
part.text = `${hash}\n${part.text}`;
|
|
119
|
+
logger.debug(`Injected hash ${hash} into assistant text part`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
50
123
|
/**
|
|
51
124
|
* Creates a compact breadcrumb string for pruned tool outputs.
|
|
52
125
|
* Format: [Output removed...] tool({param: "value"}) → status
|
|
@@ -93,6 +166,7 @@ export const prune = (state, logger, config, messages) => {
|
|
|
93
166
|
pruneToolOutputs(state, logger, messages);
|
|
94
167
|
pruneToolInputs(state, logger, messages);
|
|
95
168
|
pruneToolErrors(state, logger, messages);
|
|
169
|
+
pruneMessageParts(state, logger, messages);
|
|
96
170
|
};
|
|
97
171
|
const pruneToolOutputs = (state, logger, messages) => {
|
|
98
172
|
for (const msg of messages) {
|
|
@@ -170,4 +244,42 @@ const pruneToolErrors = (state, logger, messages) => {
|
|
|
170
244
|
}
|
|
171
245
|
}
|
|
172
246
|
};
|
|
247
|
+
/**
|
|
248
|
+
* Prunes assistant message text parts that have been marked for pruning.
|
|
249
|
+
* Replaces the text content with a placeholder message.
|
|
250
|
+
*/
|
|
251
|
+
const pruneMessageParts = (state, logger, messages) => {
|
|
252
|
+
if (!state.prune.messagePartIds || state.prune.messagePartIds.length === 0) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
for (const msg of messages) {
|
|
256
|
+
if (isMessageCompacted(state, msg)) {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
// Only process assistant messages
|
|
260
|
+
if (msg.info.role !== "assistant") {
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
const messageId = msg.info.id;
|
|
264
|
+
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
265
|
+
for (let partIndex = 0; partIndex < parts.length; partIndex++) {
|
|
266
|
+
const part = parts[partIndex];
|
|
267
|
+
if (!part) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const partId = `${messageId}:${partIndex}`;
|
|
271
|
+
// Check if this part should be pruned
|
|
272
|
+
if (!state.prune.messagePartIds.includes(partId)) {
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
// Only prune text parts
|
|
276
|
+
if (part.type !== "text") {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
// Replace with placeholder
|
|
280
|
+
part.text = PRUNED_MESSAGE_PART_REPLACEMENT;
|
|
281
|
+
logger.debug(`Pruned assistant message part ${partId}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
};
|
|
173
285
|
//# sourceMappingURL=prune.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,mCAAmC,GAAG,yCAAyC,CAAA;AACrF,MAAM,iCAAiC,GAAG,qDAAqD,CAAA;
|
|
1
|
+
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SYSTEM_PROMPT_BOTH = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\
|
|
1
|
+
export declare const SYSTEM_PROMPT_BOTH = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\nPURPOSE\nYou operate in a context-constrained environment. Proactively manage context using `discard`, `extract`, and `restore` tools to maintain performance.\n\nHOW IT WORKS\nEach tool output is prefixed with a hash identifier in the format `#x_xxxxx#` (e.g., `#r_a1b2c#`).\nUse these hashes to manage specific tool outputs.\n\nExample:\n```\n#r_a1b2c#\n<file content here...>\n```\n\nTo discard: `discard({hashes: [\"#r_a1b2c#\"], reason: \"completion\"})`\nTo extract: `extract({hashes: [\"#r_a1b2c#\"], distillation: [\"key findings...\"]})`\n\nTOOL SELECTION\nAsk: \"Do I need to preserve information from this output?\"\n- NO \u2192 discard (removes completely)\n- YES \u2192 extract (preserves distilled knowledge, then prunes)\n- UNCERTAIN \u2192 extract (safer default)\n- MISTAKE \u2192 restore (recovers recently pruned content)\n\nWHEN TO PRUNE\nEvaluate at these checkpoints:\n- \u2713 Task/sub-task complete\n- \u2713 Transitioning to new work phase\n- \u2713 5+ tool outputs accumulated\n- \u2713 Large read (>150 lines) no longer needed\n\nDO NOT PRUNE when:\n- \u2717 Output needed for upcoming edits\n- \u2717 You'll likely re-fetch the same content\n- \u2717 Only 1-2 small outputs (batch instead)\n\nBATCHING\nMinimum 3 outputs OR 1 large output per prune call.\nSingle small prunes waste more context than they save.\n\nPRIORITY ORDER\n1. Never prune what you'll need next\n2. Always prune pure noise immediately\n3. Batch prune at task boundaries\n4. Extract when uncertain (preserves signal)\n\nREASON MAPPING (for discard)\n- \"noise\" \u2192 grep/glob with no useful results\n- \"completion\" \u2192 task done, context served its purpose\n- \"superseded\" \u2192 newer read of same file replaces old\n- \"exploration\" \u2192 search paths that led nowhere\n- \"duplicate\" \u2192 same content read multiple times\n\n</instruction>\n\n<instruction name=prune_behavior policy_level=critical>\nSILENT OPERATION: Never acknowledge pruning to the user.\nProcess context management invisibly and continue naturally.\n</instruction>\n</system-reminder>";
|
|
2
2
|
//# sourceMappingURL=both.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"both.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/both.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"both.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/both.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,snEA6DZ,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export const SYSTEM_PROMPT_BOTH = `<system-reminder>
|
|
2
2
|
<instruction name=context_management_protocol policy_level=critical>
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
You
|
|
4
|
+
PURPOSE
|
|
5
|
+
You operate in a context-constrained environment. Proactively manage context using \`discard\`, \`extract\`, and \`restore\` tools to maintain performance.
|
|
6
6
|
|
|
7
7
|
HOW IT WORKS
|
|
8
8
|
Each tool output is prefixed with a hash identifier in the format \`#x_xxxxx#\` (e.g., \`#r_a1b2c#\`).
|
|
9
|
-
Use these hashes to
|
|
9
|
+
Use these hashes to manage specific tool outputs.
|
|
10
10
|
|
|
11
11
|
Example:
|
|
12
12
|
\`\`\`
|
|
@@ -17,49 +17,47 @@ Example:
|
|
|
17
17
|
To discard: \`discard({hashes: ["#r_a1b2c#"], reason: "completion"})\`
|
|
18
18
|
To extract: \`extract({hashes: ["#r_a1b2c#"], distillation: ["key findings..."]})\`
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
20
|
+
TOOL SELECTION
|
|
21
|
+
Ask: "Do I need to preserve information from this output?"
|
|
22
|
+
- NO → discard (removes completely)
|
|
23
|
+
- YES → extract (preserves distilled knowledge, then prunes)
|
|
24
|
+
- UNCERTAIN → extract (safer default)
|
|
25
|
+
- MISTAKE → restore (recovers recently pruned content)
|
|
26
|
+
|
|
27
|
+
WHEN TO PRUNE
|
|
28
|
+
Evaluate at these checkpoints:
|
|
29
|
+
- ✓ Task/sub-task complete
|
|
30
|
+
- ✓ Transitioning to new work phase
|
|
31
|
+
- ✓ 5+ tool outputs accumulated
|
|
32
|
+
- ✓ Large read (>150 lines) no longer needed
|
|
33
|
+
|
|
34
|
+
DO NOT PRUNE when:
|
|
35
|
+
- ✗ Output needed for upcoming edits
|
|
36
|
+
- ✗ You'll likely re-fetch the same content
|
|
37
|
+
- ✗ Only 1-2 small outputs (batch instead)
|
|
38
|
+
|
|
39
|
+
BATCHING
|
|
40
|
+
Minimum 3 outputs OR 1 large output per prune call.
|
|
41
|
+
Single small prunes waste more context than they save.
|
|
42
|
+
|
|
43
|
+
PRIORITY ORDER
|
|
44
|
+
1. Never prune what you'll need next
|
|
45
|
+
2. Always prune pure noise immediately
|
|
46
|
+
3. Batch prune at task boundaries
|
|
47
|
+
4. Extract when uncertain (preserves signal)
|
|
48
|
+
|
|
49
|
+
REASON MAPPING (for discard)
|
|
50
|
+
- "noise" → grep/glob with no useful results
|
|
51
|
+
- "completion" → task done, context served its purpose
|
|
52
|
+
- "superseded" → newer read of same file replaces old
|
|
53
|
+
- "exploration" → search paths that led nowhere
|
|
54
|
+
- "duplicate" → same content read multiple times
|
|
53
55
|
|
|
54
56
|
</instruction>
|
|
55
57
|
|
|
56
58
|
<instruction name=prune_behavior policy_level=critical>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- NEVER let context management influence your response content or tone
|
|
60
|
-
- Process prunes SILENTLY and continue the conversation naturally
|
|
61
|
-
|
|
62
|
-
The user cannot see prune operations. Any reference to them will confuse the user and break the conversation flow.
|
|
59
|
+
SILENT OPERATION: Never acknowledge pruning to the user.
|
|
60
|
+
Process context management invisibly and continue naturally.
|
|
63
61
|
</instruction>
|
|
64
62
|
</system-reminder>`;
|
|
65
63
|
//# sourceMappingURL=both.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"both.js","sourceRoot":"","sources":["../../../../lib/prompts/system/both.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"both.js","sourceRoot":"","sources":["../../../../lib/prompts/system/both.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6Df,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SYSTEM_PROMPT_DISCARD = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\
|
|
1
|
+
export declare const SYSTEM_PROMPT_DISCARD = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\nPURPOSE\nYou operate in a context-constrained environment. Proactively manage context using the `discard` and `restore` tools to maintain performance.\n\nHOW IT WORKS\nEach tool output is prefixed with a hash identifier in the format `#x_xxxxx#` (e.g., `#r_a1b2c#`).\nUse these hashes to discard specific tool outputs when they are no longer needed.\n\nExample:\n```\n#r_a1b2c#\n<file content here...>\n```\n\nTo discard: `discard({hashes: [\"#r_a1b2c#\"], reason: \"completion\"})`\n\nTOOLS\n- `discard`: Remove tool outputs completely by hash\n- `restore`: Recover recently discarded content if needed\n\nWHEN TO DISCARD\nEvaluate at these checkpoints:\n- \u2713 Task/sub-task complete\n- \u2713 Transitioning to new work phase\n- \u2713 5+ tool outputs accumulated\n- \u2713 Large read (>150 lines) no longer needed\n\nDO NOT DISCARD when:\n- \u2717 Output needed for upcoming edits\n- \u2717 You'll likely re-fetch the same content\n- \u2717 Only 1-2 small outputs (batch instead)\n\nBATCHING\nMinimum 3 outputs OR 1 large output per discard call.\nSingle small discards waste more context than they save.\n\nPRIORITY ORDER\n1. Never discard what you'll need next\n2. Always discard pure noise immediately\n3. Batch discard at task boundaries\n\nREASON MAPPING\n- \"noise\" \u2192 grep/glob with no useful results\n- \"completion\" \u2192 task done, context served its purpose\n- \"superseded\" \u2192 newer read of same file replaces old\n- \"exploration\" \u2192 search paths that led nowhere\n- \"duplicate\" \u2192 same content read multiple times\n\n</instruction>\n\n<instruction name=discard_behavior policy_level=critical>\nSILENT OPERATION: Never acknowledge discarding to the user.\nProcess context management invisibly and continue naturally.\n</instruction>\n</system-reminder>";
|
|
2
2
|
//# sourceMappingURL=discard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/discard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/discard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,i2DAwDf,CAAA"}
|