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