@strands-agents/sdk 1.7.0 → 1.8.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 (659) hide show
  1. package/dist/src/agent/agent.d.ts +1 -1
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +1 -1
  4. package/dist/src/agent/agent.js.map +1 -1
  5. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +3 -3
  6. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
  7. package/dist/src/index.d.ts +1 -1
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +1 -1
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/index.node.d.ts.map +1 -1
  12. package/dist/src/index.node.js +3 -0
  13. package/dist/src/index.node.js.map +1 -1
  14. package/dist/src/interventions/actions.d.ts.map +1 -1
  15. package/dist/src/interventions/actions.js.map +1 -1
  16. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  17. package/dist/src/mcp/client.d.ts.map +1 -0
  18. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  19. package/dist/src/mcp/client.js.map +1 -0
  20. package/dist/src/mcp/config.d.ts +52 -0
  21. package/dist/src/mcp/config.d.ts.map +1 -0
  22. package/dist/src/mcp/config.js +12 -0
  23. package/dist/src/mcp/config.js.map +1 -0
  24. package/dist/src/mcp/config.node.d.ts +16 -0
  25. package/dist/src/mcp/config.node.d.ts.map +1 -0
  26. package/dist/src/mcp/config.node.js +145 -0
  27. package/dist/src/mcp/config.node.js.map +1 -0
  28. package/dist/src/mcp/index.d.ts +3 -0
  29. package/dist/src/mcp/index.d.ts.map +1 -0
  30. package/dist/src/mcp/index.js +2 -0
  31. package/dist/src/mcp/index.js.map +1 -0
  32. package/dist/src/models/model.d.ts.map +1 -1
  33. package/dist/src/models/model.js +2 -1
  34. package/dist/src/models/model.js.map +1 -1
  35. package/dist/src/multiagent/graph.d.ts +7 -0
  36. package/dist/src/multiagent/graph.d.ts.map +1 -1
  37. package/dist/src/multiagent/graph.js +22 -1
  38. package/dist/src/multiagent/graph.js.map +1 -1
  39. package/dist/src/multiagent/nodes.d.ts +5 -0
  40. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  41. package/dist/src/multiagent/nodes.js +15 -0
  42. package/dist/src/multiagent/nodes.js.map +1 -1
  43. package/dist/src/multiagent/state.d.ts.map +1 -1
  44. package/dist/src/multiagent/state.js.map +1 -1
  45. package/dist/src/tools/function-tool.d.ts +1 -1
  46. package/dist/src/tools/function-tool.d.ts.map +1 -1
  47. package/dist/src/tools/function-tool.js +4 -12
  48. package/dist/src/tools/function-tool.js.map +1 -1
  49. package/dist/src/tools/mcp-tool.d.ts +2 -1
  50. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  51. package/dist/src/tools/mcp-tool.js +1 -0
  52. package/dist/src/tools/mcp-tool.js.map +1 -1
  53. package/dist/src/tools/tool-factory.d.ts +1 -1
  54. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  55. package/dist/src/tools/types.d.ts +4 -0
  56. package/dist/src/tools/types.d.ts.map +1 -1
  57. package/dist/src/tools/zod-tool.d.ts +4 -2
  58. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  59. package/dist/src/tools/zod-tool.js.map +1 -1
  60. package/dist/src/tsconfig.tsbuildinfo +1 -1
  61. package/dist/src/types/media.d.ts.map +1 -1
  62. package/dist/src/types/media.js.map +1 -1
  63. package/dist/src/types/messages.d.ts.map +1 -1
  64. package/dist/src/types/messages.js.map +1 -1
  65. package/dist/src/vended-memory-stores/local/index.d.ts +2 -0
  66. package/dist/src/vended-memory-stores/local/index.d.ts.map +1 -0
  67. package/dist/src/vended-memory-stores/local/index.js +2 -0
  68. package/dist/src/vended-memory-stores/local/index.js.map +1 -0
  69. package/dist/src/vended-memory-stores/local/store.d.ts +122 -0
  70. package/dist/src/vended-memory-stores/local/store.d.ts.map +1 -0
  71. package/dist/src/vended-memory-stores/local/store.js +281 -0
  72. package/dist/src/vended-memory-stores/local/store.js.map +1 -0
  73. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  74. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  75. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  76. package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
  77. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  78. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  79. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  80. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  81. package/package.json +21 -14
  82. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  83. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  84. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  85. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  86. package/dist/src/__fixtures__/environment.d.ts +0 -12
  87. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  88. package/dist/src/__fixtures__/environment.js +0 -12
  89. package/dist/src/__fixtures__/environment.js.map +0 -1
  90. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  91. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  92. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  93. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  94. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  95. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  96. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  97. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  98. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  99. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  100. package/dist/src/__fixtures__/mock-meter.js +0 -47
  101. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  102. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  103. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  104. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  105. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  106. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  107. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  108. package/dist/src/__fixtures__/mock-span.js +0 -93
  109. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  110. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  111. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  112. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  113. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  114. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  115. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  116. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  117. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  118. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  119. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  120. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  121. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  122. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  123. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  124. package/dist/src/__fixtures__/slim-types.js +0 -6
  125. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  126. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  127. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  128. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  129. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  130. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  131. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  132. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  133. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  134. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  135. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  136. package/dist/src/__tests__/default-slot.test.js +0 -33
  137. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  138. package/dist/src/__tests__/errors.test.d.ts +0 -2
  139. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  140. package/dist/src/__tests__/errors.test.js +0 -170
  141. package/dist/src/__tests__/errors.test.js.map +0 -1
  142. package/dist/src/__tests__/index.test.d.ts +0 -2
  143. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  144. package/dist/src/__tests__/index.test.js +0 -48
  145. package/dist/src/__tests__/index.test.js.map +0 -1
  146. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  147. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  148. package/dist/src/__tests__/interrupt.test.js +0 -264
  149. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  150. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  151. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  152. package/dist/src/__tests__/mcp.test.js +0 -1003
  153. package/dist/src/__tests__/mcp.test.js.map +0 -1
  154. package/dist/src/__tests__/mime.test.d.ts +0 -2
  155. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  156. package/dist/src/__tests__/mime.test.js +0 -83
  157. package/dist/src/__tests__/mime.test.js.map +0 -1
  158. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  159. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  160. package/dist/src/__tests__/state-store.test.js +0 -285
  161. package/dist/src/__tests__/state-store.test.js.map +0 -1
  162. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  163. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  164. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  165. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  166. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  167. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  168. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  169. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  170. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  171. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  172. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  173. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  174. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  175. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  176. package/dist/src/a2a/__tests__/events.test.js +0 -68
  177. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  178. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  179. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  180. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  181. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  182. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  183. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  184. package/dist/src/a2a/__tests__/server.test.js +0 -71
  185. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  186. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  187. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  188. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  189. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  190. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  191. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  192. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  193. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  194. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  195. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  196. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  197. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  198. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  199. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  200. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  201. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  202. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  203. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  204. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  205. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  206. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  207. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  208. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
  209. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  210. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  211. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  212. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  213. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  214. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  215. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  216. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  217. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  218. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  219. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  220. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  221. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  222. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  223. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  224. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  225. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  226. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  227. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  228. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  229. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  230. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  231. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  232. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  233. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  234. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  235. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  236. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  237. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  238. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  239. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  240. package/dist/src/agent/__tests__/printer.test.js +0 -188
  241. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  242. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  243. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  244. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  245. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  246. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  247. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  248. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  249. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  250. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  251. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  252. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  253. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  254. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  255. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  256. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  257. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  258. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  259. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  260. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  261. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  262. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  263. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  264. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  265. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  266. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  267. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  268. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  269. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  270. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  271. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  272. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  273. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  274. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  275. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  276. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  277. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  278. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  279. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  280. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  281. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  282. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  283. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  284. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  285. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  286. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  287. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  288. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  289. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  290. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  291. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  292. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  293. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  294. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  295. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  296. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  297. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  298. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  299. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  300. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  301. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  302. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  303. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  304. package/dist/src/logging/__tests__/logger.test.js +0 -70
  305. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  306. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  307. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  308. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  309. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  310. package/dist/src/mcp.d.ts.map +0 -1
  311. package/dist/src/mcp.js.map +0 -1
  312. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  313. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  314. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  315. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  316. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
  317. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
  318. package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
  319. package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
  320. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  321. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  322. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
  323. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  324. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  325. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  326. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
  327. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  328. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  329. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  330. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  331. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  332. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  333. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  334. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  335. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  336. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  337. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  338. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  339. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  340. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  341. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  342. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  343. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  344. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  345. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  346. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  347. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  348. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  349. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  350. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  351. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  352. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  353. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  354. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  355. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  356. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  357. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  358. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  359. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  360. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  361. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  362. package/dist/src/models/__tests__/defaults.test.js +0 -36
  363. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  364. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  365. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  366. package/dist/src/models/__tests__/google.test.js +0 -1145
  367. package/dist/src/models/__tests__/google.test.js.map +0 -1
  368. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  369. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  370. package/dist/src/models/__tests__/model.test.js +0 -921
  371. package/dist/src/models/__tests__/model.test.js.map +0 -1
  372. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  373. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  374. package/dist/src/models/__tests__/streaming.test.js +0 -50
  375. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  376. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  377. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  378. package/dist/src/models/__tests__/test-utils.js +0 -17
  379. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  380. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  381. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  382. package/dist/src/models/__tests__/vercel.test.js +0 -740
  383. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  384. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  385. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  386. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  387. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  388. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  389. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  390. package/dist/src/models/openai/__tests__/errors.test.js +0 -39
  391. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  392. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  393. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  394. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  395. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  396. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  397. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  398. package/dist/src/models/openai/__tests__/responses.test.js +0 -709
  399. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  400. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  401. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  402. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  403. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  404. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  405. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  406. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  407. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  408. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  409. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  410. package/dist/src/multiagent/__tests__/graph.test.js +0 -698
  411. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  412. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  413. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  414. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  415. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  416. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  417. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  418. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  419. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  420. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  421. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  422. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  423. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  424. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  425. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  426. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  427. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  428. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  429. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  430. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  431. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  432. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  433. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  434. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  435. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  436. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  437. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  438. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  439. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  440. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  441. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  442. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  443. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  444. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  445. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  446. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  447. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  448. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  449. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  450. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  451. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  452. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  453. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  454. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  455. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  456. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  457. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  458. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  459. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  460. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  461. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  462. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  463. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  464. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  465. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  466. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  467. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  468. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  469. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  470. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  471. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  472. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  473. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  474. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  475. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  476. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  477. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  478. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  479. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  480. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  481. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  482. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  483. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  484. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  485. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  486. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  487. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  488. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  489. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  490. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  491. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  492. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  493. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  494. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  495. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  496. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  497. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  498. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  499. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  500. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  501. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  502. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  503. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  504. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  505. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  506. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  507. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  508. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  509. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  510. package/dist/src/session/__tests__/validation.test.js +0 -47
  511. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  512. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  513. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  514. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  515. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  516. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  517. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  518. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  519. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  520. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  521. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  522. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  523. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  524. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  525. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  526. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  527. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  528. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  529. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  530. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  531. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  532. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  533. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  534. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
  535. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  536. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  537. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  538. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  539. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  540. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  541. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  542. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  543. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  544. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  545. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  546. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  547. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  548. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  549. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  550. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  551. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  552. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  553. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  554. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  555. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  556. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  557. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  558. package/dist/src/types/__tests__/agent.test.js +0 -476
  559. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  560. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  561. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  562. package/dist/src/types/__tests__/citations.test.js +0 -104
  563. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  564. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  565. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  566. package/dist/src/types/__tests__/json.test.js +0 -298
  567. package/dist/src/types/__tests__/json.test.js.map +0 -1
  568. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  569. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  570. package/dist/src/types/__tests__/media.test.js +0 -478
  571. package/dist/src/types/__tests__/media.test.js.map +0 -1
  572. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  573. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  574. package/dist/src/types/__tests__/messages.test.js +0 -681
  575. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  576. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  577. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  578. package/dist/src/types/__tests__/validation.test.js +0 -30
  579. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  580. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  581. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  582. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
  583. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  584. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  585. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  586. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  587. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  588. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  589. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  590. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  591. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  592. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  593. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  594. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  595. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  596. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  597. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  598. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  599. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  600. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
  601. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
  602. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
  603. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
  604. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  605. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  606. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  607. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  608. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  609. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  610. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  611. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  612. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  613. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  614. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  615. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  616. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  617. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  618. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
  619. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  620. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  621. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  622. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  623. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  624. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  625. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  626. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  627. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  628. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  629. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  630. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  631. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  632. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  633. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  634. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  635. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  636. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  637. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  638. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  639. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  640. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  641. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  642. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  643. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  644. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  645. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  646. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  647. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  648. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  649. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  650. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  651. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  652. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  653. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  654. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  655. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  656. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  657. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  658. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  659. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +0 -1
@@ -1,832 +0,0 @@
1
- import { describe, expect, it, beforeEach, vi } from 'vitest';
2
- import { SessionManager } from '../session-manager.js';
3
- import { MockSnapshotStorage, createTestSnapshot } from '../../__fixtures__/mock-storage-provider.js';
4
- import { InitializedEvent, MessageAddedEvent, AfterInvocationEvent, AfterModelCallEvent, HookableEvent, } from '../../hooks/index.js';
5
- import { Agent } from '../../agent/agent.js';
6
- import { Message, TextBlock } from '../../types/messages.js';
7
- import { createMockAgent as createMockAgentWithHooks, invokeTrackedHook, } from '../../__fixtures__/agent-helpers.js';
8
- import { loadStateFromJSONSymbol, stateToJSONSymbol } from '../../types/serializable.js';
9
- import { StateStore } from '../../state-store.js';
10
- import { logger } from '../../logging/logger.js';
11
- import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, Graph, MultiAgentState, NodeResult, Status, } from '../../multiagent/index.js';
12
- import { takeSnapshot, loadSnapshot } from '../../agent/snapshot.js';
13
- // Test fixtures
14
- function createMockAgent(id = 'agent') {
15
- const agent = {
16
- id,
17
- messages: [],
18
- appState: {
19
- _m: new Map(),
20
- get(k) {
21
- return this._m.get(k);
22
- },
23
- set(k, v) {
24
- this._m.set(k, v);
25
- },
26
- [stateToJSONSymbol]() {
27
- return Object.fromEntries(this._m);
28
- },
29
- [loadStateFromJSONSymbol](json) {
30
- Object.entries(json).forEach(([k, v]) => this._m.set(k, v));
31
- },
32
- },
33
- modelState: new StateStore(),
34
- systemPrompt: 'Test prompt',
35
- takeSnapshot(options) {
36
- return takeSnapshot(agent, options);
37
- },
38
- loadSnapshot(snapshot) {
39
- loadSnapshot(agent, snapshot);
40
- },
41
- };
42
- return agent;
43
- }
44
- const MOCK_MESSAGE = new Message({ role: 'user', content: [new TextBlock('test')] });
45
- function createMockEvent(agent) {
46
- return { agent, invocationState: {} };
47
- }
48
- function createMockMessageEvent(agent) {
49
- return { agent, message: MOCK_MESSAGE, invocationState: {} };
50
- }
51
- async function initPluginAndInvokeHook(sessionManager, event) {
52
- const pluginAgent = createMockAgentWithHooks();
53
- sessionManager.initAgent(pluginAgent);
54
- await invokeTrackedHook(pluginAgent, event);
55
- }
56
- describe('SessionManager', () => {
57
- let storage;
58
- let sessionManager;
59
- let mockAgent;
60
- beforeEach(() => {
61
- storage = new MockSnapshotStorage();
62
- mockAgent = createMockAgent();
63
- });
64
- describe('constructor', () => {
65
- it('defaults saveLatestOn to invocation', async () => {
66
- sessionManager = new SessionManager({ sessionId: 'test-default', storage: { snapshot: storage } });
67
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
68
- const snapshot = await storage.loadSnapshot({
69
- location: { sessionId: 'test-default', scope: 'agent', scopeId: 'agent' },
70
- });
71
- expect(snapshot).not.toBeNull();
72
- });
73
- });
74
- describe('saveSnapshot', () => {
75
- beforeEach(() => {
76
- mockAgent = createMockAgent('test-agent');
77
- sessionManager = new SessionManager({
78
- sessionId: 'test-session',
79
- storage: { snapshot: storage },
80
- });
81
- });
82
- it('saves snapshot_latest when isLatest is true', async () => {
83
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: true });
84
- const snapshot = await storage.loadSnapshot({
85
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
86
- });
87
- expect(snapshot).not.toBeNull();
88
- expect(snapshot?.scope).toBe('agent');
89
- });
90
- it('saves immutable snapshot when isLatest is false', async () => {
91
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
92
- const ids = await storage.listSnapshotIds({
93
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
94
- });
95
- expect(ids.length).toBeGreaterThan(0);
96
- });
97
- it('allocates unique snapshot IDs', async () => {
98
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
99
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
100
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
101
- const ids = await storage.listSnapshotIds({
102
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
103
- });
104
- expect(ids.length).toBe(3);
105
- });
106
- });
107
- describe('listSnapshotIds', () => {
108
- beforeEach(() => {
109
- mockAgent = createMockAgent('test-agent');
110
- sessionManager = new SessionManager({
111
- sessionId: 'test-session',
112
- storage: { snapshot: storage },
113
- });
114
- });
115
- it('returns empty array when no snapshots exist', async () => {
116
- const ids = await sessionManager.listSnapshotIds({ target: mockAgent });
117
- expect(ids).toStrictEqual([]);
118
- });
119
- it('returns snapshot IDs for the target agent', async () => {
120
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
121
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
122
- const ids = await sessionManager.listSnapshotIds({ target: mockAgent });
123
- expect(ids).toHaveLength(2);
124
- });
125
- it('does not return latest snapshot ID', async () => {
126
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: true });
127
- const ids = await sessionManager.listSnapshotIds({ target: mockAgent });
128
- expect(ids).toStrictEqual([]);
129
- });
130
- it('forwards limit parameter', async () => {
131
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
132
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
133
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
134
- const ids = await sessionManager.listSnapshotIds({ target: mockAgent, limit: 2 });
135
- expect(ids).toHaveLength(2);
136
- });
137
- it('forwards startAfter parameter', async () => {
138
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
139
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: false });
140
- const allIds = await sessionManager.listSnapshotIds({ target: mockAgent });
141
- const page2 = await sessionManager.listSnapshotIds({ target: mockAgent, startAfter: allIds[0] });
142
- expect(page2).toHaveLength(1);
143
- expect(page2[0]).toBe(allIds[1]);
144
- });
145
- });
146
- describe('restoreSnapshot', () => {
147
- beforeEach(() => {
148
- mockAgent = createMockAgent('test-agent');
149
- sessionManager = new SessionManager({
150
- sessionId: 'test-session',
151
- storage: { snapshot: storage },
152
- });
153
- });
154
- it('restores snapshot_latest when no snapshotId provided', async () => {
155
- const snapshot = createTestSnapshot();
156
- await storage.saveSnapshot({
157
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
158
- snapshotId: 'latest',
159
- isLatest: true,
160
- snapshot,
161
- });
162
- const result = await sessionManager.restoreSnapshot({ target: mockAgent });
163
- expect(result).toBe(true);
164
- });
165
- it('restores specific snapshot by ID', async () => {
166
- const snapshot = createTestSnapshot();
167
- await storage.saveSnapshot({
168
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
169
- snapshotId: '5',
170
- isLatest: false,
171
- snapshot,
172
- });
173
- const result = await sessionManager.restoreSnapshot({ target: mockAgent, snapshotId: '5' });
174
- expect(result).toBe(true);
175
- });
176
- it('returns false when snapshot not found', async () => {
177
- const result = await sessionManager.restoreSnapshot({ target: mockAgent, snapshotId: '999' });
178
- expect(result).toBe(false);
179
- });
180
- });
181
- describe('InitializedEvent handling', () => {
182
- beforeEach(() => {
183
- mockAgent = createMockAgent('test-agent');
184
- });
185
- it('loads snapshot_latest on initialization', async () => {
186
- const snapshot = createTestSnapshot();
187
- await storage.saveSnapshot({
188
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
189
- snapshotId: 'latest',
190
- isLatest: true,
191
- snapshot,
192
- });
193
- sessionManager = new SessionManager({
194
- sessionId: 'test-session',
195
- storage: { snapshot: storage },
196
- });
197
- await initPluginAndInvokeHook(sessionManager, new InitializedEvent(createMockEvent(mockAgent)));
198
- expect(mockAgent.messages).toEqual(snapshot.data.messages);
199
- });
200
- it('handles missing snapshot gracefully', async () => {
201
- sessionManager = new SessionManager({
202
- sessionId: 'new-session',
203
- storage: { snapshot: storage },
204
- });
205
- await expect(initPluginAndInvokeHook(sessionManager, new InitializedEvent(createMockEvent(mockAgent)))).resolves.not.toThrow();
206
- });
207
- it('warns when snapshot restore overwrites existing messages', async () => {
208
- const warnSpy = vi.spyOn(logger, 'warn');
209
- const snapshot = createTestSnapshot();
210
- await storage.saveSnapshot({
211
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
212
- snapshotId: 'latest',
213
- isLatest: true,
214
- snapshot,
215
- });
216
- mockAgent.messages.push(MOCK_MESSAGE);
217
- sessionManager = new SessionManager({
218
- sessionId: 'test-session',
219
- storage: { snapshot: storage },
220
- });
221
- await initPluginAndInvokeHook(sessionManager, new InitializedEvent(createMockEvent(mockAgent)));
222
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('overwritten by session restore'));
223
- warnSpy.mockRestore();
224
- });
225
- it('does not warn when restoring into agent with no messages', async () => {
226
- const warnSpy = vi.spyOn(logger, 'warn');
227
- const snapshot = createTestSnapshot();
228
- await storage.saveSnapshot({
229
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
230
- snapshotId: 'latest',
231
- isLatest: true,
232
- snapshot,
233
- });
234
- sessionManager = new SessionManager({
235
- sessionId: 'test-session',
236
- storage: { snapshot: storage },
237
- });
238
- await initPluginAndInvokeHook(sessionManager, new InitializedEvent(createMockEvent(mockAgent)));
239
- expect(warnSpy).not.toHaveBeenCalled();
240
- warnSpy.mockRestore();
241
- });
242
- });
243
- describe('MessageAddedEvent handling', () => {
244
- beforeEach(() => {
245
- mockAgent = createMockAgent('test-agent');
246
- });
247
- it('saves snapshot_latest when saveLatestOn is message', async () => {
248
- sessionManager = new SessionManager({
249
- sessionId: 'test-session',
250
- storage: { snapshot: storage },
251
- saveLatestOn: 'message',
252
- });
253
- await initPluginAndInvokeHook(sessionManager, new MessageAddedEvent(createMockMessageEvent(mockAgent)));
254
- const snapshot = await storage.loadSnapshot({
255
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
256
- });
257
- expect(snapshot).not.toBeNull();
258
- });
259
- it('does not save when saveLatestOn is invocation', async () => {
260
- sessionManager = new SessionManager({
261
- sessionId: 'test-session',
262
- storage: { snapshot: storage },
263
- saveLatestOn: 'invocation',
264
- });
265
- // MessageAddedEvent is not registered when saveLatestOn is 'invocation'
266
- // So we need to call initAgent and check that no hook is registered for MessageAddedEvent
267
- const pluginAgent = createMockAgentWithHooks();
268
- sessionManager.initAgent(pluginAgent);
269
- // Verify MessageAddedEvent hook is not registered
270
- const messageHook = pluginAgent.trackedHooks.find((h) => h.eventType === MessageAddedEvent);
271
- expect(messageHook).toBeUndefined();
272
- // Even if we try to invoke (nothing should happen)
273
- const snapshot = await storage.loadSnapshot({
274
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
275
- });
276
- expect(snapshot).toBeNull();
277
- });
278
- });
279
- describe('AfterInvocationEvent handling', () => {
280
- beforeEach(() => {
281
- mockAgent = createMockAgent('test-agent');
282
- });
283
- it('saves snapshot_latest when saveLatestOn is invocation', async () => {
284
- sessionManager = new SessionManager({
285
- sessionId: 'test-session',
286
- storage: { snapshot: storage },
287
- saveLatestOn: 'invocation',
288
- });
289
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
290
- const snapshot = await storage.loadSnapshot({
291
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
292
- });
293
- expect(snapshot).not.toBeNull();
294
- });
295
- it('does not save snapshot_latest when saveLatestOn is trigger', async () => {
296
- sessionManager = new SessionManager({
297
- sessionId: 'test-session',
298
- storage: { snapshot: storage },
299
- saveLatestOn: 'trigger',
300
- });
301
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
302
- const snapshot = await storage.loadSnapshot({
303
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
304
- });
305
- expect(snapshot).toBeNull();
306
- });
307
- });
308
- describe('snapshotTrigger', () => {
309
- beforeEach(() => {
310
- mockAgent = createMockAgent('test-agent');
311
- });
312
- it('creates immutable snapshot when trigger returns true', async () => {
313
- sessionManager = new SessionManager({
314
- sessionId: 'test-session',
315
- storage: { snapshot: storage },
316
- saveLatestOn: 'trigger',
317
- snapshotTrigger: () => true,
318
- });
319
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
320
- const ids = await storage.listSnapshotIds({
321
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
322
- });
323
- expect(ids.length).toBe(1);
324
- });
325
- it('does not create immutable snapshot when trigger returns false', async () => {
326
- sessionManager = new SessionManager({
327
- sessionId: 'test-session',
328
- storage: { snapshot: storage },
329
- saveLatestOn: 'trigger',
330
- snapshotTrigger: () => false,
331
- });
332
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
333
- const ids = await storage.listSnapshotIds({
334
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
335
- });
336
- expect(ids.length).toBe(0);
337
- });
338
- it('provides agentData to trigger', async () => {
339
- const triggerSpy = vi.fn(() => false);
340
- sessionManager = new SessionManager({
341
- sessionId: 'test-session',
342
- storage: { snapshot: storage },
343
- saveLatestOn: 'trigger',
344
- snapshotTrigger: triggerSpy,
345
- });
346
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
347
- expect(triggerSpy).toHaveBeenCalledWith(expect.objectContaining({
348
- agentData: expect.objectContaining({
349
- appState: mockAgent.appState,
350
- messages: mockAgent.messages,
351
- }),
352
- }));
353
- });
354
- it('saves both immutable and latest when trigger fires', async () => {
355
- sessionManager = new SessionManager({
356
- sessionId: 'test-session',
357
- storage: { snapshot: storage },
358
- saveLatestOn: 'trigger',
359
- snapshotTrigger: () => true,
360
- });
361
- await initPluginAndInvokeHook(sessionManager, new AfterInvocationEvent(createMockEvent(mockAgent)));
362
- const immutableIds = await storage.listSnapshotIds({
363
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
364
- });
365
- const latest = await storage.loadSnapshot({
366
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
367
- });
368
- expect(immutableIds.length).toBe(1);
369
- expect(latest).not.toBeNull();
370
- });
371
- it('trigger based on message count via agentData', async () => {
372
- sessionManager = new SessionManager({
373
- sessionId: 'test-session',
374
- storage: { snapshot: storage },
375
- saveLatestOn: 'trigger',
376
- snapshotTrigger: ({ agentData }) => agentData.messages.length >= 2,
377
- });
378
- const pluginAgent = createMockAgentWithHooks();
379
- sessionManager.initAgent(pluginAgent);
380
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
381
- let ids = await storage.listSnapshotIds({
382
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
383
- });
384
- expect(ids.length).toBe(0); // 0 messages — no snapshot
385
- mockAgent.messages.push(MOCK_MESSAGE, MOCK_MESSAGE);
386
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
387
- ids = await storage.listSnapshotIds({
388
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
389
- });
390
- expect(ids.length).toBe(1); // 2 messages — snapshot taken
391
- });
392
- it('trigger based on agent state via agentData', async () => {
393
- sessionManager = new SessionManager({
394
- sessionId: 'test-session',
395
- storage: { snapshot: storage },
396
- saveLatestOn: 'trigger',
397
- snapshotTrigger: ({ agentData }) => agentData.appState.get('checkpoint') === true,
398
- });
399
- const pluginAgent = createMockAgentWithHooks();
400
- sessionManager.initAgent(pluginAgent);
401
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
402
- let ids = await storage.listSnapshotIds({
403
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
404
- });
405
- expect(ids.length).toBe(0); // state not set — no snapshot
406
- mockAgent.appState.set('checkpoint', true);
407
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
408
- ids = await storage.listSnapshotIds({
409
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
410
- });
411
- expect(ids.length).toBe(1); // state set — snapshot taken
412
- });
413
- });
414
- describe('integration scenarios', () => {
415
- it('handles complete session lifecycle', async () => {
416
- sessionManager = new SessionManager({
417
- sessionId: 'lifecycle-test',
418
- storage: { snapshot: storage },
419
- saveLatestOn: 'invocation',
420
- snapshotTrigger: () => true,
421
- });
422
- const pluginAgent = createMockAgentWithHooks();
423
- sessionManager.initAgent(pluginAgent);
424
- await invokeTrackedHook(pluginAgent, new InitializedEvent(createMockEvent(mockAgent)));
425
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
426
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
427
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
428
- const latest = await storage.loadSnapshot({
429
- location: { sessionId: 'lifecycle-test', scope: 'agent', scopeId: 'agent' },
430
- });
431
- const immutableIds = await storage.listSnapshotIds({
432
- location: { sessionId: 'lifecycle-test', scope: 'agent', scopeId: 'agent' },
433
- });
434
- expect(latest).not.toBeNull();
435
- expect(immutableIds.length).toBe(3);
436
- });
437
- it('supports resuming from immutable snapshot', async () => {
438
- // First session - snapshot fires when messages.length === 2 (after turn 1)
439
- sessionManager = new SessionManager({
440
- sessionId: 'resume-test',
441
- storage: { snapshot: storage },
442
- saveLatestOn: 'trigger',
443
- snapshotTrigger: ({ agentData }) => agentData.messages.length === 2,
444
- });
445
- const pluginAgent = createMockAgentWithHooks();
446
- sessionManager.initAgent(pluginAgent);
447
- await invokeTrackedHook(pluginAgent, new InitializedEvent(createMockEvent(mockAgent)));
448
- mockAgent.messages.push(MOCK_MESSAGE, MOCK_MESSAGE);
449
- await invokeTrackedHook(pluginAgent, new AfterInvocationEvent(createMockEvent(mockAgent)));
450
- const ids = await storage.listSnapshotIds({
451
- location: { sessionId: 'resume-test', scope: 'agent', scopeId: 'agent' },
452
- });
453
- expect(ids.length).toBe(1);
454
- // Second session - resume from that snapshot
455
- const newAgent = createMockAgent();
456
- const newSessionManager = new SessionManager({
457
- sessionId: 'resume-test',
458
- storage: { snapshot: storage },
459
- saveLatestOn: 'invocation',
460
- });
461
- const newAgentData = createMockAgentWithHooks();
462
- newSessionManager.initAgent(newAgentData);
463
- await invokeTrackedHook(newAgentData, new InitializedEvent(createMockEvent(newAgent)));
464
- await newSessionManager.restoreSnapshot({ target: newAgent, snapshotId: ids[0] });
465
- expect(newAgent.messages).toEqual(mockAgent.messages);
466
- });
467
- });
468
- describe('AfterModelCallEvent with redaction handling', () => {
469
- beforeEach(() => {
470
- mockAgent = createMockAgent('test-agent');
471
- });
472
- it('saves snapshot_latest when saveLatestOn is message and redaction occurred', async () => {
473
- sessionManager = new SessionManager({
474
- sessionId: 'test-session',
475
- storage: { snapshot: storage },
476
- saveLatestOn: 'message',
477
- });
478
- const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
479
- const event = new AfterModelCallEvent({
480
- agent: mockAgent,
481
- model: {},
482
- stopData: {
483
- message: assistantMessage,
484
- stopReason: 'endTurn',
485
- redaction: { userMessage: '[User input redacted.]' },
486
- },
487
- });
488
- await initPluginAndInvokeHook(sessionManager, event);
489
- const snapshot = await storage.loadSnapshot({
490
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
491
- });
492
- expect(snapshot).not.toBeNull();
493
- });
494
- it('does not save when saveLatestOn is message but no redaction occurred', async () => {
495
- sessionManager = new SessionManager({
496
- sessionId: 'test-session',
497
- storage: { snapshot: storage },
498
- saveLatestOn: 'message',
499
- });
500
- const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
501
- const event = new AfterModelCallEvent({
502
- agent: mockAgent,
503
- model: {},
504
- stopData: { message: assistantMessage, stopReason: 'endTurn' },
505
- });
506
- await initPluginAndInvokeHook(sessionManager, event);
507
- const snapshot = await storage.loadSnapshot({
508
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
509
- });
510
- expect(snapshot).toBeNull();
511
- });
512
- it.each(['invocation', 'message'])('saves snapshot_latest on redaction when saveLatestOn is %s', async (saveLatestOn) => {
513
- sessionManager = new SessionManager({
514
- sessionId: 'test-session',
515
- storage: { snapshot: storage },
516
- saveLatestOn,
517
- });
518
- const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
519
- const event = new AfterModelCallEvent({
520
- agent: mockAgent,
521
- model: {},
522
- stopData: {
523
- message: assistantMessage,
524
- stopReason: 'endTurn',
525
- redaction: { userMessage: '[User input redacted.]' },
526
- },
527
- });
528
- await initPluginAndInvokeHook(sessionManager, event);
529
- const snapshot = await storage.loadSnapshot({
530
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
531
- });
532
- expect(snapshot).not.toBeNull();
533
- });
534
- it('does not register AfterModelCallEvent hook when saveLatestOn is trigger', async () => {
535
- sessionManager = new SessionManager({
536
- sessionId: 'test-session',
537
- storage: { snapshot: storage },
538
- saveLatestOn: 'trigger',
539
- });
540
- const pluginAgent = createMockAgentWithHooks();
541
- sessionManager.initAgent(pluginAgent);
542
- const afterModelHook = pluginAgent.trackedHooks.find((h) => h.eventType === AfterModelCallEvent);
543
- expect(afterModelHook).toBeUndefined();
544
- });
545
- it('does not save on AfterModelCallEvent without redaction under saveLatestOn=invocation', async () => {
546
- sessionManager = new SessionManager({
547
- sessionId: 'test-session',
548
- storage: { snapshot: storage },
549
- saveLatestOn: 'invocation',
550
- });
551
- const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
552
- const event = new AfterModelCallEvent({
553
- agent: mockAgent,
554
- model: {},
555
- stopData: { message: assistantMessage, stopReason: 'endTurn' },
556
- });
557
- await initPluginAndInvokeHook(sessionManager, event);
558
- const snapshot = await storage.loadSnapshot({
559
- location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
560
- });
561
- expect(snapshot).toBeNull();
562
- });
563
- });
564
- });
565
- function createMockOrchestrator(id = 'graph') {
566
- const trackedHooks = [];
567
- return {
568
- id,
569
- nodes: new Map(),
570
- invoke: vi.fn(),
571
- stream: vi.fn(),
572
- addHook: (eventType, callback) => {
573
- trackedHooks.push({
574
- eventType: eventType,
575
- callback: callback,
576
- });
577
- return () => { };
578
- },
579
- trackedHooks,
580
- };
581
- }
582
- function invokeOrchestratorHook(orchestrator, event) {
583
- const hook = orchestrator.trackedHooks.find((h) => h.eventType === event.constructor);
584
- if (!hook)
585
- throw new Error(`No hook registered for event type: ${event.constructor.name}`);
586
- return hook.callback(event);
587
- }
588
- function createMultiAgentTestSnapshot(orchestratorId = 'test-graph') {
589
- return createTestSnapshot({ scope: 'multiAgent', data: { orchestratorId } });
590
- }
591
- describe('SessionManager — multi-agent', () => {
592
- let storage;
593
- let sessionManager;
594
- let orchestrator;
595
- beforeEach(() => {
596
- storage = new MockSnapshotStorage();
597
- orchestrator = createMockOrchestrator('test-graph');
598
- });
599
- describe('initMultiAgent', () => {
600
- it('registers BeforeMultiAgentInvocationEvent hook', () => {
601
- sessionManager = new SessionManager({ sessionId: 'test', storage: { snapshot: storage } });
602
- sessionManager.initMultiAgent(orchestrator);
603
- const hook = orchestrator.trackedHooks.find((h) => h.eventType === BeforeMultiAgentInvocationEvent);
604
- expect(hook).toBeDefined();
605
- });
606
- it('registers AfterNodeCallEvent hook by default (node strategy)', () => {
607
- sessionManager = new SessionManager({ sessionId: 'test', storage: { snapshot: storage } });
608
- sessionManager.initMultiAgent(orchestrator);
609
- const hook = orchestrator.trackedHooks.find((h) => h.eventType === AfterNodeCallEvent);
610
- expect(hook).toBeDefined();
611
- });
612
- it('registers AfterMultiAgentInvocationEvent hook when strategy is invocation', () => {
613
- sessionManager = new SessionManager({
614
- sessionId: 'test',
615
- storage: { snapshot: storage },
616
- multiAgentSaveLatestOn: 'invocation',
617
- });
618
- sessionManager.initMultiAgent(orchestrator);
619
- const hook = orchestrator.trackedHooks.find((h) => h.eventType === AfterMultiAgentInvocationEvent);
620
- expect(hook).toBeDefined();
621
- });
622
- });
623
- describe('saveSnapshot — multi-agent', () => {
624
- beforeEach(() => {
625
- sessionManager = new SessionManager({ sessionId: 'test-session', storage: { snapshot: storage } });
626
- });
627
- it('saves orchestrator snapshot as latest', async () => {
628
- await sessionManager.saveSnapshot({ target: orchestrator, isLatest: true });
629
- const snapshot = await storage.loadSnapshot({
630
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
631
- });
632
- expect(snapshot).not.toBeNull();
633
- expect(snapshot?.scope).toBe('multiAgent');
634
- });
635
- it('saves orchestrator snapshot with state', async () => {
636
- const state = new MultiAgentState({ nodeIds: ['a'] });
637
- state.steps = 3;
638
- await sessionManager.saveSnapshot({ target: orchestrator, state, isLatest: true });
639
- const snapshot = await storage.loadSnapshot({
640
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
641
- });
642
- expect(snapshot).not.toBeNull();
643
- expect(snapshot?.data.state).toBeDefined();
644
- });
645
- it('saves immutable orchestrator snapshot', async () => {
646
- await sessionManager.saveSnapshot({ target: orchestrator, isLatest: false });
647
- const ids = await storage.listSnapshotIds({
648
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
649
- });
650
- expect(ids.length).toBe(1);
651
- });
652
- });
653
- describe('restoreSnapshot — multi-agent', () => {
654
- beforeEach(() => {
655
- sessionManager = new SessionManager({ sessionId: 'test-session', storage: { snapshot: storage } });
656
- });
657
- it('restores orchestrator snapshot', async () => {
658
- const snapshot = createMultiAgentTestSnapshot();
659
- await storage.saveSnapshot({
660
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
661
- snapshotId: 'latest',
662
- isLatest: true,
663
- snapshot,
664
- });
665
- const result = await sessionManager.restoreSnapshot({ target: orchestrator });
666
- expect(result).toBe(true);
667
- });
668
- it('returns false when no snapshot exists', async () => {
669
- const result = await sessionManager.restoreSnapshot({ target: orchestrator });
670
- expect(result).toBe(false);
671
- });
672
- });
673
- describe('AfterMultiAgentInvocationEvent handling', () => {
674
- it('saves snapshot after node call when multiAgentSaveLatestOn is node (default)', async () => {
675
- sessionManager = new SessionManager({
676
- sessionId: 'test-session',
677
- storage: { snapshot: storage },
678
- });
679
- sessionManager.initMultiAgent(orchestrator);
680
- const state = new MultiAgentState({ nodeIds: ['a'] });
681
- await invokeOrchestratorHook(orchestrator, new AfterNodeCallEvent({ orchestrator, state, nodeId: 'a', invocationState: {} }));
682
- const snapshot = await storage.loadSnapshot({
683
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
684
- });
685
- expect(snapshot).not.toBeNull();
686
- expect(snapshot?.scope).toBe('multiAgent');
687
- });
688
- it('saves snapshot after invocation when multiAgentSaveLatestOn is invocation', async () => {
689
- sessionManager = new SessionManager({
690
- sessionId: 'test-session',
691
- storage: { snapshot: storage },
692
- multiAgentSaveLatestOn: 'invocation',
693
- });
694
- sessionManager.initMultiAgent(orchestrator);
695
- const state = new MultiAgentState({ nodeIds: ['a'] });
696
- await invokeOrchestratorHook(orchestrator, new AfterMultiAgentInvocationEvent({ orchestrator, state, invocationState: {} }));
697
- const snapshot = await storage.loadSnapshot({
698
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
699
- });
700
- expect(snapshot).not.toBeNull();
701
- expect(snapshot?.scope).toBe('multiAgent');
702
- });
703
- it('saves snapshot independently of agent saveLatestOn setting', async () => {
704
- sessionManager = new SessionManager({
705
- sessionId: 'test-session',
706
- storage: { snapshot: storage },
707
- saveLatestOn: 'trigger',
708
- multiAgentSaveLatestOn: 'invocation',
709
- });
710
- sessionManager.initMultiAgent(orchestrator);
711
- const state = new MultiAgentState({ nodeIds: ['a'] });
712
- await invokeOrchestratorHook(orchestrator, new AfterMultiAgentInvocationEvent({ orchestrator, state, invocationState: {} }));
713
- const snapshot = await storage.loadSnapshot({
714
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
715
- });
716
- expect(snapshot).not.toBeNull();
717
- });
718
- });
719
- describe('scope isolation', () => {
720
- it('agent and multi-agent snapshots use separate storage paths', async () => {
721
- const mockAgent = createMockAgent('test-agent');
722
- sessionManager = new SessionManager({
723
- sessionId: 'shared-session',
724
- storage: { snapshot: storage },
725
- });
726
- await sessionManager.saveSnapshot({ target: mockAgent, isLatest: true });
727
- await sessionManager.saveSnapshot({ target: orchestrator, isLatest: true });
728
- const agentSnapshot = await storage.loadSnapshot({
729
- location: { sessionId: 'shared-session', scope: 'agent', scopeId: 'test-agent' },
730
- });
731
- const multiAgentSnapshot = await storage.loadSnapshot({
732
- location: { sessionId: 'shared-session', scope: 'multiAgent', scopeId: 'test-graph' },
733
- });
734
- expect(agentSnapshot).not.toBeNull();
735
- expect(multiAgentSnapshot).not.toBeNull();
736
- expect(agentSnapshot?.scope).toBe('agent');
737
- expect(multiAgentSnapshot?.scope).toBe('multiAgent');
738
- });
739
- });
740
- describe('BeforeMultiAgentInvocationEvent — state restore', () => {
741
- it('restores state into event.state when snapshot exists', async () => {
742
- const snapshot = createMultiAgentTestSnapshot();
743
- // Build state with a completed node and result
744
- const state = new MultiAgentState({ nodeIds: ['a'] });
745
- state.steps = 7;
746
- const nodeState = state.node('a');
747
- nodeState.status = Status.COMPLETED;
748
- nodeState.results.push(new NodeResult({ nodeId: 'a', status: Status.COMPLETED, duration: 100, content: [new TextBlock('done')] }));
749
- const { serializeStateSerializable } = await import('../../types/serializable.js');
750
- snapshot.data.state = serializeStateSerializable(state);
751
- await storage.saveSnapshot({
752
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
753
- snapshotId: 'latest',
754
- isLatest: true,
755
- snapshot,
756
- });
757
- sessionManager = new SessionManager({ sessionId: 'test-session', storage: { snapshot: storage } });
758
- sessionManager.initMultiAgent(orchestrator);
759
- const freshState = new MultiAgentState({ nodeIds: ['a'] });
760
- await invokeOrchestratorHook(orchestrator, new BeforeMultiAgentInvocationEvent({ orchestrator, state: freshState, invocationState: {} }));
761
- expect(freshState.steps).toBe(7);
762
- expect(freshState.node('a')?.status).toBe(Status.COMPLETED);
763
- expect(freshState.node('a')?.results).toHaveLength(1);
764
- expect(freshState.node('a')?.results[0]?.nodeId).toBe('a');
765
- expect(freshState.node('a')?.results[0]?.status).toBe(Status.COMPLETED);
766
- expect(freshState.node('a')?.content[0]).toEqual(expect.objectContaining({ text: 'done' }));
767
- });
768
- it('does not modify state when no snapshot exists', async () => {
769
- sessionManager = new SessionManager({ sessionId: 'empty-session', storage: { snapshot: storage } });
770
- sessionManager.initMultiAgent(orchestrator);
771
- const freshState = new MultiAgentState({ nodeIds: ['a'] });
772
- await invokeOrchestratorHook(orchestrator, new BeforeMultiAgentInvocationEvent({ orchestrator, state: freshState, invocationState: {} }));
773
- expect(freshState.steps).toBe(0);
774
- });
775
- it('restores state independently for two orchestrators sharing one SessionManager', async () => {
776
- const { serializeStateSerializable } = await import('../../types/serializable.js');
777
- // Set up snapshots for two different orchestrators
778
- const orchestratorA = createMockOrchestrator('graph-a');
779
- const orchestratorB = createMockOrchestrator('swarm-b');
780
- for (const [orch, steps] of [
781
- [orchestratorA, 3],
782
- [orchestratorB, 5],
783
- ]) {
784
- const snap = createMultiAgentTestSnapshot(orch.id);
785
- const st = new MultiAgentState({ nodeIds: ['x'] });
786
- st.steps = steps;
787
- snap.data.state = serializeStateSerializable(st);
788
- await storage.saveSnapshot({
789
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: orch.id },
790
- snapshotId: 'latest',
791
- isLatest: true,
792
- snapshot: snap,
793
- });
794
- }
795
- sessionManager = new SessionManager({ sessionId: 'test-session', storage: { snapshot: storage } });
796
- sessionManager.initMultiAgent(orchestratorA);
797
- sessionManager.initMultiAgent(orchestratorB);
798
- // First orchestrator restores its own state
799
- const stateA = new MultiAgentState({ nodeIds: ['x'] });
800
- await invokeOrchestratorHook(orchestratorA, new BeforeMultiAgentInvocationEvent({ orchestrator: orchestratorA, state: stateA, invocationState: {} }));
801
- expect(stateA.steps).toBe(3);
802
- // Second orchestrator also restores — not blocked by the first
803
- const stateB = new MultiAgentState({ nodeIds: ['x'] });
804
- await invokeOrchestratorHook(orchestratorB, new BeforeMultiAgentInvocationEvent({ orchestrator: orchestratorB, state: stateB, invocationState: {} }));
805
- expect(stateB.steps).toBe(5);
806
- });
807
- it('consumes snapshot once — second invocation gets fresh state', async () => {
808
- const snapshot = createMultiAgentTestSnapshot();
809
- const state = new MultiAgentState({ nodeIds: ['a'] });
810
- state.steps = 7;
811
- const { serializeStateSerializable } = await import('../../types/serializable.js');
812
- snapshot.data.state = serializeStateSerializable(state);
813
- await storage.saveSnapshot({
814
- location: { sessionId: 'test-session', scope: 'multiAgent', scopeId: 'test-graph' },
815
- snapshotId: 'latest',
816
- isLatest: true,
817
- snapshot,
818
- });
819
- sessionManager = new SessionManager({ sessionId: 'test-session', storage: { snapshot: storage } });
820
- sessionManager.initMultiAgent(orchestrator);
821
- // First invocation — state is restored
822
- const firstState = new MultiAgentState({ nodeIds: ['a'] });
823
- await invokeOrchestratorHook(orchestrator, new BeforeMultiAgentInvocationEvent({ orchestrator, state: firstState, invocationState: {} }));
824
- expect(firstState.steps).toBe(7);
825
- // Second invocation — snapshot already consumed
826
- const secondState = new MultiAgentState({ nodeIds: ['a'] });
827
- await invokeOrchestratorHook(orchestrator, new BeforeMultiAgentInvocationEvent({ orchestrator, state: secondState, invocationState: {} }));
828
- expect(secondState.steps).toBe(0);
829
- });
830
- });
831
- });
832
- //# sourceMappingURL=session-manager.test.js.map