@animalabs/context-manager 0.5.2 → 0.5.3
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/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/normalize-tool-messages.d.ts +33 -0
- package/dist/src/normalize-tool-messages.d.ts.map +1 -1
- package/dist/src/normalize-tool-messages.js +59 -0
- package/dist/src/normalize-tool-messages.js.map +1 -1
- package/dist/src/strategies/autobiographical.d.ts +33 -0
- package/dist/src/strategies/autobiographical.d.ts.map +1 -1
- package/dist/src/strategies/autobiographical.js +97 -9
- package/dist/src/strategies/autobiographical.js.map +1 -1
- package/dist/test/chunker-tool-boundary.test.d.ts +12 -0
- package/dist/test/chunker-tool-boundary.test.d.ts.map +1 -0
- package/dist/test/chunker-tool-boundary.test.js +89 -0
- package/dist/test/chunker-tool-boundary.test.js.map +1 -0
- package/dist/test/compression-shape-invariants.test.d.ts +22 -0
- package/dist/test/compression-shape-invariants.test.d.ts.map +1 -0
- package/dist/test/compression-shape-invariants.test.js +312 -0
- package/dist/test/compression-shape-invariants.test.js.map +1 -0
- package/dist/test/normalize-tool-messages.test.js +61 -1
- package/dist/test/normalize-tool-messages.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/normalize-tool-messages.ts +61 -0
- package/src/strategies/autobiographical.ts +100 -8
package/dist/src/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { BlobManager } from './blob-manager.js';
|
|
|
7
7
|
export { PassthroughStrategy } from './strategies/passthrough.js';
|
|
8
8
|
export { AutobiographicalStrategy, type AutobiographicalProgressSnapshot } from './strategies/autobiographical.js';
|
|
9
9
|
export { KnowledgeStrategy } from './strategies/knowledge.js';
|
|
10
|
-
export { splitMixedToolMessages } from './normalize-tool-messages.js';
|
|
10
|
+
export { splitMixedToolMessages, stripUnpairedToolBlocks } from './normalize-tool-messages.js';
|
|
11
11
|
export type { MessageId, Sequence, BranchId, MessageMetadata, StoredMessage, BlobReference, StoredContentBlock, MessageQuery, MessageQueryResult, SourceRelation, ContextEntry, TokenBudget, PendingWork, BranchInfo, ContextInjection, CompileResult, MessageStoreView, ContextLogView, StrategyContext, ReadinessState, ContextStrategy, AutobiographicalConfig, SummaryLevel, SummaryEntry, PhaseType, KnowledgeConfig, ResettableStrategy, } from './types/index.js';
|
|
12
12
|
export { DEFAULT_AUTOBIOGRAPHICAL_CONFIG, isResettableStrategy } from './types/index.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,KAAK,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,KAAK,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAG/F,YAAY,EAEV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAElB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EAEb,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,eAAe,EACf,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -9,6 +9,6 @@ export { PassthroughStrategy } from './strategies/passthrough.js';
|
|
|
9
9
|
export { AutobiographicalStrategy } from './strategies/autobiographical.js';
|
|
10
10
|
export { KnowledgeStrategy } from './strategies/knowledge.js';
|
|
11
11
|
// Utilities
|
|
12
|
-
export { splitMixedToolMessages } from './normalize-tool-messages.js';
|
|
12
|
+
export { splitMixedToolMessages, stripUnpairedToolBlocks } from './normalize-tool-messages.js';
|
|
13
13
|
export { DEFAULT_AUTOBIOGRAPHICAL_CONFIG, isResettableStrategy } from './types/index.js';
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,aAAa;AACb,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,kCAAkC,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,aAAa;AACb,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,kCAAkC,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAoC/F,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -37,4 +37,37 @@ export declare function splitMixedToolMessages<T extends {
|
|
|
37
37
|
participant: string;
|
|
38
38
|
content: ContentBlock[];
|
|
39
39
|
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Strip `tool_use` blocks whose IDs have no matching `tool_result` anywhere
|
|
42
|
+
* in the message list, and `tool_result` blocks whose IDs have no matching
|
|
43
|
+
* `tool_use`. If stripping leaves a message with no blocks, replace its
|
|
44
|
+
* content with a placeholder text block so the message stays structurally
|
|
45
|
+
* valid (collapse/rendering paths assume non-empty content).
|
|
46
|
+
*
|
|
47
|
+
* Why this exists: the Anthropic API requires every `tool_use` to be
|
|
48
|
+
* followed by its `tool_result` in the immediately-next message (and every
|
|
49
|
+
* `tool_result` to follow its `tool_use`). Two ways this becomes a problem
|
|
50
|
+
* in compression:
|
|
51
|
+
*
|
|
52
|
+
* - chunk boundaries: the chunker can cut a cycle, leaving a `tool_use`
|
|
53
|
+
* at the tail of chunk N and its `tool_result` at the head of N+1.
|
|
54
|
+
* `rebuildChunks` defers closing on a `tool_use` to avoid this, but
|
|
55
|
+
* can't help when the `tool_use` is the very last message in the
|
|
56
|
+
* store (no next message to ride along).
|
|
57
|
+
* - any future call site that builds a request from raw messages without
|
|
58
|
+
* also handling cycle pairing.
|
|
59
|
+
*
|
|
60
|
+
* The placeholder is intentionally generic ("[tool call omitted]") rather
|
|
61
|
+
* than naming a specific cause: this function fires for the chunk-boundary
|
|
62
|
+
* case AND the very-last-message case AND any future not-yet-anticipated
|
|
63
|
+
* source of unpaired blocks. Anything more specific would mislead the
|
|
64
|
+
* debugger reading the compressed conversation later.
|
|
65
|
+
*/
|
|
66
|
+
export declare function stripUnpairedToolBlocks<T extends {
|
|
67
|
+
participant: string;
|
|
68
|
+
content: ContentBlock[];
|
|
69
|
+
}>(messages: readonly T[]): Array<{
|
|
70
|
+
participant: string;
|
|
71
|
+
content: ContentBlock[];
|
|
72
|
+
}>;
|
|
40
73
|
//# sourceMappingURL=normalize-tool-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-tool-messages.d.ts","sourceRoot":"","sources":["../../src/normalize-tool-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,EAC/F,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAmCzD"}
|
|
1
|
+
{"version":3,"file":"normalize-tool-messages.d.ts","sourceRoot":"","sources":["../../src/normalize-tool-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,EAC/F,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAmCzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,EAChG,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CA+BzD"}
|
|
@@ -66,4 +66,63 @@ export function splitMixedToolMessages(messages) {
|
|
|
66
66
|
}
|
|
67
67
|
return out;
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Strip `tool_use` blocks whose IDs have no matching `tool_result` anywhere
|
|
71
|
+
* in the message list, and `tool_result` blocks whose IDs have no matching
|
|
72
|
+
* `tool_use`. If stripping leaves a message with no blocks, replace its
|
|
73
|
+
* content with a placeholder text block so the message stays structurally
|
|
74
|
+
* valid (collapse/rendering paths assume non-empty content).
|
|
75
|
+
*
|
|
76
|
+
* Why this exists: the Anthropic API requires every `tool_use` to be
|
|
77
|
+
* followed by its `tool_result` in the immediately-next message (and every
|
|
78
|
+
* `tool_result` to follow its `tool_use`). Two ways this becomes a problem
|
|
79
|
+
* in compression:
|
|
80
|
+
*
|
|
81
|
+
* - chunk boundaries: the chunker can cut a cycle, leaving a `tool_use`
|
|
82
|
+
* at the tail of chunk N and its `tool_result` at the head of N+1.
|
|
83
|
+
* `rebuildChunks` defers closing on a `tool_use` to avoid this, but
|
|
84
|
+
* can't help when the `tool_use` is the very last message in the
|
|
85
|
+
* store (no next message to ride along).
|
|
86
|
+
* - any future call site that builds a request from raw messages without
|
|
87
|
+
* also handling cycle pairing.
|
|
88
|
+
*
|
|
89
|
+
* The placeholder is intentionally generic ("[tool call omitted]") rather
|
|
90
|
+
* than naming a specific cause: this function fires for the chunk-boundary
|
|
91
|
+
* case AND the very-last-message case AND any future not-yet-anticipated
|
|
92
|
+
* source of unpaired blocks. Anything more specific would mislead the
|
|
93
|
+
* debugger reading the compressed conversation later.
|
|
94
|
+
*/
|
|
95
|
+
export function stripUnpairedToolBlocks(messages) {
|
|
96
|
+
const useIds = new Set();
|
|
97
|
+
const resultIds = new Set();
|
|
98
|
+
for (const msg of messages) {
|
|
99
|
+
for (const block of msg.content) {
|
|
100
|
+
if (block.type === 'tool_use')
|
|
101
|
+
useIds.add(block.id);
|
|
102
|
+
else if (block.type === 'tool_result') {
|
|
103
|
+
resultIds.add(block.toolUseId);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return messages.map((msg) => {
|
|
108
|
+
const trimmed = msg.content.filter((block) => {
|
|
109
|
+
if (block.type === 'tool_use') {
|
|
110
|
+
return resultIds.has(block.id);
|
|
111
|
+
}
|
|
112
|
+
if (block.type === 'tool_result') {
|
|
113
|
+
return useIds.has(block.toolUseId);
|
|
114
|
+
}
|
|
115
|
+
return true;
|
|
116
|
+
});
|
|
117
|
+
if (trimmed.length === msg.content.length) {
|
|
118
|
+
return { participant: msg.participant, content: msg.content };
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
participant: msg.participant,
|
|
122
|
+
content: trimmed.length > 0
|
|
123
|
+
? trimmed
|
|
124
|
+
: [{ type: 'text', text: '[tool call omitted]' }],
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
}
|
|
69
128
|
//# sourceMappingURL=normalize-tool-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-tool-messages.js","sourceRoot":"","sources":["../../src/normalize-tool-messages.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAsB;IAEtB,MAAM,GAAG,GAA4D,EAAE,CAAC;IACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QACxD,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,cAAc,GAAmB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC3D,cAAc,GAAG,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC;gBACX,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"normalize-tool-messages.js","sourceRoot":"","sources":["../../src/normalize-tool-messages.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAsB;IAEtB,MAAM,GAAG,GAA4D,EAAE,CAAC;IACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QACxD,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,cAAc,GAAmB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC3D,cAAc,GAAG,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC;gBACX,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,MAAM,CAAC,GAAG,CAAE,KAAwB,CAAC,EAAE,CAAC,CAAC;iBACnE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACtC,SAAS,CAAC,GAAG,CAAE,KAA+B,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC,GAAG,CAAE,KAAwB,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,GAAG,CAAE,KAA+B,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAChE,CAAC;QACD,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;gBACzB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -474,6 +474,31 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
474
474
|
* middle messages, the O(n) `find` would dominate compile latency.
|
|
475
475
|
*/
|
|
476
476
|
protected findAncestorAt(messageId: MessageId, level: number, chunksByMessageId: ReadonlyMap<MessageId, Chunk>, summariesById?: ReadonlyMap<string, SummaryEntry>): SummaryEntry | null;
|
|
477
|
+
/**
|
|
478
|
+
* Recursively expand a summary's `sourceIds` down to the leaf message IDs
|
|
479
|
+
* it covers, adding each leaf into `out`.
|
|
480
|
+
*
|
|
481
|
+
* Required because `SummaryEntry.sourceIds` are level-relative: an L1's
|
|
482
|
+
* sourceIds are raw message IDs (sourceLevel=0), but an L2's sourceIds
|
|
483
|
+
* are L1 IDs (sourceLevel=1), and so on. Any dedup that walks `sourceIds`
|
|
484
|
+
* directly only works for L1s — once L2+ summaries enter the picture
|
|
485
|
+
* (which happens as soon as `mergeThreshold` L1s accumulate during
|
|
486
|
+
* interleaved compression+merge ticks), the dedup silently fails and
|
|
487
|
+
* already-summarized messages leak back into the request as raw text.
|
|
488
|
+
* That's how Bug 10 produced 200k+ token merge prompts on a 4234-msg
|
|
489
|
+
* import.
|
|
490
|
+
*
|
|
491
|
+
* Callers should also expand merged L1s (not just the unmerged frontier)
|
|
492
|
+
* as defense in depth — a stale `mergedInto` pointer or a partially
|
|
493
|
+
* applied merge shouldn't surface raw messages.
|
|
494
|
+
*
|
|
495
|
+
* `visited` guards against pathological cycles in the summary graph (a
|
|
496
|
+
* corrupted store or a future merge regression that lets a summary
|
|
497
|
+
* reference itself). The hierarchy is a DAG by construction, but a
|
|
498
|
+
* stack overflow during compression — exactly when the safety net is
|
|
499
|
+
* supposed to save the session — is too steep a price for trusting that.
|
|
500
|
+
*/
|
|
501
|
+
protected expandSummaryToLeafMessageIds(summary: SummaryEntry, summariesById: ReadonlyMap<string, SummaryEntry>, out: Set<MessageId>, visited?: Set<string>): void;
|
|
477
502
|
/**
|
|
478
503
|
* Select context entries using hierarchical compression with budget carryover.
|
|
479
504
|
* Matches moltbot's budget waterfall: L3 → L2 → L1 with unused budget flowing down.
|
|
@@ -589,6 +614,14 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
589
614
|
* Rebuild chunk boundaries based on current messages.
|
|
590
615
|
*/
|
|
591
616
|
protected rebuildChunks(store: MessageStoreView): void;
|
|
617
|
+
/**
|
|
618
|
+
* Returns true if the last message in the chunk-in-progress contains a
|
|
619
|
+
* `tool_use` block. Used by `rebuildChunks` to defer chunk closure until
|
|
620
|
+
* the matching `tool_result` (in the immediately-following user message)
|
|
621
|
+
* is pulled into the same chunk. See `stripUnpairedToolBlocks` for the
|
|
622
|
+
* runtime safety net.
|
|
623
|
+
*/
|
|
624
|
+
protected lastMessageContainsToolUse(chunk: StoredMessage[]): boolean;
|
|
592
625
|
protected createChunk(index: number, startIndex: number, endIndex: number, messages: StoredMessage[], tokens: number, existingCompressed: Map<string, Chunk>): Chunk;
|
|
593
626
|
protected chunkKey(chunk: Chunk): string;
|
|
594
627
|
protected getRecentWindowStart(store: MessageStoreView): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autobiographical.d.ts","sourceRoot":"","sources":["../../../src/strategies/autobiographical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAA+B,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAEV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,MAAM,EAAqC,MAAM,uBAAuB,CAAC;AAGlF,OAAO,KAAK,EAGV,MAAM,EAGP,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA0K/D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;qFACiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB;qFACiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,aAAa,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAsB;IAE3C,IAAI,gBAAgB,IAAI,MAAM,CAAyC;IAEvE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACzC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAM;IAC/B,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAC1C,SAAS,CAAC,iBAAiB,SAAK;IAGhC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,CAAM;IACzC,SAAS,CAAC,gBAAgB,SAAK;IAC/B,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAM;IAC/E,SAAS,CAAC,eAAe,kBAAyB;IAElD,iFAAiF;IACjF,SAAS,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClD,+EAA+E;IAC/E,OAAO,CAAC,qBAAqB,CAAwE;IAErG,mEAAmE;IACnE,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAQ;IACvC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,EAAE,MAAM,CAAM;IAC1B,SAAS,KAAK,gBAAgB,IAAI,MAAM,CAA2C;IACnF,SAAS,KAAK,cAAc,IAAI,MAAM,CAAyC;IAC/E,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAA4C;IACrF,SAAS,KAAK,WAAW,IAAI,MAAM,CAAsC;IACzE,SAAS,KAAK,kBAAkB,IAAI,MAAM,CAA6C;IACvF,SAAS,KAAK,YAAY,IAAI,MAAM,CAAuC;IAE3E,gFAAgF;IAChF,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAM;IACtC,4FAA4F;IAC5F,SAAS,CAAC,YAAY,SAAK;IAE3B;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAa;IAE1D;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAa;IAE7C,+DAA+D;IAC/D,OAAO,CAAC,eAAe,CAAuB;gBAElC,MAAM,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAmBxD;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAM9B;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAMhC;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,kBAAkB,GAAG,IAAI;IA+CtF,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IA8ChC;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAmDpC,+DAA+D;IAC/D,SAAS,CAAC,WAAW,IAAI,IAAI;IAO7B;oCACgC;IAChC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IASpC,8CAA8C;IAC9C,SAAS,CAAC,YAAY,IAAI,IAAI;IAS9B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAczF;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAcjE,oEAAoE;IACpE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAU7B,0CAA0C;IAC1C,QAAQ,IAAI,aAAa,CAAC,cAAc,CAAC;IAQzC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI3C;;;;;;;;;OASG;IACH,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,EAAE;IAkDnD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;IAIhF;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAkBjE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKhD;;;OAGG;IACH;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,cAAc,CACtB,sBAAsB,EAAE,YAAY,EAAE,EACtC,SAAS,EAAE,MAAM,GAChB;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAc/C,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAYxE;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAMxC;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAKjF;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;IAMlF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAezD;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA8B9E;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,SAAS,GACnB,IAAI;IAiDP,cAAc,IAAI,cAAc;IA2B1B,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/E;;;;;;;;;OASG;IACH,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA0B3D;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,OAAO;IAOvC;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAItC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD/C;;;;;OAKG;IACH,mBAAmB,IAAI,gCAAgC;IAmBvD,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,WAAW,GAClB,YAAY,EAAE;IAWjB;;OAEG;IACH,QAAQ,IAAI;QACV,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QACxE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;KAC3D;IAYD;;;;;;;;OAQG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG;QACvC,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,SAAS,EAAE;YACT,EAAE,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YACtC,EAAE,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YACtC,EAAE,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;SACvC,CAAC;QACF,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7C;IAoCD,SAAS,CAAC,YAAY,CACpB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,WAAW,GAClB,YAAY,EAAE;IAoHjB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,qBAAqB,CAC7B,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,GACxB,IAAI;cAsCS,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CtF,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,KAAK,CAAC;QAC3E,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB,CAAC;IA+CF;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG;QACpE,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB;IA2BD;;;OAGG;cACa,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0P5F;;;;;;;;OAQG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IA0CrC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAmC9C;;;OAGG;cACa,YAAY,CAC1B,WAAW,EAAE,YAAY,EACzB,SAAS,EAAE,MAAM,EAAE,EACnB,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,IAAI,CAAC;IA0VhB;;;;;;;;;OASG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE;IA2atF;;;;;;;;OAQG;IACH,SAAS,CAAC,yBAAyB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,gBAAgB,GACtB,YAAY,EAAE;IAsEjB,gEAAgE;IAChE,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAUrC;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CACtB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,EAChD,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,GAChD,YAAY,GAAG,IAAI;IAoBtB;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE;IA+Q1F;;;;;;;;OAQG;IACH,SAAS,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAI/E;;;;;;;;;OASG;IACH,SAAS,CAAC,0BAA0B,CAClC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM;IAIT;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,gBAAgB,CACxB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,eAAe,GACnB;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA+BtD;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAC3B,WAAW,EAAE,YAAY,EACzB,OAAO,EAAE,YAAY,EAAE,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM;IAKT;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAClC,WAAW,EAAE,YAAY,EACzB,OAAO,EAAE,YAAY,EAAE,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM;IAKT;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CACzB,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB;QAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAYnD;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKpE;;;;;OAKG;IACH,SAAS,CAAC,4BAA4B,CACpC,SAAS,EAAE,YAAY,EAAE,EACzB,QAAQ,EAAE,aAAa,EAAE,GACxB,YAAY,EAAE;IAajB;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAa1D;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKhD;;;OAGG;IACG,yBAAyB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DtE;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAOnE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM;IAWtD;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,EAAE;IAe3E;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IA0EtD,SAAS,CAAC,WAAW,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GACrC,KAAK;IAgCR,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAIxC,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAoB/D;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAelE;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAuB3D,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIrD,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIxD;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAwEzD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIjD,SAAS,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAuBzD;;;OAGG;IACH,SAAS,CAAC,2BAA2B,CACnC,QAAQ,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,GAChE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAqB1D,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM;IAkB5D,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM;IAUzD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;CAuDtF"}
|
|
1
|
+
{"version":3,"file":"autobiographical.d.ts","sourceRoot":"","sources":["../../../src/strategies/autobiographical.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NativeFormatter } from '@animalabs/membrane';
|
|
2
2
|
import { DEFAULT_AUTOBIOGRAPHICAL_CONFIG } from '../types/index.js';
|
|
3
3
|
import { getSummaryParentId } from '../types/strategy.js';
|
|
4
|
-
import { splitMixedToolMessages } from '../normalize-tool-messages.js';
|
|
4
|
+
import { splitMixedToolMessages, stripUnpairedToolBlocks } from '../normalize-tool-messages.js';
|
|
5
5
|
import { appendFileSync, mkdirSync } from 'node:fs';
|
|
6
6
|
import { dirname } from 'node:path';
|
|
7
7
|
import { Picker, OverBudgetError } from '../adaptive/picker.js';
|
|
@@ -1410,10 +1410,20 @@ export class AutobiographicalStrategy {
|
|
|
1410
1410
|
// raw messages reappear.
|
|
1411
1411
|
const chunkFirstId = chunk.messages[0]?.id;
|
|
1412
1412
|
if (chunkFirstId) {
|
|
1413
|
+
// Expand summary sourceIds down to leaf message IDs. An L2 in
|
|
1414
|
+
// `priorSummaries` has L1 IDs in its sourceIds, not message IDs;
|
|
1415
|
+
// a flat walk would miss every message it transitively covers.
|
|
1416
|
+
// (Bug 10 — same shape as executeMerge.)
|
|
1417
|
+
const summariesById = new Map();
|
|
1418
|
+
for (const s of this.summaries)
|
|
1419
|
+
summariesById.set(s.id, s);
|
|
1413
1420
|
const priorSummaryMessageIds = new Set();
|
|
1421
|
+
for (const s of this.summaries) {
|
|
1422
|
+
if (s.level === 1)
|
|
1423
|
+
this.expandSummaryToLeafMessageIds(s, summariesById, priorSummaryMessageIds);
|
|
1424
|
+
}
|
|
1414
1425
|
for (const s of priorSummaries) {
|
|
1415
|
-
|
|
1416
|
-
priorSummaryMessageIds.add(id);
|
|
1426
|
+
this.expandSummaryToLeafMessageIds(s, summariesById, priorSummaryMessageIds);
|
|
1417
1427
|
}
|
|
1418
1428
|
const chunkStartIdx = allMessages.findIndex((m) => m.id === chunkFirstId);
|
|
1419
1429
|
for (let i = headEndIdx; i < chunkStartIdx && i < allMessages.length; i++) {
|
|
@@ -1457,6 +1467,11 @@ export class AutobiographicalStrategy {
|
|
|
1457
1467
|
const split = splitMixedToolMessages(llmMessages);
|
|
1458
1468
|
// Collapse consecutive same-participant messages for API compliance
|
|
1459
1469
|
const collapsed = this.collapseConsecutiveMessages(split);
|
|
1470
|
+
// Defense in depth against chunk boundaries that cut a tool cycle
|
|
1471
|
+
// (rebuildChunks tries to avoid this, but covers only the most common
|
|
1472
|
+
// case). The API rejects any tool_use that isn't immediately followed
|
|
1473
|
+
// by its tool_result, and any tool_result that doesn't follow a use.
|
|
1474
|
+
const cleaned = stripUnpairedToolBlocks(collapsed);
|
|
1460
1475
|
// NO system prompt. The agent's identity is established by the head
|
|
1461
1476
|
// (the actual conversation opening — user message + agent reply that
|
|
1462
1477
|
// grounded the original instance). A system prompt would (a) add a
|
|
@@ -1466,7 +1481,7 @@ export class AutobiographicalStrategy {
|
|
|
1466
1481
|
// structural one carried by the conversation itself. Anchoring
|
|
1467
1482
|
// identity by the chronicle's actual head is more honest.
|
|
1468
1483
|
const request = {
|
|
1469
|
-
messages:
|
|
1484
|
+
messages: cleaned.map(m => ({ participant: m.participant, content: m.content })),
|
|
1470
1485
|
config: {
|
|
1471
1486
|
model: this.config.compressionModel ?? 'claude-sonnet-4-20250514',
|
|
1472
1487
|
maxTokens: Math.round(targetTokens * 1.5),
|
|
@@ -1514,7 +1529,7 @@ export class AutobiographicalStrategy {
|
|
|
1514
1529
|
logCompressionCall({
|
|
1515
1530
|
operation: 'compress_l1',
|
|
1516
1531
|
system: null,
|
|
1517
|
-
messages:
|
|
1532
|
+
messages: cleaned.map((m) => ({
|
|
1518
1533
|
participant: m.participant,
|
|
1519
1534
|
// Flatten content for logging — store text only; binary content
|
|
1520
1535
|
// would bloat the log and isn't typical in compression input.
|
|
@@ -1767,10 +1782,20 @@ export class AutobiographicalStrategy {
|
|
|
1767
1782
|
// The full unmerged-frontier set covers what's "compressed somewhere"
|
|
1768
1783
|
// for the raw-middle dedup below — a budget-dropped recall pair
|
|
1769
1784
|
// doesn't make its underlying raw messages reappear.
|
|
1785
|
+
//
|
|
1786
|
+
// Critical: `sourceIds` on an L2+ summary points at L1 IDs, not raw
|
|
1787
|
+
// message IDs. The dedup happens against raw message IDs, so we must
|
|
1788
|
+
// recursively expand each summary down to its leaf message IDs.
|
|
1789
|
+
// Without this, every message under any L2 leaks back in as raw text
|
|
1790
|
+
// (Bug 10: 525-message merge requests on a 4234-msg conversation).
|
|
1791
|
+
// Also expand merged L1s as defense in depth.
|
|
1770
1792
|
const priorSummaryMessageIds = new Set();
|
|
1793
|
+
for (const s of this.summaries) {
|
|
1794
|
+
if (s.level === 1)
|
|
1795
|
+
this.expandSummaryToLeafMessageIds(s, summariesById, priorSummaryMessageIds);
|
|
1796
|
+
}
|
|
1771
1797
|
for (const s of priorSummariesAll) {
|
|
1772
|
-
|
|
1773
|
-
priorSummaryMessageIds.add(id);
|
|
1798
|
+
this.expandSummaryToLeafMessageIds(s, summariesById, priorSummaryMessageIds);
|
|
1774
1799
|
}
|
|
1775
1800
|
for (const s of keptPriorSummaries) {
|
|
1776
1801
|
llmMessages.push({
|
|
@@ -1871,11 +1896,12 @@ export class AutobiographicalStrategy {
|
|
|
1871
1896
|
// Same bundled-tool-cycle defense as compressChunkHierarchical.
|
|
1872
1897
|
const split = splitMixedToolMessages(llmMessages);
|
|
1873
1898
|
const collapsed = this.collapseConsecutiveMessages(split);
|
|
1899
|
+
const cleaned = stripUnpairedToolBlocks(collapsed);
|
|
1874
1900
|
// NO system prompt — identity is established by the head window
|
|
1875
1901
|
// (present at the start of llmMessages above) and by the prior
|
|
1876
1902
|
// recall pairs. Same rationale as compressChunkHierarchical.
|
|
1877
1903
|
const request = {
|
|
1878
|
-
messages:
|
|
1904
|
+
messages: cleaned.map(m => ({ participant: m.participant, content: m.content })),
|
|
1879
1905
|
config: {
|
|
1880
1906
|
model: this.config.compressionModel ?? 'claude-sonnet-4-20250514',
|
|
1881
1907
|
maxTokens: Math.round(targetTokens * 1.5),
|
|
@@ -1930,7 +1956,7 @@ export class AutobiographicalStrategy {
|
|
|
1930
1956
|
logCompressionCall({
|
|
1931
1957
|
operation: `merge_l${targetLevel}`,
|
|
1932
1958
|
system: null,
|
|
1933
|
-
messages:
|
|
1959
|
+
messages: cleaned.map((m) => ({
|
|
1934
1960
|
participant: m.participant,
|
|
1935
1961
|
text: m.content
|
|
1936
1962
|
.filter((b) => b.type === 'text')
|
|
@@ -2483,6 +2509,45 @@ export class AutobiographicalStrategy {
|
|
|
2483
2509
|
return null;
|
|
2484
2510
|
return current;
|
|
2485
2511
|
}
|
|
2512
|
+
/**
|
|
2513
|
+
* Recursively expand a summary's `sourceIds` down to the leaf message IDs
|
|
2514
|
+
* it covers, adding each leaf into `out`.
|
|
2515
|
+
*
|
|
2516
|
+
* Required because `SummaryEntry.sourceIds` are level-relative: an L1's
|
|
2517
|
+
* sourceIds are raw message IDs (sourceLevel=0), but an L2's sourceIds
|
|
2518
|
+
* are L1 IDs (sourceLevel=1), and so on. Any dedup that walks `sourceIds`
|
|
2519
|
+
* directly only works for L1s — once L2+ summaries enter the picture
|
|
2520
|
+
* (which happens as soon as `mergeThreshold` L1s accumulate during
|
|
2521
|
+
* interleaved compression+merge ticks), the dedup silently fails and
|
|
2522
|
+
* already-summarized messages leak back into the request as raw text.
|
|
2523
|
+
* That's how Bug 10 produced 200k+ token merge prompts on a 4234-msg
|
|
2524
|
+
* import.
|
|
2525
|
+
*
|
|
2526
|
+
* Callers should also expand merged L1s (not just the unmerged frontier)
|
|
2527
|
+
* as defense in depth — a stale `mergedInto` pointer or a partially
|
|
2528
|
+
* applied merge shouldn't surface raw messages.
|
|
2529
|
+
*
|
|
2530
|
+
* `visited` guards against pathological cycles in the summary graph (a
|
|
2531
|
+
* corrupted store or a future merge regression that lets a summary
|
|
2532
|
+
* reference itself). The hierarchy is a DAG by construction, but a
|
|
2533
|
+
* stack overflow during compression — exactly when the safety net is
|
|
2534
|
+
* supposed to save the session — is too steep a price for trusting that.
|
|
2535
|
+
*/
|
|
2536
|
+
expandSummaryToLeafMessageIds(summary, summariesById, out, visited = new Set()) {
|
|
2537
|
+
if (visited.has(summary.id))
|
|
2538
|
+
return;
|
|
2539
|
+
visited.add(summary.id);
|
|
2540
|
+
if (summary.sourceLevel === 0) {
|
|
2541
|
+
for (const id of summary.sourceIds)
|
|
2542
|
+
out.add(id);
|
|
2543
|
+
return;
|
|
2544
|
+
}
|
|
2545
|
+
for (const childId of summary.sourceIds) {
|
|
2546
|
+
const child = summariesById.get(childId);
|
|
2547
|
+
if (child)
|
|
2548
|
+
this.expandSummaryToLeafMessageIds(child, summariesById, out, visited);
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2486
2551
|
// ============================================================================
|
|
2487
2552
|
// Hierarchical (threshold-driven) path
|
|
2488
2553
|
// ============================================================================
|
|
@@ -3036,6 +3101,16 @@ export class AutobiographicalStrategy {
|
|
|
3036
3101
|
currentTokens += msgTokens;
|
|
3037
3102
|
const shouldClose = currentTokens >= this.config.targetChunkTokens &&
|
|
3038
3103
|
currentChunk.length >= 4;
|
|
3104
|
+
// Don't close a chunk on a message containing a tool_use block —
|
|
3105
|
+
// the matching tool_result lives in the immediately-following user
|
|
3106
|
+
// message, and the Anthropic API rejects a request where a tool_use
|
|
3107
|
+
// isn't immediately followed by its tool_result. Defer the close
|
|
3108
|
+
// by one iteration so the result rides along in the same chunk.
|
|
3109
|
+
// The stripUnpairedToolBlocks runtime pass is a safety net for the
|
|
3110
|
+
// rare case where a tool_use is the very last message in the store.
|
|
3111
|
+
if (shouldClose && this.lastMessageContainsToolUse(currentChunk)) {
|
|
3112
|
+
continue;
|
|
3113
|
+
}
|
|
3039
3114
|
if (shouldClose) {
|
|
3040
3115
|
const chunk = this.createChunk(this.chunks.length, chunkFilteredStart, i + 1, currentChunk, currentTokens, existingCompressed);
|
|
3041
3116
|
this.chunks.push(chunk);
|
|
@@ -3055,6 +3130,19 @@ export class AutobiographicalStrategy {
|
|
|
3055
3130
|
}
|
|
3056
3131
|
}
|
|
3057
3132
|
}
|
|
3133
|
+
/**
|
|
3134
|
+
* Returns true if the last message in the chunk-in-progress contains a
|
|
3135
|
+
* `tool_use` block. Used by `rebuildChunks` to defer chunk closure until
|
|
3136
|
+
* the matching `tool_result` (in the immediately-following user message)
|
|
3137
|
+
* is pulled into the same chunk. See `stripUnpairedToolBlocks` for the
|
|
3138
|
+
* runtime safety net.
|
|
3139
|
+
*/
|
|
3140
|
+
lastMessageContainsToolUse(chunk) {
|
|
3141
|
+
const last = chunk[chunk.length - 1];
|
|
3142
|
+
if (!last)
|
|
3143
|
+
return false;
|
|
3144
|
+
return last.content.some((b) => b.type === 'tool_use');
|
|
3145
|
+
}
|
|
3058
3146
|
createChunk(index, startIndex, endIndex, messages, tokens, existingCompressed) {
|
|
3059
3147
|
const chunk = {
|
|
3060
3148
|
index,
|