@strands-agents/sdk 1.15.0 → 1.17.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.
Files changed (162) hide show
  1. package/README.md +1 -1
  2. package/dist/src/agent/agent.d.ts +4 -0
  3. package/dist/src/agent/agent.d.ts.map +1 -1
  4. package/dist/src/agent/agent.js +66 -16
  5. package/dist/src/agent/agent.js.map +1 -1
  6. package/dist/src/background-tasks/background-tasks.d.ts +41 -0
  7. package/dist/src/background-tasks/background-tasks.d.ts.map +1 -0
  8. package/dist/src/background-tasks/background-tasks.js +402 -0
  9. package/dist/src/background-tasks/background-tasks.js.map +1 -0
  10. package/dist/src/background-tasks/errors.d.ts +7 -0
  11. package/dist/src/background-tasks/errors.d.ts.map +1 -1
  12. package/dist/src/background-tasks/errors.js +10 -0
  13. package/dist/src/background-tasks/errors.js.map +1 -1
  14. package/dist/src/background-tasks/in-process/engine.d.ts +3 -4
  15. package/dist/src/background-tasks/in-process/engine.d.ts.map +1 -1
  16. package/dist/src/background-tasks/in-process/engine.js +9 -25
  17. package/dist/src/background-tasks/in-process/engine.js.map +1 -1
  18. package/dist/src/background-tasks/in-process/manager.d.ts +41 -0
  19. package/dist/src/background-tasks/in-process/manager.d.ts.map +1 -0
  20. package/dist/src/background-tasks/in-process/manager.js +214 -0
  21. package/dist/src/background-tasks/in-process/manager.js.map +1 -0
  22. package/dist/src/background-tasks/in-process/types.d.ts +9 -14
  23. package/dist/src/background-tasks/in-process/types.d.ts.map +1 -1
  24. package/dist/src/background-tasks/manager.d.ts +59 -0
  25. package/dist/src/background-tasks/manager.d.ts.map +1 -0
  26. package/dist/src/background-tasks/manager.js +2 -0
  27. package/dist/src/background-tasks/manager.js.map +1 -0
  28. package/dist/src/background-tasks/timer.d.ts +3 -0
  29. package/dist/src/background-tasks/timer.d.ts.map +1 -0
  30. package/dist/src/background-tasks/timer.js +11 -0
  31. package/dist/src/background-tasks/timer.js.map +1 -0
  32. package/dist/src/background-tasks/types.d.ts +60 -0
  33. package/dist/src/background-tasks/types.d.ts.map +1 -0
  34. package/dist/src/background-tasks/types.js +11 -0
  35. package/dist/src/background-tasks/types.js.map +1 -0
  36. package/dist/src/context-manager/context-manager.d.ts +22 -1
  37. package/dist/src/context-manager/context-manager.d.ts.map +1 -1
  38. package/dist/src/context-manager/context-manager.js +57 -3
  39. package/dist/src/context-manager/context-manager.js.map +1 -1
  40. package/dist/src/context-manager/methods/summarize.d.ts +2 -2
  41. package/dist/src/context-manager/methods/summarize.d.ts.map +1 -1
  42. package/dist/src/context-manager/methods/summarize.js +0 -2
  43. package/dist/src/context-manager/methods/summarize.js.map +1 -1
  44. package/dist/src/context-manager/methods/truncate.d.ts +2 -2
  45. package/dist/src/context-manager/methods/truncate.d.ts.map +1 -1
  46. package/dist/src/context-manager/methods/truncate.js +0 -2
  47. package/dist/src/context-manager/methods/truncate.js.map +1 -1
  48. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +2 -2
  49. package/dist/src/context-manager/retrieval-tool.d.ts +29 -0
  50. package/dist/src/context-manager/retrieval-tool.d.ts.map +1 -0
  51. package/dist/src/context-manager/retrieval-tool.js +98 -0
  52. package/dist/src/context-manager/retrieval-tool.js.map +1 -0
  53. package/dist/src/context-manager/stash.d.ts +107 -0
  54. package/dist/src/context-manager/stash.d.ts.map +1 -0
  55. package/dist/src/context-manager/stash.js +186 -0
  56. package/dist/src/context-manager/stash.js.map +1 -0
  57. package/dist/src/context-manager/strategies/offload/base.d.ts +10 -6
  58. package/dist/src/context-manager/strategies/offload/base.d.ts.map +1 -1
  59. package/dist/src/context-manager/strategies/offload/base.js +21 -9
  60. package/dist/src/context-manager/strategies/offload/base.js.map +1 -1
  61. package/dist/src/context-manager/strategies/offload/drop.d.ts +2 -2
  62. package/dist/src/context-manager/strategies/offload/drop.d.ts.map +1 -1
  63. package/dist/src/context-manager/strategies/offload/drop.js +6 -4
  64. package/dist/src/context-manager/strategies/offload/drop.js.map +1 -1
  65. package/dist/src/context-manager/strategies/offload/index.d.ts +1 -1
  66. package/dist/src/context-manager/strategies/offload/index.js +1 -1
  67. package/dist/src/context-manager/strategies/offload/summarize.d.ts +2 -2
  68. package/dist/src/context-manager/strategies/offload/summarize.d.ts.map +1 -1
  69. package/dist/src/context-manager/strategies/offload/summarize.js +16 -18
  70. package/dist/src/context-manager/strategies/offload/summarize.js.map +1 -1
  71. package/dist/src/context-manager/strategies/offload/truncate.d.ts +2 -2
  72. package/dist/src/context-manager/strategies/offload/truncate.d.ts.map +1 -1
  73. package/dist/src/context-manager/strategies/offload/truncate.js +33 -4
  74. package/dist/src/context-manager/strategies/offload/truncate.js.map +1 -1
  75. package/dist/src/context-manager/types.d.ts +35 -1
  76. package/dist/src/context-manager/types.d.ts.map +1 -1
  77. package/dist/src/experimental/index.d.ts +6 -0
  78. package/dist/src/experimental/index.d.ts.map +1 -1
  79. package/dist/src/experimental/index.js +3 -0
  80. package/dist/src/experimental/index.js.map +1 -1
  81. package/dist/src/index.d.ts +4 -3
  82. package/dist/src/index.d.ts.map +1 -1
  83. package/dist/src/index.js +1 -1
  84. package/dist/src/index.js.map +1 -1
  85. package/dist/src/mcp/client.d.ts +3 -2
  86. package/dist/src/mcp/client.d.ts.map +1 -1
  87. package/dist/src/mcp/client.js +3 -2
  88. package/dist/src/mcp/client.js.map +1 -1
  89. package/dist/src/mcp/config.d.ts +11 -1
  90. package/dist/src/mcp/config.d.ts.map +1 -1
  91. package/dist/src/mcp/config.js.map +1 -1
  92. package/dist/src/mcp/config.node.d.ts +3 -2
  93. package/dist/src/mcp/config.node.d.ts.map +1 -1
  94. package/dist/src/mcp/config.node.js +6 -3
  95. package/dist/src/mcp/config.node.js.map +1 -1
  96. package/dist/src/mcp/index.d.ts +1 -1
  97. package/dist/src/mcp/index.d.ts.map +1 -1
  98. package/dist/src/models/openai/cache.d.ts +28 -1
  99. package/dist/src/models/openai/cache.d.ts.map +1 -1
  100. package/dist/src/models/openai/cache.js +37 -13
  101. package/dist/src/models/openai/cache.js.map +1 -1
  102. package/dist/src/models/routing/classifier-strategy.d.ts +87 -0
  103. package/dist/src/models/routing/classifier-strategy.d.ts.map +1 -0
  104. package/dist/src/models/routing/classifier-strategy.js +285 -0
  105. package/dist/src/models/routing/classifier-strategy.js.map +1 -0
  106. package/dist/src/models/routing/index.d.ts +2 -0
  107. package/dist/src/models/routing/index.d.ts.map +1 -1
  108. package/dist/src/models/routing/index.js +1 -0
  109. package/dist/src/models/routing/index.js.map +1 -1
  110. package/dist/src/models/routing/router.d.ts +14 -2
  111. package/dist/src/models/routing/router.d.ts.map +1 -1
  112. package/dist/src/models/routing/router.js +43 -8
  113. package/dist/src/models/routing/router.js.map +1 -1
  114. package/dist/src/models/vercel.d.ts +9 -1
  115. package/dist/src/models/vercel.d.ts.map +1 -1
  116. package/dist/src/models/vercel.js +248 -7
  117. package/dist/src/models/vercel.js.map +1 -1
  118. package/dist/src/session/session-manager.d.ts +5 -1
  119. package/dist/src/session/session-manager.d.ts.map +1 -1
  120. package/dist/src/session/session-manager.js +51 -1
  121. package/dist/src/session/session-manager.js.map +1 -1
  122. package/dist/src/session/snapshot-storage-adapter.d.ts.map +1 -1
  123. package/dist/src/session/snapshot-storage-adapter.js +1 -0
  124. package/dist/src/session/snapshot-storage-adapter.js.map +1 -1
  125. package/dist/src/storage/in-memory-storage.d.ts +2 -0
  126. package/dist/src/storage/in-memory-storage.d.ts.map +1 -1
  127. package/dist/src/storage/in-memory-storage.js +2 -1
  128. package/dist/src/storage/in-memory-storage.js.map +1 -1
  129. package/dist/src/storage/local-file-storage.d.ts +4 -6
  130. package/dist/src/storage/local-file-storage.d.ts.map +1 -1
  131. package/dist/src/storage/local-file-storage.js +12 -10
  132. package/dist/src/storage/local-file-storage.js.map +1 -1
  133. package/dist/src/storage/search/keyword.d.ts +1 -0
  134. package/dist/src/storage/search/keyword.d.ts.map +1 -1
  135. package/dist/src/storage/search/keyword.js +124 -0
  136. package/dist/src/storage/search/keyword.js.map +1 -1
  137. package/dist/src/storage/search/qmd.d.ts +66 -0
  138. package/dist/src/storage/search/qmd.d.ts.map +1 -0
  139. package/dist/src/storage/search/qmd.js +124 -0
  140. package/dist/src/storage/search/qmd.js.map +1 -0
  141. package/dist/src/storage/storage.d.ts +8 -0
  142. package/dist/src/storage/storage.d.ts.map +1 -1
  143. package/dist/src/storage/storage.js +18 -0
  144. package/dist/src/storage/storage.js.map +1 -1
  145. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  146. package/dist/src/telemetry/tracer.js +4 -2
  147. package/dist/src/telemetry/tracer.js.map +1 -1
  148. package/dist/src/tools/executors/executor.d.ts +11 -1
  149. package/dist/src/tools/executors/executor.d.ts.map +1 -1
  150. package/dist/src/tools/executors/executor.js +50 -16
  151. package/dist/src/tools/executors/executor.js.map +1 -1
  152. package/dist/src/tsconfig.tsbuildinfo +1 -1
  153. package/dist/src/types/agent.d.ts +9 -0
  154. package/dist/src/types/agent.d.ts.map +1 -1
  155. package/dist/src/types/agent.js.map +1 -1
  156. package/dist/src/vended-memory-stores/file-memory-store/store.d.ts +9 -0
  157. package/dist/src/vended-memory-stores/file-memory-store/store.d.ts.map +1 -1
  158. package/dist/src/vended-memory-stores/file-memory-store/store.js +18 -13
  159. package/dist/src/vended-memory-stores/file-memory-store/store.js.map +1 -1
  160. package/dist/src/vended-tools/file-editor/file-editor.js +35 -30
  161. package/dist/src/vended-tools/file-editor/file-editor.js.map +1 -1
  162. package/package.json +12 -2
@@ -3,10 +3,14 @@
3
3
  *
4
4
  * On overflow, runs the strategy pipeline (including an emergency truncation as the final step).
5
5
  */
6
- import { AfterModelCallEvent, BeforeModelCallEvent } from '../hooks/events.js';
6
+ import { AfterModelCallEvent, BeforeModelCallEvent, MessageAddedEvent } from '../hooks/events.js';
7
7
  import { ContextWindowOverflowError } from '../errors.js';
8
+ import { InMemoryStorage } from '../storage/in-memory-storage.js';
9
+ import { EPHEMERAL } from '../storage/storage.js';
8
10
  import { logger } from '../logging/logger.js';
9
11
  import { EmergencyTruncateStrategy, Offload } from './strategies/offload/index.js';
12
+ import { Stash } from './stash.js';
13
+ import { createRetrievalTool, trackRetrievalToolUseIds } from './retrieval-tool.js';
10
14
  /**
11
15
  * Manages context reduction for an agent's conversation.
12
16
  *
@@ -19,11 +23,16 @@ import { EmergencyTruncateStrategy, Offload } from './strategies/offload/index.j
19
23
  * overflow recovery — no separate ConversationManager is needed.
20
24
  *
21
25
  * @experimental
22
- * @internal
23
26
  */
24
27
  export class ContextManager {
25
28
  name = 'strands:context-manager';
26
29
  _strategies;
30
+ _stashStorage;
31
+ _enableRetrievalTool;
32
+ _retrievalToolUseIds = new Set();
33
+ _stash;
34
+ _stashIsDurable = false;
35
+ _retrievalTool;
27
36
  constructor(config) {
28
37
  this._strategies = [
29
38
  ...(config?.strategies ?? [
@@ -32,10 +41,37 @@ export class ContextManager {
32
41
  ]),
33
42
  new EmergencyTruncateStrategy(),
34
43
  ];
44
+ const stashConfig = config?.stash;
45
+ const stashObj = typeof stashConfig === 'object' ? stashConfig : undefined;
46
+ this._stashStorage = stashConfig === false ? false : stashObj?.storage;
47
+ this._enableRetrievalTool = stashConfig !== false && stashObj?.retrievalTool !== false;
48
+ }
49
+ getTools() {
50
+ if (!this._enableRetrievalTool)
51
+ return [];
52
+ if (!this._stash)
53
+ return [];
54
+ if (!this._retrievalTool) {
55
+ this._retrievalTool = createRetrievalTool(this._stash);
56
+ }
57
+ return [this._retrievalTool];
35
58
  }
36
59
  initAgent(agent) {
60
+ if (this._stashStorage !== false) {
61
+ const storage = this._stashStorage ?? agent.storage ?? new InMemoryStorage();
62
+ this._stashIsDurable = !(EPHEMERAL in storage);
63
+ this._stash = new Stash(storage, agent.sessionId, agent.id);
64
+ }
65
+ if (this._stash) {
66
+ const stash = this._stash;
67
+ const skipSet = this._retrievalToolUseIds;
68
+ agent.addHook(MessageAddedEvent, async (event) => {
69
+ trackRetrievalToolUseIds(event.message, skipSet);
70
+ await stash.storeMessage(event.message, skipSet);
71
+ });
72
+ }
37
73
  for (const strategy of this._strategies) {
38
- strategy.init?.(agent);
74
+ strategy.init?.(agent, this._stash);
39
75
  }
40
76
  agent.addHook(BeforeModelCallEvent, async (event) => {
41
77
  await this._runStrategies(event.agent, event.projectedInputTokens);
@@ -61,6 +97,23 @@ export class ContextManager {
61
97
  event.retry = true;
62
98
  });
63
99
  }
100
+ /**
101
+ * The L1 stash instance, if stash is enabled and the agent has been initialized.
102
+ *
103
+ * @returns The stash, or undefined if stash is disabled or initAgent has not run
104
+ */
105
+ get stash() {
106
+ return this._stash;
107
+ }
108
+ /**
109
+ * Whether the stash is backed by durable storage that survives process restarts.
110
+ * When true, stash data does not need to be embedded in session snapshots.
111
+ *
112
+ * @returns true if the stash storage is not ephemeral
113
+ */
114
+ get stashIsDurable() {
115
+ return this._stashIsDurable;
116
+ }
64
117
  async _runStrategies(agent, precomputedInputTokens) {
65
118
  const messages = agent.messages;
66
119
  const inputTokens = precomputedInputTokens ?? (await agent.model.countTokens(messages));
@@ -68,6 +121,7 @@ export class ContextManager {
68
121
  messages,
69
122
  agent,
70
123
  utilization: agent.model.estimateUtilization(inputTokens),
124
+ ...(this._stash ? { stash: this._stash } : {}),
71
125
  };
72
126
  let anyActed = false;
73
127
  for (const strategy of this._strategies) {
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../src/context-manager/context-manager.ts"],"names":[],"mappings":"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"}
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;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,yBAAyB,CAAA;IAExB,WAAW,CAAmB;IAC9B,aAAa,CAA6B;IAC1C,oBAAoB,CAAS;IAC7B,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAA;IACjD,MAAM,CAAmB;IACzB,eAAe,GAAG,KAAK,CAAA;IACvB,cAAc,CAAkB;IAExC,YAAY,MAA6B;QACvC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI;gBACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACzD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aACpE,CAAC;YACF,IAAI,yBAAyB,EAAE;SAChC,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,CAAA;QACjC,MAAM,QAAQ,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1E,IAAI,CAAC,aAAa,GAAG,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAA;QACtE,IAAI,CAAC,oBAAoB,GAAG,WAAW,KAAK,KAAK,IAAI,QAAQ,EAAE,aAAa,KAAK,KAAK,CAAA;IACxF,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,OAAO,EAAE,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,eAAe,EAAE,CAAA;YAC5E,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAA;YACzC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/C,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAChD,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAClD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,qEAAqE;QACrE,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,0BAA0B,CAAC,EAAE,CAAC;gBACzD,eAAe,GAAG,CAAC,CAAA;gBACnB,OAAM;YACR,CAAC;YAED,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,EAAE,6CAA6C,CAAC,CAAA;gBACpF,eAAe,GAAG,CAAC,CAAA;gBACnB,OAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,EAAE,+CAA+C,CAAC,CAAA;gBACtF,OAAM;YACR,CAAC;YAED,eAAe,EAAE,CAAA;YACjB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAiB,EAAE,sBAA+B;QAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC/B,MAAM,WAAW,GAAG,sBAAsB,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEvF,MAAM,eAAe,GAAiB;YACpC,QAAQ;YACR,KAAK;YACL,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAA;QAED,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBACnD,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,GAAG,IAAI,CAAA;oBACf,eAAe,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;oBACtG,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAA;gBACvF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACT,aAAa,QAAQ,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,aAAa,KAAK,iCAAiC,CACrG,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -4,8 +4,6 @@
4
4
  * Compresses text via an LLM call. The method is target-agnostic — it operates
5
5
  * on any text (a tool result, a range of messages, raw storage content).
6
6
  * Strategies handle selection and placement.
7
- *
8
- * @internal
9
7
  */
10
8
  import type { Model } from '../../models/model.js';
11
9
  import { Message } from '../../types/messages.js';
@@ -13,6 +11,8 @@ import type { ContentBlock, ToolResultContent } from '../../types/messages.js';
13
11
  export declare const SUMMARIZED_PREFIX = "[Summarized:";
14
12
  /**
15
13
  * Configuration for the summarize method.
14
+ *
15
+ * @experimental
16
16
  */
17
17
  export interface SummarizeConfig {
18
18
  /** Model to use for summarization. When omitted, uses the agent's model. */
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../../src/context-manager/methods/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;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;;GAEG;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"}
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,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"}
@@ -4,8 +4,6 @@
4
4
  * Compresses text via an LLM call. The method is target-agnostic — it operates
5
5
  * on any text (a tool result, a range of messages, raw storage content).
6
6
  * Strategies handle selection and placement.
7
- *
8
- * @internal
9
7
  */
10
8
  import { JsonBlock, Message, TextBlock, ToolResultBlock } from '../../types/messages.js';
11
9
  import { logger } from '../../logging/logger.js';
@@ -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":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAExF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE/C,2DAA2D;AAC3D,MAAM,qBAAqB,GAAG;IAC5B,sFAAsF;IACtF,qCAAqC;IACrC,uCAAuC;IACvC,gDAAgD;IAChD,uCAAuC;IACvC,EAAE;IACF,iEAAiE;IACjE,gDAAgD;IAChD,sGAAsG;CACvG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAeZ;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAuB,EACvB,KAAY,EACZ,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC3D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAEvC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAA;IACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAE5E,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAChE,OAAO,UAAU,IAAI,IAAI,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA4B;IACpE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,KAAqB,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAmB;IAC1D,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAuB,EACvB,KAAY,EACZ,MAAwB;IAExB,MAAM,QAAQ,GAAG;QACf,IAAI,OAAO,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,SAAS,CAAC,YAAY,CAAC,CAAmB;SACjG,CAAC;KACH,CAAA;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC9C,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,qBAAqB;SAC5D,CAAC,CAAA;QAEF,IAAI,MAA2D,CAAA;QAC/D,SAAS,CAAC;YACR,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAI,MAAM,CAAC,IAAI;gBAAE,MAAK;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;QACjD,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACxG,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -2,13 +2,13 @@
2
2
  * Truncate reduction method.
3
3
  *
4
4
  * Replaces content with a preview (head, tail, or head-tail).
5
- *
6
- * @internal
7
5
  */
8
6
  import { TextBlock, ToolResultBlock } from '../../types/messages.js';
9
7
  export declare const TRUNCATED_PREFIX = "[Truncated:";
10
8
  /**
11
9
  * Configuration for the truncate method.
10
+ *
11
+ * @experimental
12
12
  */
13
13
  export interface TruncateConfig {
14
14
  /** Number of tokens to keep as preview text. Defaults to 1,000. */
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../../../src/context-manager/methods/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG/E,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAK7C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;CACvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CA+BlG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,CA8BxG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAMtF"}
1
+ {"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../../../src/context-manager/methods/truncate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAa,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG/E,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAK7C;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;CACvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CA+BlG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,CA8BxG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAMtF"}
@@ -2,8 +2,6 @@
2
2
  * Truncate reduction method.
3
3
  *
4
4
  * Replaces content with a preview (head, tail, or head-tail).
5
- *
6
- * @internal
7
5
  */
8
6
  import { JsonBlock, TextBlock, ToolResultBlock } from '../../types/messages.js';
9
7
  export const TRUNCATED_PREFIX = '[Truncated:';
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../../../src/context-manager/methods/truncate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../../../src/context-manager/methods/truncate.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@ import type { MiddlewareInputHandler } from '../../../middleware/types.js';
8
8
  export declare const summarizeContextTool: import("../../../index.js").InvokableTool<{
9
9
  keepRecent?: number | undefined;
10
10
  summaryRatio?: number | undefined;
11
- messageType?: "tools" | "messages" | "all" | undefined;
11
+ messageType?: "tools" | "all" | "messages" | undefined;
12
12
  }, string>;
13
13
  export declare const truncateContextTool: import("../../../index.js").InvokableTool<{
14
14
  keepRecent?: number | undefined;
15
- messageType?: "tools" | "messages" | "all" | undefined;
15
+ messageType?: "tools" | "all" | "messages" | undefined;
16
16
  }, string>;
17
17
  export declare function createTokenUsageMiddleware(): MiddlewareInputHandler<InvokeModelContext>;
18
18
  export declare const pinContextTool: import("../../../index.js").InvokableTool<{
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Retrieval tool for accessing stashed (L1) content.
3
+ *
4
+ * Registered automatically when the ContextManager has storage configured.
5
+ *
6
+ * @internal
7
+ */
8
+ import type { Tool } from '../tools/tool.js';
9
+ import { Message } from '../types/messages.js';
10
+ import type { Stash } from './stash.js';
11
+ export declare const RETRIEVAL_TOOL_NAME = "retrieve_context";
12
+ /**
13
+ * Creates the retrieval tool for the given stash.
14
+ *
15
+ * @param stash - The stash instance to retrieve from
16
+ * @param maxResultTokens - Maximum tokens in the retrieval result
17
+ * @returns A Tool that can retrieve stashed content
18
+ *
19
+ * @internal
20
+ */
21
+ export declare function createRetrievalTool(stash: Stash, maxResultTokens?: number): Tool;
22
+ /**
23
+ * Tracks toolUseIds from retrieval tool invocations so their results
24
+ * can be excluded from stashing (prevents retrieval loops).
25
+ *
26
+ * @internal
27
+ */
28
+ export declare function trackRetrievalToolUseIds(message: Message, skipSet: Set<string>): void;
29
+ //# sourceMappingURL=retrieval-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieval-tool.d.ts","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,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,CA2ChF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAOrF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Retrieval tool for accessing stashed (L1) content.
3
+ *
4
+ * Registered automatically when the ContextManager has storage configured.
5
+ *
6
+ * @internal
7
+ */
8
+ import { z } from 'zod';
9
+ import { tool } from '../tools/tool-factory.js';
10
+ import { isSearchableContent, searchContent } from '../vended-plugins/context-offloader/search.js';
11
+ import { Message, ToolUseBlock } from '../types/messages.js';
12
+ export const RETRIEVAL_TOOL_NAME = 'retrieve_context';
13
+ const DEFAULT_MAX_RESULT_TOKENS = 10_000;
14
+ const CHARS_PER_TOKEN = 4;
15
+ const retrievalInputSchema = z.object({
16
+ reference: z.string().describe('The reference key from the offload placeholder.'),
17
+ pattern: z.string().optional().describe('Regex or keyword to grep for. Returns matching lines with context.'),
18
+ line_range: z
19
+ .object({
20
+ start: z.number().int().min(1).describe('First line to return (1-indexed).'),
21
+ end: z.number().int().min(1).describe('Last line to return (1-indexed).'),
22
+ })
23
+ .optional()
24
+ .describe('Return only this span of lines.'),
25
+ context_lines: z.number().int().min(0).optional().describe('Lines of context around each match (default: 5).'),
26
+ });
27
+ /**
28
+ * Creates the retrieval tool for the given stash.
29
+ *
30
+ * @param stash - The stash instance to retrieve from
31
+ * @param maxResultTokens - Maximum tokens in the retrieval result
32
+ * @returns A Tool that can retrieve stashed content
33
+ *
34
+ * @internal
35
+ */
36
+ export function createRetrievalTool(stash, maxResultTokens) {
37
+ const maxChars = (maxResultTokens ?? DEFAULT_MAX_RESULT_TOKENS) * CHARS_PER_TOKEN;
38
+ return tool({
39
+ name: RETRIEVAL_TOOL_NAME,
40
+ description: 'Retrieve content that was offloaded from context.\n\n' +
41
+ 'When content is offloaded (truncated, dropped, or summarized), the original is ' +
42
+ 'persisted and a reference key is left in its place. Use this tool with that ' +
43
+ 'reference to access the original content.\n\n' +
44
+ 'Options:\n' +
45
+ ' - pattern: regex/keyword to find matching lines with context\n' +
46
+ ' - line_range: { start, end } to read a specific span\n' +
47
+ ' - Without pattern/line_range: returns the full original content\n\n' +
48
+ 'Examples:\n' +
49
+ ' { reference: "1_toolu_abc_0", pattern: "error" }\n' +
50
+ ' { reference: "1_toolu_abc_0", line_range: { start: 10, end: 25 } }\n' +
51
+ ' { reference: "1_toolu_abc_0" }',
52
+ inputSchema: retrievalInputSchema,
53
+ callback: async (input) => {
54
+ const result = await stash.retrieve(input.reference);
55
+ if (!result) {
56
+ return `Error: reference not found: ${input.reference}`;
57
+ }
58
+ if (!input.pattern && !input.line_range) {
59
+ return result.data;
60
+ }
61
+ const text = extractText(result.data);
62
+ if (!text || !isSearchableContent('text/plain')) {
63
+ return `Error: cannot search non-text content. Omit pattern/line_range to retrieve full content.`;
64
+ }
65
+ const contextLines = input.context_lines ?? 5;
66
+ return searchContent(text, { pattern: input.pattern, line_range: input.line_range, context_lines: contextLines }, maxChars);
67
+ },
68
+ });
69
+ }
70
+ /**
71
+ * Tracks toolUseIds from retrieval tool invocations so their results
72
+ * can be excluded from stashing (prevents retrieval loops).
73
+ *
74
+ * @internal
75
+ */
76
+ export function trackRetrievalToolUseIds(message, skipSet) {
77
+ if (message.role !== 'assistant')
78
+ return;
79
+ for (const block of message.content) {
80
+ if (block instanceof ToolUseBlock && block.name === RETRIEVAL_TOOL_NAME) {
81
+ skipSet.add(block.toolUseId);
82
+ }
83
+ }
84
+ }
85
+ function extractText(data) {
86
+ if (typeof data === 'string')
87
+ return data;
88
+ if (data && typeof data === 'object') {
89
+ if ('text' in data && typeof data.text === 'string') {
90
+ return data.text;
91
+ }
92
+ if ('json' in data) {
93
+ return JSON.stringify(data.json, null, 2);
94
+ }
95
+ }
96
+ return null;
97
+ }
98
+ //# sourceMappingURL=retrieval-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieval-tool.js","sourceRoot":"","sources":["../../../src/context-manager/retrieval-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * L1 stash: durable storage for offloaded context content.
3
+ *
4
+ * When the ContextManager offloads content from the context window, the
5
+ * original is persisted here so the agent can retrieve it on demand via the
6
+ * retrieval tool.
7
+ *
8
+ * @internal
9
+ */
10
+ import { type Storage } from '../storage/storage.js';
11
+ import { Message } from '../types/messages.js';
12
+ import type { ContentBlock } from '../types/messages.js';
13
+ import type { JSONValue } from '../types/json.js';
14
+ /** @internal */
15
+ export declare const STASH_PREFIX = "context";
16
+ /** Format stash refs for display in placeholders. Returns '' when refs is empty. */
17
+ export declare function formatStashRefs(refs: string[]): string;
18
+ /**
19
+ * Wraps a Storage backend with key management and content framing for the
20
+ * ContextManager's L1 stash.
21
+ *
22
+ * @internal
23
+ */
24
+ export declare class Stash {
25
+ private readonly _storage;
26
+ private readonly _baseStorage;
27
+ private readonly _sessionId;
28
+ /** Name of the base storage constructor, for diagnostic logging. */
29
+ readonly storageTypeName: string;
30
+ constructor(storage: Storage, sessionId: string, agentId: string);
31
+ /**
32
+ * Store a serialized block and return a deterministic reference key.
33
+ *
34
+ * Keys are deterministic (`<id>_<blockIndex>`) so they can be recomputed
35
+ * via {@link refsFor} after a process restart or snapshot restore.
36
+ *
37
+ * @param id - Identifier component for the key (e.g. toolUseId)
38
+ * @param blockIndex - Index of the block within the tool result
39
+ * @param data - Serialized bytes to persist
40
+ * @returns Reference key for retrieval
41
+ */
42
+ store(id: string, blockIndex: number, data: Uint8Array): Promise<string>;
43
+ /**
44
+ * Compute the deterministic reference keys for a content block.
45
+ *
46
+ * For a {@link ToolResultBlock}, returns one key per inner content item
47
+ * (`<toolUseId>_<i>`). For any other block, returns a single key
48
+ * (`<trackingId>_<blockIndex>`).
49
+ *
50
+ * @param block - The content block
51
+ * @param message - The message containing the block
52
+ * @param blockIndex - Index of the block within the message
53
+ * @returns Array of reference keys
54
+ */
55
+ refsFor(block: ContentBlock, message: Message, blockIndex: number): string[];
56
+ /**
57
+ * Eagerly stash all content from a message on arrival.
58
+ * Called via MessageAddedEvent so content is persisted before any strategy runs.
59
+ *
60
+ * @param message - The message whose content should be persisted
61
+ * @param skipToolUseIds - ToolUseIds to skip (e.g. retrieval tool results)
62
+ */
63
+ storeMessage(message: Message, skipToolUseIds?: ReadonlySet<string>): Promise<void>;
64
+ /**
65
+ * Retrieve previously stashed content as its serialized JSON form.
66
+ *
67
+ * @param reference - Key returned by a previous store call
68
+ * @returns The deserialized block data (from `toJSON()`), or null if not found
69
+ */
70
+ retrieve(reference: string): Promise<{
71
+ data: unknown;
72
+ } | null>;
73
+ /**
74
+ * List all stashed references.
75
+ */
76
+ list(): Promise<string[]>;
77
+ /**
78
+ * Delete a stashed entry.
79
+ */
80
+ delete(reference: string): Promise<void>;
81
+ /**
82
+ * Delete all entries in this stash instance.
83
+ */
84
+ clear(): Promise<void>;
85
+ /**
86
+ * Delete all stash data for this session across all agents.
87
+ *
88
+ * Unlike {@link clear}, which is scoped to this agent's namespace,
89
+ * this scans `context/<sessionId>/` on the base storage to catch data
90
+ * from every agent that wrote to the session.
91
+ */
92
+ clearSession(): Promise<void>;
93
+ /**
94
+ * Serialize all stash entries into a plain object for snapshot persistence.
95
+ *
96
+ * @returns Map of reference keys to their stored JSON values
97
+ */
98
+ takeSnapshot(): Promise<Record<string, JSONValue>>;
99
+ /**
100
+ * Restore stash entries from a previously captured snapshot.
101
+ *
102
+ * @param entries - Map of reference keys to their JSON values (from {@link takeSnapshot})
103
+ */
104
+ loadSnapshot(entries: Record<string, JSONValue>): Promise<void>;
105
+ private _storeToolResult;
106
+ }
107
+ //# sourceMappingURL=stash.d.ts.map
@@ -0,0 +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;IAoBzF;;;;;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;CAM/B"}