@strands-agents/sdk 1.16.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/README.md +1 -1
- 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 +21 -54
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/context-manager/context-manager.d.ts +47 -5
- package/dist/src/context-manager/context-manager.d.ts.map +1 -1
- package/dist/src/context-manager/context-manager.js +114 -16
- package/dist/src/context-manager/context-manager.js.map +1 -1
- package/dist/src/context-manager/methods/summarize.d.ts +8 -2
- package/dist/src/context-manager/methods/summarize.d.ts.map +1 -1
- package/dist/src/context-manager/methods/summarize.js +9 -2
- package/dist/src/context-manager/methods/summarize.js.map +1 -1
- package/dist/src/context-manager/methods/truncate.d.ts +2 -2
- package/dist/src/context-manager/methods/truncate.d.ts.map +1 -1
- package/dist/src/context-manager/methods/truncate.js +0 -2
- package/dist/src/context-manager/methods/truncate.js.map +1 -1
- package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +2 -2
- 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 +29 -0
- package/dist/src/context-manager/retrieval-tool.d.ts.map +1 -0
- package/dist/src/context-manager/retrieval-tool.js +116 -0
- package/dist/src/context-manager/retrieval-tool.js.map +1 -0
- package/dist/src/context-manager/stash.d.ts +107 -0
- package/dist/src/context-manager/stash.d.ts.map +1 -0
- package/dist/src/context-manager/stash.js +189 -0
- package/dist/src/context-manager/stash.js.map +1 -0
- package/dist/src/context-manager/strategies/offload/base.d.ts +23 -13
- package/dist/src/context-manager/strategies/offload/base.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/base.js +67 -25
- package/dist/src/context-manager/strategies/offload/base.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/drop.d.ts +2 -2
- package/dist/src/context-manager/strategies/offload/drop.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/drop.js +6 -4
- package/dist/src/context-manager/strategies/offload/drop.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/index.d.ts +1 -1
- package/dist/src/context-manager/strategies/offload/index.js +1 -1
- package/dist/src/context-manager/strategies/offload/summarize.d.ts +2 -2
- package/dist/src/context-manager/strategies/offload/summarize.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/summarize.js +22 -25
- package/dist/src/context-manager/strategies/offload/summarize.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/truncate.d.ts +2 -2
- package/dist/src/context-manager/strategies/offload/truncate.d.ts.map +1 -1
- package/dist/src/context-manager/strategies/offload/truncate.js +34 -12
- package/dist/src/context-manager/strategies/offload/truncate.js.map +1 -1
- package/dist/src/context-manager/types.d.ts +46 -2
- package/dist/src/context-manager/types.d.ts.map +1 -1
- package/dist/src/experimental/index.d.ts +6 -0
- package/dist/src/experimental/index.d.ts.map +1 -1
- package/dist/src/experimental/index.js +3 -0
- package/dist/src/experimental/index.js.map +1 -1
- package/dist/src/index.d.ts +11 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/client.d.ts +3 -2
- package/dist/src/mcp/client.d.ts.map +1 -1
- package/dist/src/mcp/client.js +3 -2
- package/dist/src/mcp/client.js.map +1 -1
- package/dist/src/mcp/config.d.ts +11 -1
- package/dist/src/mcp/config.d.ts.map +1 -1
- package/dist/src/mcp/config.js.map +1 -1
- package/dist/src/mcp/config.node.d.ts +3 -2
- package/dist/src/mcp/config.node.d.ts.map +1 -1
- package/dist/src/mcp/config.node.js +6 -3
- package/dist/src/mcp/config.node.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.d.ts.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 +38 -2
- package/dist/src/models/openai/cache.d.ts.map +1 -1
- package/dist/src/models/openai/cache.js +64 -14
- 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/models/routing/classifier-strategy.d.ts +87 -0
- package/dist/src/models/routing/classifier-strategy.d.ts.map +1 -0
- package/dist/src/models/routing/classifier-strategy.js +285 -0
- package/dist/src/models/routing/classifier-strategy.js.map +1 -0
- package/dist/src/models/routing/index.d.ts +2 -0
- package/dist/src/models/routing/index.d.ts.map +1 -1
- package/dist/src/models/routing/index.js +1 -0
- package/dist/src/models/routing/index.js.map +1 -1
- package/dist/src/models/routing/router.d.ts +14 -2
- package/dist/src/models/routing/router.d.ts.map +1 -1
- package/dist/src/models/routing/router.js +43 -8
- package/dist/src/models/routing/router.js.map +1 -1
- package/dist/src/models/vercel.d.ts +9 -1
- package/dist/src/models/vercel.d.ts.map +1 -1
- package/dist/src/models/vercel.js +248 -7
- package/dist/src/models/vercel.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/session/session-manager.d.ts +5 -1
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +51 -1
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/snapshot-storage-adapter.d.ts.map +1 -1
- package/dist/src/session/snapshot-storage-adapter.js +1 -0
- package/dist/src/session/snapshot-storage-adapter.js.map +1 -1
- package/dist/src/storage/in-memory-storage.d.ts +9 -0
- package/dist/src/storage/in-memory-storage.d.ts.map +1 -1
- package/dist/src/storage/in-memory-storage.js +18 -2
- 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/storage/storage.d.ts +8 -0
- package/dist/src/storage/storage.d.ts.map +1 -1
- package/dist/src/storage/storage.js +18 -0
- package/dist/src/storage/storage.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +4 -2
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/agent.d.ts +7 -0
- 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 +18 -5
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Base offload strategy and shared infrastructure.
|
|
3
|
-
*
|
|
4
|
-
* @internal
|
|
5
3
|
*/
|
|
6
4
|
import { logger } from '../../../logging/logger.js';
|
|
7
5
|
import { MessageAddedEvent } from '../../../hooks/events.js';
|
|
8
|
-
import { Message, TextBlock, ToolResultBlock, ToolUseBlock } from '../../../types/messages.js';
|
|
6
|
+
import { Message, TextBlock, ToolResultBlock, ToolUseBlock, CachePointBlock, ReasoningBlock, } from '../../../types/messages.js';
|
|
7
|
+
import { RETRIEVAL_TOOL_NAME } from '../../retrieval-tool.js';
|
|
8
|
+
import { isPinned } from '../../../conversation-manager/compression/pin-message.js';
|
|
9
9
|
// --- Shared helpers ---
|
|
10
10
|
function finiteOrUndefined(value) {
|
|
11
11
|
return typeof value === 'number' && Number.isFinite(value) ? Math.max(0, value) : undefined;
|
|
@@ -69,11 +69,14 @@ export function messageMatchesTarget(message, target, toolNameMap, toolIncludeFi
|
|
|
69
69
|
return false;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* Returns target-matching messages excluding the
|
|
73
|
-
* First filters to only messages that match the target, then removes the
|
|
72
|
+
* Returns target-matching messages excluding the most recent matches.
|
|
73
|
+
* First filters to only messages that match the target, then removes the tail.
|
|
74
|
+
*
|
|
75
|
+
* @param preserveRecent - Integer (1 or above): absolute count. Decimal (between 0 and 1 exclusive): ratio of matches to keep.
|
|
74
76
|
*/
|
|
75
|
-
export function getOldestMatches(messages, target,
|
|
77
|
+
export function getOldestMatches(messages, target, preserveRecent, toolNameMap, toolIncludeFilter, toolExcludeFilter) {
|
|
76
78
|
const matching = messages.filter((message) => messageMatchesTarget(message, target, toolNameMap, toolIncludeFilter, toolExcludeFilter));
|
|
79
|
+
const count = preserveRecent > 0 && preserveRecent < 1 ? Math.ceil(matching.length * preserveRecent) : Math.floor(preserveRecent);
|
|
77
80
|
if (count >= matching.length)
|
|
78
81
|
return [];
|
|
79
82
|
return matching.slice(0, -count);
|
|
@@ -148,9 +151,12 @@ export function repairAlternation(messages) {
|
|
|
148
151
|
const current = messages[readIndex];
|
|
149
152
|
if (writeIndex > 0 && messages[writeIndex - 1].role === current.role) {
|
|
150
153
|
const prev = messages[writeIndex - 1];
|
|
154
|
+
const pinned = prev.metadata?.custom?.pinned === true || current.metadata?.custom?.pinned === true;
|
|
151
155
|
messages[writeIndex - 1] = new Message({
|
|
152
156
|
role: prev.role,
|
|
153
157
|
content: [...prev.content, ...current.content],
|
|
158
|
+
trackingId: prev.trackingId,
|
|
159
|
+
...(pinned ? { metadata: { custom: { pinned: true } } } : {}),
|
|
154
160
|
});
|
|
155
161
|
}
|
|
156
162
|
else {
|
|
@@ -199,9 +205,9 @@ export class BaseOffloadStrategy {
|
|
|
199
205
|
_threshold;
|
|
200
206
|
_utilizationThreshold;
|
|
201
207
|
_preserveRecent;
|
|
202
|
-
_removalRatio = 0.3;
|
|
203
208
|
_includeFilter;
|
|
204
209
|
_excludeFilter;
|
|
210
|
+
_stash;
|
|
205
211
|
constructor(target, conditions) {
|
|
206
212
|
if (Array.isArray(target) && target.length === 0) {
|
|
207
213
|
throw new Error('Empty array target matches nothing — provide at least one target');
|
|
@@ -209,7 +215,7 @@ export class BaseOffloadStrategy {
|
|
|
209
215
|
this._target = target;
|
|
210
216
|
this._threshold = finiteOrUndefined(conditions?.threshold);
|
|
211
217
|
this._utilizationThreshold = finiteOrUndefined(conditions?.utilization);
|
|
212
|
-
this._preserveRecent =
|
|
218
|
+
this._preserveRecent = finiteOrUndefined(conditions?.preserveRecent) ?? 0;
|
|
213
219
|
const resolved = resolveToolFilter(target);
|
|
214
220
|
this._includeFilter = resolved.include;
|
|
215
221
|
this._excludeFilter = resolved.exclude;
|
|
@@ -218,20 +224,26 @@ export class BaseOffloadStrategy {
|
|
|
218
224
|
get _isMessageLevel() {
|
|
219
225
|
return this._utilizationThreshold !== undefined;
|
|
220
226
|
}
|
|
221
|
-
init(agent) {
|
|
227
|
+
init(agent, stash) {
|
|
228
|
+
this._stash = stash;
|
|
222
229
|
if (this._isMessageLevel)
|
|
223
230
|
return;
|
|
224
231
|
if (this._preserveRecent > 0)
|
|
225
232
|
return;
|
|
226
233
|
agent.addHook(MessageAddedEvent, async (event) => {
|
|
227
234
|
const messages = event.agent.messages;
|
|
235
|
+
const index = messages.indexOf(event.message);
|
|
236
|
+
if (index >= 0 && isPinned(messages, index))
|
|
237
|
+
return;
|
|
228
238
|
const toolNameMap = buildToolNameMap(messages);
|
|
229
239
|
await this._transformBlocks(event.message, messages, toolNameMap, event.agent);
|
|
230
240
|
});
|
|
231
241
|
}
|
|
232
242
|
async apply(context) {
|
|
243
|
+
if (context.stash)
|
|
244
|
+
this._stash = context.stash;
|
|
233
245
|
if (this._isMessageLevel) {
|
|
234
|
-
if (context.utilization < this._utilizationThreshold)
|
|
246
|
+
if (!context.overflow && context.utilization < this._utilizationThreshold)
|
|
235
247
|
return false;
|
|
236
248
|
return this._applyPerMessage(context);
|
|
237
249
|
}
|
|
@@ -246,13 +258,16 @@ export class BaseOffloadStrategy {
|
|
|
246
258
|
: messages;
|
|
247
259
|
let acted = false;
|
|
248
260
|
for (const message of eligible) {
|
|
261
|
+
const index = messages.indexOf(message);
|
|
262
|
+
if (isPinned(messages, index))
|
|
263
|
+
continue;
|
|
249
264
|
if (await this._transformBlocks(message, messages, toolNameMap, agent)) {
|
|
250
265
|
acted = true;
|
|
251
266
|
}
|
|
252
267
|
}
|
|
253
268
|
return acted;
|
|
254
269
|
}
|
|
255
|
-
/** Message-level execution: remove
|
|
270
|
+
/** Message-level execution: remove eligible messages with pair safety. */
|
|
256
271
|
async _applyPerMessage(context) {
|
|
257
272
|
const { messages } = context;
|
|
258
273
|
if (messages.length <= 1)
|
|
@@ -260,9 +275,7 @@ export class BaseOffloadStrategy {
|
|
|
260
275
|
const eligible = await this._getEligibleMessages(context);
|
|
261
276
|
if (eligible.length === 0)
|
|
262
277
|
return false;
|
|
263
|
-
const
|
|
264
|
-
const toRemove = eligible.slice(0, targetRemoval);
|
|
265
|
-
const { removed, lowestIndex } = spliceWithPairs(messages, toRemove);
|
|
278
|
+
const { removed, lowestIndex } = spliceWithPairs(messages, eligible);
|
|
266
279
|
if (removed === 0)
|
|
267
280
|
return false;
|
|
268
281
|
const marker = this._makeRemovalMarker(removed);
|
|
@@ -279,12 +292,22 @@ export class BaseOffloadStrategy {
|
|
|
279
292
|
}
|
|
280
293
|
/** Whether a block is eligible for offload given the current target and filters. */
|
|
281
294
|
_blockMatchesTarget(block, message, toolNameMap) {
|
|
295
|
+
if (block instanceof ToolUseBlock)
|
|
296
|
+
return false;
|
|
297
|
+
if (block instanceof CachePointBlock)
|
|
298
|
+
return false;
|
|
299
|
+
if (block instanceof ReasoningBlock)
|
|
300
|
+
return false;
|
|
282
301
|
if (block instanceof TextBlock)
|
|
283
302
|
return targetMatchesMessage(this._target, message);
|
|
284
303
|
if (block instanceof ToolResultBlock) {
|
|
304
|
+
if (this._stash && toolNameMap.get(block.toolUseId) === RETRIEVAL_TOOL_NAME)
|
|
305
|
+
return false;
|
|
285
306
|
return (this._target === undefined ||
|
|
286
307
|
toolMatchesTarget(block, this._target, toolNameMap, this._includeFilter, this._excludeFilter));
|
|
287
308
|
}
|
|
309
|
+
if (this._target === '*' || this._target === undefined)
|
|
310
|
+
return true;
|
|
288
311
|
return false;
|
|
289
312
|
}
|
|
290
313
|
/** Process eligible blocks in a message. */
|
|
@@ -298,10 +321,9 @@ export class BaseOffloadStrategy {
|
|
|
298
321
|
const tokens = await agent.model.countTokens([new Message({ role: message.role, content: [block] })]);
|
|
299
322
|
if (tokens <= effectiveThreshold)
|
|
300
323
|
continue;
|
|
301
|
-
const
|
|
324
|
+
const stashRefs = this._stash?.refsFor(block, message, blockIndex) ?? [];
|
|
325
|
+
const replacement = await this._replaceBlock(block, tokens, message, agent, stashRefs);
|
|
302
326
|
if (replacement && replacement !== block) {
|
|
303
|
-
// Intentional in-place mutation: per-block replacement shrinks existing message content
|
|
304
|
-
// rather than constructing a new Message (unlike message-level removal which uses new objects).
|
|
305
327
|
;
|
|
306
328
|
message.content[blockIndex] = replacement;
|
|
307
329
|
acted = true;
|
|
@@ -315,10 +337,14 @@ export class BaseOffloadStrategy {
|
|
|
315
337
|
const toolNameMap = buildToolNameMap(messages);
|
|
316
338
|
let candidates;
|
|
317
339
|
if (this._preserveRecent > 0) {
|
|
318
|
-
candidates = getOldestMatches(messages, this._target, this._preserveRecent, toolNameMap, this._includeFilter, this._excludeFilter).filter((message) =>
|
|
340
|
+
candidates = getOldestMatches(messages, this._target, this._preserveRecent, toolNameMap, this._includeFilter, this._excludeFilter).filter((message) => {
|
|
341
|
+
const index = messages.indexOf(message);
|
|
342
|
+
return index > 0 && !isPinned(messages, index);
|
|
343
|
+
});
|
|
319
344
|
}
|
|
320
345
|
else {
|
|
321
346
|
candidates = messages.filter((message, index) => index > 0 &&
|
|
347
|
+
!isPinned(messages, index) &&
|
|
322
348
|
messageMatchesTarget(message, this._target, toolNameMap, this._includeFilter, this._excludeFilter));
|
|
323
349
|
}
|
|
324
350
|
if (this._threshold === undefined)
|
|
@@ -342,6 +368,7 @@ export class BaseOffloadStrategy {
|
|
|
342
368
|
}
|
|
343
369
|
}
|
|
344
370
|
// --- Emergency truncation strategy ---
|
|
371
|
+
const EMERGENCY_REMOVAL_RATIO = 0.2;
|
|
345
372
|
/**
|
|
346
373
|
* Last-resort strategy that recomputes utilization and drops the oldest 20% of messages
|
|
347
374
|
* when the context window is still overflowing after all user-configured strategies have run.
|
|
@@ -353,21 +380,36 @@ export class BaseOffloadStrategy {
|
|
|
353
380
|
*/
|
|
354
381
|
export class EmergencyTruncateStrategy extends BaseOffloadStrategy {
|
|
355
382
|
name = 'offload:emergency-truncate';
|
|
356
|
-
_removalRatio = 0.2;
|
|
357
383
|
constructor() {
|
|
358
384
|
super('*');
|
|
359
385
|
}
|
|
360
|
-
init() {
|
|
361
|
-
|
|
386
|
+
init(_agent, stash) {
|
|
387
|
+
this._stash = stash;
|
|
362
388
|
}
|
|
363
389
|
async apply(context) {
|
|
364
390
|
if (context.messages.length <= 3)
|
|
365
391
|
return false;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
392
|
+
if (!context.overflow) {
|
|
393
|
+
const tokens = await context.agent.model.countTokens(context.messages);
|
|
394
|
+
const utilization = context.agent.model.estimateUtilization(tokens);
|
|
395
|
+
if (utilization < 1.0)
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
return this._applyPerMessage(context);
|
|
399
|
+
}
|
|
400
|
+
/** Drop the oldest 20% of non-head messages each pass. */
|
|
401
|
+
async _applyPerMessage(context) {
|
|
402
|
+
const { messages } = context;
|
|
403
|
+
if (messages.length <= 3)
|
|
369
404
|
return false;
|
|
370
|
-
|
|
405
|
+
const removable = messages.filter((_, index) => index > 0);
|
|
406
|
+
const removeCount = Math.max(1, Math.floor(removable.length * EMERGENCY_REMOVAL_RATIO));
|
|
407
|
+
const toRemove = removable.slice(0, removeCount);
|
|
408
|
+
const { removed } = spliceWithPairs(messages, toRemove);
|
|
409
|
+
if (removed === 0)
|
|
410
|
+
return false;
|
|
411
|
+
repairAlternation(messages);
|
|
412
|
+
return true;
|
|
371
413
|
}
|
|
372
414
|
async _replaceBlock() {
|
|
373
415
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
import { Message
|
|
6
|
+
import { Message } from '../../../types/messages.js';
|
|
7
7
|
import type { ContentBlock } from '../../../types/messages.js';
|
|
8
8
|
import type { LocalAgent } from '../../../types/agent.js';
|
|
9
9
|
import type { ContextStrategy } from '../../types.js';
|
|
@@ -14,6 +14,6 @@ export declare class DropStrategy extends BaseOffloadStrategy {
|
|
|
14
14
|
readonly name = "offload:drop";
|
|
15
15
|
when(conditions: OffloadConditions): ContextStrategy;
|
|
16
16
|
protected _makeRemovalMarker(count: number): string;
|
|
17
|
-
protected _replaceBlock(block:
|
|
17
|
+
protected _replaceBlock(block: ContentBlock, _tokens: number, message: Message, _agent: LocalAgent, stashRefs: string[]): Promise<ContentBlock | null>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=drop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/drop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/drop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAA8B,MAAM,4BAA4B,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,cAAc,cAAc,CAAA;AAEzC,qBAAa,YAAa,SAAQ,mBAAmB;IACnD,QAAQ,CAAC,IAAI,kBAAiB;IAE9B,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,eAAe;cAIjC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;cAI5C,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAchC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { logger } from '../../../logging/logger.js';
|
|
7
7
|
import { Message, TextBlock, ToolResultBlock } from '../../../types/messages.js';
|
|
8
|
+
import { formatStashRefs } from '../../stash.js';
|
|
8
9
|
import { BaseOffloadStrategy } from './base.js';
|
|
9
10
|
export const DROPPED_MARKER = '[Dropped]';
|
|
10
11
|
export class DropStrategy extends BaseOffloadStrategy {
|
|
@@ -15,17 +16,18 @@ export class DropStrategy extends BaseOffloadStrategy {
|
|
|
15
16
|
_makeRemovalMarker(count) {
|
|
16
17
|
return `[Dropped: ${count} ${count === 1 ? 'message' : 'messages'}]`;
|
|
17
18
|
}
|
|
18
|
-
async _replaceBlock(block, _tokens, message, _agent) {
|
|
19
|
+
async _replaceBlock(block, _tokens, message, _agent, stashRefs) {
|
|
20
|
+
const marker = `${DROPPED_MARKER}${formatStashRefs(stashRefs)}`;
|
|
19
21
|
if (block instanceof ToolResultBlock) {
|
|
20
22
|
logger.debug(`toolUseId=<${block.toolUseId}> | dropped tool result from context window`);
|
|
21
23
|
return new ToolResultBlock({
|
|
22
24
|
toolUseId: block.toolUseId,
|
|
23
25
|
status: block.status,
|
|
24
|
-
content: [new TextBlock(
|
|
26
|
+
content: [new TextBlock(marker)],
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
|
-
logger.debug(`trackingId=<${message.trackingId}> | dropped
|
|
28
|
-
return new TextBlock(
|
|
29
|
+
logger.debug(`trackingId=<${message.trackingId}> | dropped block from context window`);
|
|
30
|
+
return new TextBlock(marker);
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
//# sourceMappingURL=drop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/drop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAIhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AAEzC,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IAC1C,IAAI,GAAG,cAAc,CAAA;IAE9B,IAAI,CAAC,UAA6B;QAChC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAEkB,kBAAkB,CAAC,KAAa;QACjD,OAAO,aAAa,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CAAA;IACtE,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,
|
|
1
|
+
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/drop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAIhF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AAEzC,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IAC1C,IAAI,GAAG,cAAc,CAAA;IAE9B,IAAI,CAAC,UAA6B;QAChC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAEkB,kBAAkB,CAAC,KAAa;QACjD,OAAO,aAAa,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CAAA;IACtE,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,KAAmB,EACnB,OAAe,EACf,OAAgB,EAChB,MAAkB,EAClB,SAAmB;QAEnB,MAAM,MAAM,GAAG,GAAG,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAA;QAE/D,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,SAAS,6CAA6C,CAAC,CAAA;YACxF,OAAO,IAAI,eAAe,CAAC;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;aACjC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,UAAU,uCAAuC,CAAC,CAAA;QACtF,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
import { Message
|
|
6
|
+
import { Message } from '../../../types/messages.js';
|
|
7
7
|
import type { ContentBlock } from '../../../types/messages.js';
|
|
8
8
|
import type { LocalAgent } from '../../../types/agent.js';
|
|
9
9
|
import type { ContextStrategy, ContextState } from '../../types.js';
|
|
@@ -16,7 +16,7 @@ export declare class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
16
16
|
when(conditions: OffloadConditions): ContextStrategy;
|
|
17
17
|
apply(context: ContextState): Promise<boolean>;
|
|
18
18
|
protected _applyPerMessage(context: ContextState): Promise<boolean>;
|
|
19
|
-
protected _replaceBlock(block:
|
|
19
|
+
protected _replaceBlock(block: ContentBlock, tokens: number, message: Message, agent: LocalAgent, stashRefs: string[]): Promise<ContentBlock | null>;
|
|
20
20
|
private _resolveModel;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=summarize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAA8B,MAAM,4BAA4B,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,mBAAmB,EAInB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,WAAW,CAAA;AAElB,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,QAAQ,CAAC,IAAI,uBAAsB;IAEnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,iBAAiB;IAK5F,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,eAAe;IAIrC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;cAQpC,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;cA0ClE,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkC/B,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { logger } from '../../../logging/logger.js';
|
|
7
7
|
import { Message, TextBlock, ToolResultBlock } from '../../../types/messages.js';
|
|
8
|
-
import { flattenMessagesToContent,
|
|
9
|
-
import {
|
|
8
|
+
import { flattenMessagesToContent, formatSummarized, summarizeContent, toolResultToContentBlocks, } from '../../methods/summarize.js';
|
|
9
|
+
import { formatStashRefs } from '../../stash.js';
|
|
10
|
+
import { BaseOffloadStrategy, collectRemovableWithPair, spliceWithPairs, repairAlternation, } from './base.js';
|
|
10
11
|
export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
11
12
|
name = 'offload:summarize';
|
|
12
13
|
_config;
|
|
@@ -34,11 +35,9 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
34
35
|
const eligible = await this._getEligibleMessages(context);
|
|
35
36
|
if (eligible.length === 0)
|
|
36
37
|
return false;
|
|
37
|
-
const summarizeCount = Math.max(1, Math.floor(eligible.length * this._removalRatio));
|
|
38
|
-
const toSummarize = eligible.slice(0, summarizeCount);
|
|
39
38
|
// Expand to include paired messages so we don't orphan tool pairs
|
|
40
39
|
const safeSet = new Set();
|
|
41
|
-
for (const message of
|
|
40
|
+
for (const message of eligible) {
|
|
42
41
|
const index = messages.indexOf(message);
|
|
43
42
|
if (index === -1)
|
|
44
43
|
continue;
|
|
@@ -56,27 +55,16 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
56
55
|
const totalTokens = await model.countTokens(safe);
|
|
57
56
|
const summaryMessage = new Message({
|
|
58
57
|
role: 'user',
|
|
59
|
-
content: [
|
|
60
|
-
new TextBlock(`${SUMMARIZED_PREFIX} ${safe.length} messages, ~${totalTokens.toLocaleString()} tokens]\n\n${summary}`),
|
|
61
|
-
],
|
|
58
|
+
content: [new TextBlock(formatSummarized(`${safe.length} messages`, totalTokens, summary))],
|
|
62
59
|
});
|
|
63
|
-
|
|
64
|
-
let lowestIndex = messages.length;
|
|
65
|
-
for (const message of safe) {
|
|
66
|
-
const index = messages.indexOf(message);
|
|
67
|
-
if (index === -1)
|
|
68
|
-
continue;
|
|
69
|
-
if (index < lowestIndex)
|
|
70
|
-
lowestIndex = index;
|
|
71
|
-
messages.splice(index, 1);
|
|
72
|
-
}
|
|
60
|
+
const { lowestIndex } = spliceWithPairs(messages, safe);
|
|
73
61
|
const insertIndex = Math.max(1, Math.min(lowestIndex, messages.length));
|
|
74
62
|
messages.splice(insertIndex, 0, summaryMessage);
|
|
75
63
|
repairAlternation(messages);
|
|
76
64
|
logger.debug(`summarized=<${safe.length}>, tokens=<${totalTokens}> | batched summarization complete`);
|
|
77
65
|
return true;
|
|
78
66
|
}
|
|
79
|
-
async _replaceBlock(block, tokens, message, agent) {
|
|
67
|
+
async _replaceBlock(block, tokens, message, agent, stashRefs) {
|
|
80
68
|
const model = this._resolveModel(agent);
|
|
81
69
|
if (!model)
|
|
82
70
|
return null;
|
|
@@ -88,14 +76,23 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
88
76
|
return new ToolResultBlock({
|
|
89
77
|
toolUseId: block.toolUseId,
|
|
90
78
|
status: block.status,
|
|
91
|
-
content: [new TextBlock(`${
|
|
79
|
+
content: [new TextBlock(`${formatSummarized('tool result', tokens, summary)}${formatStashRefs(stashRefs)}`)],
|
|
92
80
|
});
|
|
93
81
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
if (block instanceof TextBlock) {
|
|
83
|
+
const summary = await summarizeContent([new TextBlock(block.text)], model, this._config);
|
|
84
|
+
if (!summary)
|
|
85
|
+
return null;
|
|
86
|
+
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | summarized text block`);
|
|
87
|
+
return new TextBlock(`${formatSummarized('text block', tokens, summary)}${formatStashRefs(stashRefs)}`);
|
|
88
|
+
}
|
|
89
|
+
const summary = await summarizeContent([block], model, this._config);
|
|
90
|
+
if (summary) {
|
|
91
|
+
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | summarized media block`);
|
|
92
|
+
return new TextBlock(`${formatSummarized('media block', tokens, summary)}${formatStashRefs(stashRefs)}`);
|
|
93
|
+
}
|
|
94
|
+
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | offloaded media block`);
|
|
95
|
+
return new TextBlock(`[Offloaded: ~${tokens} tokens]${formatStashRefs(stashRefs)}`);
|
|
99
96
|
}
|
|
100
97
|
_resolveModel(agent) {
|
|
101
98
|
return this._config.model ?? agent.model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKhF,OAAO,EACL,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
import { Message
|
|
6
|
+
import { Message } from '../../../types/messages.js';
|
|
7
7
|
import type { ContentBlock } from '../../../types/messages.js';
|
|
8
8
|
import type { LocalAgent } from '../../../types/agent.js';
|
|
9
9
|
import type { ContextStrategy, ContextState } from '../../types.js';
|
|
@@ -16,6 +16,6 @@ export declare class TruncateStrategy extends BaseOffloadStrategy {
|
|
|
16
16
|
when(conditions: OffloadConditions): ContextStrategy;
|
|
17
17
|
protected _makeRemovalMarker(count: number): string;
|
|
18
18
|
protected _applyPerMessage(context: ContextState): Promise<boolean>;
|
|
19
|
-
protected _replaceBlock(block:
|
|
19
|
+
protected _replaceBlock(block: ContentBlock, tokens: number, message: Message, _agent: LocalAgent, stashRefs: string[]): Promise<ContentBlock | null>;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=truncate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/truncate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/truncate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAA8B,MAAM,4BAA4B,CAAA;AAChF,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,EAA8C,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE3G,OAAO,EACL,mBAAmB,EAGnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,WAAW,CAAA;AAElB,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,QAAQ,CAAC,IAAI,sBAAqB;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;gBAEpC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,iBAAiB;IAmB3F,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,eAAe;cAIjC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;cAInC,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;cAsBlE,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAkBhC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { logger } from '../../../logging/logger.js';
|
|
7
7
|
import { Message, TextBlock, ToolResultBlock } from '../../../types/messages.js';
|
|
8
8
|
import { truncateToolResultBlock, truncateTextBlock } from '../../methods/truncate.js';
|
|
9
|
+
import { formatStashRefs } from '../../stash.js';
|
|
9
10
|
import { BaseOffloadStrategy, spliceWithPairs, repairAlternation, } from './base.js';
|
|
10
11
|
export class TruncateStrategy extends BaseOffloadStrategy {
|
|
11
12
|
name = 'offload:truncate';
|
|
@@ -35,14 +36,7 @@ export class TruncateStrategy extends BaseOffloadStrategy {
|
|
|
35
36
|
const eligible = await this._getEligibleMessages(context);
|
|
36
37
|
if (eligible.length === 0)
|
|
37
38
|
return false;
|
|
38
|
-
|
|
39
|
-
const previewMode = this._truncateConfig.preview ?? 'headTail';
|
|
40
|
-
const headShare = { head: 1, tail: 0, headTail: 0.3 }[previewMode];
|
|
41
|
-
const targetRemoval = Math.max(1, Math.floor(eligible.length * this._removalRatio));
|
|
42
|
-
const keepCount = eligible.length - targetRemoval;
|
|
43
|
-
const headKeep = Math.floor(keepCount * headShare);
|
|
44
|
-
const tailKeep = keepCount - headKeep;
|
|
45
|
-
const middleMessages = eligible.slice(headKeep, eligible.length - tailKeep);
|
|
39
|
+
const middleMessages = eligible;
|
|
46
40
|
if (middleMessages.length === 0)
|
|
47
41
|
return false;
|
|
48
42
|
const { removed, lowestIndex } = spliceWithPairs(messages, middleMessages);
|
|
@@ -54,13 +48,41 @@ export class TruncateStrategy extends BaseOffloadStrategy {
|
|
|
54
48
|
repairAlternation(messages);
|
|
55
49
|
return true;
|
|
56
50
|
}
|
|
57
|
-
async _replaceBlock(block, tokens, message, _agent) {
|
|
51
|
+
async _replaceBlock(block, tokens, message, _agent, stashRefs) {
|
|
58
52
|
if (block instanceof ToolResultBlock) {
|
|
59
53
|
logger.debug(`toolUseId=<${block.toolUseId}>, tokens=<${tokens}> | truncated tool result`);
|
|
60
|
-
|
|
54
|
+
const truncated = truncateToolResultBlock(block, this._truncateConfig);
|
|
55
|
+
if (truncated !== block) {
|
|
56
|
+
return appendStashRefs(truncated, stashRefs);
|
|
57
|
+
}
|
|
58
|
+
return truncated;
|
|
59
|
+
}
|
|
60
|
+
if (block instanceof TextBlock) {
|
|
61
|
+
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | truncated text block`);
|
|
62
|
+
const truncated = truncateTextBlock(block, this._truncateConfig);
|
|
63
|
+
const refs = formatStashRefs(stashRefs);
|
|
64
|
+
return refs ? new TextBlock(`${truncated.text}\n\n[Stashed]${refs}`) : truncated;
|
|
65
|
+
}
|
|
66
|
+
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | offloaded media block`);
|
|
67
|
+
return new TextBlock(`[Offloaded: ~${tokens} tokens]${formatStashRefs(stashRefs)}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function appendStashRefs(block, stashRefs) {
|
|
71
|
+
const refs = formatStashRefs(stashRefs);
|
|
72
|
+
if (!refs)
|
|
73
|
+
return block;
|
|
74
|
+
const content = [...block.content];
|
|
75
|
+
for (let index = 0; index < content.length; index++) {
|
|
76
|
+
const item = content[index];
|
|
77
|
+
if (item instanceof TextBlock) {
|
|
78
|
+
content[index] = new TextBlock(`${item.text}\n\n[Stashed]${refs}`);
|
|
79
|
+
return new ToolResultBlock({
|
|
80
|
+
toolUseId: block.toolUseId,
|
|
81
|
+
status: block.status,
|
|
82
|
+
content,
|
|
83
|
+
});
|
|
61
84
|
}
|
|
62
|
-
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | truncated text block`);
|
|
63
|
-
return truncateTextBlock(block, this._truncateConfig);
|
|
64
85
|
}
|
|
86
|
+
return block;
|
|
65
87
|
}
|
|
66
88
|
//# sourceMappingURL=truncate.js.map
|