@strands-agents/sdk 1.17.0 → 1.19.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 +4 -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 +14 -29
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +29 -62
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/background-tasks/background-tasks.d.ts.map +1 -1
- package/dist/src/background-tasks/background-tasks.js +13 -10
- package/dist/src/background-tasks/background-tasks.js.map +1 -1
- package/dist/src/context-manager/context-manager.d.ts +27 -4
- package/dist/src/context-manager/context-manager.d.ts.map +1 -1
- package/dist/src/context-manager/context-manager.js +59 -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/conversation-manager/compression/context-compression.d.ts +13 -1
- package/dist/src/conversation-manager/compression/context-compression.d.ts.map +1 -1
- package/dist/src/conversation-manager/compression/context-compression.js +32 -5
- package/dist/src/conversation-manager/compression/context-compression.js.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/interventions/registry.d.ts.map +1 -1
- package/dist/src/interventions/registry.js +5 -0
- package/dist/src/interventions/registry.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +30 -0
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +338 -126
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +10 -0
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +25 -15
- package/dist/src/models/bedrock.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 +6 -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/retry/model-retry-strategy.js +16 -3
- package/dist/src/retry/model-retry-strategy.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.d.ts.map +1 -1
- package/dist/src/sandbox/stream-process.js +6 -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 +7 -3
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +6 -0
- 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/handoff-to-user/handoff-to-user.d.ts +28 -0
- package/dist/src/vended-tools/handoff-to-user/handoff-to-user.d.ts.map +1 -0
- package/dist/src/vended-tools/handoff-to-user/handoff-to-user.js +45 -0
- package/dist/src/vended-tools/handoff-to-user/handoff-to-user.js.map +1 -0
- package/dist/src/vended-tools/handoff-to-user/index.d.ts +8 -0
- package/dist/src/vended-tools/handoff-to-user/index.d.ts.map +1 -0
- package/dist/src/vended-tools/handoff-to-user/index.js +6 -0
- package/dist/src/vended-tools/handoff-to-user/index.js.map +1 -0
- package/dist/src/vended-tools/handoff-to-user/types.d.ts +18 -0
- package/dist/src/vended-tools/handoff-to-user/types.d.ts.map +1 -0
- package/dist/src/vended-tools/handoff-to-user/types.js +11 -0
- package/dist/src/vended-tools/handoff-to-user/types.js.map +1 -0
- package/dist/src/vended-tools/index.d.ts +14 -3
- package/dist/src/vended-tools/index.d.ts.map +1 -1
- package/dist/src/vended-tools/index.js +14 -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 +24 -4
|
@@ -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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"}
|
|
@@ -5,6 +5,7 @@ import { logger } from '../../../logging/logger.js';
|
|
|
5
5
|
import { MessageAddedEvent } from '../../../hooks/events.js';
|
|
6
6
|
import { Message, TextBlock, ToolResultBlock, ToolUseBlock, CachePointBlock, ReasoningBlock, } from '../../../types/messages.js';
|
|
7
7
|
import { RETRIEVAL_TOOL_NAME } from '../../retrieval-tool.js';
|
|
8
|
+
import { isPinned } from '../../../conversation-manager/compression/pin-message.js';
|
|
8
9
|
// --- Shared helpers ---
|
|
9
10
|
function finiteOrUndefined(value) {
|
|
10
11
|
return typeof value === 'number' && Number.isFinite(value) ? Math.max(0, value) : undefined;
|
|
@@ -68,11 +69,14 @@ export function messageMatchesTarget(message, target, toolNameMap, toolIncludeFi
|
|
|
68
69
|
return false;
|
|
69
70
|
}
|
|
70
71
|
/**
|
|
71
|
-
* Returns target-matching messages excluding the
|
|
72
|
-
* 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.
|
|
73
76
|
*/
|
|
74
|
-
export function getOldestMatches(messages, target,
|
|
77
|
+
export function getOldestMatches(messages, target, preserveRecent, toolNameMap, toolIncludeFilter, toolExcludeFilter) {
|
|
75
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);
|
|
76
80
|
if (count >= matching.length)
|
|
77
81
|
return [];
|
|
78
82
|
return matching.slice(0, -count);
|
|
@@ -147,9 +151,12 @@ export function repairAlternation(messages) {
|
|
|
147
151
|
const current = messages[readIndex];
|
|
148
152
|
if (writeIndex > 0 && messages[writeIndex - 1].role === current.role) {
|
|
149
153
|
const prev = messages[writeIndex - 1];
|
|
154
|
+
const pinned = prev.metadata?.custom?.pinned === true || current.metadata?.custom?.pinned === true;
|
|
150
155
|
messages[writeIndex - 1] = new Message({
|
|
151
156
|
role: prev.role,
|
|
152
157
|
content: [...prev.content, ...current.content],
|
|
158
|
+
trackingId: prev.trackingId,
|
|
159
|
+
...(pinned ? { metadata: { custom: { pinned: true } } } : {}),
|
|
153
160
|
});
|
|
154
161
|
}
|
|
155
162
|
else {
|
|
@@ -198,7 +205,6 @@ export class BaseOffloadStrategy {
|
|
|
198
205
|
_threshold;
|
|
199
206
|
_utilizationThreshold;
|
|
200
207
|
_preserveRecent;
|
|
201
|
-
_removalRatio = 0.3;
|
|
202
208
|
_includeFilter;
|
|
203
209
|
_excludeFilter;
|
|
204
210
|
_stash;
|
|
@@ -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;
|
|
@@ -226,6 +232,9 @@ export class BaseOffloadStrategy {
|
|
|
226
232
|
return;
|
|
227
233
|
agent.addHook(MessageAddedEvent, async (event) => {
|
|
228
234
|
const messages = event.agent.messages;
|
|
235
|
+
const index = messages.indexOf(event.message);
|
|
236
|
+
if (index >= 0 && isPinned(messages, index))
|
|
237
|
+
return;
|
|
229
238
|
const toolNameMap = buildToolNameMap(messages);
|
|
230
239
|
await this._transformBlocks(event.message, messages, toolNameMap, event.agent);
|
|
231
240
|
});
|
|
@@ -234,7 +243,7 @@ export class BaseOffloadStrategy {
|
|
|
234
243
|
if (context.stash)
|
|
235
244
|
this._stash = context.stash;
|
|
236
245
|
if (this._isMessageLevel) {
|
|
237
|
-
if (context.utilization < this._utilizationThreshold)
|
|
246
|
+
if (!context.overflow && context.utilization < this._utilizationThreshold)
|
|
238
247
|
return false;
|
|
239
248
|
return this._applyPerMessage(context);
|
|
240
249
|
}
|
|
@@ -249,13 +258,16 @@ export class BaseOffloadStrategy {
|
|
|
249
258
|
: messages;
|
|
250
259
|
let acted = false;
|
|
251
260
|
for (const message of eligible) {
|
|
261
|
+
const index = messages.indexOf(message);
|
|
262
|
+
if (isPinned(messages, index))
|
|
263
|
+
continue;
|
|
252
264
|
if (await this._transformBlocks(message, messages, toolNameMap, agent)) {
|
|
253
265
|
acted = true;
|
|
254
266
|
}
|
|
255
267
|
}
|
|
256
268
|
return acted;
|
|
257
269
|
}
|
|
258
|
-
/** Message-level execution: remove
|
|
270
|
+
/** Message-level execution: remove eligible messages with pair safety. */
|
|
259
271
|
async _applyPerMessage(context) {
|
|
260
272
|
const { messages } = context;
|
|
261
273
|
if (messages.length <= 1)
|
|
@@ -263,9 +275,7 @@ export class BaseOffloadStrategy {
|
|
|
263
275
|
const eligible = await this._getEligibleMessages(context);
|
|
264
276
|
if (eligible.length === 0)
|
|
265
277
|
return false;
|
|
266
|
-
const
|
|
267
|
-
const toRemove = eligible.slice(0, targetRemoval);
|
|
268
|
-
const { removed, lowestIndex } = spliceWithPairs(messages, toRemove);
|
|
278
|
+
const { removed, lowestIndex } = spliceWithPairs(messages, eligible);
|
|
269
279
|
if (removed === 0)
|
|
270
280
|
return false;
|
|
271
281
|
const marker = this._makeRemovalMarker(removed);
|
|
@@ -327,10 +337,14 @@ export class BaseOffloadStrategy {
|
|
|
327
337
|
const toolNameMap = buildToolNameMap(messages);
|
|
328
338
|
let candidates;
|
|
329
339
|
if (this._preserveRecent > 0) {
|
|
330
|
-
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
|
+
});
|
|
331
344
|
}
|
|
332
345
|
else {
|
|
333
346
|
candidates = messages.filter((message, index) => index > 0 &&
|
|
347
|
+
!isPinned(messages, index) &&
|
|
334
348
|
messageMatchesTarget(message, this._target, toolNameMap, this._includeFilter, this._excludeFilter));
|
|
335
349
|
}
|
|
336
350
|
if (this._threshold === undefined)
|
|
@@ -354,6 +368,7 @@ export class BaseOffloadStrategy {
|
|
|
354
368
|
}
|
|
355
369
|
}
|
|
356
370
|
// --- Emergency truncation strategy ---
|
|
371
|
+
const EMERGENCY_REMOVAL_RATIO = 0.2;
|
|
357
372
|
/**
|
|
358
373
|
* Last-resort strategy that recomputes utilization and drops the oldest 20% of messages
|
|
359
374
|
* when the context window is still overflowing after all user-configured strategies have run.
|
|
@@ -365,7 +380,6 @@ export class BaseOffloadStrategy {
|
|
|
365
380
|
*/
|
|
366
381
|
export class EmergencyTruncateStrategy extends BaseOffloadStrategy {
|
|
367
382
|
name = 'offload:emergency-truncate';
|
|
368
|
-
_removalRatio = 0.2;
|
|
369
383
|
constructor() {
|
|
370
384
|
super('*');
|
|
371
385
|
}
|
|
@@ -375,11 +389,27 @@ export class EmergencyTruncateStrategy extends BaseOffloadStrategy {
|
|
|
375
389
|
async apply(context) {
|
|
376
390
|
if (context.messages.length <= 3)
|
|
377
391
|
return false;
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
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)
|
|
404
|
+
return false;
|
|
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)
|
|
381
410
|
return false;
|
|
382
|
-
|
|
411
|
+
repairAlternation(messages);
|
|
412
|
+
return true;
|
|
383
413
|
}
|
|
384
414
|
async _replaceBlock() {
|
|
385
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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"}
|
|
@@ -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,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;
|
|
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,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { logger } from '../../../logging/logger.js';
|
|
7
7
|
import { Message, TextBlock, ToolResultBlock } from '../../../types/messages.js';
|
|
8
|
-
import { flattenMessagesToContent,
|
|
8
|
+
import { flattenMessagesToContent, formatSummarized, summarizeContent, toolResultToContentBlocks, } from '../../methods/summarize.js';
|
|
9
9
|
import { formatStashRefs } from '../../stash.js';
|
|
10
10
|
import { BaseOffloadStrategy, collectRemovableWithPair, spliceWithPairs, repairAlternation, } from './base.js';
|
|
11
11
|
export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
@@ -35,11 +35,9 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
35
35
|
const eligible = await this._getEligibleMessages(context);
|
|
36
36
|
if (eligible.length === 0)
|
|
37
37
|
return false;
|
|
38
|
-
const summarizeCount = Math.max(1, Math.floor(eligible.length * this._removalRatio));
|
|
39
|
-
const toSummarize = eligible.slice(0, summarizeCount);
|
|
40
38
|
// Expand to include paired messages so we don't orphan tool pairs
|
|
41
39
|
const safeSet = new Set();
|
|
42
|
-
for (const message of
|
|
40
|
+
for (const message of eligible) {
|
|
43
41
|
const index = messages.indexOf(message);
|
|
44
42
|
if (index === -1)
|
|
45
43
|
continue;
|
|
@@ -57,9 +55,7 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
57
55
|
const totalTokens = await model.countTokens(safe);
|
|
58
56
|
const summaryMessage = new Message({
|
|
59
57
|
role: 'user',
|
|
60
|
-
content: [
|
|
61
|
-
new TextBlock(`${SUMMARIZED_PREFIX} ${safe.length} messages, ~${totalTokens.toLocaleString()} tokens]\n\n${summary}`),
|
|
62
|
-
],
|
|
58
|
+
content: [new TextBlock(formatSummarized(`${safe.length} messages`, totalTokens, summary))],
|
|
63
59
|
});
|
|
64
60
|
const { lowestIndex } = spliceWithPairs(messages, safe);
|
|
65
61
|
const insertIndex = Math.max(1, Math.min(lowestIndex, messages.length));
|
|
@@ -80,9 +76,7 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
80
76
|
return new ToolResultBlock({
|
|
81
77
|
toolUseId: block.toolUseId,
|
|
82
78
|
status: block.status,
|
|
83
|
-
content: [
|
|
84
|
-
new TextBlock(`${SUMMARIZED_PREFIX} ~${tokens.toLocaleString()} tokens |${formatStashRefs(stashRefs)}]\n\n${summary}`),
|
|
85
|
-
],
|
|
79
|
+
content: [new TextBlock(`${formatSummarized('tool result', tokens, summary)}${formatStashRefs(stashRefs)}`)],
|
|
86
80
|
});
|
|
87
81
|
}
|
|
88
82
|
if (block instanceof TextBlock) {
|
|
@@ -90,10 +84,15 @@ export class SummarizeStrategy extends BaseOffloadStrategy {
|
|
|
90
84
|
if (!summary)
|
|
91
85
|
return null;
|
|
92
86
|
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | summarized text block`);
|
|
93
|
-
return new TextBlock(`${
|
|
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)}`);
|
|
94
93
|
}
|
|
95
94
|
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | offloaded media block`);
|
|
96
|
-
return new TextBlock(`[Offloaded: ~${tokens} tokens${formatStashRefs(stashRefs)}
|
|
95
|
+
return new TextBlock(`[Offloaded: ~${tokens} tokens]${formatStashRefs(stashRefs)}`);
|
|
97
96
|
}
|
|
98
97
|
_resolveModel(agent) {
|
|
99
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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"}
|
|
@@ -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,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;
|
|
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"}
|
|
@@ -36,14 +36,7 @@ export class TruncateStrategy extends BaseOffloadStrategy {
|
|
|
36
36
|
const eligible = await this._getEligibleMessages(context);
|
|
37
37
|
if (eligible.length === 0)
|
|
38
38
|
return false;
|
|
39
|
-
|
|
40
|
-
const previewMode = this._truncateConfig.preview ?? 'headTail';
|
|
41
|
-
const headShare = { head: 1, tail: 0, headTail: 0.3 }[previewMode];
|
|
42
|
-
const targetRemoval = Math.max(1, Math.floor(eligible.length * this._removalRatio));
|
|
43
|
-
const keepCount = eligible.length - targetRemoval;
|
|
44
|
-
const headKeep = Math.floor(keepCount * headShare);
|
|
45
|
-
const tailKeep = keepCount - headKeep;
|
|
46
|
-
const middleMessages = eligible.slice(headKeep, eligible.length - tailKeep);
|
|
39
|
+
const middleMessages = eligible;
|
|
47
40
|
if (middleMessages.length === 0)
|
|
48
41
|
return false;
|
|
49
42
|
const { removed, lowestIndex } = spliceWithPairs(messages, middleMessages);
|
|
@@ -68,10 +61,10 @@ export class TruncateStrategy extends BaseOffloadStrategy {
|
|
|
68
61
|
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | truncated text block`);
|
|
69
62
|
const truncated = truncateTextBlock(block, this._truncateConfig);
|
|
70
63
|
const refs = formatStashRefs(stashRefs);
|
|
71
|
-
return refs ? new TextBlock(`${truncated.text}\n\n[Stashed
|
|
64
|
+
return refs ? new TextBlock(`${truncated.text}\n\n[Stashed]${refs}`) : truncated;
|
|
72
65
|
}
|
|
73
66
|
logger.debug(`trackingId=<${message.trackingId}>, tokens=<${tokens}> | offloaded media block`);
|
|
74
|
-
return new TextBlock(`[Offloaded: ~${tokens} tokens${formatStashRefs(stashRefs)}
|
|
67
|
+
return new TextBlock(`[Offloaded: ~${tokens} tokens]${formatStashRefs(stashRefs)}`);
|
|
75
68
|
}
|
|
76
69
|
}
|
|
77
70
|
function appendStashRefs(block, stashRefs) {
|
|
@@ -82,7 +75,7 @@ function appendStashRefs(block, stashRefs) {
|
|
|
82
75
|
for (let index = 0; index < content.length; index++) {
|
|
83
76
|
const item = content[index];
|
|
84
77
|
if (item instanceof TextBlock) {
|
|
85
|
-
content[index] = new TextBlock(`${item.text}\n\n[Stashed
|
|
78
|
+
content[index] = new TextBlock(`${item.text}\n\n[Stashed]${refs}`);
|
|
86
79
|
return new ToolResultBlock({
|
|
87
80
|
toolUseId: block.toolUseId,
|
|
88
81
|
status: block.status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/truncate.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,uBAAuB,EAAE,iBAAiB,EAAuB,MAAM,2BAA2B,CAAA;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAGlB,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IAC9C,IAAI,GAAG,kBAAkB,CAAA;IAEjB,eAAe,CAAgB;IAEhD,YAAY,MAAsB,EAAE,MAAuB,EAAE,UAA8B;QACzF,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,EAAE,CAAA;QAEnC,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YAC3G,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa;YACpC,CAAC,CAAC,IAAI,CAAA;QACV,IACE,UAAU,EAAE,SAAS,KAAK,SAAS;YACnC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YACrC,UAAU,CAAC,SAAS,IAAI,aAAa,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,cAAc,UAAU,CAAC,SAAS,yCAAyC,aAAa,kCAAkC,CAC3H,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAA6B;QAChC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC7E,CAAC;IAEkB,kBAAkB,CAAC,KAAa;QACjD,OAAO,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,cAAc,CAAA;IAC5E,CAAC;IAEkB,KAAK,CAAC,gBAAgB,CAAC,OAAqB;QAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QAEtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEvC,
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../../../../src/context-manager/strategies/offload/truncate.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,uBAAuB,EAAE,iBAAiB,EAAuB,MAAM,2BAA2B,CAAA;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAGlB,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IAC9C,IAAI,GAAG,kBAAkB,CAAA;IAEjB,eAAe,CAAgB;IAEhD,YAAY,MAAsB,EAAE,MAAuB,EAAE,UAA8B;QACzF,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,EAAE,CAAA;QAEnC,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YAC3G,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa;YACpC,CAAC,CAAC,IAAI,CAAA;QACV,IACE,UAAU,EAAE,SAAS,KAAK,SAAS;YACnC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YACrC,UAAU,CAAC,SAAS,IAAI,aAAa,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,cAAc,UAAU,CAAC,SAAS,yCAAyC,aAAa,kCAAkC,CAC3H,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAA6B;QAChC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC7E,CAAC;IAEkB,kBAAkB,CAAC,KAAa;QACjD,OAAO,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,cAAc,CAAA;IAC5E,CAAC;IAEkB,KAAK,CAAC,gBAAgB,CAAC,OAAqB;QAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QAEtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEvC,MAAM,cAAc,GAAG,QAAQ,CAAA;QAE/B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAE7C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QAC1E,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAEhG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,KAAmB,EACnB,MAAc,EACd,OAAgB,EAChB,MAAkB,EAClB,SAAmB;QAEnB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,SAAS,cAAc,MAAM,2BAA2B,CAAC,CAAA;YAC1F,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;YACtE,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAC9C,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,UAAU,cAAc,MAAM,0BAA0B,CAAC,CAAA;YAC7F,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;YAChE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;YACvC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClF,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,UAAU,cAAc,MAAM,2BAA2B,CAAC,CAAA;QAC9F,OAAO,IAAI,SAAS,CAAC,gBAAgB,MAAM,WAAW,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACrF,CAAC;CACF;AAED,SAAS,eAAe,CAAC,KAAsB,EAAE,SAAmB;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAEvB,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAE,CAAA;QAC5B,IAAI,IAAI,YAAY,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,gBAAgB,IAAI,EAAE,CAAC,CAAA;YAClE,OAAO,IAAI,eAAe,CAAC;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -5,6 +5,7 @@ import type { Storage } from '../storage/storage.js';
|
|
|
5
5
|
import type { Stash } from './stash.js';
|
|
6
6
|
import type { LocalAgent } from '../types/agent.js';
|
|
7
7
|
import type { Message } from '../types/messages.js';
|
|
8
|
+
import type { StrategyPresetName } from './presets.js';
|
|
8
9
|
/**
|
|
9
10
|
* A context reduction strategy that can offload, summarize, or otherwise
|
|
10
11
|
* transform the message array to reduce token usage.
|
|
@@ -40,6 +41,12 @@ export interface ContextState {
|
|
|
40
41
|
agent: LocalAgent;
|
|
41
42
|
/** Current context utilization ratio (0-1+). Above 1.0 means overflow. */
|
|
42
43
|
utilization: number;
|
|
44
|
+
/**
|
|
45
|
+
* Set when running in response to a `ContextWindowOverflowError`.
|
|
46
|
+
* Strategies should bypass utilization gates when true — the provider
|
|
47
|
+
* already rejected the request, so the estimate is not trustworthy.
|
|
48
|
+
*/
|
|
49
|
+
overflow?: boolean;
|
|
43
50
|
/** L1 stash for persisting offloaded content. Present when storage is configured. */
|
|
44
51
|
stash?: Stash;
|
|
45
52
|
}
|
|
@@ -69,8 +76,11 @@ export interface ContextManagerConfig {
|
|
|
69
76
|
* sees the output of the previous. Order determines priority — if two strategies
|
|
70
77
|
* target the same content, the first one to shrink it below the next strategy's
|
|
71
78
|
* threshold wins. When omitted, uses the default pipeline.
|
|
79
|
+
*
|
|
80
|
+
* Accepts raw `ContextStrategy` objects, preset name strings (e.g. `'largeToolOffloading'`),
|
|
81
|
+
* or a mix of both. Preset strings are resolved to their default strategy configurations.
|
|
72
82
|
*/
|
|
73
|
-
strategies?: ContextStrategy[];
|
|
83
|
+
strategies?: (ContextStrategy | StrategyPresetName)[];
|
|
74
84
|
/**
|
|
75
85
|
* L1 stash configuration. The stash persists offloaded content so the agent can
|
|
76
86
|
* retrieve it on demand via the `retrieve_context` tool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context-manager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context-manager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IAE7C;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+FAA+F;IAC/F,QAAQ,EAAE,OAAO,EAAE,CAAA;IAEnB,0BAA0B;IAC1B,KAAK,EAAE,UAAU,CAAA;IAEjB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,qFAAqF;IACrF,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,kBAAkB,CAAC,EAAE,CAAA;IAErD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;CAC9B"}
|