@strands-agents/sdk 1.4.0 → 1.6.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 (435) hide show
  1. package/README.md +11 -11
  2. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  3. package/dist/src/__fixtures__/agent-helpers.js +9 -0
  4. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  5. package/dist/src/__fixtures__/register-node-defaults.d.ts +2 -0
  6. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +1 -0
  7. package/dist/src/__fixtures__/register-node-defaults.js +6 -0
  8. package/dist/src/__fixtures__/register-node-defaults.js.map +1 -0
  9. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +1 -1
  10. package/dist/src/__fixtures__/test-sandbox.node.js +4 -3
  11. package/dist/src/__fixtures__/test-sandbox.node.js.map +1 -1
  12. package/dist/src/__tests__/default-slot.test.d.ts +2 -0
  13. package/dist/src/__tests__/default-slot.test.d.ts.map +1 -0
  14. package/dist/src/__tests__/default-slot.test.js +33 -0
  15. package/dist/src/__tests__/default-slot.test.js.map +1 -0
  16. package/dist/src/a2a/__tests__/async-lock.test.d.ts +2 -0
  17. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +1 -0
  18. package/dist/src/a2a/__tests__/async-lock.test.js +137 -0
  19. package/dist/src/a2a/__tests__/async-lock.test.js.map +1 -0
  20. package/dist/src/a2a/__tests__/executor.test.js +146 -8
  21. package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
  22. package/dist/src/a2a/__tests__/server.test.js +20 -0
  23. package/dist/src/a2a/__tests__/server.test.js.map +1 -1
  24. package/dist/src/a2a/async-lock.d.ts +22 -0
  25. package/dist/src/a2a/async-lock.d.ts.map +1 -0
  26. package/dist/src/a2a/async-lock.js +38 -0
  27. package/dist/src/a2a/async-lock.js.map +1 -0
  28. package/dist/src/a2a/executor.d.ts +59 -24
  29. package/dist/src/a2a/executor.d.ts.map +1 -1
  30. package/dist/src/a2a/executor.js +209 -32
  31. package/dist/src/a2a/executor.js.map +1 -1
  32. package/dist/src/a2a/index.d.ts +1 -1
  33. package/dist/src/a2a/index.d.ts.map +1 -1
  34. package/dist/src/a2a/index.js +1 -1
  35. package/dist/src/a2a/index.js.map +1 -1
  36. package/dist/src/a2a/server.d.ts +18 -2
  37. package/dist/src/a2a/server.d.ts.map +1 -1
  38. package/dist/src/a2a/server.js +13 -2
  39. package/dist/src/a2a/server.js.map +1 -1
  40. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +2 -0
  41. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +1 -0
  42. package/dist/src/agent/__tests__/agent.context-manager.test.js +107 -0
  43. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +1 -0
  44. package/dist/src/agent/__tests__/agent.stateful-model.test.js +2 -2
  45. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -1
  46. package/dist/src/agent/__tests__/agent.tracer.test.node.js +14 -0
  47. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
  48. package/dist/src/agent/agent.d.ts +135 -2
  49. package/dist/src/agent/agent.d.ts.map +1 -1
  50. package/dist/src/agent/agent.js +506 -189
  51. package/dist/src/agent/agent.js.map +1 -1
  52. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +19 -0
  53. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -0
  54. package/dist/src/context-manager/modes/agentic/agentic-context.js +245 -0
  55. package/dist/src/context-manager/modes/agentic/agentic-context.js.map +1 -0
  56. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +2 -0
  57. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +1 -0
  58. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +332 -0
  59. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +1 -0
  60. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +2 -0
  61. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +1 -0
  62. package/dist/src/conversation-manager/__tests__/context-compression.test.js +176 -0
  63. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +1 -0
  64. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +2 -0
  65. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +1 -0
  66. package/dist/src/conversation-manager/__tests__/pin.test.js +119 -0
  67. package/dist/src/conversation-manager/__tests__/pin.test.js.map +1 -0
  68. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +49 -0
  69. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  70. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +58 -0
  71. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  72. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +2 -0
  73. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +1 -0
  74. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +138 -0
  75. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +1 -0
  76. package/dist/src/conversation-manager/compression/context-compression.d.ts +39 -0
  77. package/dist/src/conversation-manager/compression/context-compression.d.ts.map +1 -0
  78. package/dist/src/conversation-manager/compression/context-compression.js +150 -0
  79. package/dist/src/conversation-manager/compression/context-compression.js.map +1 -0
  80. package/dist/src/conversation-manager/compression/pin-message.d.ts +45 -0
  81. package/dist/src/conversation-manager/compression/pin-message.d.ts.map +1 -0
  82. package/dist/src/conversation-manager/compression/pin-message.js +106 -0
  83. package/dist/src/conversation-manager/compression/pin-message.js.map +1 -0
  84. package/dist/src/conversation-manager/conversation-manager.d.ts +2 -0
  85. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  86. package/dist/src/conversation-manager/conversation-manager.js +2 -2
  87. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  88. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +7 -0
  89. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  90. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +30 -38
  91. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  92. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +7 -19
  93. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
  94. package/dist/src/conversation-manager/summarizing-conversation-manager.js +20 -109
  95. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
  96. package/dist/src/default-slot.d.ts +6 -0
  97. package/dist/src/default-slot.d.ts.map +1 -0
  98. package/dist/src/default-slot.js +18 -0
  99. package/dist/src/default-slot.js.map +1 -0
  100. package/dist/src/errors.d.ts +8 -0
  101. package/dist/src/errors.d.ts.map +1 -1
  102. package/dist/src/errors.js +11 -0
  103. package/dist/src/errors.js.map +1 -1
  104. package/dist/src/index.d.ts +8 -1
  105. package/dist/src/index.d.ts.map +1 -1
  106. package/dist/src/index.js +7 -1
  107. package/dist/src/index.js.map +1 -1
  108. package/dist/src/index.node.d.ts +2 -0
  109. package/dist/src/index.node.d.ts.map +1 -0
  110. package/dist/src/index.node.js +9 -0
  111. package/dist/src/index.node.js.map +1 -0
  112. package/dist/src/injection/__tests__/message-injection.test.d.ts +2 -0
  113. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +1 -0
  114. package/dist/src/injection/__tests__/message-injection.test.js +200 -0
  115. package/dist/src/injection/__tests__/message-injection.test.js.map +1 -0
  116. package/dist/src/injection/index.d.ts +6 -0
  117. package/dist/src/injection/index.d.ts.map +1 -0
  118. package/dist/src/injection/index.js +2 -0
  119. package/dist/src/injection/index.js.map +1 -0
  120. package/dist/src/injection/message-injection.d.ts +65 -0
  121. package/dist/src/injection/message-injection.d.ts.map +1 -0
  122. package/dist/src/injection/message-injection.js +134 -0
  123. package/dist/src/injection/message-injection.js.map +1 -0
  124. package/dist/src/injection/types.d.ts +63 -0
  125. package/dist/src/injection/types.d.ts.map +1 -0
  126. package/dist/src/injection/types.js +2 -0
  127. package/dist/src/injection/types.js.map +1 -0
  128. package/dist/src/injection/xml.d.ts +27 -0
  129. package/dist/src/injection/xml.d.ts.map +1 -0
  130. package/dist/src/injection/xml.js +31 -0
  131. package/dist/src/injection/xml.js.map +1 -0
  132. package/dist/src/interrupt.d.ts +5 -1
  133. package/dist/src/interrupt.d.ts.map +1 -1
  134. package/dist/src/interrupt.js +6 -0
  135. package/dist/src/interrupt.js.map +1 -1
  136. package/dist/src/memory/__tests__/memory-manager.test.d.ts +2 -0
  137. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +1 -0
  138. package/dist/src/memory/__tests__/memory-manager.test.js +679 -0
  139. package/dist/src/memory/__tests__/memory-manager.test.js.map +1 -0
  140. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +2 -0
  141. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +1 -0
  142. package/dist/src/memory/extraction/__tests__/extraction.test.js +637 -0
  143. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +1 -0
  144. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +2 -0
  145. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +1 -0
  146. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +68 -0
  147. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +1 -0
  148. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +2 -0
  149. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +1 -0
  150. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +81 -0
  151. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +1 -0
  152. package/dist/src/memory/extraction/coordinator.d.ts +128 -0
  153. package/dist/src/memory/extraction/coordinator.d.ts.map +1 -0
  154. package/dist/src/memory/extraction/coordinator.js +245 -0
  155. package/dist/src/memory/extraction/coordinator.js.map +1 -0
  156. package/dist/src/memory/extraction/model-extractor.d.ts +32 -0
  157. package/dist/src/memory/extraction/model-extractor.d.ts.map +1 -0
  158. package/dist/src/memory/extraction/model-extractor.js +118 -0
  159. package/dist/src/memory/extraction/model-extractor.js.map +1 -0
  160. package/dist/src/memory/extraction/resolve-extraction-config.d.ts +46 -0
  161. package/dist/src/memory/extraction/resolve-extraction-config.d.ts.map +1 -0
  162. package/dist/src/memory/extraction/resolve-extraction-config.js +59 -0
  163. package/dist/src/memory/extraction/resolve-extraction-config.js.map +1 -0
  164. package/dist/src/memory/extraction/triggers.d.ts +41 -0
  165. package/dist/src/memory/extraction/triggers.d.ts.map +1 -0
  166. package/dist/src/memory/extraction/triggers.js +59 -0
  167. package/dist/src/memory/extraction/triggers.js.map +1 -0
  168. package/dist/src/memory/extraction/types.d.ts +133 -0
  169. package/dist/src/memory/extraction/types.d.ts.map +1 -0
  170. package/dist/src/memory/extraction/types.js +19 -0
  171. package/dist/src/memory/extraction/types.js.map +1 -0
  172. package/dist/src/memory/index.d.ts +10 -0
  173. package/dist/src/memory/index.d.ts.map +1 -0
  174. package/dist/src/memory/index.js +5 -0
  175. package/dist/src/memory/index.js.map +1 -0
  176. package/dist/src/memory/memory-manager.d.ts +178 -0
  177. package/dist/src/memory/memory-manager.d.ts.map +1 -0
  178. package/dist/src/memory/memory-manager.js +526 -0
  179. package/dist/src/memory/memory-manager.js.map +1 -0
  180. package/dist/src/memory/types.d.ts +278 -0
  181. package/dist/src/memory/types.d.ts.map +1 -0
  182. package/dist/src/memory/types.js +2 -0
  183. package/dist/src/memory/types.js.map +1 -0
  184. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +2 -0
  185. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +1 -0
  186. package/dist/src/middleware/__tests__/agent-middleware.test.js +1206 -0
  187. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +1 -0
  188. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +2 -0
  189. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +1 -0
  190. package/dist/src/middleware/__tests__/copy-on-input.test.js +379 -0
  191. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +1 -0
  192. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +2 -0
  193. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +1 -0
  194. package/dist/src/middleware/__tests__/custom-stages.test.js +97 -0
  195. package/dist/src/middleware/__tests__/custom-stages.test.js.map +1 -0
  196. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +2 -0
  197. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +1 -0
  198. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +267 -0
  199. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +1 -0
  200. package/dist/src/middleware/__tests__/registry.test.d.ts +2 -0
  201. package/dist/src/middleware/__tests__/registry.test.d.ts.map +1 -0
  202. package/dist/src/middleware/__tests__/registry.test.js +525 -0
  203. package/dist/src/middleware/__tests__/registry.test.js.map +1 -0
  204. package/dist/src/middleware/index.d.ts +5 -0
  205. package/dist/src/middleware/index.d.ts.map +1 -0
  206. package/dist/src/middleware/index.js +3 -0
  207. package/dist/src/middleware/index.js.map +1 -0
  208. package/dist/src/middleware/registry.d.ts +58 -0
  209. package/dist/src/middleware/registry.d.ts.map +1 -0
  210. package/dist/src/middleware/registry.js +107 -0
  211. package/dist/src/middleware/registry.js.map +1 -0
  212. package/dist/src/middleware/stages.d.ts +145 -0
  213. package/dist/src/middleware/stages.d.ts.map +1 -0
  214. package/dist/src/middleware/stages.js +34 -0
  215. package/dist/src/middleware/stages.js.map +1 -0
  216. package/dist/src/middleware/types.d.ts +88 -0
  217. package/dist/src/middleware/types.d.ts.map +1 -0
  218. package/dist/src/middleware/types.js +2 -0
  219. package/dist/src/middleware/types.js.map +1 -0
  220. package/dist/src/models/__tests__/anthropic.test.js +16 -1
  221. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  222. package/dist/src/models/__tests__/bedrock.test.js +39 -0
  223. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  224. package/dist/src/models/__tests__/model.test.js +46 -3
  225. package/dist/src/models/__tests__/model.test.js.map +1 -1
  226. package/dist/src/models/anthropic.js +2 -2
  227. package/dist/src/models/anthropic.js.map +1 -1
  228. package/dist/src/models/bedrock.d.ts.map +1 -1
  229. package/dist/src/models/bedrock.js +12 -5
  230. package/dist/src/models/bedrock.js.map +1 -1
  231. package/dist/src/models/defaults.d.ts.map +1 -1
  232. package/dist/src/models/defaults.js +2 -0
  233. package/dist/src/models/defaults.js.map +1 -1
  234. package/dist/src/models/model.d.ts.map +1 -1
  235. package/dist/src/models/model.js +7 -3
  236. package/dist/src/models/model.js.map +1 -1
  237. package/dist/src/models/openai/__tests__/responses.test.js +8 -14
  238. package/dist/src/models/openai/__tests__/responses.test.js.map +1 -1
  239. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +2 -0
  240. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +1 -0
  241. package/dist/src/sandbox/__tests__/default.test.browser.js +11 -0
  242. package/dist/src/sandbox/__tests__/default.test.browser.js.map +1 -0
  243. package/dist/src/sandbox/__tests__/default.test.node.d.ts +2 -0
  244. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +1 -0
  245. package/dist/src/sandbox/__tests__/default.test.node.js +23 -0
  246. package/dist/src/sandbox/__tests__/default.test.node.js.map +1 -0
  247. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +2 -0
  248. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +1 -0
  249. package/dist/src/sandbox/__tests__/docker.test.node.js +89 -0
  250. package/dist/src/sandbox/__tests__/docker.test.node.js.map +1 -0
  251. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +2 -0
  252. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +1 -0
  253. package/dist/src/sandbox/__tests__/errors.test.node.js +33 -0
  254. package/dist/src/sandbox/__tests__/errors.test.node.js.map +1 -0
  255. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +2 -0
  256. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +1 -0
  257. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +124 -0
  258. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +1 -0
  259. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +50 -4
  260. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +1 -1
  261. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +2 -0
  262. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +1 -0
  263. package/dist/src/sandbox/__tests__/ssh.test.node.js +262 -0
  264. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +1 -0
  265. package/dist/src/sandbox/base.d.ts +17 -4
  266. package/dist/src/sandbox/base.d.ts.map +1 -1
  267. package/dist/src/sandbox/base.js +10 -2
  268. package/dist/src/sandbox/base.js.map +1 -1
  269. package/dist/src/sandbox/constants.d.ts +18 -0
  270. package/dist/src/sandbox/constants.d.ts.map +1 -1
  271. package/dist/src/sandbox/constants.js +20 -0
  272. package/dist/src/sandbox/constants.js.map +1 -1
  273. package/dist/src/sandbox/default.d.ts +3 -0
  274. package/dist/src/sandbox/default.d.ts.map +1 -0
  275. package/dist/src/sandbox/default.js +3 -0
  276. package/dist/src/sandbox/default.js.map +1 -0
  277. package/dist/src/sandbox/docker.d.ts +38 -0
  278. package/dist/src/sandbox/docker.d.ts.map +1 -0
  279. package/dist/src/sandbox/docker.js +61 -0
  280. package/dist/src/sandbox/docker.js.map +1 -0
  281. package/dist/src/sandbox/errors.d.ts +26 -0
  282. package/dist/src/sandbox/errors.d.ts.map +1 -0
  283. package/dist/src/sandbox/errors.js +35 -0
  284. package/dist/src/sandbox/errors.js.map +1 -0
  285. package/dist/src/sandbox/index.d.ts +5 -0
  286. package/dist/src/sandbox/index.d.ts.map +1 -0
  287. package/dist/src/sandbox/index.js +4 -0
  288. package/dist/src/sandbox/index.js.map +1 -0
  289. package/dist/src/sandbox/not-a-sandbox-local-environment.d.ts +16 -0
  290. package/dist/src/sandbox/not-a-sandbox-local-environment.d.ts.map +1 -0
  291. package/dist/src/sandbox/not-a-sandbox-local-environment.js +83 -0
  292. package/dist/src/sandbox/not-a-sandbox-local-environment.js.map +1 -0
  293. package/dist/src/sandbox/posix-shell.d.ts +21 -0
  294. package/dist/src/sandbox/posix-shell.d.ts.map +1 -1
  295. package/dist/src/sandbox/posix-shell.js +41 -3
  296. package/dist/src/sandbox/posix-shell.js.map +1 -1
  297. package/dist/src/sandbox/ssh.d.ts +56 -0
  298. package/dist/src/sandbox/ssh.d.ts.map +1 -0
  299. package/dist/src/sandbox/ssh.js +121 -0
  300. package/dist/src/sandbox/ssh.js.map +1 -0
  301. package/dist/src/sandbox/stream-process.d.ts.map +1 -1
  302. package/dist/src/sandbox/stream-process.js +3 -2
  303. package/dist/src/sandbox/stream-process.js.map +1 -1
  304. package/dist/src/tsconfig.tsbuildinfo +1 -1
  305. package/dist/src/types/agent.d.ts +21 -0
  306. package/dist/src/types/agent.d.ts.map +1 -1
  307. package/dist/src/types/agent.js.map +1 -1
  308. package/dist/src/types/messages.d.ts +9 -1
  309. package/dist/src/types/messages.d.ts.map +1 -1
  310. package/dist/src/types/messages.js +13 -1
  311. package/dist/src/types/messages.js.map +1 -1
  312. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +2 -0
  313. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +1 -0
  314. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +675 -0
  315. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +1 -0
  316. package/dist/src/vended-interventions/cedar/cedar.d.ts +102 -0
  317. package/dist/src/vended-interventions/cedar/cedar.d.ts.map +1 -0
  318. package/dist/src/vended-interventions/cedar/cedar.js +228 -0
  319. package/dist/src/vended-interventions/cedar/cedar.js.map +1 -0
  320. package/dist/src/vended-interventions/cedar/index.d.ts +3 -0
  321. package/dist/src/vended-interventions/cedar/index.d.ts.map +1 -0
  322. package/dist/src/vended-interventions/cedar/index.js +2 -0
  323. package/dist/src/vended-interventions/cedar/index.js.map +1 -0
  324. package/dist/src/vended-interventions/cedar/schema-generator.d.ts +10 -0
  325. package/dist/src/vended-interventions/cedar/schema-generator.d.ts.map +1 -0
  326. package/dist/src/vended-interventions/cedar/schema-generator.js +33 -0
  327. package/dist/src/vended-interventions/cedar/schema-generator.js.map +1 -0
  328. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts +2 -0
  329. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts.map +1 -0
  330. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.js +611 -0
  331. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.js.map +1 -0
  332. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts +2 -0
  333. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts.map +1 -0
  334. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.js +2 -0
  335. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.js.map +1 -0
  336. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts +230 -0
  337. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts.map +1 -0
  338. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js +370 -0
  339. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js.map +1 -0
  340. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +2 -0
  341. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +1 -0
  342. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +96 -0
  343. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +1 -0
  344. package/dist/src/vended-plugins/context-injector/index.d.ts +25 -0
  345. package/dist/src/vended-plugins/context-injector/index.d.ts.map +1 -0
  346. package/dist/src/vended-plugins/context-injector/index.js +23 -0
  347. package/dist/src/vended-plugins/context-injector/index.js.map +1 -0
  348. package/dist/src/vended-plugins/context-injector/plugin.d.ts +55 -0
  349. package/dist/src/vended-plugins/context-injector/plugin.d.ts.map +1 -0
  350. package/dist/src/vended-plugins/context-injector/plugin.js +41 -0
  351. package/dist/src/vended-plugins/context-injector/plugin.js.map +1 -0
  352. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +2 -0
  353. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +1 -0
  354. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +68 -0
  355. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +1 -0
  356. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +43 -4
  357. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -1
  358. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +2 -0
  359. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +1 -0
  360. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +93 -0
  361. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +1 -0
  362. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +68 -0
  363. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -1
  364. package/dist/src/vended-plugins/context-offloader/index.d.ts +1 -1
  365. package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -1
  366. package/dist/src/vended-plugins/context-offloader/plugin.d.ts +4 -1
  367. package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -1
  368. package/dist/src/vended-plugins/context-offloader/plugin.js +40 -8
  369. package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -1
  370. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  371. package/dist/src/vended-plugins/context-offloader/search.js +3 -5
  372. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  373. package/dist/src/vended-plugins/context-offloader/storage.d.ts +58 -6
  374. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -1
  375. package/dist/src/vended-plugins/context-offloader/storage.js +136 -14
  376. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  377. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +2 -0
  378. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +1 -0
  379. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +736 -0
  380. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +1 -0
  381. package/dist/src/vended-plugins/goal/index.d.ts +21 -0
  382. package/dist/src/vended-plugins/goal/index.d.ts.map +1 -0
  383. package/dist/src/vended-plugins/goal/index.js +20 -0
  384. package/dist/src/vended-plugins/goal/index.js.map +1 -0
  385. package/dist/src/vended-plugins/goal/judge.d.ts +41 -0
  386. package/dist/src/vended-plugins/goal/judge.d.ts.map +1 -0
  387. package/dist/src/vended-plugins/goal/judge.js +92 -0
  388. package/dist/src/vended-plugins/goal/judge.js.map +1 -0
  389. package/dist/src/vended-plugins/goal/plugin.d.ts +214 -0
  390. package/dist/src/vended-plugins/goal/plugin.d.ts.map +1 -0
  391. package/dist/src/vended-plugins/goal/plugin.js +287 -0
  392. package/dist/src/vended-plugins/goal/plugin.js.map +1 -0
  393. package/dist/src/vended-plugins/index.d.ts +3 -1
  394. package/dist/src/vended-plugins/index.d.ts.map +1 -1
  395. package/dist/src/vended-plugins/index.js +3 -1
  396. package/dist/src/vended-plugins/index.js.map +1 -1
  397. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +17 -7
  398. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
  399. package/dist/src/vended-plugins/skills/agent-skills.d.ts +21 -7
  400. package/dist/src/vended-plugins/skills/agent-skills.d.ts.map +1 -1
  401. package/dist/src/vended-plugins/skills/agent-skills.js +144 -77
  402. package/dist/src/vended-plugins/skills/agent-skills.js.map +1 -1
  403. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +44 -4
  404. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  405. package/dist/src/vended-tools/bash/bash.d.ts +3 -24
  406. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  407. package/dist/src/vended-tools/bash/bash.js +9 -9
  408. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  409. package/dist/src/vended-tools/bash/index.d.ts +3 -1
  410. package/dist/src/vended-tools/bash/index.d.ts.map +1 -1
  411. package/dist/src/vended-tools/bash/index.js +2 -1
  412. package/dist/src/vended-tools/bash/index.js.map +1 -1
  413. package/dist/src/vended-tools/bash/make-bash.d.ts +22 -0
  414. package/dist/src/vended-tools/bash/make-bash.d.ts.map +1 -0
  415. package/dist/src/vended-tools/bash/make-bash.js +40 -0
  416. package/dist/src/vended-tools/bash/make-bash.js.map +1 -0
  417. package/dist/src/vended-tools/bash/types.d.ts +1 -0
  418. package/dist/src/vended-tools/bash/types.d.ts.map +1 -1
  419. package/dist/src/vended-tools/bash/types.js +2 -0
  420. package/dist/src/vended-tools/bash/types.js.map +1 -1
  421. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +83 -1
  422. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
  423. package/dist/src/vended-tools/file-editor/file-editor.d.ts +19 -10
  424. package/dist/src/vended-tools/file-editor/file-editor.d.ts.map +1 -1
  425. package/dist/src/vended-tools/file-editor/file-editor.js +188 -218
  426. package/dist/src/vended-tools/file-editor/file-editor.js.map +1 -1
  427. package/dist/src/vended-tools/file-editor/index.d.ts +2 -1
  428. package/dist/src/vended-tools/file-editor/index.d.ts.map +1 -1
  429. package/dist/src/vended-tools/file-editor/index.js +1 -1
  430. package/dist/src/vended-tools/file-editor/index.js.map +1 -1
  431. package/package.json +59 -6
  432. package/dist/src/utils/shell-quote.d.ts +0 -12
  433. package/dist/src/utils/shell-quote.d.ts.map +0 -1
  434. package/dist/src/utils/shell-quote.js +0 -14
  435. package/dist/src/utils/shell-quote.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ import type { JSONValue } from '../../types/json.js';
2
+ import type { MessageData, ContentBlockData } from '../../types/messages.js';
3
+ import type { Model } from '../../models/model.js';
4
+ import type { LocalAgent } from '../../types/agent.js';
5
+ type DistributedKeyof<Union> = Union extends unknown ? keyof Union : never;
6
+ /**
7
+ * Content block kinds that {@link MemoryMessageFilter} can exclude before messages reach an
8
+ * {@link Extractor} or the no-extractor passthrough.
9
+ *
10
+ * Derived from the SDK's {@link ContentBlockData} union: every member's discriminator key is its
11
+ * kind (`{ toolUse: ... }` → `'toolUse'`, `{ text: string }` → `'text'`), so this tracks new block
12
+ * types automatically instead of drifting. Matches the runtime `_blockKind` used to filter.
13
+ */
14
+ export type MemoryContentBlockType = DistributedKeyof<ContentBlockData>;
15
+ /**
16
+ * Filters content blocks out of messages before extraction.
17
+ *
18
+ * Blocks whose kind is in {@link exclude} are stripped; a message left with no content is dropped
19
+ * entirely. Defaults to excluding tool traffic (`toolUse` / `toolResult`), which is rarely useful as
20
+ * long-term memory and adds noise.
21
+ */
22
+ export interface MemoryMessageFilter {
23
+ /** Content block kinds to strip before extraction. */
24
+ exclude: MemoryContentBlockType[];
25
+ }
26
+ /** Default filter: drop tool-call traffic, keep everything else (text, reasoning, media). */
27
+ export declare const DEFAULT_MEMORY_MESSAGE_FILTER: MemoryMessageFilter;
28
+ /**
29
+ * A discrete entry produced by an {@link Extractor}, ready to be written to a store via its `add`.
30
+ */
31
+ export interface ExtractionResult {
32
+ /** The textual content of the entry. */
33
+ content: string;
34
+ /** Optional metadata to associate with the entry. */
35
+ metadata?: Record<string, JSONValue>;
36
+ }
37
+ /**
38
+ * Context passed to {@link Extractor.extract}.
39
+ *
40
+ * Lets the manager hand an extractor a fallback model without the extractor having to be wired to
41
+ * the agent directly. {@link ModelExtractor} uses its own configured model when set, else
42
+ * {@link defaultModel}.
43
+ */
44
+ export interface ExtractorContext {
45
+ /** The agent's model, supplied so an extractor can default to it. */
46
+ defaultModel?: Model;
47
+ }
48
+ /**
49
+ * Transforms conversation messages into discrete, searchable entries.
50
+ *
51
+ * Implementations distill raw turns into facts worth remembering. Optional on a store's
52
+ * {@link ExtractionConfig}: when absent, the manager passes messages straight to the store (see the
53
+ * no-extractor passthrough on {@link MemoryStore}), which is the right path for backends that
54
+ * extract server-side.
55
+ */
56
+ export interface Extractor {
57
+ /**
58
+ * Extract entries from a batch of messages.
59
+ *
60
+ * @param messages - The filtered messages to extract from
61
+ * @param context - Optional context (e.g. a fallback model)
62
+ * @returns The entries to write to the store
63
+ */
64
+ extract(messages: MessageData[], context?: ExtractorContext): Promise<ExtractionResult[]>;
65
+ }
66
+ /**
67
+ * Context handed to {@link ExtractionTrigger.attach} so a trigger can wire itself into the agent
68
+ * lifecycle and signal when extraction should run for its store.
69
+ */
70
+ export interface ExtractionTriggerContext {
71
+ /** The agent the trigger attaches its hooks to. */
72
+ agent: LocalAgent;
73
+ /** Save this store's unsaved messages now. Runs in the background and returns immediately, so calling it from a hook never blocks the agent. To await completion, see {@link MemoryManager.flush}. */
74
+ fire: () => void;
75
+ }
76
+ /**
77
+ * Controls when a store's {@link ExtractionConfig} runs.
78
+ *
79
+ * A trigger is a self-attaching value object: {@link attach} wires whatever agent hooks the trigger
80
+ * needs and calls {@link ExtractionTriggerContext.fire} when extraction should happen. Extend this
81
+ * class for custom triggering logic.
82
+ *
83
+ * A trigger must eventually fire for its store's buffered messages to be written: the high-water-mark
84
+ * dedup means skipped turns are still picked up on the *next* fire, but a trigger that never fires
85
+ * never extracts (and its messages stay buffered for the session). For a guaranteed final write at a
86
+ * boundary, the caller uses {@link MemoryManager.flush}, which force-completes regardless of triggers.
87
+ */
88
+ export declare abstract class ExtractionTrigger {
89
+ /** Stable identifier for this trigger kind, used in logging. */
90
+ abstract readonly name: string;
91
+ /**
92
+ * Wire this trigger into the agent lifecycle.
93
+ *
94
+ * Called once per store during {@link MemoryManager} initialization. Register hooks on
95
+ * `context.agent` and call `context.fire()` when extraction should run.
96
+ *
97
+ * @param context - The agent to attach to and the fire callback bound to this trigger's store
98
+ */
99
+ abstract attach(context: ExtractionTriggerContext): void;
100
+ }
101
+ /**
102
+ * Per-store automatic-extraction configuration.
103
+ *
104
+ * Lives on a store (via {@link MemoryStoreConfig}) so different stores can extract on different
105
+ * schedules and in different styles. {@link trigger} decides *when*; {@link extractor} decides *how*
106
+ * (omit it to pass raw messages straight to the store); {@link filter} prunes content blocks first.
107
+ */
108
+ export interface ExtractionConfig {
109
+ /**
110
+ * When to run extraction. A single trigger or an array; multiple triggers compose (extraction runs
111
+ * whenever any of them fires). Omit to default to every 5 turns; an explicit empty array is
112
+ * rejected at construction.
113
+ */
114
+ trigger?: ExtractionTrigger | ExtractionTrigger[];
115
+ /**
116
+ * How to turn messages into entries (client-side extraction). When set, the store must implement
117
+ * `add` and each produced entry is stored through it. When omitted, the default depends on the
118
+ * store's write methods: a store implementing `addMessages` uses server-side extraction (the manager
119
+ * hands it the raw messages, no model call), while a store implementing only `add` defaults to a
120
+ * {@link ModelExtractor} that distills facts client-side.
121
+ */
122
+ extractor?: Extractor;
123
+ /**
124
+ * Content blocks to strip before extraction. Defaults to {@link DEFAULT_MEMORY_MESSAGE_FILTER}
125
+ * (excludes `toolUse` / `toolResult`).
126
+ *
127
+ * For use cases or extractors with value in distilling over the *full* turn you instead want
128
+ * everything: pass `{ exclude: [] }` so tool blocks reach `addMessages`.
129
+ */
130
+ filter?: MemoryMessageFilter;
131
+ }
132
+ export {};
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/memory/extraction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,KAAK,gBAAgB,CAAC,KAAK,IAAI,KAAK,SAAS,OAAO,GAAG,MAAM,KAAK,GAAG,KAAK,CAAA;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;AAEvE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,OAAO,EAAE,sBAAsB,EAAE,CAAA;CAClC;AAED,6FAA6F;AAC7F,eAAO,MAAM,6BAA6B,EAAE,mBAE3C,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;CAC1F;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,KAAK,EAAE,UAAU,CAAA;IACjB,sMAAsM;IACtM,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,iBAAiB;IACrC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAE9B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;CACzD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;IACjD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC7B"}
@@ -0,0 +1,19 @@
1
+ /** Default filter: drop tool-call traffic, keep everything else (text, reasoning, media). */
2
+ export const DEFAULT_MEMORY_MESSAGE_FILTER = {
3
+ exclude: ['toolUse', 'toolResult'],
4
+ };
5
+ /**
6
+ * Controls when a store's {@link ExtractionConfig} runs.
7
+ *
8
+ * A trigger is a self-attaching value object: {@link attach} wires whatever agent hooks the trigger
9
+ * needs and calls {@link ExtractionTriggerContext.fire} when extraction should happen. Extend this
10
+ * class for custom triggering logic.
11
+ *
12
+ * A trigger must eventually fire for its store's buffered messages to be written: the high-water-mark
13
+ * dedup means skipped turns are still picked up on the *next* fire, but a trigger that never fires
14
+ * never extracts (and its messages stay buffered for the session). For a guaranteed final write at a
15
+ * boundary, the caller uses {@link MemoryManager.flush}, which force-completes regardless of triggers.
16
+ */
17
+ export class ExtractionTrigger {
18
+ }
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/memory/extraction/types.ts"],"names":[],"mappings":"AA+BA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;CACnC,CAAA;AAsDD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,iBAAiB;CAatC"}
@@ -0,0 +1,10 @@
1
+ export { MemoryManager } from './memory-manager.js';
2
+ export type { MemoryEntry, MemoryStore, MemoryStoreConfig, SearchOptions, AddMessagesContext, MemorySearchOptions, MemoryAddOptions, MemoryToolConfig, MemoryAddToolConfig, MemoryManagerConfig, MemoryInjectionConfig, } from './types.js';
3
+ export type { InjectionConfig, InjectionTrigger, InjectionContext } from '../injection/index.js';
4
+ export { ExtractionTrigger } from './extraction/types.js';
5
+ export { InvocationTrigger, IntervalTrigger } from './extraction/triggers.js';
6
+ export type { IntervalTriggerOptions } from './extraction/triggers.js';
7
+ export { ModelExtractor } from './extraction/model-extractor.js';
8
+ export type { ModelExtractorOptions } from './extraction/model-extractor.js';
9
+ export type { ExtractionConfig, Extractor, ExtractorContext, ExtractionResult, ExtractionTriggerContext, MemoryMessageFilter, MemoryContentBlockType, } from './extraction/types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { MemoryManager } from './memory-manager.js';
2
+ export { ExtractionTrigger } from './extraction/types.js';
3
+ export { InvocationTrigger, IntervalTrigger } from './extraction/triggers.js';
4
+ export { ModelExtractor } from './extraction/model-extractor.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAgBnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA"}
@@ -0,0 +1,178 @@
1
+ import type { Plugin } from '../plugins/plugin.js';
2
+ import type { LocalAgent } from '../types/agent.js';
3
+ import type { Tool } from '../tools/tool.js';
4
+ import type { MemoryEntry, MemoryManagerConfig, MemorySearchOptions, MemoryAddOptions } from './types.js';
5
+ /**
6
+ * Default maximum results per store when neither the caller nor the store specifies one.
7
+ * Resolved by the {@link MemoryManager}.
8
+ */
9
+ export declare const DEFAULT_MAX_SEARCH_RESULTS = 3;
10
+ /**
11
+ * Provides cross-session memory retrieval and storage for agents.
12
+ *
13
+ * Manages one or more {@link MemoryStore} backends, exposing `search_memory` and
14
+ * `add_memory` tools for agent-driven recall and persistence. Any tools the stores
15
+ * themselves provide (via {@link MemoryStore.getTools}) are registered alongside these.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { Agent, MemoryManager } from '@strands-agents/sdk'
20
+ *
21
+ * // Config shorthand
22
+ * const agent = new Agent({
23
+ * model,
24
+ * memoryManager: { stores: [myStore], addToolConfig: true },
25
+ * })
26
+ *
27
+ * // Class instance (for programmatic access)
28
+ * const memoryManager = new MemoryManager({ stores: [myStore], addToolConfig: true })
29
+ * const agent = new Agent({ model, memoryManager })
30
+ * await memoryManager.search('user preferences')
31
+ * ```
32
+ */
33
+ export declare class MemoryManager implements Plugin {
34
+ readonly name = "strands:memory-manager";
35
+ private readonly _config;
36
+ private readonly _searchStores;
37
+ /** All writable stores — the unscoped target set for the programmatic {@link add} method. */
38
+ private readonly _addStores;
39
+ private readonly _searchToolConfig;
40
+ private readonly _addToolConfig;
41
+ private readonly _addToolStores;
42
+ /** Stores with extraction enabled, each paired with its resolved config; wired up in {@link initAgent}. */
43
+ private readonly _extractionStores;
44
+ /** Background extraction coordinator, created in {@link initAgent} when extraction is configured. */
45
+ private _coordinator;
46
+ /** Resolved injection config, or `false` when injection is disabled. */
47
+ private readonly _injectionConfig;
48
+ constructor(config: MemoryManagerConfig);
49
+ /**
50
+ * Resolves the writable stores the `add_memory` tool may write to. When `stores` is given, each
51
+ * entry (a store name or a {@link MemoryStore} instance) must resolve by name to a configured,
52
+ * `add`-capable writable store (else throws). Omitted means all such stores.
53
+ */
54
+ private _resolveAddToolStores;
55
+ /**
56
+ * Initializes the plugin with the agent.
57
+ *
58
+ * Wires up two independent behaviors:
59
+ * - **Extraction**: for any store configured with {@link ExtractionConfig}, buffers conversation
60
+ * messages and attaches each store's triggers. A no-op when no store uses extraction.
61
+ * - **Injection**: when enabled, registers an `InvokeModelStage` middleware that folds retrieved
62
+ * memory into the model input for each call without touching durable history. See
63
+ * {@link _provideMemoryContext}, the `renderContent` callback the middleware invokes.
64
+ *
65
+ * @param agent - The agent this plugin is being attached to
66
+ */
67
+ initAgent(agent: LocalAgent): void;
68
+ /** Wires background extraction for stores configured with {@link ExtractionConfig}. */
69
+ private _initExtraction;
70
+ /**
71
+ * Registers the injection middleware when injection is enabled. Folds retrieved memory into the
72
+ * model input for each call via {@link _provideMemoryContext}, without touching durable history. A
73
+ * no-op when injection is disabled.
74
+ */
75
+ private _initInjection;
76
+ /**
77
+ * Produces the memory context text to inject for a model call, or `undefined` to skip. This is the
78
+ * `renderContent` callback the injection middleware invokes (see {@link initAgent}).
79
+ *
80
+ * Derives a query (the configured callback or an adaptive default), searches memory, and renders the
81
+ * top entries. Skips silently (returns `undefined`) when no query can be derived or the search
82
+ * returns nothing. The rendering callback throwing fails open (returns `undefined`).
83
+ *
84
+ * @param messages - The current conversation, as data
85
+ * @param config - The resolved injection configuration
86
+ * @returns The injected text, or `undefined` when there is nothing to inject
87
+ */
88
+ private _provideMemoryContext;
89
+ /**
90
+ * Saves every store's remaining messages and waits for all saves to finish. No-op when no store has
91
+ * extraction configured.
92
+ *
93
+ * Extraction normally runs in the background, so the most recent turn may not be saved yet when the
94
+ * agent responds. Call this once at a boundary you control - typically your app's shutdown handler -
95
+ * so nothing is lost. A process killed before then (crash, hard timeout) may still lose the last
96
+ * unsaved turn; a more frequent trigger narrows that window.
97
+ *
98
+ * Do not call this after every turn alongside a periodic trigger: it forces a save each time and so
99
+ * defeats the trigger's schedule.
100
+ */
101
+ flush(): Promise<void>;
102
+ /**
103
+ * Derives the injection search query. Uses the configured `query` callback when provided (a throw
104
+ * fails open, skipping injection); otherwise an adaptive default: the latest user message's text on
105
+ * a user turn, or the most recent assistant message's text otherwise (the previous autonomous step).
106
+ *
107
+ * @param messages - The current conversation, as data
108
+ * @param config - The resolved injection configuration
109
+ * @returns The query string, or `undefined` when none is available
110
+ */
111
+ private _resolveInjectionQuery;
112
+ /**
113
+ * Default injection format: a `<memory>` block with one `<entry>` per result. Each entry carries a
114
+ * `source` attribute naming the originating store (when known) so the model can attribute memories.
115
+ *
116
+ * @param entries - The retrieved memory entries to render
117
+ * @returns The rendered `<memory>` block
118
+ */
119
+ private _defaultInjectionFormat;
120
+ /** Returns the index of the last element matching `predicate`, or -1. */
121
+ private _findLastIndex;
122
+ /**
123
+ * Returns tools registered by this plugin.
124
+ *
125
+ * Includes the manager's own `search_memory` / `add_memory` tools (per their config) plus any
126
+ * tools the configured stores expose via {@link MemoryStore.getTools}.
127
+ *
128
+ * @returns Array of tools to register with the agent
129
+ */
130
+ getTools(): Tool[];
131
+ /**
132
+ * Search stores for entries matching the query. If `stores` is provided, only searches to those named stores.
133
+ *
134
+ * This method is unscoped with full access to all configured stores.
135
+ * Tool-level store scoping is applied by the search tool callback.
136
+ * When `options.stores` is omitted, all stores are searched.
137
+ *
138
+ * Only `maxSearchResults` and routing (`stores`) cross this layer. Store-specific search
139
+ * parameters (e.g. a Bedrock metadata `filter` or search-type override) are not expressible here
140
+ * across heterogeneous stores — set them as per-instance defaults on the store, or call the
141
+ * store's own `search()` directly for full control. Per-instance store policy (such as a tenant
142
+ * filter) always applies, including when reached through the `search_memory` tool.
143
+ *
144
+ * @param query - The search query string
145
+ * @param options - Optional max results (forwarded to all stores) and store name filter
146
+ * @returns Array of memory entries from matching stores
147
+ */
148
+ search(query: string, options?: MemorySearchOptions): Promise<MemoryEntry[]>;
149
+ /**
150
+ * Add content to writable stores. If `stores` is provided, only writes to those named stores;
151
+ * otherwise all writable stores are targeted.
152
+ *
153
+ * This method is unscoped, with full access to all configured writable stores; tool-level store
154
+ * scoping is applied by the add tool callback. Target stores are validated first (an unknown or
155
+ * read-only named store throws), then the writes are awaited: per-store failures are logged, and
156
+ * an `AggregateError` is thrown if any store fails.
157
+ *
158
+ * @param content - The text content to add
159
+ * @param options - Optional metadata and store name filter
160
+ */
161
+ add(content: string, options?: MemoryAddOptions): Promise<void>;
162
+ /**
163
+ * Resolves the store names that a tool callback should target against the tool's scoped set.
164
+ *
165
+ * - Omitting `requested` targets all scoped stores.
166
+ * - Names that are in scope are kept; out-of-scope names are dropped with a warning.
167
+ * - When every requested name is out of scope, throws so the model receives an actionable error
168
+ * (the tool layer turns the thrown error into a model-visible result it can correct from).
169
+ *
170
+ * @param scopedNames - Store names available to this tool
171
+ * @param requested - Store names the model asked for, if any
172
+ * @returns A non-empty list of in-scope store names to target
173
+ */
174
+ private _resolveToolTargets;
175
+ private _createSearchTool;
176
+ private _createAddTool;
177
+ }
178
+ //# sourceMappingURL=memory-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../../../src/memory/memory-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,EAEnB,gBAAgB,EAGjB,MAAM,YAAY,CAAA;AAoBnB;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAyB3C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,IAAI,4BAA2B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,2GAA2G;IAC3G,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,qGAAqG;IACrG,OAAO,CAAC,YAAY,CAAmC;IACvD,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;gBAEpD,MAAM,EAAE,mBAAmB;IAuEvC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKlC,uFAAuF;IACvF,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB;;;;;;;;;;;OAWG;YACW,qBAAqB;IAuBnC;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAS/B,yEAAyE;IACzE,OAAO,CAAC,cAAc;IAStB;;;;;;;OAOG;IACH,QAAQ,IAAI,IAAI,EAAE;IAmBlB;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA2ClF;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CrE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,cAAc;CAsDvB"}