@strands-agents/sdk 1.17.0 → 1.18.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/agent/agent-metadata.d.ts +12 -0
- package/dist/src/agent/agent-metadata.d.ts.map +1 -0
- package/dist/src/agent/agent-metadata.js +2 -0
- package/dist/src/agent/agent-metadata.js.map +1 -0
- package/dist/src/agent/agent.d.ts +11 -28
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +11 -54
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/context-manager/context-manager.d.ts +25 -4
- package/dist/src/context-manager/context-manager.d.ts.map +1 -1
- package/dist/src/context-manager/context-manager.js +57 -13
- package/dist/src/context-manager/context-manager.js.map +1 -1
- package/dist/src/context-manager/methods/summarize.d.ts +6 -0
- package/dist/src/context-manager/methods/summarize.d.ts.map +1 -1
- package/dist/src/context-manager/methods/summarize.js +9 -0
- package/dist/src/context-manager/methods/summarize.js.map +1 -1
- package/dist/src/context-manager/presets.d.ts +42 -0
- package/dist/src/context-manager/presets.d.ts.map +1 -0
- package/dist/src/context-manager/presets.js +71 -0
- package/dist/src/context-manager/presets.js.map +1 -0
- package/dist/src/context-manager/retrieval-tool.d.ts.map +1 -1
- package/dist/src/context-manager/retrieval-tool.js +19 -1
- package/dist/src/context-manager/retrieval-tool.js.map +1 -1
- package/dist/src/context-manager/stash.d.ts.map +1 -1
- package/dist/src/context-manager/stash.js +10 -7
- package/dist/src/context-manager/stash.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/base.d.ts +13 -7
- package/dist/src/context-manager/strategies/offload/base.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/base.js +46 -16
- package/dist/src/context-manager/strategies/offload/base.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/summarize.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/summarize.js +11 -12
- package/dist/src/context-manager/strategies/offload/summarize.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/truncate.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/truncate.js +4 -11
- package/dist/src/context-manager/strategies/offload/truncate.js.map +1 -1
- package/dist/src/context-manager/types.d.ts +11 -1
- package/dist/src/context-manager/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/defaults.d.ts.map +1 -1
- package/dist/src/models/defaults.js +1 -0
- package/dist/src/models/defaults.js.map +1 -1
- package/dist/src/models/model.d.ts +12 -2
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/cache.d.ts +11 -2
- package/dist/src/models/openai/cache.d.ts.map +1 -1
- package/dist/src/models/openai/cache.js +32 -6
- package/dist/src/models/openai/cache.js.map +1 -1
- package/dist/src/models/openai/chat-adapter.d.ts.map +1 -1
- package/dist/src/models/openai/chat-adapter.js +10 -4
- package/dist/src/models/openai/chat-adapter.js.map +1 -1
- package/dist/src/models/openai/mantle.js +1 -1
- package/dist/src/models/openai/mantle.js.map +1 -1
- package/dist/src/models/openai/responses-adapter.js +1 -1
- package/dist/src/models/openai/responses-adapter.js.map +1 -1
- package/dist/src/plugins/plugin.d.ts +1 -1
- package/dist/src/plugins/registry.js +1 -1
- package/dist/src/plugins/registry.js.map +1 -1
- package/dist/src/sandbox/errors.d.ts +5 -1
- package/dist/src/sandbox/errors.d.ts.map +1 -1
- package/dist/src/sandbox/errors.js +7 -1
- package/dist/src/sandbox/errors.js.map +1 -1
- package/dist/src/sandbox/stream-process.js +1 -1
- package/dist/src/sandbox/stream-process.js.map +1 -1
- package/dist/src/storage/in-memory-storage.d.ts +7 -0
- package/dist/src/storage/in-memory-storage.d.ts.map +1 -1
- package/dist/src/storage/in-memory-storage.js +16 -1
- package/dist/src/storage/in-memory-storage.js.map +1 -1
- package/dist/src/storage/local-file-storage.d.ts +9 -2
- package/dist/src/storage/local-file-storage.d.ts.map +1 -1
- package/dist/src/storage/local-file-storage.js +17 -4
- package/dist/src/storage/local-file-storage.js.map +1 -1
- package/dist/src/storage/s3-storage.d.ts +4 -0
- package/dist/src/storage/s3-storage.d.ts.map +1 -1
- package/dist/src/storage/s3-storage.js +8 -0
- package/dist/src/storage/s3-storage.js.map +1 -1
- package/dist/src/storage/search/qmd.d.ts +10 -6
- package/dist/src/storage/search/qmd.d.ts.map +1 -1
- package/dist/src/storage/search/qmd.js +4 -6
- package/dist/src/storage/search/qmd.js.map +1 -1
- package/dist/src/storage/search/types.d.ts +14 -2
- package/dist/src/storage/search/types.d.ts.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/agent.d.ts +1 -3
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
- package/dist/src/vended-plugins/context-offloader/search.js +4 -2
- package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
- package/dist/src/vended-tools/index.d.ts +5 -3
- package/dist/src/vended-tools/index.d.ts.map +1 -1
- package/dist/src/vended-tools/index.js +5 -3
- package/dist/src/vended-tools/index.js.map +1 -1
- package/dist/src/vended-tools/notebook/index.d.ts +2 -1
- package/dist/src/vended-tools/notebook/index.d.ts.map +1 -1
- package/dist/src/vended-tools/notebook/index.js +1 -1
- package/dist/src/vended-tools/notebook/index.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +38 -8
- package/dist/src/vended-tools/notebook/notebook.d.ts.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.js +130 -79
- package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
- package/dist/src/vended-tools/shell/make-shell.d.ts.map +1 -1
- package/dist/src/vended-tools/shell/make-shell.js +7 -3
- package/dist/src/vended-tools/shell/make-shell.js.map +1 -1
- package/dist/src/vended-tools/shell/types.d.ts +10 -5
- package/dist/src/vended-tools/shell/types.d.ts.map +1 -1
- package/dist/src/vended-tools/shell/types.js +7 -2
- package/dist/src/vended-tools/shell/types.js.map +1 -1
- package/dist/src/vended-tools/web-fetch/extract.d.ts +23 -0
- package/dist/src/vended-tools/web-fetch/extract.d.ts.map +1 -0
- package/dist/src/vended-tools/web-fetch/extract.js +130 -0
- package/dist/src/vended-tools/web-fetch/extract.js.map +1 -0
- package/dist/src/vended-tools/web-fetch/index.d.ts +9 -0
- package/dist/src/vended-tools/web-fetch/index.d.ts.map +1 -0
- package/dist/src/vended-tools/web-fetch/index.js +7 -0
- package/dist/src/vended-tools/web-fetch/index.js.map +1 -0
- package/dist/src/vended-tools/web-fetch/types.d.ts +40 -0
- package/dist/src/vended-tools/web-fetch/types.d.ts.map +1 -0
- package/dist/src/vended-tools/web-fetch/types.js +8 -0
- package/dist/src/vended-tools/web-fetch/types.js.map +1 -0
- package/dist/src/vended-tools/web-fetch/web-fetch.d.ts +14 -0
- package/dist/src/vended-tools/web-fetch/web-fetch.d.ts.map +1 -0
- package/dist/src/vended-tools/web-fetch/web-fetch.js +175 -0
- package/dist/src/vended-tools/web-fetch/web-fetch.js.map +1 -0
- package/package.json +17 -1
|
@@ -9,8 +9,15 @@ import { InMemoryStorage } from '../storage/in-memory-storage.js';
|
|
|
9
9
|
import { EPHEMERAL } from '../storage/storage.js';
|
|
10
10
|
import { logger } from '../logging/logger.js';
|
|
11
11
|
import { EmergencyTruncateStrategy, Offload } from './strategies/offload/index.js';
|
|
12
|
+
import { resolveStrategies } from './presets.js';
|
|
12
13
|
import { Stash } from './stash.js';
|
|
13
14
|
import { createRetrievalTool, trackRetrievalToolUseIds } from './retrieval-tool.js';
|
|
15
|
+
const AUTO_TRUNCATE_THRESHOLD = 1_500;
|
|
16
|
+
const AGENTIC_TRUNCATE_THRESHOLD = 8_000;
|
|
17
|
+
const TRUNCATE_PREVIEW_TOKENS = 750;
|
|
18
|
+
const AUTO_SUMMARIZE_UTILIZATION = 0.85;
|
|
19
|
+
/** @internal */
|
|
20
|
+
export const CONTEXT_MANAGER_PRESETS = ['auto', 'agentic'];
|
|
14
21
|
/**
|
|
15
22
|
* Manages context reduction for an agent's conversation.
|
|
16
23
|
*
|
|
@@ -18,9 +25,10 @@ import { createRetrievalTool, trackRetrievalToolUseIds } from './retrieval-tool.
|
|
|
18
25
|
* The emergency truncation is always appended as the final strategy — it recomputes
|
|
19
26
|
* utilization and only fires if the window is still overflowing after user strategies.
|
|
20
27
|
*
|
|
21
|
-
*
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
28
|
+
* Configured through the Agent's `contextManager` parameter — pass a preset
|
|
29
|
+
* string (`'auto'`, `'agentic'`) or a `ContextManagerConfig`; the Agent
|
|
30
|
+
* constructs and registers the manager. When present, it owns overflow
|
|
31
|
+
* recovery and proactive compression — no separate ConversationManager is needed.
|
|
24
32
|
*
|
|
25
33
|
* @experimental
|
|
26
34
|
*/
|
|
@@ -34,18 +42,47 @@ export class ContextManager {
|
|
|
34
42
|
_stashIsDurable = false;
|
|
35
43
|
_retrievalTool;
|
|
36
44
|
constructor(config) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Offload.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
const userStrategies = config?.strategies
|
|
46
|
+
? resolveStrategies(config.strategies)
|
|
47
|
+
: [
|
|
48
|
+
Offload.truncate('toolResults', { previewTokens: TRUNCATE_PREVIEW_TOKENS }).when({
|
|
49
|
+
threshold: AUTO_TRUNCATE_THRESHOLD,
|
|
50
|
+
}),
|
|
51
|
+
Offload.summarize('*').when({ utilization: AUTO_SUMMARIZE_UTILIZATION, preserveRecent: 4 }),
|
|
52
|
+
];
|
|
53
|
+
this._strategies = [...userStrategies, new EmergencyTruncateStrategy()];
|
|
44
54
|
const stashConfig = config?.stash;
|
|
45
55
|
const stashObj = typeof stashConfig === 'object' ? stashConfig : undefined;
|
|
46
56
|
this._stashStorage = stashConfig === false ? false : stashObj?.storage;
|
|
47
57
|
this._enableRetrievalTool = stashConfig !== false && stashObj?.retrievalTool !== false;
|
|
48
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolves a `ContextManagerStrategy` value into a `ContextManager` instance.
|
|
61
|
+
*
|
|
62
|
+
* @param strategy - A preset string, config object, false, or undefined
|
|
63
|
+
* @returns A ContextManager for preset strings and configs; undefined for false/undefined
|
|
64
|
+
*/
|
|
65
|
+
static from(strategy) {
|
|
66
|
+
if (strategy === false || strategy === undefined)
|
|
67
|
+
return undefined;
|
|
68
|
+
if (strategy === 'auto') {
|
|
69
|
+
return new ContextManager();
|
|
70
|
+
}
|
|
71
|
+
if (strategy === 'agentic') {
|
|
72
|
+
return new ContextManager({
|
|
73
|
+
strategies: [
|
|
74
|
+
Offload.truncate('toolResults', { previewTokens: TRUNCATE_PREVIEW_TOKENS }).when({
|
|
75
|
+
threshold: AGENTIC_TRUNCATE_THRESHOLD,
|
|
76
|
+
}),
|
|
77
|
+
Offload.summarize('*').when({ utilization: 1, preserveRecent: 4 }),
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (typeof strategy === 'string') {
|
|
82
|
+
throw new Error(`Unknown contextManager preset: "${strategy}". Valid presets: ${CONTEXT_MANAGER_PRESETS.map((s) => `"${s}"`).join(', ')}`);
|
|
83
|
+
}
|
|
84
|
+
return new ContextManager(strategy);
|
|
85
|
+
}
|
|
49
86
|
getTools() {
|
|
50
87
|
if (!this._enableRetrievalTool)
|
|
51
88
|
return [];
|
|
@@ -56,7 +93,7 @@ export class ContextManager {
|
|
|
56
93
|
}
|
|
57
94
|
return [this._retrievalTool];
|
|
58
95
|
}
|
|
59
|
-
initAgent(agent) {
|
|
96
|
+
async initAgent(agent) {
|
|
60
97
|
if (this._stashStorage !== false) {
|
|
61
98
|
const storage = this._stashStorage ?? agent.storage ?? new InMemoryStorage();
|
|
62
99
|
this._stashIsDurable = !(EPHEMERAL in storage);
|
|
@@ -65,6 +102,10 @@ export class ContextManager {
|
|
|
65
102
|
if (this._stash) {
|
|
66
103
|
const stash = this._stash;
|
|
67
104
|
const skipSet = this._retrievalToolUseIds;
|
|
105
|
+
for (const message of agent.messages) {
|
|
106
|
+
trackRetrievalToolUseIds(message, skipSet);
|
|
107
|
+
await stash.storeMessage(message, skipSet);
|
|
108
|
+
}
|
|
68
109
|
agent.addHook(MessageAddedEvent, async (event) => {
|
|
69
110
|
trackRetrievalToolUseIds(event.message, skipSet);
|
|
70
111
|
await stash.storeMessage(event.message, skipSet);
|
|
@@ -88,7 +129,7 @@ export class ContextManager {
|
|
|
88
129
|
overflowRetries = 0;
|
|
89
130
|
return;
|
|
90
131
|
}
|
|
91
|
-
const acted = await this._runStrategies(event.agent);
|
|
132
|
+
const acted = await this._runStrategies(event.agent, undefined, true);
|
|
92
133
|
if (!acted) {
|
|
93
134
|
logger.warn(`agentId=<${event.agent.id}> | no strategy made progress, skipping retry`);
|
|
94
135
|
return;
|
|
@@ -114,18 +155,21 @@ export class ContextManager {
|
|
|
114
155
|
get stashIsDurable() {
|
|
115
156
|
return this._stashIsDurable;
|
|
116
157
|
}
|
|
117
|
-
async _runStrategies(agent, precomputedInputTokens) {
|
|
158
|
+
async _runStrategies(agent, precomputedInputTokens, overflow) {
|
|
118
159
|
const messages = agent.messages;
|
|
119
160
|
const inputTokens = precomputedInputTokens ?? (await agent.model.countTokens(messages));
|
|
120
161
|
const strategyContext = {
|
|
121
162
|
messages,
|
|
122
163
|
agent,
|
|
123
164
|
utilization: agent.model.estimateUtilization(inputTokens),
|
|
165
|
+
...(overflow ? { overflow: true } : {}),
|
|
124
166
|
...(this._stash ? { stash: this._stash } : {}),
|
|
125
167
|
};
|
|
126
168
|
let anyActed = false;
|
|
127
169
|
for (const strategy of this._strategies) {
|
|
128
170
|
try {
|
|
171
|
+
if (strategy instanceof EmergencyTruncateStrategy && anyActed)
|
|
172
|
+
strategyContext.overflow = false;
|
|
129
173
|
const acted = await strategy.apply(strategyContext);
|
|
130
174
|
if (acted) {
|
|
131
175
|
anyActed = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../src/context-manager/context-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAEnF
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../src/context-manager/context-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ import type { Model } from '../../models/model.js';
|
|
|
9
9
|
import { Message } from '../../types/messages.js';
|
|
10
10
|
import type { ContentBlock, ToolResultContent } from '../../types/messages.js';
|
|
11
11
|
export declare const SUMMARIZED_PREFIX = "[Summarized:";
|
|
12
|
+
/**
|
|
13
|
+
* Format a `[Summarized: ...]` marker with an optional summary body.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatSummarized(description: string, tokens: number, summary?: string): string;
|
|
12
18
|
/**
|
|
13
19
|
* Configuration for the summarize method.
|
|
14
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../../src/context-manager/methods/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAa,OAAO,EAA8B,MAAM,yBAAyB,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAG9E,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../../src/context-manager/methods/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAa,OAAO,EAA8B,MAAM,yBAAyB,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAG9E,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAE/C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9F;AAeD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAOtF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAa5E"}
|
|
@@ -8,6 +8,15 @@
|
|
|
8
8
|
import { JsonBlock, Message, TextBlock, ToolResultBlock } from '../../types/messages.js';
|
|
9
9
|
import { logger } from '../../logging/logger.js';
|
|
10
10
|
export const SUMMARIZED_PREFIX = '[Summarized:';
|
|
11
|
+
/**
|
|
12
|
+
* Format a `[Summarized: ...]` marker with an optional summary body.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export function formatSummarized(description, tokens, summary) {
|
|
17
|
+
const header = `${SUMMARIZED_PREFIX} ${description}, ~${tokens.toLocaleString('en-US')} tokens]`;
|
|
18
|
+
return summary ? `${header}\n\n${summary}` : header;
|
|
19
|
+
}
|
|
11
20
|
// Subject to change as we benchmark summarization quality.
|
|
12
21
|
const DEFAULT_SYSTEM_PROMPT = [
|
|
13
22
|
'You are a summarization assistant. Produce a concise factual summary that preserves:',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../src/context-manager/methods/summarize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../src/context-manager/methods/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy presets — named building blocks that resolve to concrete strategy configurations.
|
|
3
|
+
*
|
|
4
|
+
* Preset definitions (thresholds, methods, conditions) are internal defaults and may
|
|
5
|
+
* change between releases as we tune based on real-world usage data. Treat the preset
|
|
6
|
+
* name as the stable contract, not its expansion. Use raw `Offload.*` strategies when
|
|
7
|
+
* you need a specific, pinned configuration.
|
|
8
|
+
*
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
import type { ContextStrategy } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Known preset name strings accepted in the strategies array.
|
|
14
|
+
*
|
|
15
|
+
* Preset names are the stable contract. The strategies they resolve to may change
|
|
16
|
+
* between releases.
|
|
17
|
+
*
|
|
18
|
+
* - `'proactiveSummarization'` — batch summarize oldest messages at 70% utilization
|
|
19
|
+
* - `'largeToolOffloading'` — truncate tool results over 2500 tokens to a 1000-token preview
|
|
20
|
+
* - `'overflowProtection'` — truncate oldest messages when the context window is full
|
|
21
|
+
* - `'staleToolCleanup'` — drop tool results older than 5 messages
|
|
22
|
+
*/
|
|
23
|
+
export declare const STRATEGY_PRESET_NAMES: readonly ["proactiveSummarization", "largeToolOffloading", "overflowProtection", "staleToolCleanup"];
|
|
24
|
+
/** String union of preset names. */
|
|
25
|
+
export type StrategyPresetName = (typeof STRATEGY_PRESET_NAMES)[number];
|
|
26
|
+
/**
|
|
27
|
+
* Resolves a preset name to its default strategy array.
|
|
28
|
+
*
|
|
29
|
+
* @param name - The preset name
|
|
30
|
+
* @returns The strategy array for the given preset
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolvePreset(name: StrategyPresetName): ContextStrategy[];
|
|
34
|
+
/**
|
|
35
|
+
* Resolves a mixed array of strategies and preset names into a flat strategy array.
|
|
36
|
+
*
|
|
37
|
+
* @param entries - Array of raw strategies and/or preset name strings
|
|
38
|
+
* @returns Flattened array of concrete strategies
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveStrategies(entries: (ContextStrategy | StrategyPresetName)[]): ContextStrategy[];
|
|
42
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/context-manager/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGjD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,sGAKxB,CAAA;AAEV,oCAAoC;AACpC,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe,EAAE,CAYzE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,eAAe,GAAG,kBAAkB,CAAC,EAAE,GAAG,eAAe,EAAE,CAatG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy presets — named building blocks that resolve to concrete strategy configurations.
|
|
3
|
+
*
|
|
4
|
+
* Preset definitions (thresholds, methods, conditions) are internal defaults and may
|
|
5
|
+
* change between releases as we tune based on real-world usage data. Treat the preset
|
|
6
|
+
* name as the stable contract, not its expansion. Use raw `Offload.*` strategies when
|
|
7
|
+
* you need a specific, pinned configuration.
|
|
8
|
+
*
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
import { Offload } from './strategies/offload/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Known preset name strings accepted in the strategies array.
|
|
14
|
+
*
|
|
15
|
+
* Preset names are the stable contract. The strategies they resolve to may change
|
|
16
|
+
* between releases.
|
|
17
|
+
*
|
|
18
|
+
* - `'proactiveSummarization'` — batch summarize oldest messages at 70% utilization
|
|
19
|
+
* - `'largeToolOffloading'` — truncate tool results over 2500 tokens to a 1000-token preview
|
|
20
|
+
* - `'overflowProtection'` — truncate oldest messages when the context window is full
|
|
21
|
+
* - `'staleToolCleanup'` — drop tool results older than 5 messages
|
|
22
|
+
*/
|
|
23
|
+
export const STRATEGY_PRESET_NAMES = [
|
|
24
|
+
'proactiveSummarization',
|
|
25
|
+
'largeToolOffloading',
|
|
26
|
+
'overflowProtection',
|
|
27
|
+
'staleToolCleanup',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Resolves a preset name to its default strategy array.
|
|
31
|
+
*
|
|
32
|
+
* @param name - The preset name
|
|
33
|
+
* @returns The strategy array for the given preset
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export function resolvePreset(name) {
|
|
37
|
+
// Defaults are tuning decisions, not API promises — adjust freely.
|
|
38
|
+
switch (name) {
|
|
39
|
+
case 'proactiveSummarization':
|
|
40
|
+
return [Offload.summarize('*').when({ utilization: 0.7, preserveRecent: 0.7 })];
|
|
41
|
+
case 'largeToolOffloading':
|
|
42
|
+
return [Offload.truncate('toolResults', { previewTokens: 1000 }).when({ threshold: 2500 })];
|
|
43
|
+
case 'overflowProtection':
|
|
44
|
+
return [Offload.truncate('*').when({ utilization: 1.0, preserveRecent: 4 })];
|
|
45
|
+
case 'staleToolCleanup':
|
|
46
|
+
return [Offload.drop('toolResults').when({ preserveRecent: 5 })];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolves a mixed array of strategies and preset names into a flat strategy array.
|
|
51
|
+
*
|
|
52
|
+
* @param entries - Array of raw strategies and/or preset name strings
|
|
53
|
+
* @returns Flattened array of concrete strategies
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export function resolveStrategies(entries) {
|
|
57
|
+
const strategies = [];
|
|
58
|
+
for (const entry of entries) {
|
|
59
|
+
if (typeof entry === 'string') {
|
|
60
|
+
if (!STRATEGY_PRESET_NAMES.includes(entry)) {
|
|
61
|
+
throw new Error(`Unknown strategy preset: "${entry}". Valid presets: ${STRATEGY_PRESET_NAMES.join(', ')}`);
|
|
62
|
+
}
|
|
63
|
+
strategies.push(...resolvePreset(entry));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
strategies.push(entry);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return strategies;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/context-manager/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,kBAAkB;CACV,CAAA;AAKV;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,mEAAmE;IACnE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,wBAAwB;YAC3B,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACjF,KAAK,qBAAqB;YACxB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC7F,KAAK,oBAAoB;YACvB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9E,KAAK,kBAAkB;YACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiD;IACjF,MAAM,UAAU,GAAsB,EAAE,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAA2B,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,qBAAqB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5G,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAA2B,CAAC,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval-tool.d.ts","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"retrieval-tool.d.ts","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AAkBrD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAiDhF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAOrF"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
import { tool } from '../tools/tool-factory.js';
|
|
10
10
|
import { isSearchableContent, searchContent } from '../vended-plugins/context-offloader/search.js';
|
|
11
|
+
import { DocumentBlock, ImageBlock, VideoBlock } from '../types/media.js';
|
|
11
12
|
import { Message, ToolUseBlock } from '../types/messages.js';
|
|
12
13
|
export const RETRIEVAL_TOOL_NAME = 'retrieve_context';
|
|
13
14
|
const DEFAULT_MAX_RESULT_TOKENS = 10_000;
|
|
@@ -56,7 +57,15 @@ export function createRetrievalTool(stash, maxResultTokens) {
|
|
|
56
57
|
return `Error: reference not found: ${input.reference}`;
|
|
57
58
|
}
|
|
58
59
|
if (!input.pattern && !input.line_range) {
|
|
59
|
-
|
|
60
|
+
if (result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
|
|
61
|
+
const media = restoreMedia(result.data);
|
|
62
|
+
if (media)
|
|
63
|
+
return media;
|
|
64
|
+
}
|
|
65
|
+
const serialized = JSON.stringify(result.data);
|
|
66
|
+
if (serialized.length <= maxChars)
|
|
67
|
+
return result.data;
|
|
68
|
+
return `${serialized.slice(0, maxChars)}\n\n[truncated]`;
|
|
60
69
|
}
|
|
61
70
|
const text = extractText(result.data);
|
|
62
71
|
if (!text || !isSearchableContent('text/plain')) {
|
|
@@ -82,6 +91,15 @@ export function trackRetrievalToolUseIds(message, skipSet) {
|
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
93
|
}
|
|
94
|
+
function restoreMedia(data) {
|
|
95
|
+
if ('image' in data)
|
|
96
|
+
return ImageBlock.fromJSON(data);
|
|
97
|
+
if ('document' in data)
|
|
98
|
+
return DocumentBlock.fromJSON(data);
|
|
99
|
+
if ('video' in data)
|
|
100
|
+
return VideoBlock.fromJSON(data);
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
85
103
|
function extractText(data) {
|
|
86
104
|
if (typeof data === 'string')
|
|
87
105
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval-tool.js","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"retrieval-tool.js","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../../../src/context-manager/stash.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,OAAO,EAAkE,MAAM,sBAAsB,CAAA;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,gBAAgB;AAChB,eAAO,MAAM,YAAY,YAAY,CAAA;AAUrC,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAItD;AAED;;;;;GAKG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAEnC,oEAAoE;IACpE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;gBAEpB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOhE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAO5E;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../../../src/context-manager/stash.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,OAAO,EAAkE,MAAM,sBAAsB,CAAA;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,gBAAgB;AAChB,eAAO,MAAM,YAAY,YAAY,CAAA;AAUrC,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAItD;AAED;;;;;GAKG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAEnC,oEAAoE;IACpE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;gBAEpB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOhE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAO5E;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzF;;;;;OAKG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAMpE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAYxD;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvD,gBAAgB;CAY/B"}
|
|
@@ -23,8 +23,8 @@ export function formatStashRefs(refs) {
|
|
|
23
23
|
if (refs.length === 0)
|
|
24
24
|
return '';
|
|
25
25
|
if (refs.length === 1)
|
|
26
|
-
return ` ref: ${refs[0]}`;
|
|
27
|
-
return ` refs: ${refs.join(', ')}`;
|
|
26
|
+
return ` [ref: ${refs[0]}]`;
|
|
27
|
+
return ` [refs: ${refs.join(', ')}]`;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Wraps a Storage backend with key management and content framing for the
|
|
@@ -91,9 +91,7 @@ export class Stash {
|
|
|
91
91
|
if (block instanceof ToolResultBlock) {
|
|
92
92
|
if (skipToolUseIds?.has(block.toolUseId))
|
|
93
93
|
continue;
|
|
94
|
-
await this._storeToolResult(block)
|
|
95
|
-
logger.debug(`toolUseId=<${block.toolUseId}>, error=<${error}> | failed to stash tool result`);
|
|
96
|
-
});
|
|
94
|
+
await this._storeToolResult(block);
|
|
97
95
|
}
|
|
98
96
|
else if (block instanceof ToolUseBlock || block instanceof CachePointBlock || block instanceof ReasoningBlock) {
|
|
99
97
|
continue;
|
|
@@ -103,7 +101,7 @@ export class Stash {
|
|
|
103
101
|
await this.store(message.trackingId, blockIndex, encode(block.toJSON()));
|
|
104
102
|
}
|
|
105
103
|
catch (error) {
|
|
106
|
-
logger.
|
|
104
|
+
logger.warn(`trackingId=<${message.trackingId}>, error=<${error}> | failed to stash block`);
|
|
107
105
|
}
|
|
108
106
|
}
|
|
109
107
|
}
|
|
@@ -179,7 +177,12 @@ export class Stash {
|
|
|
179
177
|
async _storeToolResult(block) {
|
|
180
178
|
for (let blockIndex = 0; blockIndex < block.content.length; blockIndex++) {
|
|
181
179
|
const item = block.content[blockIndex];
|
|
182
|
-
|
|
180
|
+
try {
|
|
181
|
+
await this.store(block.toolUseId, blockIndex, encode(item.toJSON()));
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
logger.warn(`toolUseId=<${block.toolUseId}>, blockIndex=<${blockIndex}>, error=<${error}> | failed to stash sub-block`);
|
|
185
|
+
}
|
|
183
186
|
}
|
|
184
187
|
}
|
|
185
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../../src/context-manager/stash.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAgB,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG9G,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAA;AAErC,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,KAAiB;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../../src/context-manager/stash.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,11 @@ export interface OffloadConditions {
|
|
|
39
39
|
threshold?: number;
|
|
40
40
|
/** Context utilization ratio (0-1+) above which the strategy fires. */
|
|
41
41
|
utilization?: number;
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* How many recent matching messages to leave untouched.
|
|
44
|
+
* - Integer (1 or above): absolute count of messages to preserve.
|
|
45
|
+
* - Decimal (between 0 and 1 exclusive): ratio of matching messages to preserve (e.g. 0.7 = keep 70%).
|
|
46
|
+
*/
|
|
43
47
|
preserveRecent?: number;
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
@@ -59,10 +63,12 @@ export declare function toolMatchesTarget(block: ToolResultBlock, target: Offloa
|
|
|
59
63
|
export declare function targetMatchesMessage(target: OffloadTarget | undefined, message: Message): boolean;
|
|
60
64
|
export declare function messageMatchesTarget(message: Message, target: OffloadTarget | undefined, toolNameMap: Map<string, string>, toolIncludeFilter: Set<string> | undefined, toolExcludeFilter: Set<string> | undefined): boolean;
|
|
61
65
|
/**
|
|
62
|
-
* Returns target-matching messages excluding the
|
|
63
|
-
* First filters to only messages that match the target, then removes the
|
|
66
|
+
* Returns target-matching messages excluding the most recent matches.
|
|
67
|
+
* First filters to only messages that match the target, then removes the tail.
|
|
68
|
+
*
|
|
69
|
+
* @param preserveRecent - Integer (1 or above): absolute count. Decimal (between 0 and 1 exclusive): ratio of matches to keep.
|
|
64
70
|
*/
|
|
65
|
-
export declare function getOldestMatches(messages: Message[], target: OffloadTarget | undefined,
|
|
71
|
+
export declare function getOldestMatches(messages: Message[], target: OffloadTarget | undefined, preserveRecent: number, toolNameMap: Map<string, string>, toolIncludeFilter: Set<string> | undefined, toolExcludeFilter: Set<string> | undefined): Message[];
|
|
66
72
|
/**
|
|
67
73
|
* Collects a message and its paired partner (if any) for safe removal.
|
|
68
74
|
* If removing a message would orphan a tool-use/tool-result pair, includes the partner
|
|
@@ -100,7 +106,6 @@ export declare abstract class BaseOffloadStrategy implements ContextStrategy {
|
|
|
100
106
|
protected readonly _threshold: number | undefined;
|
|
101
107
|
protected readonly _utilizationThreshold: number | undefined;
|
|
102
108
|
protected readonly _preserveRecent: number;
|
|
103
|
-
protected readonly _removalRatio: number;
|
|
104
109
|
protected readonly _includeFilter: Set<string> | undefined;
|
|
105
110
|
protected readonly _excludeFilter: Set<string> | undefined;
|
|
106
111
|
protected _stash: Stash | undefined;
|
|
@@ -111,7 +116,7 @@ export declare abstract class BaseOffloadStrategy implements ContextStrategy {
|
|
|
111
116
|
apply(context: ContextState): Promise<boolean>;
|
|
112
117
|
/** Per-block execution: walk each message, transform individual blocks above threshold. */
|
|
113
118
|
private _applyPerBlock;
|
|
114
|
-
/** Message-level execution: remove
|
|
119
|
+
/** Message-level execution: remove eligible messages with pair safety. */
|
|
115
120
|
protected _applyPerMessage(context: ContextState): Promise<boolean>;
|
|
116
121
|
/** Override to insert a marker when messages are removed. Return null for no marker. */
|
|
117
122
|
protected _makeRemovalMarker(_count: number): string | null;
|
|
@@ -135,10 +140,11 @@ export declare abstract class BaseOffloadStrategy implements ContextStrategy {
|
|
|
135
140
|
*/
|
|
136
141
|
export declare class EmergencyTruncateStrategy extends BaseOffloadStrategy {
|
|
137
142
|
readonly name = "offload:emergency-truncate";
|
|
138
|
-
protected readonly _removalRatio = 0.2;
|
|
139
143
|
constructor();
|
|
140
144
|
init(_agent: LocalAgent, stash?: Stash): void;
|
|
141
145
|
apply(context: ContextState): Promise<boolean>;
|
|
146
|
+
/** Drop the oldest 20% of non-head messages each pass. */
|
|
147
|
+
protected _applyPerMessage(context: ContextState): Promise<boolean>;
|
|
142
148
|
protected _replaceBlock(): Promise<ContentBlock | null>;
|
|
143
149
|
}
|
|
144
150
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,OAAO,EAEP,eAAe,EAIhB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/base.ts"],"names":[],"mappings":"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"}
|