@animalabs/context-manager 0.2.0 → 0.4.0
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/context-manager.d.ts +69 -2
- package/dist/src/context-manager.d.ts.map +1 -1
- package/dist/src/context-manager.js +128 -10
- package/dist/src/context-manager.js.map +1 -1
- package/dist/src/strategies/autobiographical.d.ts +217 -3
- package/dist/src/strategies/autobiographical.d.ts.map +1 -1
- package/dist/src/strategies/autobiographical.js +813 -77
- package/dist/src/strategies/autobiographical.js.map +1 -1
- package/dist/src/types/index.d.ts +2 -2
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/strategy.d.ts +208 -0
- package/dist/src/types/strategy.d.ts.map +1 -1
- package/dist/src/types/strategy.js +21 -0
- package/dist/src/types/strategy.js.map +1 -1
- package/dist/test/non-blocking-compile.test.d.ts +22 -0
- package/dist/test/non-blocking-compile.test.d.ts.map +1 -0
- package/dist/test/non-blocking-compile.test.js +114 -0
- package/dist/test/non-blocking-compile.test.js.map +1 -0
- package/dist/test/pins.test.d.ts +10 -0
- package/dist/test/pins.test.d.ts.map +1 -0
- package/dist/test/pins.test.js +164 -0
- package/dist/test/pins.test.js.map +1 -0
- package/dist/test/recall-positioning.test.d.ts +16 -0
- package/dist/test/recall-positioning.test.d.ts.map +1 -0
- package/dist/test/recall-positioning.test.js +181 -0
- package/dist/test/recall-positioning.test.js.map +1 -0
- package/dist/test/recent-window-eviction.test.d.ts +19 -0
- package/dist/test/recent-window-eviction.test.d.ts.map +1 -0
- package/dist/test/recent-window-eviction.test.js +206 -0
- package/dist/test/recent-window-eviction.test.js.map +1 -0
- package/dist/test/search.test.d.ts +10 -0
- package/dist/test/search.test.d.ts.map +1 -0
- package/dist/test/search.test.js +141 -0
- package/dist/test/search.test.js.map +1 -0
- package/dist/test/speculation-cap.test.d.ts +17 -0
- package/dist/test/speculation-cap.test.d.ts.map +1 -0
- package/dist/test/speculation-cap.test.js +157 -0
- package/dist/test/speculation-cap.test.js.map +1 -0
- package/dist/test/strategy-persistence.test.d.ts +15 -0
- package/dist/test/strategy-persistence.test.d.ts.map +1 -0
- package/dist/test/strategy-persistence.test.js +244 -0
- package/dist/test/strategy-persistence.test.js.map +1 -0
- package/dist/test/tool-pruning.test.d.ts +10 -0
- package/dist/test/tool-pruning.test.d.ts.map +1 -0
- package/dist/test/tool-pruning.test.js +140 -0
- package/dist/test/tool-pruning.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/context-manager.ts +142 -10
- package/src/strategies/autobiographical.ts +872 -81
- package/src/types/index.ts +14 -1
- package/src/types/strategy.ts +223 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JsStore } from '@animalabs/chronicle';
|
|
2
2
|
import type { Membrane, ContentBlock } from '@animalabs/membrane';
|
|
3
|
-
import type { MessageId, Sequence, MessageMetadata, StoredMessage, TokenBudget, PendingWork, BranchInfo, ContextStrategy, MessageQuery, MessageQueryResult, ContextInjection, CompileResult } from './types/index.js';
|
|
3
|
+
import type { MessageId, Sequence, MessageMetadata, StoredMessage, TokenBudget, PendingWork, BranchInfo, ContextStrategy, MessageQuery, MessageQueryResult, ContextInjection, CompileResult, ProtectedRange, SearchQuery, SearchResult, SummaryEntry } from './types/index.js';
|
|
4
|
+
import type { RenderStats } from './types/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Base configuration for ContextManager.
|
|
6
7
|
*/
|
|
@@ -69,6 +70,8 @@ export declare class ContextManager {
|
|
|
69
70
|
/** Whether we own the store (created it) vs app owns it (passed in) */
|
|
70
71
|
private ownsStore;
|
|
71
72
|
private debugLogContext;
|
|
73
|
+
/** Namespace passed to strategies for scoping their persistent state slots. */
|
|
74
|
+
private strategyNamespace;
|
|
72
75
|
private constructor();
|
|
73
76
|
/**
|
|
74
77
|
* Open or create a context manager.
|
|
@@ -140,12 +143,36 @@ export declare class ContextManager {
|
|
|
140
143
|
/**
|
|
141
144
|
* Create a branch from a specific message.
|
|
142
145
|
* The new branch will have state as of that message's sequence (time-travel branching).
|
|
146
|
+
*
|
|
147
|
+
* Returns the new branch *name*, which is what `switchBranch` and `forkAt`
|
|
148
|
+
* expect. (Chronicle's branch APIs are name-keyed; the numeric `id` field
|
|
149
|
+
* on JsBranch is an internal identifier and isn't accepted by switchBranch.)
|
|
143
150
|
*/
|
|
144
151
|
branchAt(messageId: MessageId, name?: string): string;
|
|
145
152
|
/**
|
|
146
153
|
* Switch to a different branch.
|
|
154
|
+
*
|
|
155
|
+
* Re-initializes the strategy after switching so any branch-scoped state
|
|
156
|
+
* stored on Chronicle is reloaded. Strategies that hold derived in-memory
|
|
157
|
+
* caches (e.g. AutobiographicalStrategy.summaries) need this to avoid
|
|
158
|
+
* showing the previous branch's state on the new branch.
|
|
147
159
|
*/
|
|
148
|
-
switchBranch(branchId: string): void
|
|
160
|
+
switchBranch(branchId: string): Promise<void>;
|
|
161
|
+
/**
|
|
162
|
+
* Fork from the current head: create a new branch at the current sequence
|
|
163
|
+
* and switch to it. The new branch starts with all current state (messages,
|
|
164
|
+
* context log, and strategy state) and diverges from there.
|
|
165
|
+
*
|
|
166
|
+
* Use this when an agent wants to explore an alternate timeline from
|
|
167
|
+
* "now" — e.g. trying a different response without committing.
|
|
168
|
+
*
|
|
169
|
+
* For time-travel branching at a specific historical message, use
|
|
170
|
+
* `branchAt(messageId, name?)` instead, then `switchBranch(name)`.
|
|
171
|
+
*
|
|
172
|
+
* Returns the new branch's name. The strategy is re-initialized on the
|
|
173
|
+
* new branch so it picks up the forked state.
|
|
174
|
+
*/
|
|
175
|
+
fork(name?: string): Promise<string>;
|
|
149
176
|
/**
|
|
150
177
|
* Get current branch.
|
|
151
178
|
*/
|
|
@@ -187,6 +214,46 @@ export declare class ContextManager {
|
|
|
187
214
|
* Get the current strategy.
|
|
188
215
|
*/
|
|
189
216
|
getStrategy(): ContextStrategy;
|
|
217
|
+
/**
|
|
218
|
+
* Pin a range of messages so they aren't compressed and render raw at
|
|
219
|
+
* their original chronological position. Returns the new pin id.
|
|
220
|
+
*
|
|
221
|
+
* Throws if the active strategy doesn't support pins.
|
|
222
|
+
*/
|
|
223
|
+
pinRange(firstMessageId: MessageId, lastMessageId: MessageId, opts?: {
|
|
224
|
+
name?: string;
|
|
225
|
+
}): string;
|
|
226
|
+
/**
|
|
227
|
+
* Mark a single message as a "document" (semantically a body of
|
|
228
|
+
* information to retain in full). Same effect as a single-message pin
|
|
229
|
+
* with `kind: 'document'`. Returns the new pin id.
|
|
230
|
+
*/
|
|
231
|
+
markDocument(messageId: MessageId, opts?: {
|
|
232
|
+
name?: string;
|
|
233
|
+
}): string;
|
|
234
|
+
/** Remove a pin or document mark. Returns true if removed. */
|
|
235
|
+
unpin(pinId: string): boolean;
|
|
236
|
+
/** List all current pins. Returns empty array if strategy is not pinnable. */
|
|
237
|
+
listPins(): ReadonlyArray<ProtectedRange>;
|
|
238
|
+
/**
|
|
239
|
+
* Search the strategy's summary archive (substring or regex over content).
|
|
240
|
+
* Returns empty array if the strategy doesn't support search.
|
|
241
|
+
*
|
|
242
|
+
* Suitable for building memory-search agent tools at the framework layer
|
|
243
|
+
* — see e.g. agent-framework's MCPL host integration.
|
|
244
|
+
*/
|
|
245
|
+
searchSummaries(query: SearchQuery): SearchResult[];
|
|
246
|
+
/** Look up a single summary by id. Returns null if not found / unsupported. */
|
|
247
|
+
getSummary(id: string): SummaryEntry | null;
|
|
248
|
+
/**
|
|
249
|
+
* Per-render stats from the active strategy: head/tail message + token
|
|
250
|
+
* counts, plus per-level summary counts and total tokens. Returns null
|
|
251
|
+
* if the strategy doesn't implement `getRenderStats`.
|
|
252
|
+
*
|
|
253
|
+
* Designed for TUIs / dashboards that want to display "how much of the
|
|
254
|
+
* agent's context is folded vs raw" at a glance.
|
|
255
|
+
*/
|
|
256
|
+
getRenderStats(): RenderStats | null;
|
|
190
257
|
/**
|
|
191
258
|
* Reset the head window to start from a new position.
|
|
192
259
|
* Old head window messages become compressible.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/context-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAqB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EAEb,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,EAEf,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/context-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsStore } from '@animalabs/chronicle';
|
|
2
|
-
import { isResettableStrategy } from './types/index.js';
|
|
2
|
+
import { isResettableStrategy, isPinnableStrategy, isSearchableStrategy, isRenderStatsCapable } from './types/index.js';
|
|
3
3
|
import { MessageStore } from './message-store.js';
|
|
4
4
|
import { ContextLog } from './context-log.js';
|
|
5
5
|
import { PassthroughStrategy } from './strategies/passthrough.js';
|
|
@@ -19,12 +19,15 @@ export class ContextManager {
|
|
|
19
19
|
/** Whether we own the store (created it) vs app owns it (passed in) */
|
|
20
20
|
ownsStore;
|
|
21
21
|
debugLogContext;
|
|
22
|
-
|
|
22
|
+
/** Namespace passed to strategies for scoping their persistent state slots. */
|
|
23
|
+
strategyNamespace;
|
|
24
|
+
constructor(store, messageStore, contextLog, strategy, ownsStore, strategyNamespace, membrane, debugLogContext = false) {
|
|
23
25
|
this.store = store;
|
|
24
26
|
this.messageStore = messageStore;
|
|
25
27
|
this.contextLog = contextLog;
|
|
26
28
|
this.strategy = strategy;
|
|
27
29
|
this.ownsStore = ownsStore;
|
|
30
|
+
this.strategyNamespace = strategyNamespace;
|
|
28
31
|
this.membrane = membrane;
|
|
29
32
|
this.debugLogContext = debugLogContext;
|
|
30
33
|
// Set up edit propagation
|
|
@@ -86,7 +89,11 @@ export class ContextManager {
|
|
|
86
89
|
namespace: config.namespace,
|
|
87
90
|
});
|
|
88
91
|
const strategy = config.strategy ?? new PassthroughStrategy();
|
|
89
|
-
|
|
92
|
+
// Namespace passed to strategies. Falls back to a stable per-store value
|
|
93
|
+
// so strategies always have something to scope state IDs by, even when
|
|
94
|
+
// the caller didn't supply a namespace.
|
|
95
|
+
const strategyNamespace = config.namespace ?? 'default';
|
|
96
|
+
const manager = new ContextManager(store, messageStore, contextLog, strategy, ownsStore, strategyNamespace, config.membrane, config.debugLogContext ?? false);
|
|
90
97
|
// Initialize strategy
|
|
91
98
|
await manager.initializeStrategy();
|
|
92
99
|
manager.initialized = true;
|
|
@@ -180,6 +187,10 @@ export class ContextManager {
|
|
|
180
187
|
/**
|
|
181
188
|
* Create a branch from a specific message.
|
|
182
189
|
* The new branch will have state as of that message's sequence (time-travel branching).
|
|
190
|
+
*
|
|
191
|
+
* Returns the new branch *name*, which is what `switchBranch` and `forkAt`
|
|
192
|
+
* expect. (Chronicle's branch APIs are name-keyed; the numeric `id` field
|
|
193
|
+
* on JsBranch is an internal identifier and isn't accepted by switchBranch.)
|
|
183
194
|
*/
|
|
184
195
|
branchAt(messageId, name) {
|
|
185
196
|
const message = this.messageStore.get(messageId);
|
|
@@ -192,13 +203,41 @@ export class ContextManager {
|
|
|
192
203
|
const currentBranch = this.store.currentBranch();
|
|
193
204
|
// Use createBranchAt to branch at the message's sequence (time-travel)
|
|
194
205
|
const branch = this.store.createBranchAt(branchName, currentBranch.name, message.sequence);
|
|
195
|
-
return branch.
|
|
206
|
+
return branch.name;
|
|
196
207
|
}
|
|
197
208
|
/**
|
|
198
209
|
* Switch to a different branch.
|
|
210
|
+
*
|
|
211
|
+
* Re-initializes the strategy after switching so any branch-scoped state
|
|
212
|
+
* stored on Chronicle is reloaded. Strategies that hold derived in-memory
|
|
213
|
+
* caches (e.g. AutobiographicalStrategy.summaries) need this to avoid
|
|
214
|
+
* showing the previous branch's state on the new branch.
|
|
199
215
|
*/
|
|
200
|
-
switchBranch(branchId) {
|
|
216
|
+
async switchBranch(branchId) {
|
|
201
217
|
this.store.switchBranch(branchId);
|
|
218
|
+
await this.initializeStrategy();
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Fork from the current head: create a new branch at the current sequence
|
|
222
|
+
* and switch to it. The new branch starts with all current state (messages,
|
|
223
|
+
* context log, and strategy state) and diverges from there.
|
|
224
|
+
*
|
|
225
|
+
* Use this when an agent wants to explore an alternate timeline from
|
|
226
|
+
* "now" — e.g. trying a different response without committing.
|
|
227
|
+
*
|
|
228
|
+
* For time-travel branching at a specific historical message, use
|
|
229
|
+
* `branchAt(messageId, name?)` instead, then `switchBranch(name)`.
|
|
230
|
+
*
|
|
231
|
+
* Returns the new branch's name. The strategy is re-initialized on the
|
|
232
|
+
* new branch so it picks up the forked state.
|
|
233
|
+
*/
|
|
234
|
+
async fork(name) {
|
|
235
|
+
const branchName = name ?? `fork-${Date.now()}`;
|
|
236
|
+
const currentBranch = this.store.currentBranch();
|
|
237
|
+
const currentSeq = this.store.currentSequence();
|
|
238
|
+
const branch = this.store.createBranchAt(branchName, currentBranch.name, currentSeq);
|
|
239
|
+
await this.switchBranch(branch.name);
|
|
240
|
+
return branch.name;
|
|
202
241
|
}
|
|
203
242
|
/**
|
|
204
243
|
* Get current branch.
|
|
@@ -261,11 +300,15 @@ export class ContextManager {
|
|
|
261
300
|
* May block if strategy has pending work.
|
|
262
301
|
*/
|
|
263
302
|
async compile(budget, injections) {
|
|
264
|
-
//
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
303
|
+
// Don't block the agent's turn on speculative compression — let it
|
|
304
|
+
// run in the background. The strategy renders whatever's available
|
|
305
|
+
// now; the next compile picks up the freshly-formed L1.
|
|
306
|
+
//
|
|
307
|
+
// Old behavior (await pendingWork to fold the latest chunk before
|
|
308
|
+
// the agent responds) added 30+ seconds of latency per turn whenever
|
|
309
|
+
// a chunk was forming, which is unacceptable UX for an agent that
|
|
310
|
+
// streams its responses. We accept "this turn doesn't have the very
|
|
311
|
+
// latest L1" in exchange for non-blocking compile.
|
|
269
312
|
// Default budget
|
|
270
313
|
const effectiveBudget = budget ?? {
|
|
271
314
|
maxTokens: 100000,
|
|
@@ -379,6 +422,79 @@ export class ContextManager {
|
|
|
379
422
|
getStrategy() {
|
|
380
423
|
return this.strategy;
|
|
381
424
|
}
|
|
425
|
+
// ==========================================================================
|
|
426
|
+
// Pins / documents (passthrough to the active strategy)
|
|
427
|
+
// ==========================================================================
|
|
428
|
+
/**
|
|
429
|
+
* Pin a range of messages so they aren't compressed and render raw at
|
|
430
|
+
* their original chronological position. Returns the new pin id.
|
|
431
|
+
*
|
|
432
|
+
* Throws if the active strategy doesn't support pins.
|
|
433
|
+
*/
|
|
434
|
+
pinRange(firstMessageId, lastMessageId, opts) {
|
|
435
|
+
if (!isPinnableStrategy(this.strategy)) {
|
|
436
|
+
throw new Error('Active strategy does not support pins');
|
|
437
|
+
}
|
|
438
|
+
return this.strategy.pinRange(firstMessageId, lastMessageId, opts);
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Mark a single message as a "document" (semantically a body of
|
|
442
|
+
* information to retain in full). Same effect as a single-message pin
|
|
443
|
+
* with `kind: 'document'`. Returns the new pin id.
|
|
444
|
+
*/
|
|
445
|
+
markDocument(messageId, opts) {
|
|
446
|
+
if (!isPinnableStrategy(this.strategy)) {
|
|
447
|
+
throw new Error('Active strategy does not support documents');
|
|
448
|
+
}
|
|
449
|
+
return this.strategy.markDocument(messageId, opts);
|
|
450
|
+
}
|
|
451
|
+
/** Remove a pin or document mark. Returns true if removed. */
|
|
452
|
+
unpin(pinId) {
|
|
453
|
+
if (!isPinnableStrategy(this.strategy)) {
|
|
454
|
+
throw new Error('Active strategy does not support pins');
|
|
455
|
+
}
|
|
456
|
+
return this.strategy.unpin(pinId);
|
|
457
|
+
}
|
|
458
|
+
/** List all current pins. Returns empty array if strategy is not pinnable. */
|
|
459
|
+
listPins() {
|
|
460
|
+
if (!isPinnableStrategy(this.strategy))
|
|
461
|
+
return [];
|
|
462
|
+
return this.strategy.listPins();
|
|
463
|
+
}
|
|
464
|
+
// ==========================================================================
|
|
465
|
+
// Search (passthrough to the active strategy)
|
|
466
|
+
// ==========================================================================
|
|
467
|
+
/**
|
|
468
|
+
* Search the strategy's summary archive (substring or regex over content).
|
|
469
|
+
* Returns empty array if the strategy doesn't support search.
|
|
470
|
+
*
|
|
471
|
+
* Suitable for building memory-search agent tools at the framework layer
|
|
472
|
+
* — see e.g. agent-framework's MCPL host integration.
|
|
473
|
+
*/
|
|
474
|
+
searchSummaries(query) {
|
|
475
|
+
if (!isSearchableStrategy(this.strategy))
|
|
476
|
+
return [];
|
|
477
|
+
return this.strategy.searchSummaries(query);
|
|
478
|
+
}
|
|
479
|
+
/** Look up a single summary by id. Returns null if not found / unsupported. */
|
|
480
|
+
getSummary(id) {
|
|
481
|
+
if (!isSearchableStrategy(this.strategy))
|
|
482
|
+
return null;
|
|
483
|
+
return this.strategy.getSummary(id);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Per-render stats from the active strategy: head/tail message + token
|
|
487
|
+
* counts, plus per-level summary counts and total tokens. Returns null
|
|
488
|
+
* if the strategy doesn't implement `getRenderStats`.
|
|
489
|
+
*
|
|
490
|
+
* Designed for TUIs / dashboards that want to display "how much of the
|
|
491
|
+
* agent's context is folded vs raw" at a glance.
|
|
492
|
+
*/
|
|
493
|
+
getRenderStats() {
|
|
494
|
+
if (!isRenderStatsCapable(this.strategy))
|
|
495
|
+
return null;
|
|
496
|
+
return this.strategy.getRenderStats(this.messageStore.createView());
|
|
497
|
+
}
|
|
382
498
|
/**
|
|
383
499
|
* Reset the head window to start from a new position.
|
|
384
500
|
* Old head window messages become compressible.
|
|
@@ -426,6 +542,8 @@ export class ContextManager {
|
|
|
426
542
|
contextLog: this.contextLog.createView(),
|
|
427
543
|
membrane: this.membrane,
|
|
428
544
|
currentSequence: this.store.currentSequence(),
|
|
545
|
+
store: this.store,
|
|
546
|
+
namespace: this.strategyNamespace,
|
|
429
547
|
};
|
|
430
548
|
}
|
|
431
549
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/context-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/context-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { JsStore } from '@animalabs/chronicle';
|
|
1
2
|
import type { ContentBlock } from '@animalabs/membrane';
|
|
2
3
|
import { NativeFormatter } from '@animalabs/membrane';
|
|
3
|
-
import type { ResettableStrategy, StrategyContext, ReadinessState, MessageStoreView, ContextLogView, TokenBudget, ContextEntry, StoredMessage, AutobiographicalConfig, SummaryLevel, SummaryEntry } from '../types/index.js';
|
|
4
|
+
import type { ResettableStrategy, StrategyContext, ReadinessState, MessageStoreView, ContextLogView, TokenBudget, ContextEntry, StoredMessage, AutobiographicalConfig, SummaryLevel, SummaryEntry, ProtectedRange, SearchQuery, SearchResult } from '../types/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Chunk of messages to be compressed.
|
|
6
7
|
*/
|
|
@@ -54,10 +55,133 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
54
55
|
protected headWindowStartId: string | null;
|
|
55
56
|
/** Cached result of getHeadWindowStartIndex to avoid repeated linear scans. */
|
|
56
57
|
private _cachedHeadStartIndex;
|
|
58
|
+
/** Chronicle store for persistent state. Set in `initialize()`. */
|
|
59
|
+
protected store: JsStore | null;
|
|
60
|
+
/** Namespace for state-id scoping. Set in `initialize()`. */
|
|
61
|
+
protected ns: string;
|
|
62
|
+
protected get summariesStateId(): string;
|
|
63
|
+
protected get counterStateId(): string;
|
|
64
|
+
protected get mergeQueueStateId(): string;
|
|
65
|
+
protected get pinsStateId(): string;
|
|
66
|
+
/** Protected ranges (pins + documents). Loaded from chronicle in initialize. */
|
|
67
|
+
protected pins: ProtectedRange[];
|
|
68
|
+
/** Monotonically increasing counter for pin ids. Persisted as part of the pins snapshot. */
|
|
69
|
+
protected pinIdCounter: number;
|
|
57
70
|
constructor(config?: Partial<AutobiographicalConfig>);
|
|
58
71
|
initialize(ctx: StrategyContext): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Register the three Chronicle state slots this strategy uses.
|
|
74
|
+
* Idempotent — chronicle throws if a state is already registered, which we
|
|
75
|
+
* swallow (the existing slot is what we want).
|
|
76
|
+
*/
|
|
77
|
+
protected registerStates(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Load summaries, counter, and pending merges from chronicle into the
|
|
80
|
+
* in-memory mirrors. Called on every (re)initialize so branch switches
|
|
81
|
+
* pick up the new branch's state.
|
|
82
|
+
*/
|
|
83
|
+
protected loadPersistedState(): void;
|
|
84
|
+
/** Persist the current pins + counter as a single snapshot. */
|
|
85
|
+
protected persistPins(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Pin a range of messages so they aren't compressed and render raw at
|
|
88
|
+
* their original position. Returns the pin id.
|
|
89
|
+
*/
|
|
90
|
+
pinRange(firstMessageId: string, lastMessageId: string, opts?: {
|
|
91
|
+
name?: string;
|
|
92
|
+
}): string;
|
|
93
|
+
/**
|
|
94
|
+
* Mark a single message as a "document" — semantically a body of
|
|
95
|
+
* information the agent wants to retain in full. Functionally a
|
|
96
|
+
* single-message pin with `kind: 'document'`.
|
|
97
|
+
*/
|
|
98
|
+
markDocument(messageId: string, opts?: {
|
|
99
|
+
name?: string;
|
|
100
|
+
}): string;
|
|
101
|
+
/** Remove a pin or document mark by id. Returns true if removed. */
|
|
102
|
+
unpin(pinId: string): boolean;
|
|
103
|
+
/** Read-only list of all current pins. */
|
|
104
|
+
listPins(): ReadonlyArray<ProtectedRange>;
|
|
105
|
+
/**
|
|
106
|
+
* Look up a single summary by id. Returns null if not found.
|
|
107
|
+
*/
|
|
108
|
+
getSummary(id: string): SummaryEntry | null;
|
|
109
|
+
/**
|
|
110
|
+
* Search summaries by substring or regex over their content.
|
|
111
|
+
*
|
|
112
|
+
* Result ordering: matches by descending hit count, then by descending
|
|
113
|
+
* `created` timestamp (newest first within the same hit count).
|
|
114
|
+
*
|
|
115
|
+
* Default behavior: only "live" (unmerged) summaries are searched. Set
|
|
116
|
+
* `includeMerged: true` to also include summaries that have been folded
|
|
117
|
+
* into a higher level.
|
|
118
|
+
*/
|
|
119
|
+
searchSummaries(query: SearchQuery): SearchResult[];
|
|
120
|
+
/**
|
|
121
|
+
* Whether a given message position is inside any protected range.
|
|
122
|
+
* Uses a position map (computed by caller) so callers can avoid
|
|
123
|
+
* repeated per-message lookups in tight loops.
|
|
124
|
+
*/
|
|
125
|
+
protected isPositionPinned(position: number, pinPositions: Set<number>): boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Build a set of message-store positions covered by any pin. O(N pins · K range).
|
|
128
|
+
* Returns positions for which the message exists; orphan pins (deleted
|
|
129
|
+
* messages) are silently skipped.
|
|
130
|
+
*/
|
|
131
|
+
protected pinnedPositions(messages: StoredMessage[]): Set<number>;
|
|
132
|
+
/**
|
|
133
|
+
* Append a summary to the in-memory list and to the chronicle AppendLog.
|
|
134
|
+
* Single point so subclasses inherit persistence.
|
|
135
|
+
*/
|
|
136
|
+
protected pushSummary(entry: SummaryEntry): void;
|
|
137
|
+
/**
|
|
138
|
+
* Mark a summary as merged into a higher-level summary, updating the
|
|
139
|
+
* chronicle copy at the same index. Index is the position in `this.summaries`.
|
|
140
|
+
*/
|
|
141
|
+
protected setMergedInto(entry: SummaryEntry, mergedIntoId: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Allocate the next summary-id counter value and persist the new counter.
|
|
144
|
+
*/
|
|
145
|
+
protected nextSummaryIdCounter(): number;
|
|
146
|
+
/**
|
|
147
|
+
* Push to the merge queue and persist the new queue snapshot.
|
|
148
|
+
*/
|
|
149
|
+
protected enqueueMerge(merge: {
|
|
150
|
+
level: SummaryLevel;
|
|
151
|
+
sourceIds: string[];
|
|
152
|
+
}): void;
|
|
153
|
+
/**
|
|
154
|
+
* Pop from the merge queue and persist the new queue snapshot.
|
|
155
|
+
*/
|
|
156
|
+
protected dequeueMerge(): {
|
|
157
|
+
level: SummaryLevel;
|
|
158
|
+
sourceIds: string[];
|
|
159
|
+
} | undefined;
|
|
59
160
|
checkReadiness(): ReadinessState;
|
|
60
161
|
onNewMessage(message: StoredMessage, ctx: StrategyContext): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Background-drain loop: keeps calling tick() while there's queued work,
|
|
164
|
+
* subject to the speculation cap and preflight hook. Recurses via
|
|
165
|
+
* `queueMicrotask` so one chunk's compression doesn't block the
|
|
166
|
+
* scheduling of the next.
|
|
167
|
+
*
|
|
168
|
+
* Stops if a tick fails to make progress (queue size unchanged) — guards
|
|
169
|
+
* against runaway recursion when tick is a no-op (e.g. no membrane
|
|
170
|
+
* configured, or a subclass override that doesn't process the queue).
|
|
171
|
+
*/
|
|
172
|
+
protected driveSpeculativeDrain(ctx: StrategyContext): void;
|
|
173
|
+
/**
|
|
174
|
+
* Whether the strategy's pending+queued L1 budget has reached the cap
|
|
175
|
+
* configured by `maxSpeculativeL1s`. If no cap is set, always false.
|
|
176
|
+
*/
|
|
177
|
+
protected isAtSpeculativeCap(): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Preflight hook for whether speculative compression should fire on
|
|
180
|
+
* `onNewMessage`. Returns true by default (current eager behavior).
|
|
181
|
+
* Subclasses can override for predictive scheduling — e.g. only fire
|
|
182
|
+
* when the live tail token count is approaching some threshold.
|
|
183
|
+
*/
|
|
184
|
+
protected shouldCompressPreflight(): boolean;
|
|
61
185
|
tick(ctx: StrategyContext): Promise<void>;
|
|
62
186
|
select(store: MessageStoreView, log: ContextLogView, budget: TokenBudget): ContextEntry[];
|
|
63
187
|
/**
|
|
@@ -72,7 +196,56 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
72
196
|
l3: number;
|
|
73
197
|
pendingMerges: number;
|
|
74
198
|
};
|
|
199
|
+
/**
|
|
200
|
+
* Richer per-render stats: requires a message store view to compute the
|
|
201
|
+
* head + tail (recent window) sizes. Returns counts AND token sums per
|
|
202
|
+
* summary level, so observers can see "how much of the agent's context
|
|
203
|
+
* is in raw tail vs folded into L1/L2/L3."
|
|
204
|
+
*
|
|
205
|
+
* Useful for TUI / dashboards. The token sums use the strategy's own
|
|
206
|
+
* token estimates (which match what `select()` uses for budget math).
|
|
207
|
+
*/
|
|
208
|
+
getRenderStats(store: MessageStoreView): {
|
|
209
|
+
head: {
|
|
210
|
+
messages: number;
|
|
211
|
+
tokens: number;
|
|
212
|
+
};
|
|
213
|
+
tail: {
|
|
214
|
+
messages: number;
|
|
215
|
+
tokens: number;
|
|
216
|
+
};
|
|
217
|
+
summaries: {
|
|
218
|
+
l1: {
|
|
219
|
+
count: number;
|
|
220
|
+
tokens: number;
|
|
221
|
+
};
|
|
222
|
+
l2: {
|
|
223
|
+
count: number;
|
|
224
|
+
tokens: number;
|
|
225
|
+
};
|
|
226
|
+
l3: {
|
|
227
|
+
count: number;
|
|
228
|
+
tokens: number;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
pending: {
|
|
232
|
+
chunks: number;
|
|
233
|
+
merges: number;
|
|
234
|
+
};
|
|
235
|
+
};
|
|
75
236
|
protected selectLegacy(store: MessageStoreView, _log: ContextLogView, budget: TokenBudget): ContextEntry[];
|
|
237
|
+
/**
|
|
238
|
+
* Emit recent-window messages, evicting OLDEST-first when the budget is tight.
|
|
239
|
+
*
|
|
240
|
+
* The previous loop iterated `recentStart → messages.length` forward and broke
|
|
241
|
+
* on `totalTokens + tokens > maxTokens`. When the head/summary section eats most
|
|
242
|
+
* of the budget, the loop emits the oldest messages of the window and aborts
|
|
243
|
+
* before reaching the newest — exactly the messages an agent needs to act on.
|
|
244
|
+
* This helper picks newest-first within the budget, then emits the kept set in
|
|
245
|
+
* chronological order, dropping a leading orphan tool_result if its tool_use
|
|
246
|
+
* fell into the evicted older portion.
|
|
247
|
+
*/
|
|
248
|
+
protected emitRecentNewestFirst(entries: ContextEntry[], store: MessageStoreView, messages: StoredMessage[], recentStart: number, msgCap: number, maxTokens: number, totalTokensBefore: number): void;
|
|
76
249
|
protected compressChunkLegacy(chunk: Chunk, ctx: StrategyContext): Promise<void>;
|
|
77
250
|
protected buildPriorContextLegacy(chunk: Chunk, ctx: StrategyContext): Array<{
|
|
78
251
|
participant: string;
|
|
@@ -97,6 +270,11 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
97
270
|
/**
|
|
98
271
|
* Check if unmerged summary counts exceed the merge threshold.
|
|
99
272
|
* Enqueues merge operations if so.
|
|
273
|
+
*
|
|
274
|
+
* Skips L1s/L2s that are already in a pending merge — without this guard,
|
|
275
|
+
* each new summary above threshold re-enqueues a merge for the same
|
|
276
|
+
* already-eligible siblings, producing N near-identical higher-level
|
|
277
|
+
* summaries when the queue eventually drains.
|
|
100
278
|
*/
|
|
101
279
|
protected checkMergeThreshold(): void;
|
|
102
280
|
/**
|
|
@@ -127,6 +305,26 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
127
305
|
selected: SummaryEntry[];
|
|
128
306
|
tokensUsed: number;
|
|
129
307
|
};
|
|
308
|
+
/**
|
|
309
|
+
* True if `projectedTotal` exceeds `max` AND the strategy is configured
|
|
310
|
+
* to enforce budget. When `enforceBudget: false`, always returns false
|
|
311
|
+
* — the rendering pipeline emits the full ideal context regardless of
|
|
312
|
+
* budget overage. Caller's API will reject if it exceeds the model's
|
|
313
|
+
* context window; the philosophy is "surface overage, don't hide it."
|
|
314
|
+
*/
|
|
315
|
+
protected isOverBudget(projectedTotal: number, max: number): boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Sort selected summaries by source-range start position, so per-pair
|
|
318
|
+
* recall emission appears in chronological order. Falls back to the
|
|
319
|
+
* created timestamp for summaries whose source-range first message is
|
|
320
|
+
* no longer in the store.
|
|
321
|
+
*/
|
|
322
|
+
protected sortSummariesChronologically(summaries: SummaryEntry[], messages: StoredMessage[]): SummaryEntry[];
|
|
323
|
+
/**
|
|
324
|
+
* Render the per-pair recall header from the configured template.
|
|
325
|
+
* Substitutions: {id} {level} {first} {last}.
|
|
326
|
+
*/
|
|
327
|
+
protected buildRecallHeader(summary: SummaryEntry): string;
|
|
130
328
|
/**
|
|
131
329
|
* Reset the head window to start from a new message ID.
|
|
132
330
|
* Old head window messages become compressible on the next chunk rebuild.
|
|
@@ -146,8 +344,10 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
146
344
|
*/
|
|
147
345
|
protected extractText(content: ContentBlock[]): string;
|
|
148
346
|
/**
|
|
149
|
-
* Get messages in the compressible zone: outside both head window and
|
|
150
|
-
*
|
|
347
|
+
* Get messages in the compressible zone: outside both head window and
|
|
348
|
+
* recent window AND not inside any pinned range. Returns messages from
|
|
349
|
+
* [0, headStart) ∪ [headEnd, recentStart) minus any positions covered
|
|
350
|
+
* by a pin or document mark.
|
|
151
351
|
*/
|
|
152
352
|
protected getCompressibleMessages(store: MessageStoreView): StoredMessage[];
|
|
153
353
|
/**
|
|
@@ -176,6 +376,20 @@ export declare class AutobiographicalStrategy implements ResettableStrategy {
|
|
|
176
376
|
* a tool_use message and its tool_result response.
|
|
177
377
|
*/
|
|
178
378
|
private trimOrphanedToolUse;
|
|
379
|
+
/**
|
|
380
|
+
* Prune tool_use / tool_result blocks in-place:
|
|
381
|
+
* 1. Truncate `tool_use.input` blocks whose serialized JSON exceeds
|
|
382
|
+
* `toolUseInputMaxTokens`.
|
|
383
|
+
* 2. For each tool name, keep only the last N `tool_result` blocks
|
|
384
|
+
* per `toolResultMaxLastN`; older ones get their `content` replaced
|
|
385
|
+
* with a brief marker referencing the tool name and how many newer
|
|
386
|
+
* results exist below.
|
|
387
|
+
*
|
|
388
|
+
* Both passes are no-ops when the corresponding config is unset/0.
|
|
389
|
+
* Pruning runs AFTER selection and orphan-trimming, so it doesn't
|
|
390
|
+
* affect chunk formation or the recall/pin layout.
|
|
391
|
+
*/
|
|
392
|
+
protected pruneToolEntries(entries: ContextEntry[]): void;
|
|
179
393
|
protected isChunkOldEnough(chunk: Chunk): boolean;
|
|
180
394
|
protected formatChunkForCompression(chunk: Chunk): string;
|
|
181
395
|
/**
|