@strands-agents/sdk 1.7.0 → 1.9.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 (686) hide show
  1. package/dist/src/agent/agent.d.ts +32 -2
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +92 -4
  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/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  8. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +2 -0
  9. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  10. package/dist/src/errors.d.ts +7 -0
  11. package/dist/src/errors.d.ts.map +1 -1
  12. package/dist/src/errors.js +10 -0
  13. package/dist/src/errors.js.map +1 -1
  14. package/dist/src/experimental/checkpoint.d.ts +118 -0
  15. package/dist/src/experimental/checkpoint.d.ts.map +1 -0
  16. package/dist/src/experimental/checkpoint.js +108 -0
  17. package/dist/src/experimental/checkpoint.js.map +1 -0
  18. package/dist/src/experimental/index.d.ts +10 -0
  19. package/dist/src/experimental/index.d.ts.map +1 -0
  20. package/dist/src/experimental/index.js +9 -0
  21. package/dist/src/experimental/index.js.map +1 -0
  22. package/dist/src/index.d.ts +1 -1
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +1 -1
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/index.node.d.ts.map +1 -1
  27. package/dist/src/index.node.js +3 -0
  28. package/dist/src/index.node.js.map +1 -1
  29. package/dist/src/injection/message-injection.d.ts.map +1 -1
  30. package/dist/src/injection/message-injection.js +2 -0
  31. package/dist/src/injection/message-injection.js.map +1 -1
  32. package/dist/src/interventions/actions.d.ts.map +1 -1
  33. package/dist/src/interventions/actions.js.map +1 -1
  34. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  35. package/dist/src/mcp/client.d.ts.map +1 -0
  36. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  37. package/dist/src/mcp/client.js.map +1 -0
  38. package/dist/src/mcp/config.d.ts +52 -0
  39. package/dist/src/mcp/config.d.ts.map +1 -0
  40. package/dist/src/mcp/config.js +12 -0
  41. package/dist/src/mcp/config.js.map +1 -0
  42. package/dist/src/mcp/config.node.d.ts +16 -0
  43. package/dist/src/mcp/config.node.d.ts.map +1 -0
  44. package/dist/src/mcp/config.node.js +145 -0
  45. package/dist/src/mcp/config.node.js.map +1 -0
  46. package/dist/src/mcp/index.d.ts +3 -0
  47. package/dist/src/mcp/index.d.ts.map +1 -0
  48. package/dist/src/mcp/index.js +2 -0
  49. package/dist/src/mcp/index.js.map +1 -0
  50. package/dist/src/models/model.d.ts.map +1 -1
  51. package/dist/src/models/model.js +2 -1
  52. package/dist/src/models/model.js.map +1 -1
  53. package/dist/src/multiagent/graph.d.ts +7 -0
  54. package/dist/src/multiagent/graph.d.ts.map +1 -1
  55. package/dist/src/multiagent/graph.js +22 -1
  56. package/dist/src/multiagent/graph.js.map +1 -1
  57. package/dist/src/multiagent/multiagent.d.ts +2 -1
  58. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  59. package/dist/src/multiagent/multiagent.js.map +1 -1
  60. package/dist/src/multiagent/nodes.d.ts +5 -0
  61. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  62. package/dist/src/multiagent/nodes.js +15 -0
  63. package/dist/src/multiagent/nodes.js.map +1 -1
  64. package/dist/src/multiagent/state.d.ts.map +1 -1
  65. package/dist/src/multiagent/state.js.map +1 -1
  66. package/dist/src/tools/function-tool.d.ts +1 -1
  67. package/dist/src/tools/function-tool.d.ts.map +1 -1
  68. package/dist/src/tools/function-tool.js +4 -12
  69. package/dist/src/tools/function-tool.js.map +1 -1
  70. package/dist/src/tools/mcp-tool.d.ts +2 -1
  71. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  72. package/dist/src/tools/mcp-tool.js +1 -0
  73. package/dist/src/tools/mcp-tool.js.map +1 -1
  74. package/dist/src/tools/tool-factory.d.ts +1 -1
  75. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  76. package/dist/src/tools/types.d.ts +4 -0
  77. package/dist/src/tools/types.d.ts.map +1 -1
  78. package/dist/src/tools/zod-tool.d.ts +4 -2
  79. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  80. package/dist/src/tools/zod-tool.js.map +1 -1
  81. package/dist/src/tsconfig.tsbuildinfo +1 -1
  82. package/dist/src/types/agent.d.ts +18 -1
  83. package/dist/src/types/agent.d.ts.map +1 -1
  84. package/dist/src/types/agent.js +12 -0
  85. package/dist/src/types/agent.js.map +1 -1
  86. package/dist/src/types/media.d.ts.map +1 -1
  87. package/dist/src/types/media.js.map +1 -1
  88. package/dist/src/types/messages.d.ts +22 -1
  89. package/dist/src/types/messages.d.ts.map +1 -1
  90. package/dist/src/types/messages.js +22 -0
  91. package/dist/src/types/messages.js.map +1 -1
  92. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts +2 -0
  93. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts.map +1 -0
  94. package/dist/src/vended-memory-stores/test-memory-store/index.js +2 -0
  95. package/dist/src/vended-memory-stores/test-memory-store/index.js.map +1 -0
  96. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts +122 -0
  97. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts.map +1 -0
  98. package/dist/src/vended-memory-stores/test-memory-store/store.js +281 -0
  99. package/dist/src/vended-memory-stores/test-memory-store/store.js.map +1 -0
  100. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  101. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  102. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  103. package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
  104. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  105. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  106. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  107. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  108. package/package.json +41 -30
  109. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  110. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  111. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  112. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  113. package/dist/src/__fixtures__/environment.d.ts +0 -12
  114. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  115. package/dist/src/__fixtures__/environment.js +0 -12
  116. package/dist/src/__fixtures__/environment.js.map +0 -1
  117. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  118. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  119. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  120. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  121. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  122. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  123. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  124. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  125. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  126. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  127. package/dist/src/__fixtures__/mock-meter.js +0 -47
  128. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  129. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  130. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  131. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  132. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  133. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  134. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  135. package/dist/src/__fixtures__/mock-span.js +0 -93
  136. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  137. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  138. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  139. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  140. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  141. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  142. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  143. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  144. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  145. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  146. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  147. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  148. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  149. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  150. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  151. package/dist/src/__fixtures__/slim-types.js +0 -6
  152. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  153. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  154. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  155. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  156. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  157. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  158. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  159. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  160. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  161. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  162. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  163. package/dist/src/__tests__/default-slot.test.js +0 -33
  164. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  165. package/dist/src/__tests__/errors.test.d.ts +0 -2
  166. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  167. package/dist/src/__tests__/errors.test.js +0 -170
  168. package/dist/src/__tests__/errors.test.js.map +0 -1
  169. package/dist/src/__tests__/index.test.d.ts +0 -2
  170. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  171. package/dist/src/__tests__/index.test.js +0 -48
  172. package/dist/src/__tests__/index.test.js.map +0 -1
  173. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  174. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  175. package/dist/src/__tests__/interrupt.test.js +0 -264
  176. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  177. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  178. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  179. package/dist/src/__tests__/mcp.test.js +0 -1003
  180. package/dist/src/__tests__/mcp.test.js.map +0 -1
  181. package/dist/src/__tests__/mime.test.d.ts +0 -2
  182. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  183. package/dist/src/__tests__/mime.test.js +0 -83
  184. package/dist/src/__tests__/mime.test.js.map +0 -1
  185. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  186. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  187. package/dist/src/__tests__/state-store.test.js +0 -285
  188. package/dist/src/__tests__/state-store.test.js.map +0 -1
  189. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  190. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  191. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  192. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  193. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  194. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  195. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  196. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  197. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  198. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  199. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  200. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  201. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  202. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  203. package/dist/src/a2a/__tests__/events.test.js +0 -68
  204. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  205. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  206. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  207. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  208. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  209. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  210. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  211. package/dist/src/a2a/__tests__/server.test.js +0 -71
  212. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  213. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  214. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  215. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  216. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  217. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  218. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  219. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  220. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  221. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  222. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  223. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  224. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  225. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  226. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  227. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  228. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  229. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  230. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  231. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  232. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  233. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  234. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  235. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
  236. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  237. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  238. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  239. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  240. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  241. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  242. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  243. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  244. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  245. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  246. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  247. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  248. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  249. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  250. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  251. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  252. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  253. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  254. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  255. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  256. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  257. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  258. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  259. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  260. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  261. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  262. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  263. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  264. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  265. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  266. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  267. package/dist/src/agent/__tests__/printer.test.js +0 -188
  268. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  269. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  270. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  271. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  272. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  273. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  274. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  275. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  276. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  277. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  278. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  279. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  280. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  281. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  282. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  283. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  284. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  285. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  286. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  287. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  288. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  289. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  290. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  291. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  292. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  293. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  294. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  295. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  296. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  297. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  298. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  299. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  300. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  301. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  302. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  303. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  304. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  305. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  306. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  307. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  308. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  309. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  310. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  311. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  312. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  313. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  314. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  315. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  316. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  317. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  318. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  319. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  320. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  321. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  322. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  323. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  324. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  325. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  326. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  327. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  328. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  329. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  330. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  331. package/dist/src/logging/__tests__/logger.test.js +0 -70
  332. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  333. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  334. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  335. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  336. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  337. package/dist/src/mcp.d.ts.map +0 -1
  338. package/dist/src/mcp.js.map +0 -1
  339. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  340. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  341. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  342. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  343. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
  344. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
  345. package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
  346. package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
  347. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  348. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  349. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
  350. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  351. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  352. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  353. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
  354. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  355. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  356. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  357. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  358. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  359. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  360. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  361. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  362. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  363. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  364. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  365. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  366. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  367. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  368. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  369. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  370. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  371. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  372. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  373. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  374. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  375. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  376. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  377. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  378. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  379. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  380. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  381. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  382. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  383. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  384. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  385. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  386. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  387. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  388. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  389. package/dist/src/models/__tests__/defaults.test.js +0 -36
  390. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  391. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  392. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  393. package/dist/src/models/__tests__/google.test.js +0 -1145
  394. package/dist/src/models/__tests__/google.test.js.map +0 -1
  395. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  396. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  397. package/dist/src/models/__tests__/model.test.js +0 -921
  398. package/dist/src/models/__tests__/model.test.js.map +0 -1
  399. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  400. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  401. package/dist/src/models/__tests__/streaming.test.js +0 -50
  402. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  403. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  404. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  405. package/dist/src/models/__tests__/test-utils.js +0 -17
  406. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  407. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  408. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  409. package/dist/src/models/__tests__/vercel.test.js +0 -740
  410. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  411. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  412. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  413. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  414. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  415. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  416. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  417. package/dist/src/models/openai/__tests__/errors.test.js +0 -39
  418. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  419. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  420. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  421. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  422. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  423. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  424. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  425. package/dist/src/models/openai/__tests__/responses.test.js +0 -709
  426. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  427. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  428. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  429. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  430. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  431. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  432. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  433. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  434. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  435. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  436. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  437. package/dist/src/multiagent/__tests__/graph.test.js +0 -698
  438. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  439. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  440. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  441. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  442. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  443. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  444. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  445. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  446. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  447. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  448. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  449. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  450. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  451. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  452. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  453. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  454. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  455. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  456. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  457. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  458. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  459. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  460. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  461. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  462. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  463. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  464. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  465. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  466. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  467. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  468. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  469. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  470. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  471. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  472. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  473. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  474. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  475. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  476. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  477. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  478. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  479. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  480. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  481. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  482. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  483. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  484. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  485. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  486. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  487. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  488. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  489. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  490. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  491. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  492. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  493. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  494. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  495. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  496. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  497. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  498. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  499. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  500. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  501. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  502. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  503. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  504. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  505. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  506. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  507. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  508. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  509. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  510. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  511. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  512. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  513. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  514. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  515. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  516. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  517. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  518. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  519. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  520. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  521. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  522. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  523. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  524. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  525. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  526. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  527. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  528. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  529. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  530. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  531. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  532. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  533. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  534. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  535. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  536. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  537. package/dist/src/session/__tests__/validation.test.js +0 -47
  538. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  539. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  540. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  541. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  542. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  543. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  544. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  545. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  546. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  547. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  548. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  549. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  550. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  551. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  552. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  553. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  554. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  555. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  556. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  557. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  558. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  559. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  560. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  561. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
  562. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  563. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  564. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  565. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  566. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  567. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  568. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  569. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  570. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  571. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  572. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  573. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  574. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  575. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  576. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  577. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  578. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  579. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  580. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  581. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  582. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  583. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  584. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  585. package/dist/src/types/__tests__/agent.test.js +0 -476
  586. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  587. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  588. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  589. package/dist/src/types/__tests__/citations.test.js +0 -104
  590. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  591. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  592. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  593. package/dist/src/types/__tests__/json.test.js +0 -298
  594. package/dist/src/types/__tests__/json.test.js.map +0 -1
  595. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  596. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  597. package/dist/src/types/__tests__/media.test.js +0 -478
  598. package/dist/src/types/__tests__/media.test.js.map +0 -1
  599. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  600. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  601. package/dist/src/types/__tests__/messages.test.js +0 -681
  602. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  603. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  604. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  605. package/dist/src/types/__tests__/validation.test.js +0 -30
  606. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  607. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  608. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  609. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
  610. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  611. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  612. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  613. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  614. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  615. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  616. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  617. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  618. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  619. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  620. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  621. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  622. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  623. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  624. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  625. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  626. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  627. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
  628. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
  629. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
  630. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
  631. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  632. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  633. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  634. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  635. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  636. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  637. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  638. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  639. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  640. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  641. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  642. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  643. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  644. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  645. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
  646. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  647. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  648. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  649. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  650. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  651. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  652. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  653. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  654. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  655. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  656. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  657. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  658. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  659. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  660. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  661. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  662. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  663. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  664. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  665. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  666. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  667. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  668. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  669. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  670. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  671. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  672. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  673. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  674. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  675. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  676. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  677. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  678. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  679. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  680. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  681. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  682. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  683. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  684. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  685. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  686. 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