@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,1060 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { InitializedEvent, AfterInvocationEvent, AfterModelCallEvent, AfterToolCallEvent, AfterToolsEvent, BeforeInvocationEvent, BeforeModelCallEvent, BeforeToolCallEvent, BeforeToolsEvent, MessageAddedEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, } from '../events.js';
3
- import { Agent } from '../../agent/agent.js';
4
- import { AgentResult } from '../../types/agent.js';
5
- import { AgentMetrics } from '../../telemetry/meter.js';
6
- import { Message, TextBlock, ToolResultBlock, ToolUseBlock } from '../../types/messages.js';
7
- import { FunctionTool } from '../../tools/function-tool.js';
8
- import { ToolStreamEvent } from '../../tools/tool.js';
9
- describe('InitializedEvent', () => {
10
- it('creates instance with correct properties', () => {
11
- const agent = new Agent();
12
- const event = new InitializedEvent({ agent });
13
- expect(event).toEqual({
14
- type: 'initializedEvent',
15
- agent: agent,
16
- });
17
- // @ts-expect-error verifying that property is readonly
18
- event.agent = new Agent();
19
- });
20
- it('returns false for _shouldReverseCallbacks', () => {
21
- const agent = new Agent();
22
- const event = new InitializedEvent({ agent });
23
- expect(event._shouldReverseCallbacks()).toBe(false);
24
- });
25
- });
26
- describe('BeforeInvocationEvent', () => {
27
- it('creates instance with correct properties', () => {
28
- const agent = new Agent();
29
- const event = new BeforeInvocationEvent({ agent, invocationState: {} });
30
- expect(event).toEqual({
31
- type: 'beforeInvocationEvent',
32
- agent: agent,
33
- cancel: false,
34
- invocationState: {},
35
- });
36
- // @ts-expect-error verifying that property is readonly
37
- event.agent = new Agent();
38
- });
39
- it('returns false for _shouldReverseCallbacks', () => {
40
- const agent = new Agent();
41
- const event = new BeforeInvocationEvent({ agent, invocationState: {} });
42
- expect(event._shouldReverseCallbacks()).toBe(false);
43
- });
44
- it('allows cancel to be set to true', () => {
45
- const agent = new Agent();
46
- const event = new BeforeInvocationEvent({ agent, invocationState: {} });
47
- expect(event.cancel).toBe(false);
48
- event.cancel = true;
49
- expect(event.cancel).toBe(true);
50
- });
51
- it('allows cancel to be set to a string message', () => {
52
- const agent = new Agent();
53
- const event = new BeforeInvocationEvent({ agent, invocationState: {} });
54
- event.cancel = 'unauthorized';
55
- expect(event.cancel).toBe('unauthorized');
56
- });
57
- });
58
- describe('AfterInvocationEvent', () => {
59
- it('creates instance with correct properties', () => {
60
- const agent = new Agent();
61
- const event = new AfterInvocationEvent({ agent, invocationState: {} });
62
- expect(event).toEqual({
63
- type: 'afterInvocationEvent',
64
- agent: agent,
65
- invocationState: {},
66
- resume: undefined,
67
- });
68
- // @ts-expect-error verifying that property is readonly
69
- event.agent = new Agent();
70
- });
71
- it('returns true for _shouldReverseCallbacks', () => {
72
- const agent = new Agent();
73
- const event = new AfterInvocationEvent({ agent, invocationState: {} });
74
- expect(event._shouldReverseCallbacks()).toBe(true);
75
- });
76
- it('allows resume to be set to new input', () => {
77
- const agent = new Agent();
78
- const event = new AfterInvocationEvent({ agent, invocationState: {} });
79
- expect(event.resume).toBeUndefined();
80
- event.resume = 'follow-up prompt';
81
- expect(event.resume).toBe('follow-up prompt');
82
- });
83
- });
84
- describe('MessageAddedEvent', () => {
85
- it('creates instance with correct properties', () => {
86
- const agent = new Agent();
87
- const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
88
- const event = new MessageAddedEvent({ agent, message, invocationState: {} });
89
- expect(event).toEqual({
90
- type: 'messageAddedEvent',
91
- agent: agent,
92
- message: message,
93
- invocationState: {},
94
- });
95
- // @ts-expect-error verifying that property is readonly
96
- event.agent = new Agent();
97
- // @ts-expect-error verifying that property is readonly
98
- event.message = message;
99
- });
100
- it('returns false for _shouldReverseCallbacks', () => {
101
- const agent = new Agent();
102
- const message = new Message({ role: 'assistant', content: [] });
103
- const event = new MessageAddedEvent({ agent, message, invocationState: {} });
104
- expect(event._shouldReverseCallbacks()).toBe(false);
105
- });
106
- });
107
- describe('BeforeToolCallEvent', () => {
108
- it('creates instance with correct properties when tool is found', () => {
109
- const agent = new Agent();
110
- const tool = new FunctionTool({
111
- name: 'testTool',
112
- description: 'Test tool',
113
- inputSchema: {},
114
- callback: () => 'result',
115
- });
116
- const toolUse = {
117
- name: 'testTool',
118
- toolUseId: 'test-id',
119
- input: { arg: 'value' },
120
- };
121
- const event = new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} });
122
- expect(event).toEqual({
123
- type: 'beforeToolCallEvent',
124
- agent: agent,
125
- toolUse: toolUse,
126
- tool: tool,
127
- cancel: false,
128
- invocationState: {},
129
- selectedTool: undefined,
130
- });
131
- // @ts-expect-error verifying that property is readonly
132
- event.agent = new Agent();
133
- // @ts-expect-error verifying that property is readonly
134
- event.tool = tool;
135
- });
136
- it('creates instance with undefined tool when tool is not found', () => {
137
- const agent = new Agent();
138
- const toolUse = {
139
- name: 'unknownTool',
140
- toolUseId: 'test-id',
141
- input: {},
142
- };
143
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
144
- expect(event).toEqual({
145
- type: 'beforeToolCallEvent',
146
- agent: agent,
147
- toolUse: toolUse,
148
- tool: undefined,
149
- cancel: false,
150
- invocationState: {},
151
- selectedTool: undefined,
152
- });
153
- });
154
- it('returns false for _shouldReverseCallbacks', () => {
155
- const agent = new Agent();
156
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
157
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
158
- expect(event._shouldReverseCallbacks()).toBe(false);
159
- });
160
- it('allows cancel to be set to true', () => {
161
- const agent = new Agent();
162
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
163
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
164
- expect(event.cancel).toBe(false);
165
- event.cancel = true;
166
- expect(event.cancel).toBe(true);
167
- });
168
- it('allows cancel to be set to a string message', () => {
169
- const agent = new Agent();
170
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
171
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
172
- event.cancel = 'tool not allowed';
173
- expect(event.cancel).toBe('tool not allowed');
174
- });
175
- it('allows selectedTool to be set to a replacement tool', () => {
176
- const agent = new Agent();
177
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
178
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
179
- expect(event.selectedTool).toBeUndefined();
180
- const replacement = new FunctionTool({
181
- name: 'replacement',
182
- description: 'Replacement',
183
- inputSchema: {},
184
- callback: () => 'ok',
185
- });
186
- event.selectedTool = replacement;
187
- expect(event.selectedTool).toBe(replacement);
188
- });
189
- it('allows mutating toolUse fields in-place', () => {
190
- const agent = new Agent();
191
- const toolUse = { name: 'orig', toolUseId: 'id', input: { a: 1 } };
192
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
193
- event.toolUse.input = { a: 2, b: 3 };
194
- event.toolUse.name = 'renamed';
195
- expect(event.toolUse).toEqual({ name: 'renamed', toolUseId: 'id', input: { a: 2, b: 3 } });
196
- });
197
- it('allows reassigning toolUse to a new object', () => {
198
- const agent = new Agent();
199
- const toolUse = { name: 'orig', toolUseId: 'id', input: {} };
200
- const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
201
- event.toolUse = { name: 'new', toolUseId: 'new-id', input: { x: 1 } };
202
- expect(event.toolUse).toEqual({ name: 'new', toolUseId: 'new-id', input: { x: 1 } });
203
- });
204
- });
205
- describe('AfterToolCallEvent', () => {
206
- it('creates instance with correct properties on success', () => {
207
- const agent = new Agent();
208
- const tool = new FunctionTool({
209
- name: 'testTool',
210
- description: 'Test tool',
211
- inputSchema: {},
212
- callback: () => 'result',
213
- });
214
- const toolUse = {
215
- name: 'testTool',
216
- toolUseId: 'test-id',
217
- input: {},
218
- };
219
- const result = new ToolResultBlock({
220
- toolUseId: 'test-id',
221
- status: 'success',
222
- content: [new TextBlock('Success')],
223
- });
224
- const event = new AfterToolCallEvent({ agent, toolUse, tool, result, invocationState: {} });
225
- expect(event).toEqual({
226
- type: 'afterToolCallEvent',
227
- agent: agent,
228
- toolUse: toolUse,
229
- tool: tool,
230
- result: result,
231
- error: undefined,
232
- invocationState: {},
233
- });
234
- // @ts-expect-error verifying that property is readonly
235
- event.agent = new Agent();
236
- // @ts-expect-error verifying that property is readonly
237
- event.toolUse = toolUse;
238
- // @ts-expect-error verifying that property is readonly
239
- event.tool = tool;
240
- });
241
- it('allows result to be replaced', () => {
242
- const agent = new Agent();
243
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
244
- const result = new ToolResultBlock({ toolUseId: 'id', status: 'success', content: [new TextBlock('original')] });
245
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
246
- const replacedResult = new ToolResultBlock({
247
- toolUseId: 'id',
248
- status: 'success',
249
- content: [new TextBlock('replaced')],
250
- });
251
- event.result = replacedResult;
252
- expect(event.result).toBe(replacedResult);
253
- });
254
- it('creates instance with error property when tool execution fails', () => {
255
- const agent = new Agent();
256
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
257
- const result = new ToolResultBlock({
258
- toolUseId: 'id',
259
- status: 'error',
260
- content: [new TextBlock('Error')],
261
- });
262
- const error = new Error('Tool failed');
263
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
264
- expect(event).toEqual({
265
- type: 'afterToolCallEvent',
266
- agent: agent,
267
- toolUse: toolUse,
268
- tool: undefined,
269
- result: result,
270
- error: error,
271
- invocationState: {},
272
- });
273
- });
274
- it('returns true for _shouldReverseCallbacks', () => {
275
- const agent = new Agent();
276
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
277
- const result = new ToolResultBlock({
278
- toolUseId: 'id',
279
- status: 'success',
280
- content: [],
281
- });
282
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
283
- expect(event._shouldReverseCallbacks()).toBe(true);
284
- });
285
- it('allows retry to be set when error is present', () => {
286
- const agent = new Agent();
287
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
288
- const result = new ToolResultBlock({
289
- toolUseId: 'id',
290
- status: 'error',
291
- content: [new TextBlock('Error')],
292
- });
293
- const error = new Error('Tool failed');
294
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
295
- expect(event.retry).toBeUndefined();
296
- event.retry = true;
297
- expect(event.retry).toBe(true);
298
- event.retry = false;
299
- expect(event.retry).toBe(false);
300
- });
301
- it('allows retry to be set on success', () => {
302
- const agent = new Agent();
303
- const toolUse = { name: 'test', toolUseId: 'id', input: {} };
304
- const result = new ToolResultBlock({
305
- toolUseId: 'id',
306
- status: 'success',
307
- content: [new TextBlock('Success')],
308
- });
309
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
310
- expect(event.retry).toBeUndefined();
311
- event.retry = true;
312
- expect(event.retry).toBe(true);
313
- });
314
- });
315
- describe('BeforeModelCallEvent', () => {
316
- it('creates instance with correct properties', () => {
317
- const agent = new Agent();
318
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
319
- expect(event).toEqual({
320
- type: 'beforeModelCallEvent',
321
- agent: agent,
322
- model: agent.model,
323
- cancel: false,
324
- invocationState: {},
325
- });
326
- // @ts-expect-error verifying that property is readonly
327
- event.agent = new Agent();
328
- });
329
- it('includes projectedInputTokens when provided', () => {
330
- const agent = new Agent();
331
- const event = new BeforeModelCallEvent({
332
- agent,
333
- model: agent.model,
334
- invocationState: {},
335
- projectedInputTokens: 500,
336
- });
337
- expect(event).toEqual({
338
- type: 'beforeModelCallEvent',
339
- agent,
340
- model: agent.model,
341
- cancel: false,
342
- invocationState: {},
343
- projectedInputTokens: 500,
344
- });
345
- expect(event.toJSON()).toStrictEqual({
346
- type: 'beforeModelCallEvent',
347
- projectedInputTokens: 500,
348
- });
349
- });
350
- it('excludes projectedInputTokens from toJSON when not provided', () => {
351
- const agent = new Agent();
352
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
353
- expect(event.projectedInputTokens).toBeUndefined();
354
- expect(event.toJSON()).toStrictEqual({ type: 'beforeModelCallEvent' });
355
- });
356
- it('returns false for _shouldReverseCallbacks', () => {
357
- const agent = new Agent();
358
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
359
- expect(event._shouldReverseCallbacks()).toBe(false);
360
- });
361
- it('allows cancel to be set to true', () => {
362
- const agent = new Agent();
363
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
364
- expect(event.cancel).toBe(false);
365
- event.cancel = true;
366
- expect(event.cancel).toBe(true);
367
- });
368
- it('allows cancel to be set to a string message', () => {
369
- const agent = new Agent();
370
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
371
- event.cancel = 'rate limited';
372
- expect(event.cancel).toBe('rate limited');
373
- });
374
- });
375
- describe('AfterModelCallEvent', () => {
376
- it('creates instance with correct properties on success', () => {
377
- const agent = new Agent();
378
- const message = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
379
- const stopReason = 'endTurn';
380
- const response = { message, stopReason };
381
- const event = new AfterModelCallEvent({
382
- agent,
383
- model: agent.model,
384
- attemptCount: 1,
385
- stopData: response,
386
- invocationState: {},
387
- });
388
- expect(event).toEqual({
389
- type: 'afterModelCallEvent',
390
- agent: agent,
391
- model: agent.model,
392
- attemptCount: 1,
393
- stopData: response,
394
- error: undefined,
395
- invocationState: {},
396
- });
397
- // @ts-expect-error verifying that property is readonly
398
- event.agent = new Agent();
399
- // @ts-expect-error verifying that property is readonly
400
- event.stopData = response;
401
- });
402
- it('creates instance with error property when model invocation fails', () => {
403
- const agent = new Agent();
404
- const message = new Message({ role: 'assistant', content: [] });
405
- const error = new Error('Model failed');
406
- const response = { message, stopReason: 'error' };
407
- const event = new AfterModelCallEvent({
408
- agent,
409
- model: agent.model,
410
- attemptCount: 1,
411
- stopData: response,
412
- error,
413
- invocationState: {},
414
- });
415
- expect(event).toEqual({
416
- type: 'afterModelCallEvent',
417
- agent: agent,
418
- model: agent.model,
419
- attemptCount: 1,
420
- stopData: response,
421
- error: error,
422
- invocationState: {},
423
- });
424
- });
425
- it('returns true for _shouldReverseCallbacks', () => {
426
- const agent = new Agent();
427
- const message = new Message({ role: 'assistant', content: [] });
428
- const response = { message, stopReason: 'endTurn' };
429
- const event = new AfterModelCallEvent({
430
- agent,
431
- model: agent.model,
432
- attemptCount: 1,
433
- stopData: response,
434
- invocationState: {},
435
- });
436
- expect(event._shouldReverseCallbacks()).toBe(true);
437
- });
438
- it('allows retry to be set when error is present', () => {
439
- const agent = new Agent();
440
- const error = new Error('Model failed');
441
- const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
442
- // Initially undefined
443
- expect(event.retry).toBeUndefined();
444
- // Can be set to true
445
- event.retry = true;
446
- expect(event.retry).toBe(true);
447
- // Can be set to false
448
- event.retry = false;
449
- expect(event.retry).toBe(false);
450
- });
451
- it('retry is optional and defaults to undefined', () => {
452
- const agent = new Agent();
453
- const error = new Error('Model failed');
454
- const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
455
- expect(event.retry).toBeUndefined();
456
- });
457
- });
458
- describe('ModelStreamUpdateEvent', () => {
459
- it('creates instance with correct properties', () => {
460
- const agent = new Agent();
461
- const streamEvent = {
462
- type: 'modelMessageStartEvent',
463
- role: 'assistant',
464
- };
465
- const hookEvent = new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} });
466
- expect(hookEvent).toEqual({
467
- type: 'modelStreamUpdateEvent',
468
- agent: agent,
469
- event: streamEvent,
470
- invocationState: {},
471
- });
472
- // @ts-expect-error verifying that property is readonly
473
- hookEvent.agent = new Agent();
474
- // @ts-expect-error verifying that property is readonly
475
- hookEvent.event = streamEvent;
476
- });
477
- });
478
- describe('ContentBlockEvent', () => {
479
- it('creates instance with correct properties', () => {
480
- const agent = new Agent();
481
- const contentBlock = new TextBlock('Hello');
482
- const event = new ContentBlockEvent({ agent, contentBlock, invocationState: {} });
483
- expect(event).toEqual({
484
- type: 'contentBlockEvent',
485
- agent: agent,
486
- contentBlock: contentBlock,
487
- invocationState: {},
488
- });
489
- // @ts-expect-error verifying that property is readonly
490
- event.agent = new Agent();
491
- // @ts-expect-error verifying that property is readonly
492
- event.contentBlock = contentBlock;
493
- });
494
- });
495
- describe('ModelMessageEvent', () => {
496
- it('creates instance with correct properties', () => {
497
- const agent = new Agent();
498
- const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
499
- const event = new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} });
500
- expect(event).toEqual({
501
- type: 'modelMessageEvent',
502
- agent: agent,
503
- message: message,
504
- stopReason: 'endTurn',
505
- invocationState: {},
506
- });
507
- // @ts-expect-error verifying that property is readonly
508
- event.agent = new Agent();
509
- // @ts-expect-error verifying that property is readonly
510
- event.message = message;
511
- // @ts-expect-error verifying that property is readonly
512
- event.stopReason = 'endTurn';
513
- });
514
- });
515
- describe('ToolResultEvent', () => {
516
- it('creates instance with correct properties', () => {
517
- const agent = new Agent();
518
- const toolResult = new ToolResultBlock({
519
- toolUseId: 'test-id',
520
- status: 'success',
521
- content: [new TextBlock('Result')],
522
- });
523
- const event = new ToolResultEvent({ agent, result: toolResult, invocationState: {} });
524
- expect(event).toEqual({
525
- type: 'toolResultEvent',
526
- agent: agent,
527
- result: toolResult,
528
- invocationState: {},
529
- });
530
- // @ts-expect-error verifying that property is readonly
531
- event.agent = new Agent();
532
- // @ts-expect-error verifying that property is readonly
533
- event.result = toolResult;
534
- });
535
- });
536
- describe('ToolStreamUpdateEvent', () => {
537
- it('creates instance with correct properties', () => {
538
- const agent = new Agent();
539
- const toolStreamEvent = new ToolStreamEvent({ data: 'progress' });
540
- const event = new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} });
541
- expect(event).toEqual({
542
- type: 'toolStreamUpdateEvent',
543
- agent: agent,
544
- event: toolStreamEvent,
545
- invocationState: {},
546
- });
547
- // @ts-expect-error verifying that property is readonly
548
- event.agent = new Agent();
549
- // @ts-expect-error verifying that property is readonly
550
- event.event = toolStreamEvent;
551
- });
552
- });
553
- describe('AgentResultEvent', () => {
554
- it('creates instance with correct properties', () => {
555
- const agent = new Agent();
556
- const result = new AgentResult({
557
- stopReason: 'endTurn',
558
- lastMessage: new Message({ role: 'assistant', content: [new TextBlock('Done')] }),
559
- metrics: new AgentMetrics(),
560
- invocationState: {},
561
- });
562
- const event = new AgentResultEvent({ agent, result, invocationState: {} });
563
- expect(event).toEqual({
564
- type: 'agentResultEvent',
565
- agent: agent,
566
- result: result,
567
- invocationState: {},
568
- });
569
- // @ts-expect-error verifying that property is readonly
570
- event.agent = new Agent();
571
- // @ts-expect-error verifying that property is readonly
572
- event.result = result;
573
- });
574
- });
575
- describe('BeforeToolsEvent', () => {
576
- it('creates instance with correct properties', () => {
577
- const agent = new Agent();
578
- const message = new Message({
579
- role: 'assistant',
580
- content: [
581
- new ToolUseBlock({
582
- name: 'testTool',
583
- toolUseId: 'test-id',
584
- input: { arg: 'value' },
585
- }),
586
- ],
587
- });
588
- const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
589
- expect(event).toEqual({
590
- type: 'beforeToolsEvent',
591
- agent: agent,
592
- message: message,
593
- cancel: false,
594
- invocationState: {},
595
- });
596
- // @ts-expect-error verifying that property is readonly
597
- event.agent = new Agent();
598
- // @ts-expect-error verifying that property is readonly
599
- event.message = message;
600
- });
601
- it('returns false for _shouldReverseCallbacks', () => {
602
- const agent = new Agent();
603
- const message = new Message({ role: 'assistant', content: [] });
604
- const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
605
- expect(event._shouldReverseCallbacks()).toBe(false);
606
- });
607
- it('allows cancel to be set to true', () => {
608
- const agent = new Agent();
609
- const message = new Message({ role: 'assistant', content: [] });
610
- const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
611
- expect(event.cancel).toBe(false);
612
- event.cancel = true;
613
- expect(event.cancel).toBe(true);
614
- });
615
- it('allows cancel to be set to a string message', () => {
616
- const agent = new Agent();
617
- const message = new Message({ role: 'assistant', content: [] });
618
- const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
619
- event.cancel = 'tools not allowed';
620
- expect(event.cancel).toBe('tools not allowed');
621
- });
622
- });
623
- describe('AfterToolsEvent', () => {
624
- it('creates instance with correct properties', () => {
625
- const agent = new Agent();
626
- const message = new Message({
627
- role: 'user',
628
- content: [
629
- new ToolResultBlock({
630
- toolUseId: 'test-id',
631
- status: 'success',
632
- content: [new TextBlock('Result')],
633
- }),
634
- ],
635
- });
636
- const event = new AfterToolsEvent({ agent, message, invocationState: {} });
637
- expect(event).toEqual({
638
- type: 'afterToolsEvent',
639
- agent: agent,
640
- message: message,
641
- invocationState: {},
642
- endTurn: false,
643
- });
644
- // @ts-expect-error verifying that property is readonly
645
- event.agent = new Agent();
646
- // @ts-expect-error verifying that property is readonly
647
- event.message = message;
648
- });
649
- it('returns true for _shouldReverseCallbacks', () => {
650
- const agent = new Agent();
651
- const message = new Message({ role: 'user', content: [] });
652
- const event = new AfterToolsEvent({ agent, message, invocationState: {} });
653
- expect(event._shouldReverseCallbacks()).toBe(true);
654
- });
655
- it('defaults endTurn to false and accepts boolean or string', () => {
656
- const agent = new Agent();
657
- const message = new Message({ role: 'user', content: [] });
658
- const event = new AfterToolsEvent({ agent, message, invocationState: {} });
659
- expect(event.endTurn).toBe(false);
660
- event.endTurn = true;
661
- expect(event.endTurn).toBe(true);
662
- event.endTurn = 'enough information gathered';
663
- expect(event.endTurn).toBe('enough information gathered');
664
- });
665
- });
666
- // ===================== toJSON serialization tests =====================
667
- describe('toJSON serialization', () => {
668
- describe('InitializedEvent', () => {
669
- it('excludes agent and returns only type', () => {
670
- const agent = new Agent();
671
- const event = new InitializedEvent({ agent });
672
- const json = JSON.parse(JSON.stringify(event));
673
- expect(json).toStrictEqual({ type: 'initializedEvent' });
674
- });
675
- });
676
- describe('BeforeInvocationEvent', () => {
677
- it('excludes agent and returns only type', () => {
678
- const agent = new Agent();
679
- const event = new BeforeInvocationEvent({ agent, invocationState: {} });
680
- const json = JSON.parse(JSON.stringify(event));
681
- expect(json).toStrictEqual({ type: 'beforeInvocationEvent' });
682
- });
683
- });
684
- describe('AfterInvocationEvent', () => {
685
- it('excludes agent and returns only type', () => {
686
- const agent = new Agent();
687
- const event = new AfterInvocationEvent({ agent, invocationState: {} });
688
- const json = JSON.parse(JSON.stringify(event));
689
- expect(json).toStrictEqual({ type: 'afterInvocationEvent' });
690
- });
691
- });
692
- describe('BeforeModelCallEvent', () => {
693
- it('excludes agent and model and returns only type', () => {
694
- const agent = new Agent();
695
- const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
696
- const json = JSON.parse(JSON.stringify(event));
697
- expect(json).toStrictEqual({ type: 'beforeModelCallEvent' });
698
- });
699
- });
700
- describe('MessageAddedEvent', () => {
701
- it('includes message and excludes agent', () => {
702
- const agent = new Agent();
703
- const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
704
- const event = new MessageAddedEvent({ agent, message, invocationState: {} });
705
- const json = JSON.parse(JSON.stringify(event));
706
- expect(json).toStrictEqual({
707
- type: 'messageAddedEvent',
708
- message: { role: 'assistant', content: [{ text: 'Hello' }] },
709
- });
710
- });
711
- });
712
- describe('ModelStreamUpdateEvent', () => {
713
- it('includes stream event and excludes agent', () => {
714
- const agent = new Agent();
715
- const streamEvent = {
716
- type: 'modelContentBlockDeltaEvent',
717
- delta: { type: 'textDelta', text: 'Hi' },
718
- };
719
- const event = new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} });
720
- const json = JSON.parse(JSON.stringify(event));
721
- expect(json).toStrictEqual({
722
- type: 'modelStreamUpdateEvent',
723
- event: { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hi' } },
724
- });
725
- });
726
- });
727
- describe('ContentBlockEvent', () => {
728
- it('includes content block and excludes agent', () => {
729
- const agent = new Agent();
730
- const contentBlock = new TextBlock('Hello world');
731
- const event = new ContentBlockEvent({ agent, contentBlock, invocationState: {} });
732
- const json = JSON.parse(JSON.stringify(event));
733
- expect(json).toStrictEqual({
734
- type: 'contentBlockEvent',
735
- contentBlock: { text: 'Hello world' },
736
- });
737
- });
738
- });
739
- describe('ModelMessageEvent', () => {
740
- it('includes message and stopReason, excludes agent', () => {
741
- const agent = new Agent();
742
- const message = new Message({ role: 'assistant', content: [new TextBlock('Done')] });
743
- const event = new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} });
744
- const json = JSON.parse(JSON.stringify(event));
745
- expect(json).toStrictEqual({
746
- type: 'modelMessageEvent',
747
- message: { role: 'assistant', content: [{ text: 'Done' }] },
748
- stopReason: 'endTurn',
749
- });
750
- });
751
- });
752
- describe('ToolResultEvent', () => {
753
- it('includes result and excludes agent', () => {
754
- const agent = new Agent();
755
- const result = new ToolResultBlock({
756
- toolUseId: 'tool-1',
757
- status: 'success',
758
- content: [new TextBlock('42')],
759
- });
760
- const event = new ToolResultEvent({ agent, result, invocationState: {} });
761
- const json = JSON.parse(JSON.stringify(event));
762
- expect(json).toStrictEqual({
763
- type: 'toolResultEvent',
764
- result: { toolResult: { toolUseId: 'tool-1', status: 'success', content: [{ text: '42' }] } },
765
- });
766
- });
767
- });
768
- describe('ToolStreamUpdateEvent', () => {
769
- it('includes tool stream event and excludes agent', () => {
770
- const agent = new Agent();
771
- const toolStreamEvent = new ToolStreamEvent({ data: { progress: 50 } });
772
- const event = new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} });
773
- const json = JSON.parse(JSON.stringify(event));
774
- expect(json).toStrictEqual({
775
- type: 'toolStreamUpdateEvent',
776
- event: { type: 'toolStreamEvent', data: { progress: 50 } },
777
- });
778
- });
779
- });
780
- describe('AgentResultEvent', () => {
781
- it('includes result and excludes agent', () => {
782
- const agent = new Agent();
783
- const result = new AgentResult({
784
- stopReason: 'endTurn',
785
- lastMessage: new Message({ role: 'assistant', content: [new TextBlock('Done')] }),
786
- metrics: new AgentMetrics(),
787
- invocationState: {},
788
- });
789
- const event = new AgentResultEvent({ agent, result, invocationState: {} });
790
- const json = JSON.parse(JSON.stringify(event));
791
- expect(json).toStrictEqual({
792
- type: 'agentResultEvent',
793
- result: {
794
- type: 'agentResult',
795
- stopReason: 'endTurn',
796
- lastMessage: { role: 'assistant', content: [{ text: 'Done' }] },
797
- },
798
- });
799
- });
800
- });
801
- describe('BeforeToolCallEvent', () => {
802
- it('includes toolUse and excludes agent, tool, and cancel', () => {
803
- const agent = new Agent();
804
- const tool = new FunctionTool({
805
- name: 'testTool',
806
- description: 'Test',
807
- inputSchema: {},
808
- callback: () => 'result',
809
- });
810
- const toolUse = { name: 'testTool', toolUseId: 'id-1', input: { query: 'hello' } };
811
- const event = new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} });
812
- const json = JSON.parse(JSON.stringify(event));
813
- expect(json).toStrictEqual({
814
- type: 'beforeToolCallEvent',
815
- toolUse: { name: 'testTool', toolUseId: 'id-1', input: { query: 'hello' } },
816
- });
817
- });
818
- });
819
- describe('AfterToolCallEvent', () => {
820
- it('includes toolUse and result, excludes agent and tool on success', () => {
821
- const agent = new Agent();
822
- const toolUse = { name: 'calc', toolUseId: 'id-1', input: {} };
823
- const result = new ToolResultBlock({
824
- toolUseId: 'id-1',
825
- status: 'success',
826
- content: [new TextBlock('42')],
827
- });
828
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
829
- const json = JSON.parse(JSON.stringify(event));
830
- expect(json).toStrictEqual({
831
- type: 'afterToolCallEvent',
832
- toolUse: { name: 'calc', toolUseId: 'id-1', input: {} },
833
- result: { toolResult: { toolUseId: 'id-1', status: 'success', content: [{ text: '42' }] } },
834
- });
835
- });
836
- it('converts error to message string and excludes retry', () => {
837
- const agent = new Agent();
838
- const toolUse = { name: 'calc', toolUseId: 'id-1', input: {} };
839
- const result = new ToolResultBlock({
840
- toolUseId: 'id-1',
841
- status: 'error',
842
- content: [new TextBlock('Error')],
843
- });
844
- const error = new Error('Tool crashed');
845
- const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
846
- event.retry = true;
847
- const json = JSON.parse(JSON.stringify(event));
848
- expect(json).toStrictEqual({
849
- type: 'afterToolCallEvent',
850
- toolUse: { name: 'calc', toolUseId: 'id-1', input: {} },
851
- result: { toolResult: { toolUseId: 'id-1', status: 'error', content: [{ text: 'Error' }] } },
852
- error: { message: 'Tool crashed' },
853
- });
854
- });
855
- });
856
- describe('AfterModelCallEvent', () => {
857
- it('includes stopData and attemptCount and excludes agent and model on success', () => {
858
- const agent = new Agent();
859
- const message = new Message({ role: 'assistant', content: [new TextBlock('Hi')] });
860
- const stopData = { message, stopReason: 'endTurn' };
861
- const event = new AfterModelCallEvent({
862
- agent,
863
- model: agent.model,
864
- attemptCount: 2,
865
- stopData,
866
- invocationState: {},
867
- });
868
- const json = JSON.parse(JSON.stringify(event));
869
- expect(json).toStrictEqual({
870
- type: 'afterModelCallEvent',
871
- attemptCount: 2,
872
- stopData: {
873
- message: { role: 'assistant', content: [{ text: 'Hi' }] },
874
- stopReason: 'endTurn',
875
- },
876
- });
877
- });
878
- it('converts error to message string and excludes retry', () => {
879
- const agent = new Agent();
880
- const error = new Error('Model failed');
881
- const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
882
- event.retry = true;
883
- const json = JSON.parse(JSON.stringify(event));
884
- expect(json).toStrictEqual({
885
- type: 'afterModelCallEvent',
886
- attemptCount: 1,
887
- error: { message: 'Model failed' },
888
- });
889
- });
890
- });
891
- describe('BeforeToolsEvent', () => {
892
- it('includes message and excludes agent and cancel', () => {
893
- const agent = new Agent();
894
- const message = new Message({
895
- role: 'assistant',
896
- content: [new ToolUseBlock({ name: 'calc', toolUseId: 'id-1', input: {} })],
897
- });
898
- const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
899
- event.cancel = 'not allowed';
900
- const json = JSON.parse(JSON.stringify(event));
901
- expect(json).toStrictEqual({
902
- type: 'beforeToolsEvent',
903
- message: { role: 'assistant', content: [{ toolUse: { name: 'calc', toolUseId: 'id-1', input: {} } }] },
904
- });
905
- });
906
- });
907
- describe('AfterToolsEvent', () => {
908
- it('includes message and excludes agent', () => {
909
- const agent = new Agent();
910
- const message = new Message({
911
- role: 'user',
912
- content: [
913
- new ToolResultBlock({
914
- toolUseId: 'id-1',
915
- status: 'success',
916
- content: [new TextBlock('Done')],
917
- }),
918
- ],
919
- });
920
- const event = new AfterToolsEvent({ agent, message, invocationState: {} });
921
- const json = JSON.parse(JSON.stringify(event));
922
- expect(json).toStrictEqual({
923
- type: 'afterToolsEvent',
924
- message: {
925
- role: 'user',
926
- content: [{ toolResult: { toolUseId: 'id-1', status: 'success', content: [{ text: 'Done' }] } }],
927
- },
928
- });
929
- });
930
- });
931
- describe('agent reference is never serialized', () => {
932
- it('JSON.stringify output never contains agent properties', () => {
933
- const agent = new Agent();
934
- // Add messages to make agent heavy
935
- agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello '.repeat(100))] }));
936
- const event = new ModelStreamUpdateEvent({
937
- agent,
938
- event: { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hi' } },
939
- invocationState: {},
940
- });
941
- const json = JSON.stringify(event);
942
- // Should be small (no agent serialized)
943
- expect(json.length).toBeLessThan(200);
944
- expect(json).not.toContain('Hello Hello');
945
- expect(json).not.toContain('appState');
946
- expect(json).not.toContain('toolRegistry');
947
- });
948
- });
949
- });
950
- // ===================== Serialization completeness tests =====================
951
- // Ensures that if a new field is added to an event class, it must either be
952
- // included in toJSON() or explicitly added to the exclusion set.
953
- describe('toJSON serialization completeness', () => {
954
- /**
955
- * Fields that should NEVER appear in toJSON() output.
956
- * If you add a new field to an event and it should be excluded from wire serialization,
957
- * add it here. Otherwise, add it to toJSON() so it gets serialized.
958
- */
959
- const EXCLUDED_FIELDS = new Set([
960
- 'agent',
961
- 'model',
962
- 'tool',
963
- 'cancel',
964
- 'retry',
965
- 'invocationState',
966
- 'selectedTool',
967
- 'resume',
968
- 'endTurn',
969
- ]);
970
- /**
971
- * Fields where toJSON() transforms the value (e.g., Error to message object).
972
- * These appear in both instance and JSON but with different shapes.
973
- */
974
- const TRANSFORMED_FIELDS = new Set(['error']);
975
- // Helper: create a fully-populated instance of each event class
976
- function createEventInstances() {
977
- const agent = new Agent();
978
- const message = new Message({ role: 'assistant', content: [new TextBlock('test')] });
979
- const toolUse = { name: 'test', toolUseId: 'id-1', input: {} };
980
- const result = new ToolResultBlock({ toolUseId: 'id-1', status: 'success', content: [new TextBlock('ok')] });
981
- const tool = new FunctionTool({ name: 'test', description: 'Test', inputSchema: {}, callback: () => 'ok' });
982
- const error = new Error('test error');
983
- const stopData = { message, stopReason: 'endTurn' };
984
- const streamEvent = {
985
- type: 'modelContentBlockDeltaEvent',
986
- delta: { type: 'textDelta', text: 'Hi' },
987
- };
988
- const contentBlock = new TextBlock('test');
989
- const toolStreamEvent = new ToolStreamEvent({ data: { progress: 50 } });
990
- const agentResult = new AgentResult({
991
- stopReason: 'endTurn',
992
- lastMessage: message,
993
- metrics: new AgentMetrics(),
994
- invocationState: {},
995
- });
996
- return [
997
- { name: 'InitializedEvent', event: new InitializedEvent({ agent }) },
998
- { name: 'BeforeInvocationEvent', event: new BeforeInvocationEvent({ agent, invocationState: {} }) },
999
- { name: 'AfterInvocationEvent', event: new AfterInvocationEvent({ agent, invocationState: {} }) },
1000
- {
1001
- name: 'BeforeModelCallEvent',
1002
- event: new BeforeModelCallEvent({
1003
- agent,
1004
- model: agent.model,
1005
- invocationState: {},
1006
- projectedInputTokens: 100,
1007
- }),
1008
- },
1009
- {
1010
- name: 'AfterModelCallEvent',
1011
- event: Object.assign(new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, stopData, error, invocationState: {} }), { retry: true }),
1012
- },
1013
- { name: 'MessageAddedEvent', event: new MessageAddedEvent({ agent, message, invocationState: {} }) },
1014
- {
1015
- name: 'ModelStreamUpdateEvent',
1016
- event: new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} }),
1017
- },
1018
- { name: 'ContentBlockEvent', event: new ContentBlockEvent({ agent, contentBlock, invocationState: {} }) },
1019
- {
1020
- name: 'ModelMessageEvent',
1021
- event: new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} }),
1022
- },
1023
- { name: 'ToolResultEvent', event: new ToolResultEvent({ agent, result, invocationState: {} }) },
1024
- {
1025
- name: 'ToolStreamUpdateEvent',
1026
- event: new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} }),
1027
- },
1028
- { name: 'AgentResultEvent', event: new AgentResultEvent({ agent, result: agentResult, invocationState: {} }) },
1029
- { name: 'BeforeToolCallEvent', event: new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} }) },
1030
- {
1031
- name: 'AfterToolCallEvent',
1032
- event: Object.assign(new AfterToolCallEvent({ agent, toolUse, tool, result, error, invocationState: {} }), {
1033
- retry: true,
1034
- }),
1035
- },
1036
- { name: 'BeforeToolsEvent', event: new BeforeToolsEvent({ agent, message, invocationState: {} }) },
1037
- { name: 'AfterToolsEvent', event: new AfterToolsEvent({ agent, message, invocationState: {} }) },
1038
- ];
1039
- }
1040
- const eventInstances = createEventInstances();
1041
- it.each(eventInstances)('$name: toJSON() includes all fields except known exclusions', ({ event }) => {
1042
- const instanceKeys = new Set(Object.keys(event));
1043
- const jsonKeys = new Set(Object.keys(event.toJSON()));
1044
- // Every instance key should either be in JSON output, in the exclusion set, or transformed
1045
- for (const key of instanceKeys) {
1046
- if (!jsonKeys.has(key) && !TRANSFORMED_FIELDS.has(key)) {
1047
- expect(EXCLUDED_FIELDS).toContain(key);
1048
- }
1049
- }
1050
- // Every JSON key should come from the instance or be a known transformation
1051
- for (const key of jsonKeys) {
1052
- expect(instanceKeys.has(key) || TRANSFORMED_FIELDS.has(key)).toBe(true);
1053
- }
1054
- });
1055
- it.each(eventInstances)('$name: toJSON() never includes agent', ({ event }) => {
1056
- const json = event.toJSON();
1057
- expect(json).not.toHaveProperty('agent');
1058
- });
1059
- });
1060
- //# sourceMappingURL=events.test.js.map