@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,188 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { AgentPrinter } from '../printer.js';
3
- import { Agent } from '../agent.js';
4
- import { MockMessageModel } from '../../__fixtures__/mock-message-model.js';
5
- import { collectGenerator } from '../../__fixtures__/model-test-helpers.js';
6
- import { createMockTool } from '../../__fixtures__/tool-helpers.js';
7
- import { TextBlock, ToolResultBlock } from '../../types/messages.js';
8
- import { BeforeToolCallEvent, BeforeToolsEvent } from '../../hooks/events.js';
9
- describe('AgentPrinter', () => {
10
- describe('end-to-end scenarios', () => {
11
- it('prints simple text output', async () => {
12
- const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hello world' });
13
- const outputs = [];
14
- const mockAppender = (text) => outputs.push(text);
15
- const agent = new Agent({ model, printer: false });
16
- agent._printer = new AgentPrinter(mockAppender);
17
- await collectGenerator(agent.stream('Test'));
18
- const allOutput = outputs.join('');
19
- expect(allOutput).toBe('Hello world\n');
20
- });
21
- it('prints reasoning content wrapped in tags', async () => {
22
- const model = new MockMessageModel().addTurn({ type: 'reasoningBlock', text: 'Let me think' });
23
- const outputs = [];
24
- const mockAppender = (text) => outputs.push(text);
25
- const agent = new Agent({ model, printer: false });
26
- agent._printer = new AgentPrinter(mockAppender);
27
- await collectGenerator(agent.stream('Test'));
28
- const allOutput = outputs.join('');
29
- expect(allOutput).toBe('\n💭 Reasoning:\n Let me think\n\n');
30
- });
31
- it('prints text and reasoning together', async () => {
32
- const model = new MockMessageModel().addTurn([
33
- { type: 'textBlock', text: 'Answer: ' },
34
- { type: 'reasoningBlock', text: 'thinking' },
35
- ]);
36
- const outputs = [];
37
- const mockAppender = (text) => outputs.push(text);
38
- const agent = new Agent({ model, printer: false });
39
- agent._printer = new AgentPrinter(mockAppender);
40
- await collectGenerator(agent.stream('Test'));
41
- const allOutput = outputs.join('');
42
- expect(allOutput).toBe('Answer: \n💭 Reasoning:\n thinking\n\n');
43
- });
44
- it('handles newlines in reasoning content', async () => {
45
- const model = new MockMessageModel().addTurn({
46
- type: 'reasoningBlock',
47
- text: 'First line\nSecond line\nThird line',
48
- });
49
- const outputs = [];
50
- const mockAppender = (text) => outputs.push(text);
51
- const agent = new Agent({ model, printer: false });
52
- agent._printer = new AgentPrinter(mockAppender);
53
- await collectGenerator(agent.stream('Test'));
54
- const allOutput = outputs.join('');
55
- const expected = `
56
- 💭 Reasoning:
57
- First line
58
- Second line
59
- Third line
60
- \n`;
61
- expect(allOutput).toBe(expected);
62
- });
63
- it('prints tool execution', async () => {
64
- const model = new MockMessageModel()
65
- .addTurn({ type: 'toolUseBlock', name: 'calc', toolUseId: 'tool-1', input: {} })
66
- .addTurn({ type: 'textBlock', text: 'Result: 4' });
67
- const tool = createMockTool('calc', () => new ToolResultBlock({
68
- toolUseId: 'tool-1',
69
- status: 'success',
70
- content: [new TextBlock('4')],
71
- }));
72
- const outputs = [];
73
- const mockAppender = (text) => outputs.push(text);
74
- const agent = new Agent({ model, tools: [tool], printer: false });
75
- agent._printer = new AgentPrinter(mockAppender);
76
- await collectGenerator(agent.stream('Test'));
77
- const allOutput = outputs.join('');
78
- expect(allOutput).toBe('\n ⏳ calc\n\n🔧 Tool #1: calc\n✓ Tool completed\nResult: 4\n');
79
- });
80
- it('prints tool error', async () => {
81
- const model = new MockMessageModel()
82
- .addTurn({ type: 'toolUseBlock', name: 'bad_tool', toolUseId: 'tool-1', input: {} })
83
- .addTurn({ type: 'textBlock', text: 'Error handled' });
84
- const tool = createMockTool('bad_tool', () => new ToolResultBlock({
85
- toolUseId: 'tool-1',
86
- status: 'error',
87
- content: [new TextBlock('Failed')],
88
- }));
89
- const outputs = [];
90
- const mockAppender = (text) => outputs.push(text);
91
- const agent = new Agent({ model, tools: [tool], printer: false });
92
- agent._printer = new AgentPrinter(mockAppender);
93
- await collectGenerator(agent.stream('Test'));
94
- const allOutput = outputs.join('');
95
- expect(allOutput).toBe('\n ⏳ bad_tool\n\n🔧 Tool #1: bad_tool\n✗ Tool failed\nError handled\n');
96
- });
97
- it('prints denied tool with denied icon', async () => {
98
- const model = new MockMessageModel()
99
- .addTurn({ type: 'toolUseBlock', name: 'dangerous_tool', toolUseId: 'tool-1', input: {} })
100
- .addTurn({ type: 'textBlock', text: 'Tool was denied' });
101
- const tool = createMockTool('dangerous_tool', () => new ToolResultBlock({
102
- toolUseId: 'tool-1',
103
- status: 'error',
104
- content: [new TextBlock('denied')],
105
- }));
106
- const outputs = [];
107
- const mockAppender = (text) => outputs.push(text);
108
- const agent = new Agent({ model, tools: [tool], printer: false });
109
- agent._printer = new AgentPrinter(mockAppender);
110
- agent.addHook(BeforeToolCallEvent, (event) => {
111
- event.cancel = 'Tool not allowed';
112
- });
113
- await collectGenerator(agent.stream('Test'));
114
- const allOutput = outputs.join('');
115
- expect(allOutput).toBe('\n ⏳ dangerous_tool\n\n🚫 Tool #1: dangerous_tool (denied)\n✗ Tool failed\nTool was denied\n');
116
- });
117
- it('prints batch cancel notice when BeforeToolsEvent cancels', async () => {
118
- const model = new MockMessageModel()
119
- .addTurn({ type: 'toolUseBlock', name: 'tool_a', toolUseId: 'tool-1', input: {} })
120
- .addTurn({ type: 'textBlock', text: 'Done' });
121
- const tool = createMockTool('tool_a', () => new ToolResultBlock({
122
- toolUseId: 'tool-1',
123
- status: 'success',
124
- content: [new TextBlock('ok')],
125
- }));
126
- const outputs = [];
127
- const mockAppender = (text) => outputs.push(text);
128
- const agent = new Agent({ model, tools: [tool], printer: false });
129
- agent._printer = new AgentPrinter(mockAppender);
130
- agent.addHook(BeforeToolsEvent, (event) => {
131
- event.cancel = true;
132
- });
133
- await collectGenerator(agent.stream('Test'));
134
- const allOutput = outputs.join('');
135
- expect(allOutput).toBe('\n ⏳ tool_a\n\n🚫 All tools denied\n✗ Tool failed\nDone\n');
136
- });
137
- it('prints comprehensive scenario with all output types', async () => {
138
- const model = new MockMessageModel()
139
- .addTurn([
140
- { type: 'textBlock', text: 'Let me help you. ' },
141
- { type: 'reasoningBlock', text: 'I need to use the calculator' },
142
- { type: 'toolUseBlock', name: 'calculator', toolUseId: 'tool-1', input: { expr: '2+2' } },
143
- ])
144
- .addTurn([
145
- { type: 'textBlock', text: 'The calculation succeeded. ' },
146
- { type: 'reasoningBlock', text: 'Now trying validation' },
147
- { type: 'toolUseBlock', name: 'validator', toolUseId: 'tool-2', input: { value: 'test' } },
148
- ])
149
- .addTurn([
150
- { type: 'textBlock', text: 'All done. ' },
151
- { type: 'reasoningBlock', text: 'Task completed successfully' },
152
- ]);
153
- const calcTool = createMockTool('calculator', () => new ToolResultBlock({
154
- toolUseId: 'tool-1',
155
- status: 'success',
156
- content: [new TextBlock('4')],
157
- }));
158
- const validatorTool = createMockTool('validator', () => new ToolResultBlock({
159
- toolUseId: 'tool-2',
160
- status: 'error',
161
- content: [new TextBlock('Validation failed')],
162
- }));
163
- const outputs = [];
164
- const mockAppender = (text) => outputs.push(text);
165
- const agent = new Agent({ model, tools: [calcTool, validatorTool], printer: false });
166
- agent._printer = new AgentPrinter(mockAppender);
167
- await collectGenerator(agent.stream('Test'));
168
- const allOutput = outputs.join('');
169
- const expected = [
170
- 'Let me help you. ',
171
- '\n💭 Reasoning:\n I need to use the calculator\n',
172
- '\n ⏳ calculator\n',
173
- '\n🔧 Tool #1: calculator\n',
174
- '✓ Tool completed\n',
175
- 'The calculation succeeded. ',
176
- '\n💭 Reasoning:\n Now trying validation\n',
177
- '\n ⏳ validator\n',
178
- '\n🔧 Tool #2: validator\n',
179
- '✗ Tool failed\n',
180
- 'All done. ',
181
- '\n💭 Reasoning:\n Task completed successfully\n',
182
- '\n',
183
- ].join('');
184
- expect(allOutput).toBe(expected);
185
- });
186
- });
187
- });
188
- //# sourceMappingURL=printer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"printer.test.js","sourceRoot":"","sources":["../../../../src/agent/__tests__/printer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snapshot.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot.test.d.ts","sourceRoot":"","sources":["../../../../src/agent/__tests__/snapshot.test.ts"],"names":[],"mappings":""}
@@ -1,442 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { Agent } from '../agent.js';
3
- import { SNAPSHOT_SCHEMA_VERSION } from '../../types/snapshot.js';
4
- import { ALL_SNAPSHOT_FIELDS, SNAPSHOT_PRESETS, createTimestamp, resolveSnapshotFields, takeSnapshot, loadSnapshot, } from '../snapshot.js';
5
- import { Message, TextBlock, ToolUseBlock, ToolResultBlock } from '../../types/messages.js';
6
- import { TestModelProvider } from '../../__fixtures__/model-test-helpers.js';
7
- import { MockMessageModel } from '../../__fixtures__/mock-message-model.js';
8
- import { createMockTool } from '../../__fixtures__/tool-helpers.js';
9
- // Fixed timestamp for testing
10
- const MOCK_TIMESTAMP = '2026-01-15T12:00:00.000Z';
11
- /**
12
- * Helper to create a test agent with a mock model
13
- */
14
- function createTestAgent() {
15
- return new Agent({
16
- model: new TestModelProvider(),
17
- tools: [],
18
- });
19
- }
20
- describe('Snapshot API', () => {
21
- beforeEach(() => {
22
- vi.useFakeTimers();
23
- vi.setSystemTime(new Date(MOCK_TIMESTAMP));
24
- });
25
- afterEach(() => {
26
- vi.useRealTimers();
27
- });
28
- describe('constants', () => {
29
- it('exports snapshot constants with correct values', () => {
30
- expect(SNAPSHOT_SCHEMA_VERSION).toBe('1.0');
31
- expect(ALL_SNAPSHOT_FIELDS).toEqual(['messages', 'state', 'systemPrompt', 'modelState', 'interrupts']);
32
- expect(SNAPSHOT_PRESETS).toEqual({
33
- session: ['messages', 'state', 'systemPrompt', 'modelState', 'interrupts'],
34
- });
35
- });
36
- });
37
- describe('createTimestamp', () => {
38
- it('returns ISO 8601 formatted timestamp', () => {
39
- expect(createTimestamp()).toBe(MOCK_TIMESTAMP);
40
- });
41
- });
42
- describe('resolveSnapshotFields', () => {
43
- it('throws error when no fields would be included', () => {
44
- expect(() => resolveSnapshotFields({})).toThrow('No fields to include in snapshot');
45
- });
46
- it('returns session preset fields when preset is "session"', () => {
47
- const fields = resolveSnapshotFields({ preset: 'session' });
48
- expect(fields).toEqual(new Set(['messages', 'state', 'systemPrompt', 'modelState', 'interrupts']));
49
- });
50
- it('returns explicit fields when include is specified', () => {
51
- const fields = resolveSnapshotFields({ include: ['messages', 'state'] });
52
- expect(fields).toEqual(new Set(['messages', 'state']));
53
- });
54
- it('applies exclude after preset', () => {
55
- const fields = resolveSnapshotFields({ preset: 'session', exclude: ['state'] });
56
- expect(fields).toEqual(new Set(['messages', 'systemPrompt', 'modelState', 'interrupts']));
57
- });
58
- it('throws error for invalid preset', () => {
59
- expect(() => resolveSnapshotFields({ preset: 'invalid' })).toThrow('Invalid preset: invalid');
60
- });
61
- it('throws error for invalid field names', () => {
62
- expect(() => resolveSnapshotFields({ include: ['invalidField'] })).toThrow('Invalid snapshot field: invalidField');
63
- });
64
- });
65
- describe('takeSnapshot', () => {
66
- let agent;
67
- beforeEach(() => {
68
- agent = createTestAgent();
69
- });
70
- it('creates snapshot with session preset', () => {
71
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello')] }));
72
- agent.appState.set('key', 'value');
73
- agent.systemPrompt = 'Test prompt';
74
- const snapshot = takeSnapshot(agent, { preset: 'session' });
75
- expect(snapshot).toEqual({
76
- scope: 'agent',
77
- schemaVersion: SNAPSHOT_SCHEMA_VERSION,
78
- createdAt: MOCK_TIMESTAMP,
79
- data: {
80
- messages: [{ role: 'user', content: [{ text: 'Hello' }] }],
81
- state: { key: 'value' },
82
- systemPrompt: 'Test prompt',
83
- modelState: {},
84
- interrupts: { interrupts: {}, activated: false },
85
- },
86
- appData: {},
87
- });
88
- });
89
- it('includes appData in snapshot', () => {
90
- const snapshot = takeSnapshot(agent, {
91
- preset: 'session',
92
- appData: { customKey: 'customValue' },
93
- });
94
- expect(snapshot.appData).toEqual({ customKey: 'customValue' });
95
- });
96
- it('excludes specified fields', () => {
97
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello')] }));
98
- agent.appState.set('key', 'value');
99
- const snapshot = takeSnapshot(agent, { preset: 'session', exclude: ['messages'] });
100
- expect(snapshot.data.messages).toBeUndefined();
101
- expect(snapshot.data.state).toBeDefined();
102
- });
103
- });
104
- describe('loadSnapshot', () => {
105
- let agent;
106
- beforeEach(() => {
107
- agent = createTestAgent();
108
- });
109
- it('throws error for incompatible schema version', () => {
110
- const snapshot = {
111
- scope: 'agent',
112
- schemaVersion: '2.0',
113
- createdAt: createTimestamp(),
114
- data: {},
115
- appData: {},
116
- };
117
- expect(() => loadSnapshot(agent, snapshot)).toThrow('Unsupported snapshot schema version: 2.0. Current version: 1.0');
118
- });
119
- it('throws error for wrong scope', () => {
120
- const snapshot = {
121
- scope: 'multiAgent',
122
- schemaVersion: SNAPSHOT_SCHEMA_VERSION,
123
- createdAt: createTimestamp(),
124
- data: {},
125
- appData: {},
126
- };
127
- expect(() => loadSnapshot(agent, snapshot)).toThrow("Expected snapshot scope 'agent', got 'multiAgent'");
128
- });
129
- it('restores messages from snapshot', () => {
130
- const snapshot = {
131
- scope: 'agent',
132
- schemaVersion: '1.0',
133
- createdAt: createTimestamp(),
134
- data: {
135
- messages: [{ role: 'user', content: [{ text: 'Restored message' }] }],
136
- },
137
- appData: {},
138
- };
139
- loadSnapshot(agent, snapshot);
140
- expect(agent.messages).toHaveLength(1);
141
- expect(agent.messages[0]).toEqual(new Message({ role: 'user', content: [new TextBlock('Restored message')] }));
142
- });
143
- it('restores state from snapshot', () => {
144
- const snapshot = {
145
- scope: 'agent',
146
- schemaVersion: '1.0',
147
- createdAt: createTimestamp(),
148
- data: {
149
- state: { restoredKey: 'restoredValue' },
150
- },
151
- appData: {},
152
- };
153
- loadSnapshot(agent, snapshot);
154
- expect(agent.appState.get('restoredKey')).toBe('restoredValue');
155
- });
156
- it('restores systemPrompt from snapshot', () => {
157
- const snapshot = {
158
- scope: 'agent',
159
- schemaVersion: '1.0',
160
- createdAt: createTimestamp(),
161
- data: {
162
- systemPrompt: 'Restored system prompt',
163
- },
164
- appData: {},
165
- };
166
- loadSnapshot(agent, snapshot);
167
- expect(agent.systemPrompt).toBe('Restored system prompt');
168
- });
169
- it('clears systemPrompt when snapshot has null systemPrompt (agent had no system prompt at snapshot time)', () => {
170
- agent.systemPrompt = 'Original prompt';
171
- const snapshot = {
172
- scope: 'agent',
173
- schemaVersion: '1.0',
174
- createdAt: createTimestamp(),
175
- data: { systemPrompt: null },
176
- appData: {},
177
- };
178
- loadSnapshot(agent, snapshot);
179
- // null in snapshot means the agent had no system prompt — should be cleared
180
- expect(agent.systemPrompt).toBeUndefined();
181
- });
182
- it('leaves systemPrompt unchanged when systemPrompt key is absent from snapshot', () => {
183
- agent.systemPrompt = 'Original prompt';
184
- const snapshot = {
185
- scope: 'agent',
186
- schemaVersion: '1.0',
187
- createdAt: createTimestamp(),
188
- data: { messages: [] }, // systemPrompt key not present at all
189
- appData: {},
190
- };
191
- loadSnapshot(agent, snapshot);
192
- // absent key means field was not snapshotted — agent prompt should be untouched
193
- expect(agent.systemPrompt).toBe('Original prompt');
194
- });
195
- it('leaves messages unchanged when messages key is absent from snapshot', () => {
196
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Existing')] }));
197
- const snapshot = {
198
- scope: 'agent',
199
- schemaVersion: '1.0',
200
- createdAt: createTimestamp(),
201
- data: { state: { key: 'val' } }, // messages key not present
202
- appData: {},
203
- };
204
- loadSnapshot(agent, snapshot);
205
- expect(agent.messages).toHaveLength(1);
206
- });
207
- it('leaves state unchanged when state key is absent from snapshot', () => {
208
- agent.appState.set('existing', 'value');
209
- const snapshot = {
210
- scope: 'agent',
211
- schemaVersion: '1.0',
212
- createdAt: createTimestamp(),
213
- data: { messages: [] }, // state key not present
214
- appData: {},
215
- };
216
- loadSnapshot(agent, snapshot);
217
- expect(agent.appState.get('existing')).toBe('value');
218
- });
219
- });
220
- describe('round-trip', () => {
221
- let agent;
222
- beforeEach(() => {
223
- agent = createTestAgent();
224
- });
225
- it('preserves messages through save/load cycle', () => {
226
- const originalMessages = [
227
- new Message({ role: 'user', content: [new TextBlock('Hello')] }),
228
- new Message({ role: 'assistant', content: [new TextBlock('Hi!')] }),
229
- ];
230
- agent.messages.push(...originalMessages);
231
- const snapshot = takeSnapshot(agent, { preset: 'session' });
232
- // Modify agent
233
- agent.messages.length = 0;
234
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Different')] }));
235
- // Restore
236
- loadSnapshot(agent, snapshot);
237
- expect(agent.messages).toEqual(originalMessages);
238
- });
239
- it('preserves state through save/load cycle', () => {
240
- agent.appState.set('userId', 'user-123');
241
- agent.appState.set('counter', 42);
242
- const snapshot = takeSnapshot(agent, { preset: 'session' });
243
- // Modify state
244
- agent.appState.clear();
245
- agent.appState.set('different', 'value');
246
- // Restore
247
- loadSnapshot(agent, snapshot);
248
- expect(agent.appState.getAll()).toEqual({ userId: 'user-123', counter: 42 });
249
- });
250
- it('handles complex message content', () => {
251
- const toolUseBlock = new ToolUseBlock({
252
- name: 'calculator',
253
- toolUseId: 'tool-123',
254
- input: { operation: 'add', numbers: [1, 2, 3] },
255
- });
256
- const toolResultBlock = new ToolResultBlock({
257
- toolUseId: 'tool-123',
258
- status: 'success',
259
- content: [new TextBlock('6')],
260
- });
261
- const originalMessages = [
262
- new Message({ role: 'assistant', content: [toolUseBlock] }),
263
- new Message({ role: 'user', content: [toolResultBlock] }),
264
- ];
265
- agent.messages.push(...originalMessages);
266
- const snapshot = takeSnapshot(agent, { include: ['messages'] });
267
- agent.messages.length = 0;
268
- loadSnapshot(agent, snapshot);
269
- expect(agent.messages).toEqual(originalMessages);
270
- });
271
- });
272
- describe('JSON serialization', () => {
273
- it('snapshot survives JSON.stringify/JSON.parse round-trip', () => {
274
- const agent = createTestAgent();
275
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello')] }));
276
- agent.appState.set('userId', 'user-123');
277
- agent.systemPrompt = 'You are a helpful assistant';
278
- const snapshot = takeSnapshot(agent, { preset: 'session' });
279
- // Serialize to JSON string and parse back
280
- const jsonString = JSON.stringify(snapshot);
281
- const parsed = JSON.parse(jsonString);
282
- // Verify structure is preserved
283
- expect(parsed).toEqual(snapshot);
284
- });
285
- it('snapshot can be stored and retrieved as JSON string', () => {
286
- const agent = createTestAgent();
287
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Test message')] }));
288
- agent.appState.set('key', 'value');
289
- const snapshot = takeSnapshot(agent, { preset: 'session' });
290
- // Simulate storing to a database or file as JSON
291
- const stored = JSON.stringify(snapshot);
292
- // Simulate retrieving and restoring
293
- const retrieved = JSON.parse(stored);
294
- const newAgent = createTestAgent();
295
- loadSnapshot(newAgent, retrieved);
296
- expect(newAgent.messages).toHaveLength(1);
297
- expect(newAgent.appState.getAll()).toEqual({ key: 'value' });
298
- });
299
- });
300
- describe('interrupt state round-trip', () => {
301
- it('preserves interrupt state through snapshot and restores for resume', async () => {
302
- // Set up agent that will interrupt
303
- const model = new MockMessageModel()
304
- .addTurn({
305
- type: 'toolUseBlock',
306
- name: 'confirmTool',
307
- toolUseId: 'tool-1',
308
- input: { action: 'delete' },
309
- })
310
- .addTurn({ type: 'textBlock', text: 'Done' });
311
- const tool = createMockTool('confirmTool', (context) => {
312
- const response = context.interrupt({ name: 'confirm', reason: 'Confirm delete?' });
313
- return `confirmed: ${response}`;
314
- });
315
- const agent = new Agent({ model, tools: [tool], printer: false });
316
- // Trigger interrupt
317
- const interruptResult = await agent.invoke('Delete it');
318
- expect(interruptResult.stopReason).toBe('interrupt');
319
- expect(interruptResult.interrupts).toHaveLength(1);
320
- // Snapshot the interrupted agent
321
- const snapshot = takeSnapshot(agent, { preset: 'session' });
322
- expect(snapshot.data.interrupts).toBeDefined();
323
- // Create a fresh agent and restore from snapshot
324
- const model2 = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Done' });
325
- const tool2 = createMockTool('confirmTool', (context) => {
326
- const response = context.interrupt({ name: 'confirm', reason: 'Confirm delete?' });
327
- return `confirmed: ${response}`;
328
- });
329
- const restoredAgent = new Agent({ model: model2, tools: [tool2], printer: false });
330
- loadSnapshot(restoredAgent, snapshot);
331
- // Resume from the restored agent
332
- const finalResult = await restoredAgent.invoke([
333
- {
334
- interruptResponse: {
335
- interruptId: interruptResult.interrupts[0].id,
336
- response: 'yes',
337
- },
338
- },
339
- ]);
340
- expect(finalResult.stopReason).toBe('endTurn');
341
- });
342
- });
343
- });
344
- describe('Agent.takeSnapshot / Agent.loadSnapshot (public API)', () => {
345
- beforeEach(() => {
346
- vi.useFakeTimers();
347
- vi.setSystemTime(new Date(MOCK_TIMESTAMP));
348
- });
349
- afterEach(() => {
350
- vi.useRealTimers();
351
- });
352
- it('takeSnapshot captures state and loadSnapshot restores it (round-trip)', () => {
353
- const agent = new Agent({ model: new TestModelProvider(), tools: [], printer: false });
354
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello')] }), new Message({ role: 'assistant', content: [new TextBlock('Hi!')] }));
355
- agent.appState.set('counter', 42);
356
- agent.systemPrompt = 'Be helpful';
357
- const snapshot = agent.takeSnapshot({ preset: 'session' });
358
- expect(snapshot).toEqual({
359
- scope: 'agent',
360
- schemaVersion: SNAPSHOT_SCHEMA_VERSION,
361
- createdAt: MOCK_TIMESTAMP,
362
- data: {
363
- messages: [
364
- { role: 'user', content: [{ text: 'Hello' }] },
365
- { role: 'assistant', content: [{ text: 'Hi!' }] },
366
- ],
367
- state: { counter: 42 },
368
- systemPrompt: 'Be helpful',
369
- modelState: {},
370
- interrupts: { interrupts: {}, activated: false },
371
- },
372
- appData: {},
373
- });
374
- // Mutate agent state
375
- agent.messages.length = 0;
376
- agent.appState.clear();
377
- agent.systemPrompt = 'Different';
378
- // Restore
379
- agent.loadSnapshot(snapshot);
380
- expect(agent.messages).toHaveLength(2);
381
- expect(agent.appState.get('counter')).toBe(42);
382
- expect(agent.systemPrompt).toBe('Be helpful');
383
- });
384
- it('propagates errors from loadSnapshot for invalid snapshots', () => {
385
- const agent = new Agent({ model: new TestModelProvider(), tools: [], printer: false });
386
- expect(() => agent.loadSnapshot({ scope: 'agent', schemaVersion: '99.0', createdAt: '', data: {}, appData: {} })).toThrow('Unsupported snapshot schema version: 99.0');
387
- expect(() => agent.loadSnapshot({
388
- scope: 'multiAgent',
389
- schemaVersion: SNAPSHOT_SCHEMA_VERSION,
390
- createdAt: '',
391
- data: {},
392
- appData: {},
393
- })).toThrow("Expected snapshot scope 'agent', got 'multiAgent'");
394
- expect(() => agent.takeSnapshot({})).toThrow('No fields to include in snapshot');
395
- });
396
- it('supports JSON serialization round-trip', () => {
397
- const agent = new Agent({ model: new TestModelProvider(), tools: [], printer: false });
398
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Persist me')] }));
399
- agent.appState.set('session', 'abc');
400
- const snapshot = agent.takeSnapshot({ preset: 'session' });
401
- const json = JSON.stringify(snapshot);
402
- const parsed = JSON.parse(json);
403
- const newAgent = new Agent({ model: new TestModelProvider(), tools: [], printer: false });
404
- newAgent.loadSnapshot(parsed);
405
- expect(newAgent.messages).toHaveLength(1);
406
- expect(newAgent.appState.get('session')).toBe('abc');
407
- });
408
- it('preserves and restores interrupt state for resume', async () => {
409
- const model = new MockMessageModel()
410
- .addTurn({
411
- type: 'toolUseBlock',
412
- name: 'askUser',
413
- toolUseId: 'tool-1',
414
- input: { question: 'proceed?' },
415
- })
416
- .addTurn({ type: 'textBlock', text: 'Completed' });
417
- const tool = createMockTool('askUser', (context) => {
418
- const answer = context.interrupt({ name: 'ask', reason: 'Need confirmation' });
419
- return `User said: ${answer}`;
420
- });
421
- const agent = new Agent({ model, tools: [tool], printer: false });
422
- // Trigger interrupt
423
- const result = await agent.invoke('Do something');
424
- expect(result.stopReason).toBe('interrupt');
425
- // Snapshot via public method
426
- const snapshot = agent.takeSnapshot({ preset: 'session' });
427
- // Restore into a fresh agent
428
- const model2 = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Completed' });
429
- const tool2 = createMockTool('askUser', (context) => {
430
- const answer = context.interrupt({ name: 'ask', reason: 'Need confirmation' });
431
- return `User said: ${answer}`;
432
- });
433
- const restored = new Agent({ model: model2, tools: [tool2], printer: false });
434
- restored.loadSnapshot(snapshot);
435
- // Resume
436
- const finalResult = await restored.invoke([
437
- { interruptResponse: { interruptId: result.interrupts[0].id, response: 'go ahead' } },
438
- ]);
439
- expect(finalResult.stopReason).toBe('endTurn');
440
- });
441
- });
442
- //# sourceMappingURL=snapshot.test.js.map