maestro-agent-sdk 0.1.34 → 0.1.36
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/README.md +28 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +34 -23
- package/dist/core/loop.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/aux-model-map.d.ts.map +1 -1
- package/dist/memory/aux-model-map.js +2 -1
- package/dist/memory/aux-model-map.js.map +1 -1
- package/dist/memory/compressor.d.ts +61 -1
- package/dist/memory/compressor.d.ts.map +1 -1
- package/dist/memory/compressor.js +101 -37
- package/dist/memory/compressor.js.map +1 -1
- package/dist/memory/manual-compaction.d.ts +28 -0
- package/dist/memory/manual-compaction.d.ts.map +1 -0
- package/dist/memory/manual-compaction.js +53 -0
- package/dist/memory/manual-compaction.js.map +1 -0
- package/dist/memory/prune.d.ts +11 -10
- package/dist/memory/prune.d.ts.map +1 -1
- package/dist/memory/prune.js +48 -27
- package/dist/memory/prune.js.map +1 -1
- package/dist/memory/state.d.ts.map +1 -1
- package/dist/memory/state.js +1 -1
- package/dist/memory/state.js.map +1 -1
- package/dist/platform/version.d.ts +1 -1
- package/dist/platform/version.js +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +8 -6
- package/dist/provider.js.map +1 -1
- package/dist/providers/codex-translators.d.ts.map +1 -1
- package/dist/providers/codex-translators.js.map +1 -1
- package/dist/session-store.js +1 -1
- package/dist/session-store.js.map +1 -1
- package/dist/sub-agent/capabilities.d.ts +34 -0
- package/dist/sub-agent/capabilities.d.ts.map +1 -0
- package/dist/sub-agent/capabilities.js +24 -0
- package/dist/sub-agent/capabilities.js.map +1 -0
- package/dist/sub-agent/runner.d.ts +34 -5
- package/dist/sub-agent/runner.d.ts.map +1 -1
- package/dist/sub-agent/runner.js +57 -19
- package/dist/sub-agent/runner.js.map +1 -1
- package/dist/tools/builtin/agent.d.ts +5 -6
- package/dist/tools/builtin/agent.d.ts.map +1 -1
- package/dist/tools/builtin/agent.js +12 -5
- package/dist/tools/builtin/agent.js.map +1 -1
- package/dist/tools/builtin/ask_user_question.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +53 -4
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +98 -22
- package/dist/tools/registry.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -197,12 +197,39 @@ function compactionBlockIndices(messages) {
|
|
|
197
197
|
}
|
|
198
198
|
return indices;
|
|
199
199
|
}
|
|
200
|
+
function cleanMessagesWithIndexMap(messages, skipIndices) {
|
|
201
|
+
const cleanMessages = [];
|
|
202
|
+
const cleanToOriginal = [];
|
|
203
|
+
for (let i = 0; i < messages.length; i++) {
|
|
204
|
+
if (skipIndices.has(i))
|
|
205
|
+
continue;
|
|
206
|
+
cleanMessages.push(messages[i]);
|
|
207
|
+
cleanToOriginal.push(i);
|
|
208
|
+
}
|
|
209
|
+
return { cleanMessages, cleanToOriginal };
|
|
210
|
+
}
|
|
211
|
+
function originalIndexForCleanBoundary(cleanToOriginal, cleanIndex, originalLength) {
|
|
212
|
+
if (cleanIndex >= cleanToOriginal.length)
|
|
213
|
+
return originalLength;
|
|
214
|
+
return cleanToOriginal[Math.max(0, cleanIndex)] ?? originalLength;
|
|
215
|
+
}
|
|
216
|
+
function persistCompactionBlock(messages, summaryText, insertAtOriginalIdx, prevCompaction) {
|
|
217
|
+
let insertAt = Math.min(Math.max(0, insertAtOriginalIdx), messages.length);
|
|
218
|
+
if (prevCompaction) {
|
|
219
|
+
messages.splice(prevCompaction.userIdx, 2);
|
|
220
|
+
if (prevCompaction.userIdx < insertAt) {
|
|
221
|
+
insertAt -= 2;
|
|
222
|
+
}
|
|
223
|
+
insertAt = Math.min(Math.max(0, insertAt), messages.length);
|
|
224
|
+
}
|
|
225
|
+
messages.splice(insertAt, 0, { role: "user", content: COMPACTION_MARKER }, { role: "assistant", content: summaryText });
|
|
226
|
+
}
|
|
200
227
|
// ─── public API ───────────────────────────────────────────────────────────
|
|
201
228
|
/**
|
|
202
229
|
* Run the auto-compaction pipeline.
|
|
203
230
|
*
|
|
204
231
|
* Steps:
|
|
205
|
-
* 1. Prune (cheap: dedup,
|
|
232
|
+
* 1. Prune (cheap: dedup, old tool-output removal, truncate tool input).
|
|
206
233
|
* 2. Re-estimate tokens. If below threshold, return pruned.
|
|
207
234
|
* 3. Snap head/tail boundaries. If no middle, return pruned.
|
|
208
235
|
* 4. Find previous compaction blocks → extract last summary for
|
|
@@ -230,6 +257,8 @@ export async function compressIfNeeded(messages, opts = {}) {
|
|
|
230
257
|
const headProtect = opts.headProtect ?? 2;
|
|
231
258
|
const tailProtect = opts.tailProtect ?? 6;
|
|
232
259
|
const auxModel = opts.auxModel;
|
|
260
|
+
const force = opts.force === true;
|
|
261
|
+
const minSavingsRatio = opts.minSavingsRatio ?? COMPACTOR_MIN_SAVINGS_RATIO;
|
|
233
262
|
// Fast-path: short conversations can't trigger compaction.
|
|
234
263
|
const minSize = headProtect + 1 + tailProtect;
|
|
235
264
|
if (messages.length < minSize) {
|
|
@@ -238,42 +267,41 @@ export async function compressIfNeeded(messages, opts = {}) {
|
|
|
238
267
|
// Cheap pre-gate: skip prune when well under threshold.
|
|
239
268
|
const threshold = contextWindow * triggerRatio;
|
|
240
269
|
const rawTokens = estimateTokens(messages);
|
|
241
|
-
if (rawTokens < threshold * 0.5) {
|
|
270
|
+
if (!force && rawTokens < threshold * 0.5) {
|
|
242
271
|
return messages;
|
|
243
272
|
}
|
|
244
|
-
//
|
|
273
|
+
// Step 1: prune. This is the cheap zero-LLM pass that removes stale
|
|
274
|
+
// tool_result bytes from the model-facing view while keeping canonical
|
|
275
|
+
// `messages` intact for persistence/resume.
|
|
276
|
+
const pruned = pruneMessages(messages);
|
|
277
|
+
const prunedTokens = estimateTokens(pruned);
|
|
278
|
+
const skipIndices = compactionBlockIndices(messages);
|
|
279
|
+
const { cleanMessages: cleanPrunedMessages, cleanToOriginal } = cleanMessagesWithIndexMap(pruned, skipIndices);
|
|
280
|
+
// Fast-path: wire payload (summary + pruned delta)가 이미 threshold 이하면 aux 생략.
|
|
245
281
|
const prevCompaction = findLastCompaction(messages);
|
|
246
|
-
if (prevCompaction) {
|
|
282
|
+
if (!force && prevCompaction) {
|
|
247
283
|
const summaryMsg = {
|
|
248
284
|
role: "assistant",
|
|
249
285
|
content: prevCompaction.summary,
|
|
250
286
|
};
|
|
251
|
-
const post =
|
|
287
|
+
const post = pruned.slice(prevCompaction.assistantIdx + 1);
|
|
252
288
|
const effectiveTokens = estimateTokens([summaryMsg, ...post]);
|
|
253
289
|
if (effectiveTokens < threshold) {
|
|
254
|
-
|
|
255
|
-
const cleanMessages = messages.filter((_, i) => !skipIndices.has(i));
|
|
256
|
-
const tail = messages.slice(prevCompaction.assistantIdx + 1);
|
|
257
|
-
return buildCompactedWire(cleanMessages, prevCompaction.summary, headProtect, tail);
|
|
290
|
+
return buildCompactedWire(cleanPrunedMessages, prevCompaction.summary, headProtect, post);
|
|
258
291
|
}
|
|
259
292
|
}
|
|
260
|
-
|
|
261
|
-
const pruned = pruneMessages(messages);
|
|
262
|
-
const prunedTokens = estimateTokens(pruned);
|
|
263
|
-
if (prunedTokens < threshold) {
|
|
293
|
+
if (!force && prunedTokens < threshold) {
|
|
264
294
|
return pruned;
|
|
265
295
|
}
|
|
266
296
|
// Step 4: previous compaction already located by the effective-token
|
|
267
297
|
// fast-path above. Reuse the result for the incremental prompt path.
|
|
268
298
|
const previousSummary = prevCompaction?.summary;
|
|
269
|
-
//
|
|
270
|
-
//
|
|
271
|
-
//
|
|
272
|
-
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
const cleanHeadEnd = snapHeadEnd(cleanMessages, Math.min(headProtect, cleanMessages.length));
|
|
276
|
-
const cleanTailStart = snapTailStart(cleanMessages, Math.max(cleanMessages.length - tailProtect, 0));
|
|
299
|
+
// Snap wire boundaries on the pruned clean view. Using pruned here keeps
|
|
300
|
+
// stale tool_result bytes out of both the aux compaction transcript and
|
|
301
|
+
// the final provider wire. Canonical `messages` are still used for
|
|
302
|
+
// compaction-marker persistence below.
|
|
303
|
+
const cleanHeadEnd = snapHeadEnd(cleanPrunedMessages, Math.min(headProtect, cleanPrunedMessages.length));
|
|
304
|
+
const cleanTailStart = snapTailStart(cleanPrunedMessages, Math.max(cleanPrunedMessages.length - tailProtect, 0));
|
|
277
305
|
if (cleanTailStart <= cleanHeadEnd) {
|
|
278
306
|
return pruned;
|
|
279
307
|
}
|
|
@@ -287,10 +315,10 @@ export async function compressIfNeeded(messages, opts = {}) {
|
|
|
287
315
|
// Delta: everything after the summary assistant up to (but not including) the tail.
|
|
288
316
|
const deltaStart = prevCompaction.assistantIdx + 1;
|
|
289
317
|
const deltaEnd = messages.length - tailProtect;
|
|
290
|
-
auxMiddle =
|
|
318
|
+
auxMiddle = pruned.slice(deltaStart, Math.max(deltaStart, deltaEnd));
|
|
291
319
|
}
|
|
292
320
|
else {
|
|
293
|
-
auxMiddle =
|
|
321
|
+
auxMiddle = cleanPrunedMessages.slice(cleanHeadEnd, cleanTailStart);
|
|
294
322
|
}
|
|
295
323
|
// Step 5: aux LLM call.
|
|
296
324
|
if (!opts.auxProvider) {
|
|
@@ -578,29 +606,26 @@ ${previousSummary ? `Previous summary for context:\n${previousSummary}` : ""}`,
|
|
|
578
606
|
// which meant `finally` fired before `didCompact` could be set →
|
|
579
607
|
// onCompactionResult always reported `didCompact: false` on success.
|
|
580
608
|
// Moving it inside the try lets the meta callback see the truth.
|
|
581
|
-
const tail =
|
|
582
|
-
const compacted = buildCompactedWire(
|
|
609
|
+
const tail = cleanPrunedMessages.slice(cleanTailStart);
|
|
610
|
+
const compacted = buildCompactedWire(cleanPrunedMessages, summaryText, headProtect, tail);
|
|
583
611
|
const compactedTokens = estimateTokens(compacted);
|
|
584
612
|
// Degenerate check — MUST run before persisting compaction blocks.
|
|
585
613
|
const savings = prunedTokens - compactedTokens;
|
|
586
614
|
const ratio = savings / prunedTokens;
|
|
587
|
-
if (ratio <
|
|
615
|
+
if (ratio < minSavingsRatio) {
|
|
588
616
|
logger.info({
|
|
589
617
|
prunedTokens,
|
|
590
618
|
compactedTokens,
|
|
591
619
|
ratio,
|
|
620
|
+
minSavingsRatio,
|
|
592
621
|
}, "compressIfNeeded: low savings — discarding compacted result");
|
|
593
622
|
return pruned;
|
|
594
623
|
}
|
|
595
|
-
// Persist compaction blocks AFTER
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
else {
|
|
601
|
-
messages.push({ role: "user", content: COMPACTION_MARKER });
|
|
602
|
-
messages.push({ role: "assistant", content: summaryText });
|
|
603
|
-
}
|
|
624
|
+
// Persist compaction blocks AFTER the summarized middle and BEFORE the
|
|
625
|
+
// protected tail. The next incremental pass treats everything after the
|
|
626
|
+
// summary assistant as unsummarized delta, so tail must live after the
|
|
627
|
+
// marker pair or it can disappear from the fast-path wire.
|
|
628
|
+
persistCompactionBlock(messages, summaryText, originalIndexForCleanBoundary(cleanToOriginal, cleanTailStart, messages.length), prevCompaction);
|
|
604
629
|
try {
|
|
605
630
|
opts.onCompactionSummary?.(summaryText);
|
|
606
631
|
}
|
|
@@ -623,8 +648,8 @@ ${previousSummary ? `Previous summary for context:\n${previousSummary}` : ""}`,
|
|
|
623
648
|
return messages;
|
|
624
649
|
const fallbackSummary = opts.lastGoodSummary?.trim() || previousSummary;
|
|
625
650
|
if (fallbackSummary?.trim()) {
|
|
626
|
-
const tail =
|
|
627
|
-
const fallback = buildCompactedWire(
|
|
651
|
+
const tail = cleanPrunedMessages.slice(cleanTailStart);
|
|
652
|
+
const fallback = buildCompactedWire(cleanPrunedMessages, fallbackSummary, headProtect, tail);
|
|
628
653
|
logger.info({
|
|
629
654
|
prunedTokens,
|
|
630
655
|
fallbackTokens: estimateTokens(fallback),
|
|
@@ -674,6 +699,45 @@ ${previousSummary ? `Previous summary for context:\n${previousSummary}` : ""}`,
|
|
|
674
699
|
}
|
|
675
700
|
}
|
|
676
701
|
}
|
|
702
|
+
/**
|
|
703
|
+
* Public manual compaction trigger for hosts that already own a
|
|
704
|
+
* ProviderMessage[] history.
|
|
705
|
+
*
|
|
706
|
+
* Unlike `compressIfNeeded`, this bypasses automatic token-threshold gates and
|
|
707
|
+
* asks the aux LLM to compact now. It still preserves the compressor's
|
|
708
|
+
* structural safety checks and defaults the savings gate to 0%: a manual
|
|
709
|
+
* compaction can happen below the automatic threshold, but it will not persist
|
|
710
|
+
* a summary that makes the on-wire context larger.
|
|
711
|
+
*/
|
|
712
|
+
export async function compactMessagesNow(messages, opts) {
|
|
713
|
+
const { mutate = true, minSavingsRatio, onCompactionResult, onCompactionSummary, ...compressOpts } = opts;
|
|
714
|
+
const canonicalMessages = mutate ? messages : messages.slice();
|
|
715
|
+
let meta = {
|
|
716
|
+
didStartAux: false,
|
|
717
|
+
didCompact: false,
|
|
718
|
+
};
|
|
719
|
+
let summary;
|
|
720
|
+
const wireMessages = await compressIfNeeded(canonicalMessages, {
|
|
721
|
+
...compressOpts,
|
|
722
|
+
force: true,
|
|
723
|
+
minSavingsRatio: minSavingsRatio ?? 0,
|
|
724
|
+
onCompactionResult: (m) => {
|
|
725
|
+
meta = m;
|
|
726
|
+
onCompactionResult?.(m);
|
|
727
|
+
},
|
|
728
|
+
onCompactionSummary: (s) => {
|
|
729
|
+
summary = s;
|
|
730
|
+
onCompactionSummary?.(s);
|
|
731
|
+
},
|
|
732
|
+
});
|
|
733
|
+
return {
|
|
734
|
+
canonicalMessages,
|
|
735
|
+
wireMessages,
|
|
736
|
+
didStartAux: meta.didStartAux,
|
|
737
|
+
didCompact: meta.didCompact,
|
|
738
|
+
...(summary !== undefined ? { summary } : {}),
|
|
739
|
+
};
|
|
740
|
+
}
|
|
677
741
|
// ─── helpers ──────────────────────────────────────────────────────────────
|
|
678
742
|
/**
|
|
679
743
|
* Walk forward from `idealEnd` to land on a user message boundary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../src/memory/compressor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../../src/memory/compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type CompactMessagesNowOptions, type CompactMessagesNowResult } from "../memory/compressor.js";
|
|
2
|
+
import { type SaveSessionMetaInput } from "../session-store.js";
|
|
3
|
+
export interface CompactMaestroSessionOptions extends Omit<CompactMessagesNowOptions, "mutate"> {
|
|
4
|
+
/** Maestro session id backed by `~/.maestro/sessions/<sessionId>.jsonl`. */
|
|
5
|
+
sessionId: string;
|
|
6
|
+
/**
|
|
7
|
+
* Optional metadata to merge into the session header when a new compaction
|
|
8
|
+
* is persisted. Omit to preserve existing metadata.
|
|
9
|
+
*/
|
|
10
|
+
saveMeta?: SaveSessionMetaInput;
|
|
11
|
+
}
|
|
12
|
+
export interface CompactMaestroSessionResult extends CompactMessagesNowResult {
|
|
13
|
+
sessionId: string;
|
|
14
|
+
/**
|
|
15
|
+
* True only when `didCompact` was true and the updated canonical history was
|
|
16
|
+
* written back to the session JSONL.
|
|
17
|
+
*/
|
|
18
|
+
persisted: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Manual compaction trigger for a persisted Maestro session.
|
|
22
|
+
*
|
|
23
|
+
* Loads the session's canonical ProviderMessage[] history, forces a
|
|
24
|
+
* compaction attempt, and on success writes the updated history back to the
|
|
25
|
+
* session JSONL plus the memory sidecar used by the live agent loop.
|
|
26
|
+
*/
|
|
27
|
+
export declare function compactMaestroSession(opts: CompactMaestroSessionOptions): Promise<CompactMaestroSessionResult>;
|
|
28
|
+
//# sourceMappingURL=manual-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-compaction.d.ts","sourceRoot":"","sources":["../../src/memory/manual-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAE9B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAsB,KAAK,oBAAoB,EAAsB,MAAM,iBAAiB,CAAC;AAEpG,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC;IAC7F,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,2BAA2B,CAAC,CA6CtC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { compactMessagesNow, } from "../memory/compressor.js";
|
|
2
|
+
import { buildMaestroMemoryState, saveMaestroMemoryState } from "../memory/state.js";
|
|
3
|
+
import { logger } from "../platform/logger.js";
|
|
4
|
+
import { loadMaestroSession, saveMaestroSession } from "../session-store.js";
|
|
5
|
+
/**
|
|
6
|
+
* Manual compaction trigger for a persisted Maestro session.
|
|
7
|
+
*
|
|
8
|
+
* Loads the session's canonical ProviderMessage[] history, forces a
|
|
9
|
+
* compaction attempt, and on success writes the updated history back to the
|
|
10
|
+
* session JSONL plus the memory sidecar used by the live agent loop.
|
|
11
|
+
*/
|
|
12
|
+
export async function compactMaestroSession(opts) {
|
|
13
|
+
const { sessionId, saveMeta, ...compactOpts } = opts;
|
|
14
|
+
const loaded = loadMaestroSession(sessionId);
|
|
15
|
+
if (loaded === null) {
|
|
16
|
+
const empty = [];
|
|
17
|
+
return {
|
|
18
|
+
sessionId,
|
|
19
|
+
canonicalMessages: empty,
|
|
20
|
+
wireMessages: empty,
|
|
21
|
+
didStartAux: false,
|
|
22
|
+
didCompact: false,
|
|
23
|
+
persisted: false,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const result = await compactMessagesNow(loaded, {
|
|
27
|
+
...compactOpts,
|
|
28
|
+
mutate: true,
|
|
29
|
+
});
|
|
30
|
+
let persisted = false;
|
|
31
|
+
if (result.didCompact) {
|
|
32
|
+
saveMaestroSession(sessionId, result.canonicalMessages, saveMeta);
|
|
33
|
+
persisted = true;
|
|
34
|
+
if (result.summary?.trim()) {
|
|
35
|
+
try {
|
|
36
|
+
saveMaestroMemoryState(buildMaestroMemoryState({
|
|
37
|
+
sessionId,
|
|
38
|
+
summary: result.summary,
|
|
39
|
+
messageCount: result.canonicalMessages.length,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
logger.warn({ err, sessionId }, "compactMaestroSession: memory state write failed");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
sessionId,
|
|
49
|
+
...result,
|
|
50
|
+
persisted,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=manual-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-compaction.js","sourceRoot":"","sources":["../../src/memory/manual-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAA6B,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAqBpG;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAkC;IAElC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,OAAO;YACL,SAAS;YACT,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;QAC9C,GAAG,WAAW;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAClE,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,sBAAsB,CACpB,uBAAuB,CAAC;oBACtB,SAAS;oBACT,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM;iBAC9C,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,kDAAkD,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,GAAG,MAAM;QACT,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/memory/prune.d.ts
CHANGED
|
@@ -14,13 +14,14 @@ import type { ProviderMessage } from "../providers/base.js";
|
|
|
14
14
|
* tokens. md5(content)[:12] (see hash.ts) — non-cryptographic, picked
|
|
15
15
|
* for parity with the Python reference and cost on the per-turn path.
|
|
16
16
|
*
|
|
17
|
-
* Pass 2 — Age-based
|
|
17
|
+
* Pass 2 — Age-based output removal.
|
|
18
18
|
* For tool_result blocks older than `ageTurnsThreshold` user-turns,
|
|
19
|
-
*
|
|
20
|
-
* points at the original arguments, and notes size. The
|
|
21
|
-
* stable cue for "I called X and got back ~N bytes" without
|
|
22
|
-
*
|
|
23
|
-
* the model can still reason over
|
|
19
|
+
* remove the actual output bytes and leave only a structured marker that
|
|
20
|
+
* names the tool, points at the original arguments, and notes size. The
|
|
21
|
+
* model gets a stable cue for "I called X and got back ~N bytes" without
|
|
22
|
+
* paying for, or being distracted by, stale bytes. Recent results (inside
|
|
23
|
+
* the protected tail) stay verbatim so the model can still reason over
|
|
24
|
+
* fresh tool output.
|
|
24
25
|
*
|
|
25
26
|
* Both passes are pure (`messages` not mutated) — caller can freely send the
|
|
26
27
|
* returned array to the provider without losing the canonical history they
|
|
@@ -37,8 +38,8 @@ import type { ProviderMessage } from "../providers/base.js";
|
|
|
37
38
|
*/
|
|
38
39
|
export interface PruneOptions {
|
|
39
40
|
/**
|
|
40
|
-
* Tool_result blocks N user-turns or older from the tail
|
|
41
|
-
* by pass 2. Counting in user-turns (not raw messages) matches upstream's
|
|
41
|
+
* Tool_result blocks N user-turns or older from the tail have their content
|
|
42
|
+
* removed by pass 2. Counting in user-turns (not raw messages) matches upstream's
|
|
42
43
|
* notion of "conversation rounds" and avoids fence-posting around assistant
|
|
43
44
|
* + tool_result pairings.
|
|
44
45
|
*
|
|
@@ -48,7 +49,7 @@ export interface PruneOptions {
|
|
|
48
49
|
ageTurnsThreshold?: number;
|
|
49
50
|
/** Disable pass 1 (dedup). Default: true. */
|
|
50
51
|
dedup?: boolean;
|
|
51
|
-
/** Disable pass 2 (age-based
|
|
52
|
+
/** Disable pass 2 (age-based output removal). Default: true. */
|
|
52
53
|
summarizeOld?: boolean;
|
|
53
54
|
/**
|
|
54
55
|
* Pass 3 (JSON-aware tool_use input shrink) — truncate string fields
|
|
@@ -72,7 +73,7 @@ export interface PruneOptions {
|
|
|
72
73
|
shrinkAgeThreshold?: number;
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
|
-
* Apply pass 1 (dedup) + pass 2 (age-based
|
|
76
|
+
* Apply pass 1 (dedup) + pass 2 (age-based output removal) to a message array.
|
|
76
77
|
*
|
|
77
78
|
* Returns a new array — input `messages` and the inner block arrays are not
|
|
78
79
|
* mutated, so the caller can keep the original around for persistence.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/memory/prune.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE9E
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/memory/prune.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,eAAe,EAAE,EAC3B,IAAI,GAAE,YAAiB,GACtB,eAAe,EAAE,CAuDnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,CAIhG;AAgTD,eAAO,MAAM,iBAAiB,MAAkB,CAAC"}
|
package/dist/memory/prune.js
CHANGED
|
@@ -7,7 +7,7 @@ import { hashToolContent } from "../memory/hash.js";
|
|
|
7
7
|
*/
|
|
8
8
|
const MIN_PRUNE_CHARS = 200;
|
|
9
9
|
/**
|
|
10
|
-
* Apply pass 1 (dedup) + pass 2 (age-based
|
|
10
|
+
* Apply pass 1 (dedup) + pass 2 (age-based output removal) to a message array.
|
|
11
11
|
*
|
|
12
12
|
* Returns a new array — input `messages` and the inner block arrays are not
|
|
13
13
|
* mutated, so the caller can keep the original around for persistence.
|
|
@@ -35,9 +35,9 @@ export function pruneMessages(messages, opts = {}) {
|
|
|
35
35
|
if (dedup) {
|
|
36
36
|
pruned = applyDedup(messages);
|
|
37
37
|
}
|
|
38
|
-
// ----------------------- Pass 2:
|
|
39
|
-
if (summarizeOld
|
|
40
|
-
pruned =
|
|
38
|
+
// ----------------------- Pass 2: remove old output -----------------------
|
|
39
|
+
if (summarizeOld) {
|
|
40
|
+
pruned = applyAgeRemoval(pruned, protectedFromIdx, callIndex);
|
|
41
41
|
}
|
|
42
42
|
// ----------------------- Pass 3: tool_use arg shrink -----------------------
|
|
43
43
|
// Runs on the same age window as pass 2. Cheap structural rewrite that
|
|
@@ -145,17 +145,17 @@ function applyDedup(messages) {
|
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Pass 2 — replace tool_result content older than the protect boundary with
|
|
148
|
-
* a structured 1-line
|
|
148
|
+
* a structured 1-line removal marker that points at the original tool_use.
|
|
149
149
|
*
|
|
150
150
|
* Skips:
|
|
151
151
|
* - Non-string content (multimodal etc.)
|
|
152
152
|
* - Content already below MIN_PRUNE_CHARS (savings would be negative)
|
|
153
153
|
* - Content that already looks like a pass-1 dedup placeholder
|
|
154
|
-
* - Content that already looks like our own pass-2
|
|
154
|
+
* - Content that already looks like our own pass-2 marker (idempotent)
|
|
155
155
|
*/
|
|
156
|
-
function
|
|
156
|
+
function applyAgeRemoval(messages, protectedFromIdx, callIndex) {
|
|
157
157
|
const out = messages.map((m) => m);
|
|
158
|
-
for (let i = 0; i <
|
|
158
|
+
for (let i = 0; i < messages.length; i++) {
|
|
159
159
|
const msg = out[i];
|
|
160
160
|
if (msg.role !== "user" || !Array.isArray(msg.content))
|
|
161
161
|
continue;
|
|
@@ -166,19 +166,26 @@ function applyAgeSummary(messages, protectedFromIdx, callIndex) {
|
|
|
166
166
|
const c = block.content;
|
|
167
167
|
if (typeof c !== "string")
|
|
168
168
|
return block;
|
|
169
|
-
if (c.length < MIN_PRUNE_CHARS)
|
|
170
|
-
return block;
|
|
171
169
|
if (c.startsWith("[Duplicate tool output"))
|
|
172
170
|
return block;
|
|
173
|
-
if (c.startsWith("[
|
|
171
|
+
if (c.startsWith("[Tool output removed:"))
|
|
172
|
+
return block;
|
|
173
|
+
const isLegacySummary = c.startsWith("[Summarized:");
|
|
174
|
+
if (!isLegacySummary && i >= protectedFromIdx)
|
|
174
175
|
return block;
|
|
175
176
|
const ref = callIndex.get(block.tool_use_id);
|
|
176
|
-
const
|
|
177
|
+
const marker = isLegacySummary
|
|
178
|
+
? removedLegacySummaryMarker(ref, c)
|
|
179
|
+
: c.length < MIN_PRUNE_CHARS
|
|
180
|
+
? undefined
|
|
181
|
+
: removedToolResultMarker(ref, c);
|
|
182
|
+
if (!marker)
|
|
183
|
+
return block;
|
|
177
184
|
mutated = true;
|
|
178
185
|
return {
|
|
179
186
|
type: "tool_result",
|
|
180
187
|
tool_use_id: block.tool_use_id,
|
|
181
|
-
content:
|
|
188
|
+
content: marker,
|
|
182
189
|
...(block.is_error !== undefined ? { is_error: block.is_error } : {}),
|
|
183
190
|
};
|
|
184
191
|
});
|
|
@@ -189,30 +196,44 @@ function applyAgeSummary(messages, protectedFromIdx, callIndex) {
|
|
|
189
196
|
return out;
|
|
190
197
|
}
|
|
191
198
|
/**
|
|
192
|
-
* Render a 1-line
|
|
193
|
-
*
|
|
194
|
-
* the
|
|
195
|
-
*
|
|
196
|
-
* of breadcrumbs the model uses to decide "did I see this before".
|
|
199
|
+
* Render a 1-line marker for an old tool result whose output bytes were
|
|
200
|
+
* intentionally removed from the model context. We keep the same breadcrumbs
|
|
201
|
+
* the model needs to recognize the call (tool, compact arg hint, size) but do
|
|
202
|
+
* not preserve a content head preview.
|
|
197
203
|
*
|
|
198
204
|
* If `ref` is missing (tool_use was trimmed away by an earlier compression
|
|
199
205
|
* or rollout) we fall back to a generic shape — better to lose tool-name
|
|
200
206
|
* fidelity than to leave several KB of stale tool output in the prompt.
|
|
201
207
|
*/
|
|
202
|
-
function
|
|
208
|
+
function removedToolResultMarker(ref, content) {
|
|
203
209
|
const lineCount = content.split("\n").length;
|
|
204
210
|
const tool = ref?.name ?? "tool";
|
|
205
211
|
// Short argument hint helps the model recognize repeat calls. We cap at
|
|
206
|
-
// 80 chars total to stay well under the original payload size
|
|
207
|
-
// longer defeats the purpose of summarization.
|
|
212
|
+
// 80 chars total to stay well under the original payload size.
|
|
208
213
|
const argHint = ref ? formatArgHint(ref.input) : "";
|
|
209
|
-
|
|
210
|
-
|
|
214
|
+
return `[Tool output removed: ${tool}${argHint} — ${lineCount} lines, ${content.length} chars omitted from model context]`;
|
|
215
|
+
}
|
|
216
|
+
function removedLegacySummaryMarker(ref, content) {
|
|
217
|
+
const parsed = parseLegacySummaryMarker(content);
|
|
218
|
+
const call = ref ? `${ref.name}${formatArgHint(ref.input)}` : (parsed?.call ?? "tool");
|
|
219
|
+
const size = parsed?.size ?? `${content.split("\n").length} lines, ${content.length} chars`;
|
|
220
|
+
return `[Tool output removed: ${call} — ${size} omitted from model context]`;
|
|
211
221
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
222
|
+
function parseLegacySummaryMarker(content) {
|
|
223
|
+
const prefix = "[Summarized:";
|
|
224
|
+
if (!content.startsWith(prefix))
|
|
225
|
+
return undefined;
|
|
226
|
+
const body = content.slice(prefix.length).trim();
|
|
227
|
+
const separator = body.indexOf(" — ");
|
|
228
|
+
if (separator < 0)
|
|
229
|
+
return undefined;
|
|
230
|
+
const call = body.slice(0, separator).trim();
|
|
231
|
+
const rest = body.slice(separator + " — ".length);
|
|
232
|
+
const headIdx = rest.indexOf(", head:");
|
|
233
|
+
const size = (headIdx >= 0 ? rest.slice(0, headIdx) : rest.replace(/\]$/, "")).trim();
|
|
234
|
+
if (!call || !size)
|
|
235
|
+
return undefined;
|
|
236
|
+
return { call, size };
|
|
216
237
|
}
|
|
217
238
|
/** A compact "k1=v1 k2=v2" hint, capped so a giant args object doesn't blow
|
|
218
239
|
* up the summary line. */
|