@strands-agents/sdk 1.5.0 → 1.7.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 (232) hide show
  1. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  2. package/dist/src/__fixtures__/agent-helpers.js +3 -0
  3. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  4. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -1
  5. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +1 -1
  6. package/dist/src/agent/__tests__/agent.stateful-model.test.js +2 -2
  7. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -1
  8. package/dist/src/agent/agent.d.ts +8 -5
  9. package/dist/src/agent/agent.d.ts.map +1 -1
  10. package/dist/src/agent/agent.js +60 -33
  11. package/dist/src/agent/agent.js.map +1 -1
  12. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +19 -0
  13. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -0
  14. package/dist/src/context-manager/modes/agentic/agentic-context.js +245 -0
  15. package/dist/src/context-manager/modes/agentic/agentic-context.js.map +1 -0
  16. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +2 -0
  17. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +1 -0
  18. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +332 -0
  19. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +1 -0
  20. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +2 -0
  21. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +1 -0
  22. package/dist/src/conversation-manager/__tests__/context-compression.test.js +176 -0
  23. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +1 -0
  24. package/dist/src/conversation-manager/__tests__/pin.test.js +1 -1
  25. package/dist/src/conversation-manager/__tests__/pin.test.js.map +1 -1
  26. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +1 -1
  27. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  28. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +1 -1
  29. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  30. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +2 -0
  31. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +1 -0
  32. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +138 -0
  33. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +1 -0
  34. package/dist/src/conversation-manager/compression/context-compression.d.ts +39 -0
  35. package/dist/src/conversation-manager/compression/context-compression.d.ts.map +1 -0
  36. package/dist/src/conversation-manager/compression/context-compression.js +150 -0
  37. package/dist/src/conversation-manager/compression/context-compression.js.map +1 -0
  38. package/dist/src/conversation-manager/{pin-message.d.ts → compression/pin-message.d.ts} +1 -1
  39. package/dist/src/conversation-manager/compression/pin-message.d.ts.map +1 -0
  40. package/dist/src/conversation-manager/{pin-message.js → compression/pin-message.js} +1 -1
  41. package/dist/src/conversation-manager/compression/pin-message.js.map +1 -0
  42. package/dist/src/conversation-manager/conversation-manager.d.ts +2 -0
  43. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  44. package/dist/src/conversation-manager/conversation-manager.js +2 -2
  45. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  46. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  47. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +4 -35
  48. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  49. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +0 -19
  50. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
  51. package/dist/src/conversation-manager/summarizing-conversation-manager.js +4 -107
  52. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
  53. package/dist/src/index.d.ts +3 -3
  54. package/dist/src/index.d.ts.map +1 -1
  55. package/dist/src/index.js +1 -1
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/injection/__tests__/message-injection.test.d.ts +2 -0
  58. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +1 -0
  59. package/dist/src/injection/__tests__/message-injection.test.js +200 -0
  60. package/dist/src/injection/__tests__/message-injection.test.js.map +1 -0
  61. package/dist/src/injection/index.d.ts +6 -0
  62. package/dist/src/injection/index.d.ts.map +1 -0
  63. package/dist/src/injection/index.js +2 -0
  64. package/dist/src/injection/index.js.map +1 -0
  65. package/dist/src/injection/message-injection.d.ts +65 -0
  66. package/dist/src/injection/message-injection.d.ts.map +1 -0
  67. package/dist/src/injection/message-injection.js +134 -0
  68. package/dist/src/injection/message-injection.js.map +1 -0
  69. package/dist/src/injection/types.d.ts +63 -0
  70. package/dist/src/injection/types.d.ts.map +1 -0
  71. package/dist/src/injection/types.js +2 -0
  72. package/dist/src/injection/types.js.map +1 -0
  73. package/dist/src/injection/xml.d.ts +27 -0
  74. package/dist/src/injection/xml.d.ts.map +1 -0
  75. package/dist/src/injection/xml.js +31 -0
  76. package/dist/src/injection/xml.js.map +1 -0
  77. package/dist/src/memory/__tests__/memory-manager.test.js +188 -2
  78. package/dist/src/memory/__tests__/memory-manager.test.js.map +1 -1
  79. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +2 -0
  80. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +1 -0
  81. package/dist/src/memory/__tests__/memory-tracing.test.js +250 -0
  82. package/dist/src/memory/__tests__/memory-tracing.test.js.map +1 -0
  83. package/dist/src/memory/extraction/__tests__/extraction.test.js +41 -39
  84. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +1 -1
  85. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +37 -1
  86. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +1 -1
  87. package/dist/src/memory/extraction/coordinator.d.ts +6 -1
  88. package/dist/src/memory/extraction/coordinator.d.ts.map +1 -1
  89. package/dist/src/memory/extraction/coordinator.js +48 -10
  90. package/dist/src/memory/extraction/coordinator.js.map +1 -1
  91. package/dist/src/memory/extraction/model-extractor.d.ts.map +1 -1
  92. package/dist/src/memory/extraction/model-extractor.js +30 -9
  93. package/dist/src/memory/extraction/model-extractor.js.map +1 -1
  94. package/dist/src/memory/extraction/types.d.ts +7 -0
  95. package/dist/src/memory/extraction/types.d.ts.map +1 -1
  96. package/dist/src/memory/extraction/types.js.map +1 -1
  97. package/dist/src/memory/index.d.ts +2 -1
  98. package/dist/src/memory/index.d.ts.map +1 -1
  99. package/dist/src/memory/index.js.map +1 -1
  100. package/dist/src/memory/memory-manager.d.ts +64 -4
  101. package/dist/src/memory/memory-manager.d.ts.map +1 -1
  102. package/dist/src/memory/memory-manager.js +236 -36
  103. package/dist/src/memory/memory-manager.js.map +1 -1
  104. package/dist/src/memory/types.d.ts +72 -0
  105. package/dist/src/memory/types.d.ts.map +1 -1
  106. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1
  107. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +1 -1
  108. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +2 -0
  109. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +1 -0
  110. package/dist/src/middleware/__tests__/copy-on-input.test.js +379 -0
  111. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +1 -0
  112. package/dist/src/middleware/stages.d.ts +14 -7
  113. package/dist/src/middleware/stages.d.ts.map +1 -1
  114. package/dist/src/middleware/stages.js +3 -0
  115. package/dist/src/middleware/stages.js.map +1 -1
  116. package/dist/src/models/__tests__/google.test.js +41 -0
  117. package/dist/src/models/__tests__/google.test.js.map +1 -1
  118. package/dist/src/models/google/adapters.d.ts.map +1 -1
  119. package/dist/src/models/google/adapters.js +21 -3
  120. package/dist/src/models/google/adapters.js.map +1 -1
  121. package/dist/src/models/openai/__tests__/errors.test.js +9 -0
  122. package/dist/src/models/openai/__tests__/errors.test.js.map +1 -1
  123. package/dist/src/models/openai/__tests__/responses.test.js +47 -0
  124. package/dist/src/models/openai/__tests__/responses.test.js.map +1 -1
  125. package/dist/src/models/openai/errors.d.ts.map +1 -1
  126. package/dist/src/models/openai/errors.js +4 -1
  127. package/dist/src/models/openai/errors.js.map +1 -1
  128. package/dist/src/models/openai/responses-adapter.d.ts +1 -0
  129. package/dist/src/models/openai/responses-adapter.d.ts.map +1 -1
  130. package/dist/src/models/openai/responses-adapter.js +24 -10
  131. package/dist/src/models/openai/responses-adapter.js.map +1 -1
  132. package/dist/src/multiagent/__tests__/graph.test.js +22 -1
  133. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
  134. package/dist/src/multiagent/graph.d.ts.map +1 -1
  135. package/dist/src/multiagent/graph.js +4 -1
  136. package/dist/src/multiagent/graph.js.map +1 -1
  137. package/dist/src/sandbox/__tests__/docker.test.node.js +2 -2
  138. package/dist/src/sandbox/__tests__/docker.test.node.js.map +1 -1
  139. package/dist/src/sandbox/__tests__/ssh.test.node.js +2 -2
  140. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +1 -1
  141. package/dist/src/sandbox/base.d.ts +0 -5
  142. package/dist/src/sandbox/base.d.ts.map +1 -1
  143. package/dist/src/sandbox/base.js +0 -5
  144. package/dist/src/sandbox/base.js.map +1 -1
  145. package/dist/src/sandbox/docker.d.ts.map +1 -1
  146. package/dist/src/sandbox/docker.js +2 -0
  147. package/dist/src/sandbox/docker.js.map +1 -1
  148. package/dist/src/sandbox/ssh.d.ts.map +1 -1
  149. package/dist/src/sandbox/ssh.js +2 -0
  150. package/dist/src/sandbox/ssh.js.map +1 -1
  151. package/dist/src/telemetry/__tests__/tracer.test.node.js +207 -9
  152. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
  153. package/dist/src/telemetry/tracer.d.ts +82 -2
  154. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  155. package/dist/src/telemetry/tracer.js +242 -3
  156. package/dist/src/telemetry/tracer.js.map +1 -1
  157. package/dist/src/telemetry/types.d.ts +86 -1
  158. package/dist/src/telemetry/types.d.ts.map +1 -1
  159. package/dist/src/tsconfig.tsbuildinfo +1 -1
  160. package/dist/src/types/json.js +2 -2
  161. package/dist/src/types/json.js.map +1 -1
  162. package/dist/src/types/messages.d.ts +8 -0
  163. package/dist/src/types/messages.d.ts.map +1 -1
  164. package/dist/src/types/messages.js +13 -1
  165. package/dist/src/types/messages.js.map +1 -1
  166. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +2 -0
  167. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +1 -0
  168. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +756 -0
  169. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +1 -0
  170. package/dist/src/vended-interventions/cedar/cedar.d.ts +114 -0
  171. package/dist/src/vended-interventions/cedar/cedar.d.ts.map +1 -0
  172. package/dist/src/vended-interventions/cedar/cedar.js +239 -0
  173. package/dist/src/vended-interventions/cedar/cedar.js.map +1 -0
  174. package/dist/src/vended-interventions/cedar/index.d.ts +3 -0
  175. package/dist/src/vended-interventions/cedar/index.d.ts.map +1 -0
  176. package/dist/src/vended-interventions/cedar/index.js +2 -0
  177. package/dist/src/vended-interventions/cedar/index.js.map +1 -0
  178. package/dist/src/vended-interventions/cedar/schema-generator.d.ts +10 -0
  179. package/dist/src/vended-interventions/cedar/schema-generator.d.ts.map +1 -0
  180. package/dist/src/vended-interventions/cedar/schema-generator.js +38 -0
  181. package/dist/src/vended-interventions/cedar/schema-generator.js.map +1 -0
  182. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +2 -0
  183. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +1 -0
  184. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/{bedrock-knowledge-base-store.test.js → bedrock-knowledge-base-store.test.node.js} +154 -7
  185. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +1 -0
  186. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts +1 -1
  187. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts.map +1 -1
  188. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.js.map +1 -1
  189. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts +57 -0
  190. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts.map +1 -1
  191. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js +86 -11
  192. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js.map +1 -1
  193. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +2 -0
  194. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +1 -0
  195. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +96 -0
  196. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +1 -0
  197. package/dist/src/vended-plugins/context-injector/index.d.ts +25 -0
  198. package/dist/src/vended-plugins/context-injector/index.d.ts.map +1 -0
  199. package/dist/src/vended-plugins/context-injector/index.js +23 -0
  200. package/dist/src/vended-plugins/context-injector/index.js.map +1 -0
  201. package/dist/src/vended-plugins/context-injector/plugin.d.ts +55 -0
  202. package/dist/src/vended-plugins/context-injector/plugin.d.ts.map +1 -0
  203. package/dist/src/vended-plugins/context-injector/plugin.js +41 -0
  204. package/dist/src/vended-plugins/context-injector/plugin.js.map +1 -0
  205. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +43 -4
  206. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -1
  207. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +5 -1
  208. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +1 -1
  209. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +68 -0
  210. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -1
  211. package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -1
  212. package/dist/src/vended-plugins/context-offloader/plugin.js +12 -2
  213. package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -1
  214. package/dist/src/vended-plugins/context-offloader/storage.d.ts +29 -1
  215. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -1
  216. package/dist/src/vended-plugins/context-offloader/storage.js +76 -5
  217. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  218. package/dist/src/vended-plugins/index.d.ts +2 -1
  219. package/dist/src/vended-plugins/index.d.ts.map +1 -1
  220. package/dist/src/vended-plugins/index.js +2 -1
  221. package/dist/src/vended-plugins/index.js.map +1 -1
  222. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  223. package/dist/src/vended-plugins/skills/skill.js +4 -2
  224. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  225. package/dist/src/vended-tools/http-request/http-request.js +1 -1
  226. package/dist/src/vended-tools/http-request/http-request.js.map +1 -1
  227. package/package.json +54 -36
  228. package/dist/src/conversation-manager/pin-message.d.ts.map +0 -1
  229. package/dist/src/conversation-manager/pin-message.js.map +0 -1
  230. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts +0 -2
  231. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts.map +0 -1
  232. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.js.map +0 -1
@@ -5,6 +5,11 @@ import { tool } from '../tools/tool-factory.js';
5
5
  import { z } from 'zod';
6
6
  import { logger } from '../logging/logger.js';
7
7
  import { normalizeError } from '../errors.js';
8
+ import { isUserTurn, createInjectionMiddleware } from '../injection/message-injection.js';
9
+ import { escapeXmlText, escapeXmlAttr } from '../injection/xml.js';
10
+ import { InvokeModelStage } from '../middleware/index.js';
11
+ import { Tracer } from '../telemetry/tracer.js';
12
+ import { context, trace } from '@opentelemetry/api';
8
13
  const SEARCH_TOOL_DESCRIPTION = 'Search long-term memory for facts, preferences, or context from previous conversations. Use when you need background about the user or topic that may have been discussed before.';
9
14
  const ADD_TOOL_DESCRIPTION = 'Add facts, preferences, or decisions to long-term memory so they are remembered across conversations. Use when the user shares something worth recalling later.';
10
15
  /**
@@ -12,6 +17,15 @@ const ADD_TOOL_DESCRIPTION = 'Add facts, preferences, or decisions to long-term
12
17
  * Resolved by the {@link MemoryManager}.
13
18
  */
14
19
  export const DEFAULT_MAX_SEARCH_RESULTS = 3;
20
+ /**
21
+ * Default number of entries injected per model call when injection does not specify one.
22
+ *
23
+ * A memory store ranks by semantic (embedding) similarity, which is not the same as contextual
24
+ * usefulness — the top hit is not reliably the most useful entry for the turn. Injecting the top few
25
+ * gives the model a small candidate set to pick from rather than betting on the store's first result.
26
+ * Five balances that recall against context bloat; lower it for a tighter prepend.
27
+ */
28
+ const DEFAULT_MAX_ENTRIES = 5;
15
29
  /** Flattens nested AggregateErrors so the leaves are concrete reasons, not errors-of-errors. */
16
30
  function _flattenReasons(reasons) {
17
31
  return reasons.flatMap((reason) => (reason instanceof AggregateError ? _flattenReasons(reason.errors) : [reason]));
@@ -59,6 +73,15 @@ export class MemoryManager {
59
73
  _extractionStores;
60
74
  /** Background extraction coordinator, created in {@link initAgent} when extraction is configured. */
61
75
  _coordinator;
76
+ /** Resolved injection config, or `false` when injection is disabled. */
77
+ _injectionConfig;
78
+ /**
79
+ * Tracer for memory operation spans, shared with the extraction coordinator. A per-instance
80
+ * Tracer is intentional: it wraps the same global OTel provider, and parent-child nesting is
81
+ * established via OTel context (context.active() / context.with()), not instance hierarchy — so a
82
+ * fresh instance routes spans to the same exporter and parents correctly without fragmenting traces.
83
+ */
84
+ _tracer = new Tracer();
62
85
  constructor(config) {
63
86
  if (config.stores.length === 0) {
64
87
  throw new Error('MemoryManager: at least one store is required');
@@ -117,6 +140,8 @@ export class MemoryManager {
117
140
  this._addToolConfig = typeof config.addToolConfig === 'object' ? config.addToolConfig : {};
118
141
  this._addToolStores = this._resolveAddToolStores(this._addToolConfig);
119
142
  }
143
+ this._injectionConfig =
144
+ config.injection === false ? false : typeof config.injection === 'object' ? config.injection : {};
120
145
  }
121
146
  /**
122
147
  * Resolves the writable stores the `add_memory` tool may write to. When `stores` is given, each
@@ -145,16 +170,34 @@ export class MemoryManager {
145
170
  /**
146
171
  * Initializes the plugin with the agent.
147
172
  *
148
- * Wires up automatic extraction for any store configured with {@link ExtractionConfig}: buffers
149
- * conversation messages and attaches each store's triggers. A no-op when no store uses extraction.
173
+ * Wires up two independent behaviors:
174
+ * - **Extraction**: for any store configured with {@link ExtractionConfig}, buffers conversation
175
+ * messages and attaches each store's triggers. A no-op when no store uses extraction.
176
+ * - **Injection**: when enabled, registers an `InvokeModelStage` middleware that folds retrieved
177
+ * memory into the model input for each call without touching durable history. See
178
+ * {@link _provideMemoryContext}, the `renderContent` callback the middleware invokes.
150
179
  *
151
180
  * @param agent - The agent this plugin is being attached to
152
181
  */
153
- initAgent(agent) {
182
+ async initAgent(agent) {
183
+ await this._initStores();
184
+ this._initExtraction(agent);
185
+ this._initInjection(agent);
186
+ }
187
+ /** Call `initialize()` on each store that implements it. */
188
+ async _initStores() {
189
+ for (const store of this._searchStores) {
190
+ if (store.initialize) {
191
+ await store.initialize();
192
+ }
193
+ }
194
+ }
195
+ /** Wires background extraction for stores configured with {@link ExtractionConfig}. */
196
+ _initExtraction(agent) {
154
197
  if (this._extractionStores.length === 0) {
155
198
  return;
156
199
  }
157
- const coordinator = new ExtractionCoordinator(this._extractionStores, agent.model);
200
+ const coordinator = new ExtractionCoordinator(this._extractionStores, agent.model, this._tracer);
158
201
  this._coordinator = coordinator;
159
202
  // Buffer every message the agent adds, so extraction has its own copy to save from.
160
203
  agent.addHook(MessageAddedEvent, (event) => {
@@ -166,6 +209,73 @@ export class MemoryManager {
166
209
  }
167
210
  }
168
211
  }
212
+ /**
213
+ * Registers the injection middleware when injection is enabled. Folds retrieved memory into the
214
+ * model input for each call via {@link _provideMemoryContext}, without touching durable history. A
215
+ * no-op when injection is disabled.
216
+ */
217
+ _initInjection(agent) {
218
+ const config = this._injectionConfig;
219
+ if (config === false) {
220
+ return;
221
+ }
222
+ agent.addMiddleware(InvokeModelStage.Input, createInjectionMiddleware({
223
+ ...(config.trigger !== undefined && { trigger: config.trigger }),
224
+ renderContent: (context) => this._provideMemoryContext(context.messages, config),
225
+ }));
226
+ }
227
+ /**
228
+ * Produces the memory context text to inject for a model call, or `undefined` to skip. This is the
229
+ * `renderContent` callback the injection middleware invokes (see {@link initAgent}).
230
+ *
231
+ * Derives a query (the configured callback or an adaptive default), searches memory, and renders the
232
+ * top entries. Skips silently (returns `undefined`) when no query can be derived or the search
233
+ * returns nothing. The rendering callback throwing fails open (returns `undefined`).
234
+ *
235
+ * @param messages - The current conversation, as data
236
+ * @param config - The resolved injection configuration
237
+ * @returns The injected text, or `undefined` when there is nothing to inject
238
+ */
239
+ async _provideMemoryContext(messages, config) {
240
+ const maxResults = config.maxEntries ?? DEFAULT_MAX_ENTRIES;
241
+ const span = this._tracer.startMemoryInjectSpan({ maxEntries: maxResults });
242
+ // End the inject span on every path (skip, fail-open, success). Injection fails open, so a
243
+ // format failure ends OK with a flag; only callers above us treat a thrown search as an error.
244
+ const end = (injected, entryCount = 0, formatError = false) => {
245
+ this._tracer.endMemoryInjectSpan(span, { injected, entryCount, formatError });
246
+ };
247
+ // Set the inject span active so the nested search span parents under it.
248
+ const run = async () => {
249
+ const query = this._resolveInjectionQuery(messages, config);
250
+ if (!query?.trim()) {
251
+ end(false);
252
+ return undefined;
253
+ }
254
+ const entries = (await this.search(query, { maxSearchResults: maxResults })).slice(0, maxResults);
255
+ if (entries.length === 0) {
256
+ end(false);
257
+ return undefined;
258
+ }
259
+ try {
260
+ const rendered = config.format ? config.format({ entries }) : this._defaultInjectionFormat(entries);
261
+ end(true, entries.length);
262
+ return rendered;
263
+ }
264
+ catch (error) {
265
+ logger.warn(`reason=<${normalizeError(error).message}> | injection format threw; skipping injection`);
266
+ end(false, 0, true);
267
+ return undefined;
268
+ }
269
+ };
270
+ try {
271
+ return span ? await context.with(trace.setSpan(context.active(), span), run) : await run();
272
+ }
273
+ catch (error) {
274
+ // search (or anything else here) throwing must not leak the span; end it and rethrow.
275
+ end(false);
276
+ throw error;
277
+ }
278
+ }
169
279
  /**
170
280
  * Saves every store's remaining messages and waits for all saves to finish. No-op when no store has
171
281
  * extraction configured.
@@ -181,6 +291,58 @@ export class MemoryManager {
181
291
  async flush() {
182
292
  await this._coordinator?.flush();
183
293
  }
294
+ /**
295
+ * Derives the injection search query. Uses the configured `query` callback when provided (a throw
296
+ * fails open, skipping injection); otherwise an adaptive default: the latest user message's text on
297
+ * a user turn, or the most recent assistant message's text otherwise (the previous autonomous step).
298
+ *
299
+ * @param messages - The current conversation, as data
300
+ * @param config - The resolved injection configuration
301
+ * @returns The query string, or `undefined` when none is available
302
+ */
303
+ _resolveInjectionQuery(messages, config) {
304
+ if (config.query) {
305
+ try {
306
+ return config.query({ messages });
307
+ }
308
+ catch (error) {
309
+ logger.warn(`reason=<${normalizeError(error).message}> | injection query threw; skipping injection`);
310
+ return undefined;
311
+ }
312
+ }
313
+ const role = isUserTurn(messages) ? 'user' : 'assistant';
314
+ const index = this._findLastIndex(messages, (message) => message.role === role);
315
+ if (index < 0) {
316
+ return undefined;
317
+ }
318
+ const text = messages[index].content.filter((block) => 'text' in block)
319
+ .map((block) => block.text)
320
+ .join('\n')
321
+ .trim();
322
+ return text.length > 0 ? text : undefined;
323
+ }
324
+ /**
325
+ * Default injection format: a `<memory>` block with one `<entry>` per result. Each entry carries a
326
+ * `source` attribute naming the originating store (when known) so the model can attribute memories.
327
+ *
328
+ * @param entries - The retrieved memory entries to render
329
+ * @returns The rendered `<memory>` block
330
+ */
331
+ _defaultInjectionFormat(entries) {
332
+ const items = entries.map((entry) => entry.storeName
333
+ ? `<entry source="${escapeXmlAttr(entry.storeName)}">${escapeXmlText(entry.content)}</entry>`
334
+ : `<entry>${escapeXmlText(entry.content)}</entry>`);
335
+ return `<memory>\n${items.join('\n')}\n</memory>`;
336
+ }
337
+ /** Returns the index of the last element matching `predicate`, or -1. */
338
+ _findLastIndex(items, predicate) {
339
+ for (let i = items.length - 1; i >= 0; i--) {
340
+ if (predicate(items[i])) {
341
+ return i;
342
+ }
343
+ }
344
+ return -1;
345
+ }
184
346
  /**
185
347
  * Returns tools registered by this plugin.
186
348
  *
@@ -222,30 +384,48 @@ export class MemoryManager {
222
384
  */
223
385
  async search(query, options) {
224
386
  logger.debug(`query=<${query}>, max_search_results=<${options?.maxSearchResults}>, stores=<${options?.stores}> | searching stores`);
225
- const targetStores = options?.stores !== undefined
226
- ? [...new Set(options.stores)].map((name) => {
227
- const found = this._config.stores.find((s) => s.name === name);
228
- if (!found) {
229
- throw new Error(`MemoryManager: store '${name}' not found`);
230
- }
231
- return found;
232
- })
233
- : this._config.stores;
234
- const settled = await Promise.allSettled(targetStores.map((store) => store.search(query, {
235
- maxSearchResults: options?.maxSearchResults ?? store.maxSearchResults ?? DEFAULT_MAX_SEARCH_RESULTS,
236
- })));
387
+ const spanStoreNames = options?.stores ?? this._config.stores.map((s) => s.name);
388
+ const span = this._tracer.startMemorySearchSpan({
389
+ query,
390
+ storeNames: spanStoreNames,
391
+ ...(options?.maxSearchResults !== undefined && { maxSearchResults: options.maxSearchResults }),
392
+ });
393
+ let targetStores;
394
+ let settled;
395
+ try {
396
+ targetStores =
397
+ options?.stores !== undefined
398
+ ? [...new Set(options.stores)].map((name) => {
399
+ const found = this._config.stores.find((s) => s.name === name);
400
+ if (!found) {
401
+ throw new Error(`MemoryManager: store '${name}' not found`);
402
+ }
403
+ return found;
404
+ })
405
+ : this._config.stores;
406
+ settled = await Promise.allSettled(targetStores.map((store) => store.search(query, {
407
+ maxSearchResults: options?.maxSearchResults ?? store.maxSearchResults ?? DEFAULT_MAX_SEARCH_RESULTS,
408
+ })));
409
+ }
410
+ catch (error) {
411
+ this._tracer.endMemorySearchSpan(span, { error: normalizeError(error) });
412
+ throw error;
413
+ }
237
414
  const results = [];
415
+ let storeFailureCount = 0;
238
416
  for (let i = 0; i < settled.length; i++) {
239
417
  const settledResult = settled[i];
240
418
  const storeName = targetStores[i].name;
241
419
  if (settledResult.status === 'rejected') {
242
420
  logger.warn(`store=<${storeName}>, reason=<${normalizeError(settledResult.reason).message}> | store search failed`);
421
+ storeFailureCount++;
243
422
  continue;
244
423
  }
245
424
  for (const entry of settledResult.value) {
246
425
  results.push({ ...entry, storeName });
247
426
  }
248
427
  }
428
+ this._tracer.endMemorySearchSpan(span, { entries: results, storeFailureCount });
249
429
  logger.debug(`results=<${results.length}> | search complete`);
250
430
  return results;
251
431
  }
@@ -260,28 +440,45 @@ export class MemoryManager {
260
440
  *
261
441
  * @param content - The text content to add
262
442
  * @param options - Optional metadata and store name filter
443
+ * @param detached - Internal. When the write runs detached from the call that scheduled it (the
444
+ * fire-and-forget add tool path), start the span as a trace root rather than parenting to a
445
+ * possibly-ended span.
446
+ * @internal
263
447
  */
264
- async add(content, options) {
448
+ async add(content, options, detached = false) {
449
+ const spanStoreNames = options?.stores ?? this._addStores.map((s) => s.name);
450
+ const span = this._tracer.startMemoryAddSpan({
451
+ content,
452
+ storeNames: spanStoreNames,
453
+ ...(detached && { forceRoot: true }),
454
+ });
265
455
  let writableStores;
266
- if (options?.stores !== undefined) {
267
- writableStores = [...new Set(options.stores)].map((name) => {
268
- const found = this._config.stores.find((s) => s.name === name);
269
- if (!found) {
270
- throw new Error(`MemoryManager: store '${name}' not found`);
271
- }
272
- if (!found.writable) {
273
- throw new Error(`MemoryManager: store '${name}' is read-only`);
274
- }
275
- return found;
276
- });
277
- }
278
- else {
279
- writableStores = this._addStores;
456
+ let settled;
457
+ try {
458
+ if (options?.stores !== undefined) {
459
+ writableStores = [...new Set(options.stores)].map((name) => {
460
+ const found = this._config.stores.find((s) => s.name === name);
461
+ if (!found) {
462
+ throw new Error(`MemoryManager: store '${name}' not found`);
463
+ }
464
+ if (!found.writable) {
465
+ throw new Error(`MemoryManager: store '${name}' is read-only`);
466
+ }
467
+ return found;
468
+ });
469
+ }
470
+ else {
471
+ writableStores = this._addStores;
472
+ }
473
+ if (writableStores.length === 0) {
474
+ throw new Error('MemoryManager: no writable store matched');
475
+ }
476
+ settled = await Promise.allSettled(writableStores.map((store) => store.add(content, options?.metadata)));
280
477
  }
281
- if (writableStores.length === 0) {
282
- throw new Error('MemoryManager: no writable store matched');
478
+ catch (error) {
479
+ this._tracer.endMemoryAddSpan(span, { error: normalizeError(error) });
480
+ throw error;
283
481
  }
284
- const settled = await Promise.allSettled(writableStores.map((store) => store.add(content, options?.metadata)));
285
482
  const failures = [];
286
483
  for (let i = 0; i < settled.length; i++) {
287
484
  const settledResult = settled[i];
@@ -292,8 +489,11 @@ export class MemoryManager {
292
489
  }
293
490
  }
294
491
  if (failures.length > 0) {
295
- throw new AggregateError(failures.map((failure) => failure.reason), `MemoryManager: store writes failed: ${failures.map((failure) => failure.store).join(', ')}`);
492
+ const aggregateError = new AggregateError(failures.map((failure) => failure.reason), `MemoryManager: store writes failed: ${failures.map((failure) => failure.store).join(', ')}`);
493
+ this._tracer.endMemoryAddSpan(span, { storeFailureCount: failures.length, error: aggregateError });
494
+ throw aggregateError;
296
495
  }
496
+ this._tracer.endMemoryAddSpan(span);
297
497
  }
298
498
  /**
299
499
  * Resolves the store names that a tool callback should target against the tool's scoped set.
@@ -385,7 +585,7 @@ export class MemoryManager {
385
585
  // Fire-and-forget: dispatch the writes without awaiting so the agent loop isn't blocked.
386
586
  // add() logs per-store failures; swallow the rejection so it isn't an unhandled rejection.
387
587
  for (const content of input.entries) {
388
- void this.add(content, { stores }).catch(() => { });
588
+ void this.add(content, { stores }, true).catch(() => { });
389
589
  }
390
590
  return { accepted: input.entries.length };
391
591
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../../src/memory/memory-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../../../src/memory/memory-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACzF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,uBAAuB,GAC3B,mLAAmL,CAAA;AAErL,MAAM,oBAAoB,GACxB,iKAAiK,CAAA;AAEnK;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAA;AAE3C;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAE7B,gGAAgG;AAChG,SAAS,eAAe,CAAC,OAAkB;IACzC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,YAAY,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACpH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAkB;IACvC,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,CAAA;AACnF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,wBAAwB,CAAA;IACvB,OAAO,CAAqB;IAC5B,aAAa,CAAe;IAC7C,6FAA6F;IAC5E,UAAU,CAAe;IACzB,iBAAiB,CAA0B;IAC3C,cAAc,CAA6B;IAC3C,cAAc,CAAe;IAC9C,2GAA2G;IAC1F,iBAAiB,CAAqB;IACvD,qGAAqG;IAC7F,YAAY,CAAmC;IACvD,wEAAwE;IACvD,gBAAgB,CAA+B;IAChE;;;;;OAKG;IACc,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;IAEvC,YAAY,MAA2B;QACrC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;QACnC,MAAM,gBAAgB,GAAwB,EAAE,CAAA;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;YACxE,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEzB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,oDAAoD,CAAC,CAAA;YAC1G,CAAC;YAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,6CAA6C,CAAC,CAAA;gBACnG,CAAC;gBACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAE,CAAA;gBAClE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,yCAAyC,CAAC,CAAA;gBAC/F,CAAC;gBACD,8FAA8F;gBAC9F,uFAAuF;gBACvF,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACvB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;wBACpC,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,8EAA8E,CAClH,CAAA;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,wEAAwE,CAC5G,CAAA;gBACH,CAAC;gBACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAA;QAClC,iFAAiF;QACjF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;QACxF,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;QAEzC,IAAI,CAAC,iBAAiB;YACpB,MAAM,CAAC,gBAAgB,KAAK,KAAK;gBAC/B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ;oBAC3C,CAAC,CAAC,MAAM,CAAC,gBAAgB;oBACzB,CAAC,CAAC,EAAE,CAAA;QAEV,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACzE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;YAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,kGAAkG;YAClG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;YACjG,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACvE,CAAC;QAED,IAAI,CAAC,gBAAgB;YACnB,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IACrG,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,UAA+B;QAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,UAAU,CAAA;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAEhG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,aAAa,CAAC,CAAA;YAC3E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,mBAAmB,CAAC,CAAA;YACjF,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,wCAAwC,CAAC,CAAA;YACtG,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACxB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,4DAA4D;IACpD,KAAK,CAAC,WAAW;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,uFAAuF;IAC/E,eAAe,CAAC,KAAiB;QACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAChG,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAE/B,oFAAoF;QACpF,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAiB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACpC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QACD,KAAK,CAAC,aAAa,CACjB,gBAAgB,CAAC,KAAK,EACtB,yBAAyB,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAChE,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;SACjF,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,qBAAqB,CACjC,QAAuB,EACvB,MAA6B;QAE7B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAA;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;QAE3E,2FAA2F;QAC3F,+FAA+F;QAC/F,MAAM,GAAG,GAAG,CAAC,QAAiB,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAQ,EAAE;YAC3E,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QAC/E,CAAC,CAAA;QAED,yEAAyE;QACzE,MAAM,GAAG,GAAG,KAAK,IAAiC,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC3D,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;gBACnB,GAAG,CAAC,KAAK,CAAC,CAAA;gBACV,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACjG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,CAAA;gBACV,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;gBACnG,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBACzB,OAAO,QAAQ,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,gDAAgD,CAAC,CAAA;gBACrG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnB,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC,CAAA;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAA;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sFAAsF;YACtF,GAAG,CAAC,KAAK,CAAC,CAAA;YACV,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA;IAClC,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,CAAC,QAAuB,EAAE,MAA6B;QACnF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,+CAA+C,CAAC,CAAA;gBACpG,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAC/E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,KAA0B,CAAC,IAAI,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAA;QACT,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,OAAsB;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,SAAS;YACb,CAAC,CAAC,kBAAkB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;YAC7F,CAAC,CAAC,UAAU,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CACrD,CAAA;QACD,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACnD,CAAC;IAED,yEAAyE;IACjE,cAAc,CAAI,KAAU,EAAE,SAA+B;QACnE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;QACN,MAAM,KAAK,GAAW,EAAE,CAAA;QAExB,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA6B;QACvD,MAAM,CAAC,KAAK,CACV,UAAU,KAAK,0BAA0B,OAAO,EAAE,gBAAgB,cAAc,OAAO,EAAE,MAAM,sBAAsB,CACtH,CAAA;QAED,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAC9C,KAAK;YACL,UAAU,EAAE,cAAc;YAC1B,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;SAC/F,CAAC,CAAA;QAEF,IAAI,YAA2B,CAAA;QAC/B,IAAI,OAA8C,CAAA;QAClD,IAAI,CAAC;YACH,YAAY;gBACV,OAAO,EAAE,MAAM,KAAK,SAAS;oBAC3B,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;wBAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;4BACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,aAAa,CAAC,CAAA;wBAC7D,CAAC;wBACD,OAAO,KAAK,CAAA;oBACd,CAAC,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;YAEzB,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAChC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gBAClB,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,IAAI,0BAA0B;aACpG,CAAC,CACH,CACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACxE,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GAAkB,EAAE,CAAA;QACjC,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACjC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC,IAAI,CAAA;YACvC,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CACT,UAAU,SAAS,cAAc,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,yBAAyB,CACvG,CAAA;gBACD,iBAAiB,EAAE,CAAA;gBACnB,SAAQ;YACV,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;QAC/E,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAA;QAC7D,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,OAA0B,EAAE,QAAQ,GAAG,KAAK;QACrE,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC3C,OAAO;YACP,UAAU,EAAE,cAAc;YAC1B,GAAG,CAAC,QAAQ,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,CAAC,CAAA;QAEF,IAAI,cAA6B,CAAA;QACjC,IAAI,OAAwC,CAAA;QAC5C,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;oBAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,aAAa,CAAC,CAAA;oBAC7D,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,gBAAgB,CAAC,CAAA;oBAChE,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAA;YAClC,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACrE,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,QAAQ,GAAyC,EAAE,CAAA;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACjC,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC,IAAI,CAAA;gBACzC,MAAM,CAAC,IAAI,CACT,UAAU,SAAS,cAAc,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,wBAAwB,CACtG,CAAA;gBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EACzC,uCAAuC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;YAClG,MAAM,cAAc,CAAA;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,mBAAmB,CAAC,WAAqB,EAAE,SAAoB;QACrE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAE1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,4EAA4E,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtJ,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QACxG,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,iBAAiB,CAAC,MAAwB;QAChD,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,uBAAuB,CAAA;QAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,IAAI,iCAAiC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,WAAW;gBACT,0IAA0I,CAAA;QAC9I,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAEzD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACvF,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;SACvF,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,eAAe;YACpC,WAAW;YACX,WAAW;YACX,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;oBAC7C,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBACnF,MAAM;iBACP,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;oBACtD,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;iBACpD,CAAC,CAAc,CAAA;YAClB,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc,CAAC,MAA2B,EAAE,MAAqB;QACvE,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,CAAA;QAC5D,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACzG,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,IAAI,mCAAmC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;YAChF,WAAW;gBACT,iIAAiI,CAAA;QACrI,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAA;QAElD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC/E,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,qEAAqE,CAAC;SACnF,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,YAAY;YACjC,WAAW;YACX,WAAW;YACX,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBAElE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,yFAAyF;oBACzF,2FAA2F;oBAC3F,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;oBAC1D,CAAC;oBACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAe,CAAA;gBACxD,CAAC;gBAED,gGAAgG;gBAChG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;gBACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,KAAK,UAAU,CAC5B,CAAA;gBAE5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;oBAC1E,MAAM,IAAI,cAAc,CACtB,OAAO,EACP,gCAAgC,QAAQ,CAAC,MAAM,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5J,CAAA;gBACH,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAe,CAAA;YACtD,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -2,6 +2,7 @@ import type { JSONValue } from '../types/json.js';
2
2
  import type { MessageData } from '../types/messages.js';
3
3
  import type { Tool } from '../tools/tool.js';
4
4
  import type { ExtractionConfig } from './extraction/types.js';
5
+ import type { InjectionConfig } from '../injection/index.js';
5
6
  /**
6
7
  * A single memory entry retrieved from or stored to a memory store.
7
8
  */
@@ -139,6 +140,13 @@ export interface MemoryStore extends MemoryStoreConfig {
139
140
  * @param context - Manager-supplied per-batch context (see {@link AddMessagesContext})
140
141
  */
141
142
  addMessages?(messages: MessageData[], context?: AddMessagesContext): Promise<unknown>;
143
+ /**
144
+ * Perform async setup that must succeed before the agent runs.
145
+ *
146
+ * Called by the {@link MemoryManager} during `initAgent`. Stores that require remote resources
147
+ * (e.g. resolving a knowledge base type) implement this; the default is a no-op.
148
+ */
149
+ initialize?(): Promise<void>;
142
150
  /**
143
151
  * Returns store-specific tools to register with the agent, through a {@link MemoryManager}. Registers
144
152
  * tools alongside `search_memory` / `add_memory` tools if enabled on the {@link MemoryManager}.
@@ -196,6 +204,54 @@ export interface MemoryAddToolConfig extends MemoryToolConfig {
196
204
  */
197
205
  waitForWrites?: boolean;
198
206
  }
207
+ /**
208
+ * Configuration for memory context injection.
209
+ *
210
+ * When enabled on a {@link MemoryManager}, the manager searches memory before a model call and makes
211
+ * the top results available to the model for that call, so relevant knowledge is present without the
212
+ * model choosing to search. The injected text is ephemeral: it augments the model input for that call
213
+ * only and never persists into the durable conversation or session.
214
+ *
215
+ * Extends the generic {@link InjectionConfig} (which carries `trigger`) with the memory-owned knobs:
216
+ * how many entries to retrieve, how to derive the query, and how to render the results.
217
+ */
218
+ export interface MemoryInjectionConfig extends InjectionConfig {
219
+ /**
220
+ * Maximum number of entries to retrieve and inject per model call.
221
+ *
222
+ * A store ranks by semantic similarity, which is not the same as contextual usefulness, so the
223
+ * default injects a small candidate set rather than betting on the top hit. Raising this improves
224
+ * recall at the cost of a larger prepend (context bloat); lower it for a tighter injection.
225
+ *
226
+ * With multiple stores, results are concatenated in store-registration order with no cross-store
227
+ * ranking, so this cap can favor entries from earlier-registered stores.
228
+ *
229
+ * @defaultValue 5
230
+ */
231
+ maxEntries?: number;
232
+ /**
233
+ * Derives the search query from the current conversation. Return `undefined` or an empty string to
234
+ * skip injection for this call. A callback that throws fails open (injection is skipped).
235
+ *
236
+ * Defaults to an adaptive query: the latest user message's text on a user turn, otherwise the most
237
+ * recent assistant message's text (the previous step on an autonomous turn).
238
+ */
239
+ query?: (context: {
240
+ messages: MessageData[];
241
+ }) => string | undefined;
242
+ /**
243
+ * Renders retrieved entries into the injected text. A callback that throws fails open (injection is
244
+ * skipped).
245
+ *
246
+ * Defaults to a `<memory>` XML block with one `<entry>` per result, carrying a `source` attribute
247
+ * naming the originating store (when known) so the model can attribute and weigh each memory. The
248
+ * default escapes entry content and source, so a custom `format` that emits markup is responsible
249
+ * for its own escaping.
250
+ */
251
+ format?: (context: {
252
+ entries: MemoryEntry[];
253
+ }) => string;
254
+ }
199
255
  /**
200
256
  * Configuration for the {@link MemoryManager}.
201
257
  */
@@ -209,5 +265,21 @@ export interface MemoryManagerConfig {
209
265
  * writable stores; pass a {@link MemoryAddToolConfig} with `stores` to restrict it to specific ones.
210
266
  */
211
267
  addToolConfig?: MemoryAddToolConfig | boolean;
268
+ /**
269
+ * Memory context injection. Defaults to `true`. `true` uses the default injection settings;
270
+ * pass a {@link MemoryInjectionConfig} to customize retrieval, timing, and formatting; `false`
271
+ * disables it.
272
+ *
273
+ * `true` is equivalent to:
274
+ * ```ts
275
+ * {
276
+ * trigger: 'userTurn', // inject only on a fresh user ask
277
+ * maxEntries: 5, // retrieve and inject up to 5 entries
278
+ * // query: the latest user text on a user turn, else the most recent assistant text
279
+ * // format: a <memory> block with one <entry source="STORE_NAME"> per result (content escaped)
280
+ * }
281
+ * ```
282
+ */
283
+ injection?: boolean | MemoryInjectionConfig;
212
284
  }
213
285
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/types.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,6 @@ describe('Agent middleware integration — InvokeModelStage', () => {
38
38
  systemPrompt: 'Be helpful',
39
39
  messages: expect.arrayContaining([expect.any(Message)]),
40
40
  toolSpecs: expect.arrayContaining([expect.objectContaining({ name: 'testTool' })]),
41
- modelState: expect.anything(),
42
41
  invocationState: expect.anything(),
43
42
  });
44
43
  });