@strands-agents/sdk 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (686) hide show
  1. package/dist/src/agent/agent.d.ts +32 -2
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +92 -4
  4. package/dist/src/agent/agent.js.map +1 -1
  5. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +3 -3
  6. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
  7. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  8. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +2 -0
  9. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  10. package/dist/src/errors.d.ts +7 -0
  11. package/dist/src/errors.d.ts.map +1 -1
  12. package/dist/src/errors.js +10 -0
  13. package/dist/src/errors.js.map +1 -1
  14. package/dist/src/experimental/checkpoint.d.ts +118 -0
  15. package/dist/src/experimental/checkpoint.d.ts.map +1 -0
  16. package/dist/src/experimental/checkpoint.js +108 -0
  17. package/dist/src/experimental/checkpoint.js.map +1 -0
  18. package/dist/src/experimental/index.d.ts +10 -0
  19. package/dist/src/experimental/index.d.ts.map +1 -0
  20. package/dist/src/experimental/index.js +9 -0
  21. package/dist/src/experimental/index.js.map +1 -0
  22. package/dist/src/index.d.ts +1 -1
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +1 -1
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/index.node.d.ts.map +1 -1
  27. package/dist/src/index.node.js +3 -0
  28. package/dist/src/index.node.js.map +1 -1
  29. package/dist/src/injection/message-injection.d.ts.map +1 -1
  30. package/dist/src/injection/message-injection.js +2 -0
  31. package/dist/src/injection/message-injection.js.map +1 -1
  32. package/dist/src/interventions/actions.d.ts.map +1 -1
  33. package/dist/src/interventions/actions.js.map +1 -1
  34. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  35. package/dist/src/mcp/client.d.ts.map +1 -0
  36. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  37. package/dist/src/mcp/client.js.map +1 -0
  38. package/dist/src/mcp/config.d.ts +52 -0
  39. package/dist/src/mcp/config.d.ts.map +1 -0
  40. package/dist/src/mcp/config.js +12 -0
  41. package/dist/src/mcp/config.js.map +1 -0
  42. package/dist/src/mcp/config.node.d.ts +16 -0
  43. package/dist/src/mcp/config.node.d.ts.map +1 -0
  44. package/dist/src/mcp/config.node.js +145 -0
  45. package/dist/src/mcp/config.node.js.map +1 -0
  46. package/dist/src/mcp/index.d.ts +3 -0
  47. package/dist/src/mcp/index.d.ts.map +1 -0
  48. package/dist/src/mcp/index.js +2 -0
  49. package/dist/src/mcp/index.js.map +1 -0
  50. package/dist/src/models/model.d.ts.map +1 -1
  51. package/dist/src/models/model.js +2 -1
  52. package/dist/src/models/model.js.map +1 -1
  53. package/dist/src/multiagent/graph.d.ts +7 -0
  54. package/dist/src/multiagent/graph.d.ts.map +1 -1
  55. package/dist/src/multiagent/graph.js +22 -1
  56. package/dist/src/multiagent/graph.js.map +1 -1
  57. package/dist/src/multiagent/multiagent.d.ts +2 -1
  58. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  59. package/dist/src/multiagent/multiagent.js.map +1 -1
  60. package/dist/src/multiagent/nodes.d.ts +5 -0
  61. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  62. package/dist/src/multiagent/nodes.js +15 -0
  63. package/dist/src/multiagent/nodes.js.map +1 -1
  64. package/dist/src/multiagent/state.d.ts.map +1 -1
  65. package/dist/src/multiagent/state.js.map +1 -1
  66. package/dist/src/tools/function-tool.d.ts +1 -1
  67. package/dist/src/tools/function-tool.d.ts.map +1 -1
  68. package/dist/src/tools/function-tool.js +4 -12
  69. package/dist/src/tools/function-tool.js.map +1 -1
  70. package/dist/src/tools/mcp-tool.d.ts +2 -1
  71. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  72. package/dist/src/tools/mcp-tool.js +1 -0
  73. package/dist/src/tools/mcp-tool.js.map +1 -1
  74. package/dist/src/tools/tool-factory.d.ts +1 -1
  75. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  76. package/dist/src/tools/types.d.ts +4 -0
  77. package/dist/src/tools/types.d.ts.map +1 -1
  78. package/dist/src/tools/zod-tool.d.ts +4 -2
  79. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  80. package/dist/src/tools/zod-tool.js.map +1 -1
  81. package/dist/src/tsconfig.tsbuildinfo +1 -1
  82. package/dist/src/types/agent.d.ts +18 -1
  83. package/dist/src/types/agent.d.ts.map +1 -1
  84. package/dist/src/types/agent.js +12 -0
  85. package/dist/src/types/agent.js.map +1 -1
  86. package/dist/src/types/media.d.ts.map +1 -1
  87. package/dist/src/types/media.js.map +1 -1
  88. package/dist/src/types/messages.d.ts +22 -1
  89. package/dist/src/types/messages.d.ts.map +1 -1
  90. package/dist/src/types/messages.js +22 -0
  91. package/dist/src/types/messages.js.map +1 -1
  92. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts +2 -0
  93. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts.map +1 -0
  94. package/dist/src/vended-memory-stores/test-memory-store/index.js +2 -0
  95. package/dist/src/vended-memory-stores/test-memory-store/index.js.map +1 -0
  96. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts +122 -0
  97. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts.map +1 -0
  98. package/dist/src/vended-memory-stores/test-memory-store/store.js +281 -0
  99. package/dist/src/vended-memory-stores/test-memory-store/store.js.map +1 -0
  100. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  101. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  102. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  103. package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
  104. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  105. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  106. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  107. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  108. package/package.json +41 -30
  109. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  110. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  111. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  112. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  113. package/dist/src/__fixtures__/environment.d.ts +0 -12
  114. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  115. package/dist/src/__fixtures__/environment.js +0 -12
  116. package/dist/src/__fixtures__/environment.js.map +0 -1
  117. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  118. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  119. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  120. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  121. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  122. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  123. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  124. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  125. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  126. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  127. package/dist/src/__fixtures__/mock-meter.js +0 -47
  128. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  129. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  130. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  131. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  132. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  133. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  134. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  135. package/dist/src/__fixtures__/mock-span.js +0 -93
  136. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  137. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  138. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  139. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  140. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  141. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  142. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  143. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  144. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  145. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  146. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  147. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  148. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  149. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  150. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  151. package/dist/src/__fixtures__/slim-types.js +0 -6
  152. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  153. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  154. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  155. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  156. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  157. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  158. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  159. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  160. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  161. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  162. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  163. package/dist/src/__tests__/default-slot.test.js +0 -33
  164. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  165. package/dist/src/__tests__/errors.test.d.ts +0 -2
  166. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  167. package/dist/src/__tests__/errors.test.js +0 -170
  168. package/dist/src/__tests__/errors.test.js.map +0 -1
  169. package/dist/src/__tests__/index.test.d.ts +0 -2
  170. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  171. package/dist/src/__tests__/index.test.js +0 -48
  172. package/dist/src/__tests__/index.test.js.map +0 -1
  173. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  174. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  175. package/dist/src/__tests__/interrupt.test.js +0 -264
  176. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  177. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  178. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  179. package/dist/src/__tests__/mcp.test.js +0 -1003
  180. package/dist/src/__tests__/mcp.test.js.map +0 -1
  181. package/dist/src/__tests__/mime.test.d.ts +0 -2
  182. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  183. package/dist/src/__tests__/mime.test.js +0 -83
  184. package/dist/src/__tests__/mime.test.js.map +0 -1
  185. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  186. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  187. package/dist/src/__tests__/state-store.test.js +0 -285
  188. package/dist/src/__tests__/state-store.test.js.map +0 -1
  189. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  190. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  191. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  192. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  193. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  194. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  195. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  196. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  197. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  198. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  199. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  200. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  201. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  202. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  203. package/dist/src/a2a/__tests__/events.test.js +0 -68
  204. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  205. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  206. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  207. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  208. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  209. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  210. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  211. package/dist/src/a2a/__tests__/server.test.js +0 -71
  212. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  213. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  214. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  215. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  216. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  217. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  218. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  219. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  220. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  221. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  222. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  223. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  224. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  225. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  226. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  227. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  228. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  229. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  230. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  231. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  232. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  233. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  234. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  235. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
  236. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  237. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  238. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  239. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  240. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  241. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  242. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  243. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  244. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  245. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  246. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  247. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  248. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  249. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  250. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  251. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  252. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  253. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  254. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  255. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  256. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  257. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  258. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  259. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  260. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  261. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  262. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  263. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  264. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  265. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  266. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  267. package/dist/src/agent/__tests__/printer.test.js +0 -188
  268. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  269. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  270. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  271. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  272. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  273. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  274. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  275. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  276. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  277. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  278. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  279. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  280. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  281. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  282. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  283. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  284. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  285. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  286. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  287. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  288. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  289. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  290. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  291. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  292. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  293. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  294. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  295. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  296. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  297. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  298. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  299. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  300. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  301. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  302. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  303. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  304. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  305. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  306. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  307. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  308. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  309. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  310. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  311. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  312. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  313. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  314. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  315. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  316. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  317. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  318. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  319. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  320. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  321. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  322. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  323. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  324. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  325. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  326. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  327. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  328. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  329. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  330. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  331. package/dist/src/logging/__tests__/logger.test.js +0 -70
  332. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  333. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  334. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  335. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  336. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  337. package/dist/src/mcp.d.ts.map +0 -1
  338. package/dist/src/mcp.js.map +0 -1
  339. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  340. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  341. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  342. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  343. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
  344. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
  345. package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
  346. package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
  347. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  348. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  349. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
  350. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  351. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  352. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  353. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
  354. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  355. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  356. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  357. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  358. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  359. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  360. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  361. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  362. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  363. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  364. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  365. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  366. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  367. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  368. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  369. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  370. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  371. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  372. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  373. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  374. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  375. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  376. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  377. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  378. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  379. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  380. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  381. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  382. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  383. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  384. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  385. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  386. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  387. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  388. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  389. package/dist/src/models/__tests__/defaults.test.js +0 -36
  390. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  391. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  392. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  393. package/dist/src/models/__tests__/google.test.js +0 -1145
  394. package/dist/src/models/__tests__/google.test.js.map +0 -1
  395. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  396. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  397. package/dist/src/models/__tests__/model.test.js +0 -921
  398. package/dist/src/models/__tests__/model.test.js.map +0 -1
  399. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  400. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  401. package/dist/src/models/__tests__/streaming.test.js +0 -50
  402. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  403. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  404. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  405. package/dist/src/models/__tests__/test-utils.js +0 -17
  406. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  407. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  408. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  409. package/dist/src/models/__tests__/vercel.test.js +0 -740
  410. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  411. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  412. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  413. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  414. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  415. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  416. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  417. package/dist/src/models/openai/__tests__/errors.test.js +0 -39
  418. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  419. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  420. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  421. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  422. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  423. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  424. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  425. package/dist/src/models/openai/__tests__/responses.test.js +0 -709
  426. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  427. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  428. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  429. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  430. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  431. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  432. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  433. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  434. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  435. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  436. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  437. package/dist/src/multiagent/__tests__/graph.test.js +0 -698
  438. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  439. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  440. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  441. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  442. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  443. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  444. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  445. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  446. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  447. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  448. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  449. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  450. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  451. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  452. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  453. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  454. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  455. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  456. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  457. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  458. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  459. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  460. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  461. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  462. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  463. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  464. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  465. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  466. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  467. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  468. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  469. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  470. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  471. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  472. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  473. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  474. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  475. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  476. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  477. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  478. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  479. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  480. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  481. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  482. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  483. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  484. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  485. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  486. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  487. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  488. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  489. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  490. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  491. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  492. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  493. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  494. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  495. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  496. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  497. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  498. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  499. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  500. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  501. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  502. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  503. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  504. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  505. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  506. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  507. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  508. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  509. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  510. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  511. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  512. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  513. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  514. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  515. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  516. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  517. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  518. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  519. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  520. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  521. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  522. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  523. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  524. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  525. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  526. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  527. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  528. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  529. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  530. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  531. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  532. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  533. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  534. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  535. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  536. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  537. package/dist/src/session/__tests__/validation.test.js +0 -47
  538. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  539. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  540. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  541. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  542. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  543. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  544. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  545. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  546. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  547. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  548. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  549. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  550. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  551. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  552. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  553. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  554. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  555. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  556. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  557. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  558. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  559. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  560. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  561. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
  562. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  563. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  564. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  565. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  566. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  567. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  568. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  569. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  570. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  571. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  572. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  573. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  574. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  575. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  576. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  577. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  578. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  579. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  580. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  581. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  582. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  583. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  584. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  585. package/dist/src/types/__tests__/agent.test.js +0 -476
  586. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  587. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  588. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  589. package/dist/src/types/__tests__/citations.test.js +0 -104
  590. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  591. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  592. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  593. package/dist/src/types/__tests__/json.test.js +0 -298
  594. package/dist/src/types/__tests__/json.test.js.map +0 -1
  595. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  596. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  597. package/dist/src/types/__tests__/media.test.js +0 -478
  598. package/dist/src/types/__tests__/media.test.js.map +0 -1
  599. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  600. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  601. package/dist/src/types/__tests__/messages.test.js +0 -681
  602. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  603. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  604. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  605. package/dist/src/types/__tests__/validation.test.js +0 -30
  606. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  607. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  608. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  609. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
  610. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  611. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  612. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  613. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  614. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  615. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  616. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  617. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  618. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  619. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  620. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  621. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  622. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  623. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  624. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  625. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  626. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  627. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
  628. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
  629. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
  630. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
  631. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  632. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  633. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  634. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  635. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  636. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  637. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  638. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  639. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  640. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  641. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  642. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  643. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  644. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  645. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
  646. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  647. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  648. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  649. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  650. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  651. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  652. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  653. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  654. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  655. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  656. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  657. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  658. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  659. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  660. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  661. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  662. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  663. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  664. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  665. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  666. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  667. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  668. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  669. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  670. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  671. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  672. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  673. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  674. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  675. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  676. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  677. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  678. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  679. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  680. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  681. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  682. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  683. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  684. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  685. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  686. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +0 -1
@@ -1,1043 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { FunctionTool } from '../function-tool.js';
3
- import { Tool, ToolStreamEvent, isValidToolName } from '../tool.js';
4
- import { createMockContext } from '../../__fixtures__/tool-helpers.js';
5
- import { collectGenerator } from '../../__fixtures__/model-test-helpers.js';
6
- describe('isValidToolName', () => {
7
- it.each([
8
- ['simple', true],
9
- ['with_underscore', true],
10
- ['with-hyphen', true],
11
- ['Mixed-Case_123', true],
12
- ['a', true],
13
- ['a'.repeat(64), true],
14
- ])('accepts %s', (name, expected) => {
15
- expect(isValidToolName(name)).toBe(expected);
16
- });
17
- it.each([
18
- ['', 'empty string'],
19
- ['a'.repeat(65), 'over 64 chars'],
20
- ['has space', 'space'],
21
- ['has.dot', 'dot'],
22
- ['has/slash', 'slash'],
23
- ['has:colon', 'colon'],
24
- ['emoji🚀', 'non-ascii'],
25
- ])('rejects %s (%s)', (name) => {
26
- expect(isValidToolName(name)).toBe(false);
27
- });
28
- });
29
- describe('FunctionTool', () => {
30
- describe('properties', () => {
31
- it('has a non-empty toolName', () => {
32
- const tool = new FunctionTool({
33
- name: 'testTool',
34
- description: 'Test description',
35
- inputSchema: { type: 'object' },
36
- callback: () => 'result',
37
- });
38
- expect(tool.name).toBeTruthy();
39
- expect(typeof tool.name).toBe('string');
40
- expect(tool.name.length).toBeGreaterThan(0);
41
- expect(tool.name).toBe('testTool');
42
- });
43
- it('has a non-empty description', () => {
44
- const tool = new FunctionTool({
45
- name: 'testTool',
46
- description: 'Test description',
47
- inputSchema: { type: 'object' },
48
- callback: () => 'result',
49
- });
50
- expect(tool.description).toBeTruthy();
51
- expect(typeof tool.description).toBe('string');
52
- expect(tool.description.length).toBeGreaterThan(0);
53
- expect(tool.description).toBe('Test description');
54
- });
55
- it('has a valid toolSpec', () => {
56
- const inputSchema = {
57
- type: 'object',
58
- properties: {
59
- value: { type: 'string' },
60
- },
61
- };
62
- const tool = new FunctionTool({
63
- name: 'testTool',
64
- description: 'Test description',
65
- inputSchema,
66
- callback: () => 'result',
67
- });
68
- // Verify entire toolSpec object at once
69
- expect(tool.toolSpec).toEqual({
70
- name: 'testTool',
71
- description: 'Test description',
72
- inputSchema,
73
- });
74
- });
75
- it('has matching toolName and toolSpec.name', () => {
76
- const tool = new FunctionTool({
77
- name: 'testTool',
78
- description: 'Test description',
79
- inputSchema: { type: 'object' },
80
- callback: () => 'result',
81
- });
82
- expect(tool.name).toBe(tool.toolSpec.name);
83
- });
84
- it('has matching description and toolSpec.description', () => {
85
- const tool = new FunctionTool({
86
- name: 'testTool',
87
- description: 'Test description',
88
- inputSchema: { type: 'object' },
89
- callback: () => 'result',
90
- });
91
- expect(tool.description).toBe(tool.toolSpec.description);
92
- });
93
- });
94
- describe('stream method', () => {
95
- describe('with synchronous callback', () => {
96
- it('wraps return value in ToolResult', async () => {
97
- const tool = new FunctionTool({
98
- name: 'syncTool',
99
- description: 'Returns synchronous value',
100
- inputSchema: { type: 'object', properties: { value: { type: 'number' } } },
101
- callback: (input) => {
102
- const { value } = input;
103
- return value * 2;
104
- },
105
- });
106
- const toolUse = {
107
- name: 'syncTool',
108
- toolUseId: 'test-sync-1',
109
- input: { value: 5 },
110
- };
111
- const context = createMockContext(toolUse);
112
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
113
- // No stream events for sync callback
114
- expect(streamEvents.length).toBe(0);
115
- // Verify entire result with actual calculated value
116
- expect(result).toEqual({
117
- type: 'toolResultBlock',
118
- toolUseId: 'test-sync-1',
119
- status: 'success',
120
- content: [
121
- expect.objectContaining({
122
- type: 'textBlock',
123
- text: '10', // 5 * 2 = 10 (converted to string)
124
- }),
125
- ],
126
- });
127
- });
128
- it('handles string return values', async () => {
129
- const tool = new FunctionTool({
130
- name: 'stringTool',
131
- description: 'Returns string',
132
- inputSchema: { type: 'object' },
133
- callback: () => 'Hello, World!',
134
- });
135
- const toolUse = {
136
- name: 'stringTool',
137
- toolUseId: 'test-string',
138
- input: {},
139
- };
140
- const context = createMockContext(toolUse);
141
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
142
- expect(streamEvents.length).toBe(0);
143
- // Verify entire result object
144
- expect(result).toEqual({
145
- type: 'toolResultBlock',
146
- toolUseId: 'test-string',
147
- status: 'success',
148
- content: [
149
- expect.objectContaining({
150
- type: 'textBlock',
151
- text: 'Hello, World!',
152
- }),
153
- ],
154
- });
155
- });
156
- it('handles object return values', async () => {
157
- const tool = new FunctionTool({
158
- name: 'objectTool',
159
- description: 'Returns object',
160
- inputSchema: { type: 'object' },
161
- callback: () => ({ key: 'value', count: 42 }),
162
- });
163
- const toolUse = {
164
- name: 'objectTool',
165
- toolUseId: 'test-object',
166
- input: {},
167
- };
168
- const context = createMockContext(toolUse);
169
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
170
- expect(streamEvents.length).toBe(0);
171
- // Verify entire result object
172
- expect(result).toEqual({
173
- type: 'toolResultBlock',
174
- toolUseId: 'test-object',
175
- status: 'success',
176
- content: [
177
- expect.objectContaining({
178
- type: 'jsonBlock',
179
- json: { key: 'value', count: 42 },
180
- }),
181
- ],
182
- });
183
- });
184
- it('treats objects with extra keys beyond a content block key as JSON', async () => {
185
- const tool = new FunctionTool({
186
- name: 'extraKeyTool',
187
- description: 'Returns object with text key plus extra keys',
188
- inputSchema: { type: 'object' },
189
- callback: () => ({ text: 'abc', extra: '123' }),
190
- });
191
- const toolUse = { name: 'extraKeyTool', toolUseId: 'test-extra', input: {} };
192
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
193
- expect(result).toEqual({
194
- type: 'toolResultBlock',
195
- toolUseId: 'test-extra',
196
- status: 'success',
197
- content: [
198
- expect.objectContaining({
199
- type: 'jsonBlock',
200
- json: { text: 'abc', extra: '123' },
201
- }),
202
- ],
203
- });
204
- });
205
- it('passes input to callback exactly as provided to stream', async () => {
206
- const inputData = { name: 'test', value: 42, nested: { key: 'value' } };
207
- let receivedInput;
208
- const tool = new FunctionTool({
209
- name: 'inputTool',
210
- description: 'Captures input',
211
- inputSchema: { type: 'object' },
212
- callback: (input) => {
213
- receivedInput = input;
214
- return 'success';
215
- },
216
- });
217
- const toolUse = {
218
- name: 'inputTool',
219
- toolUseId: 'test-input',
220
- input: inputData,
221
- };
222
- await collectGenerator(tool.stream(createMockContext(toolUse)));
223
- expect(receivedInput).toEqual(inputData);
224
- });
225
- it('handles null return values correctly', async () => {
226
- const tool = new FunctionTool({
227
- name: 'nullTool',
228
- description: 'Returns null',
229
- inputSchema: { type: 'object' },
230
- callback: () => null,
231
- });
232
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'nullTool', toolUseId: 'test-null', input: {} })));
233
- expect(result).toEqual({
234
- type: 'toolResultBlock',
235
- toolUseId: 'test-null',
236
- status: 'success',
237
- content: [
238
- expect.objectContaining({
239
- type: 'textBlock',
240
- text: '<null>',
241
- }),
242
- ],
243
- });
244
- });
245
- it('handles undefined return values correctly', async () => {
246
- const tool = new FunctionTool({
247
- name: 'undefinedTool',
248
- description: 'Returns undefined',
249
- inputSchema: { type: 'object' },
250
- // @ts-expect-error we're intentionally testing a type violation
251
- callback: () => undefined,
252
- });
253
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'undefinedTool', toolUseId: 'test-undefined', input: {} })));
254
- expect(result).toEqual({
255
- type: 'toolResultBlock',
256
- toolUseId: 'test-undefined',
257
- status: 'success',
258
- content: [
259
- expect.objectContaining({
260
- type: 'textBlock',
261
- text: '<undefined>',
262
- }),
263
- ],
264
- });
265
- });
266
- it('handles boolean return values as text content', async () => {
267
- const trueTool = new FunctionTool({
268
- name: 'trueTool',
269
- description: 'Returns true',
270
- inputSchema: { type: 'object' },
271
- callback: () => true,
272
- });
273
- const { result: trueResult } = await collectGenerator(trueTool.stream(createMockContext({ name: 'trueTool', toolUseId: 'test-true', input: {} })));
274
- expect(trueResult).toEqual({
275
- type: 'toolResultBlock',
276
- toolUseId: 'test-true',
277
- status: 'success',
278
- content: [
279
- expect.objectContaining({
280
- type: 'textBlock',
281
- text: 'true',
282
- }),
283
- ],
284
- });
285
- const falseTool = new FunctionTool({
286
- name: 'falseTool',
287
- description: 'Returns false',
288
- inputSchema: { type: 'object' },
289
- callback: () => false,
290
- });
291
- const { result: falseResult } = await collectGenerator(falseTool.stream(createMockContext({ name: 'falseTool', toolUseId: 'test-false', input: {} })));
292
- expect(falseResult).toEqual({
293
- type: 'toolResultBlock',
294
- toolUseId: 'test-false',
295
- status: 'success',
296
- content: [
297
- expect.objectContaining({
298
- type: 'textBlock',
299
- text: 'false',
300
- }),
301
- ],
302
- });
303
- });
304
- it('handles number return values as text content', async () => {
305
- const tool = new FunctionTool({
306
- name: 'numberTool',
307
- description: 'Returns number',
308
- inputSchema: { type: 'object' },
309
- callback: () => 42,
310
- });
311
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'numberTool', toolUseId: 'test-number', input: {} })));
312
- expect(result).toEqual({
313
- type: 'toolResultBlock',
314
- toolUseId: 'test-number',
315
- status: 'success',
316
- content: [
317
- expect.objectContaining({
318
- type: 'textBlock',
319
- text: '42',
320
- }),
321
- ],
322
- });
323
- // Test negative number
324
- const negativeTool = new FunctionTool({
325
- name: 'negativeTool',
326
- description: 'Returns negative number',
327
- inputSchema: { type: 'object' },
328
- callback: () => -3.14,
329
- });
330
- const { result: negativeResult } = await collectGenerator(negativeTool.stream(createMockContext({ name: 'negativeTool', toolUseId: 'test-negative', input: {} })));
331
- expect(negativeResult).toEqual({
332
- type: 'toolResultBlock',
333
- toolUseId: 'test-negative',
334
- status: 'success',
335
- content: [
336
- expect.objectContaining({
337
- type: 'textBlock',
338
- text: '-3.14',
339
- }),
340
- ],
341
- });
342
- });
343
- it('handles array return values as wrapped JSON content', async () => {
344
- const tool = new FunctionTool({
345
- name: 'arrayTool',
346
- description: 'Returns array',
347
- inputSchema: { type: 'object' },
348
- callback: () => [1, 2, 3, { key: 'value' }],
349
- });
350
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'arrayTool', toolUseId: 'test-array', input: {} })));
351
- expect(result).toEqual({
352
- type: 'toolResultBlock',
353
- toolUseId: 'test-array',
354
- status: 'success',
355
- content: [
356
- expect.objectContaining({
357
- type: 'jsonBlock',
358
- json: { $value: [1, 2, 3, { key: 'value' }] },
359
- }),
360
- ],
361
- });
362
- });
363
- it('deep copies objects to prevent mutation', async () => {
364
- const original = { nested: { value: 'original' } };
365
- const tool = new FunctionTool({
366
- name: 'copyTool',
367
- description: 'Returns object',
368
- inputSchema: { type: 'object' },
369
- callback: () => original,
370
- });
371
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'copyTool', toolUseId: 'test-copy', input: {} })));
372
- // Mutate the original object
373
- original.nested.value = 'mutated';
374
- // Verify the result still has the original value
375
- expect(result).toEqual({
376
- type: 'toolResultBlock',
377
- toolUseId: 'test-copy',
378
- status: 'success',
379
- content: [
380
- expect.objectContaining({
381
- type: 'jsonBlock',
382
- json: { nested: { value: 'original' } },
383
- }),
384
- ],
385
- });
386
- });
387
- it('deep copies arrays to prevent mutation', async () => {
388
- const original = [{ value: 'original' }];
389
- const tool = new FunctionTool({
390
- name: 'arrayCopyTool',
391
- description: 'Returns array',
392
- inputSchema: { type: 'object' },
393
- callback: () => original,
394
- });
395
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'arrayCopyTool', toolUseId: 'test-array-copy', input: {} })));
396
- // Mutate the original array
397
- original[0].value = 'mutated';
398
- // Verify the result still has the original value (wrapped in $value)
399
- expect(result).toEqual({
400
- type: 'toolResultBlock',
401
- toolUseId: 'test-array-copy',
402
- status: 'success',
403
- content: [
404
- expect.objectContaining({
405
- type: 'jsonBlock',
406
- json: { $value: [{ value: 'original' }] },
407
- }),
408
- ],
409
- });
410
- });
411
- });
412
- describe('with promise callback', () => {
413
- it('wraps resolved value in ToolResult', async () => {
414
- const tool = new FunctionTool({
415
- name: 'promiseTool',
416
- description: 'Returns promise',
417
- inputSchema: { type: 'object', properties: { value: { type: 'number' } } },
418
- callback: async (input) => {
419
- const { value } = input;
420
- return value + 10;
421
- },
422
- });
423
- const toolUse = {
424
- name: 'promiseTool',
425
- toolUseId: 'test-promise-1',
426
- input: { value: 5 },
427
- };
428
- const context = createMockContext(toolUse);
429
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
430
- expect(streamEvents.length).toBe(0);
431
- expect(result.toolUseId).toBe('test-promise-1');
432
- expect(result.status).toBe('success');
433
- expect(result.status).toBe('success');
434
- });
435
- it('can access ToolContext in promise', async () => {
436
- const tool = new FunctionTool({
437
- name: 'contextTool',
438
- description: 'Uses context',
439
- inputSchema: { type: 'object' },
440
- callback: async (_input, context) => {
441
- return context.agent.appState.getAll();
442
- },
443
- });
444
- const toolUse = {
445
- name: 'contextTool',
446
- toolUseId: 'test-context',
447
- input: {},
448
- };
449
- const context = createMockContext(toolUse, { userId: 'user-123' });
450
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
451
- expect(streamEvents.length).toBe(0);
452
- expect(result.status).toBe('success');
453
- });
454
- });
455
- describe('with async generator callback', () => {
456
- it('yields ToolStreamEvents then final ToolResult', async () => {
457
- const tool = new FunctionTool({
458
- name: 'generatorTool',
459
- description: 'Streams progress',
460
- inputSchema: { type: 'object' },
461
- callback: async function* () {
462
- yield 'Starting...';
463
- yield 'Processing...';
464
- yield 'Complete!';
465
- return 'Final result';
466
- },
467
- });
468
- const toolUse = {
469
- name: 'generatorTool',
470
- toolUseId: 'test-gen-1',
471
- input: {},
472
- };
473
- const context = createMockContext(toolUse);
474
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
475
- // Should have 3 stream events
476
- expect(streamEvents.length).toBe(3);
477
- // Verify all stream events are as expected
478
- expect(streamEvents).toEqual([
479
- { type: 'toolStreamEvent', data: 'Starting...' },
480
- { type: 'toolStreamEvent', data: 'Processing...' },
481
- { type: 'toolStreamEvent', data: 'Complete!' },
482
- ]);
483
- // Verify entire result object
484
- expect(result).toEqual({
485
- type: 'toolResultBlock',
486
- toolUseId: 'test-gen-1',
487
- status: 'success',
488
- content: [
489
- expect.objectContaining({
490
- type: 'textBlock',
491
- text: 'Final result',
492
- }),
493
- ],
494
- });
495
- });
496
- it('can yield objects as ToolStreamEvents', async () => {
497
- const tool = new FunctionTool({
498
- name: 'objectGenTool',
499
- description: 'Streams objects',
500
- inputSchema: { type: 'object' },
501
- callback: async function* () {
502
- yield { progress: 0.25, message: 'Quarter done' };
503
- yield { progress: 0.5, message: 'Halfway done' };
504
- yield { progress: 1.0, message: 'Complete' };
505
- return 'Done';
506
- },
507
- });
508
- const toolUse = {
509
- name: 'objectGenTool',
510
- toolUseId: 'test-obj-gen',
511
- input: {},
512
- };
513
- const context = createMockContext(toolUse);
514
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
515
- expect(streamEvents.length).toBe(3);
516
- // Verify all stream events have data
517
- for (const event of streamEvents) {
518
- expect(event.type).toBe('toolStreamEvent');
519
- expect(event.data).toBeDefined();
520
- }
521
- // Verify final result
522
- expect(result.status).toBe('success');
523
- });
524
- });
525
- describe('error handling', () => {
526
- it('catches synchronous errors', async () => {
527
- const tool = new FunctionTool({
528
- name: 'errorTool',
529
- description: 'Throws error',
530
- inputSchema: { type: 'object' },
531
- callback: () => {
532
- throw new Error('Something went wrong');
533
- },
534
- });
535
- const toolUse = {
536
- name: 'errorTool',
537
- toolUseId: 'test-error-1',
538
- input: {},
539
- };
540
- const context = createMockContext(toolUse);
541
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
542
- expect(streamEvents.length).toBe(0);
543
- expect(result.toolUseId).toBe('test-error-1');
544
- expect(result.status).toBe('error');
545
- expect(result.content.length).toBeGreaterThan(0);
546
- expect(result.content[0]?.type).toBe('textBlock');
547
- });
548
- it('catches promise rejections', async () => {
549
- const tool = new FunctionTool({
550
- name: 'rejectTool',
551
- description: 'Rejects promise',
552
- inputSchema: { type: 'object' },
553
- callback: async () => {
554
- throw new Error('Promise rejected');
555
- },
556
- });
557
- const toolUse = {
558
- name: 'rejectTool',
559
- toolUseId: 'test-error-2',
560
- input: {},
561
- };
562
- const context = createMockContext(toolUse);
563
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
564
- expect(streamEvents.length).toBe(0);
565
- expect(result.status).toBe('error');
566
- });
567
- it('captures Error object in ToolResult when callback throws Error', async () => {
568
- const testError = new Error('Test error message');
569
- const tool = new FunctionTool({
570
- name: 'errorObjectTool',
571
- description: 'Throws Error object',
572
- inputSchema: { type: 'object' },
573
- callback: () => {
574
- throw testError;
575
- },
576
- });
577
- const toolUse = {
578
- name: 'errorObjectTool',
579
- toolUseId: 'test-error-capture',
580
- input: {},
581
- };
582
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
583
- expect(result).toEqual({
584
- type: 'toolResultBlock',
585
- toolUseId: 'test-error-capture',
586
- status: 'error',
587
- content: [
588
- expect.objectContaining({
589
- type: 'textBlock',
590
- text: 'Error: Test error message',
591
- }),
592
- ],
593
- error: testError,
594
- });
595
- });
596
- it('wraps non-Error thrown values into Error object', async () => {
597
- const tool = new FunctionTool({
598
- name: 'stringThrowTool',
599
- description: 'Throws string',
600
- inputSchema: { type: 'object' },
601
- callback: () => {
602
- throw 'string error';
603
- },
604
- });
605
- const toolUse = {
606
- name: 'stringThrowTool',
607
- toolUseId: 'test-string-wrap',
608
- input: {},
609
- };
610
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
611
- expect(result).toEqual({
612
- type: 'toolResultBlock',
613
- toolUseId: 'test-string-wrap',
614
- status: 'error',
615
- content: [
616
- expect.objectContaining({
617
- type: 'textBlock',
618
- text: 'Error: string error',
619
- }),
620
- ],
621
- error: expect.any(Error),
622
- });
623
- expect(result.error?.message).toBe('string error');
624
- });
625
- it('preserves custom Error subclass instances', async () => {
626
- class CustomError extends Error {
627
- code;
628
- constructor(message, code) {
629
- super(message);
630
- this.code = code;
631
- this.name = 'CustomError';
632
- }
633
- }
634
- const customError = new CustomError('Custom error message', 'ERR_001');
635
- const tool = new FunctionTool({
636
- name: 'customErrorTool',
637
- description: 'Throws custom error',
638
- inputSchema: { type: 'object' },
639
- callback: () => {
640
- throw customError;
641
- },
642
- });
643
- const toolUse = {
644
- name: 'customErrorTool',
645
- toolUseId: 'test-custom-error',
646
- input: {},
647
- };
648
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
649
- expect(result).toEqual({
650
- type: 'toolResultBlock',
651
- toolUseId: 'test-custom-error',
652
- status: 'error',
653
- content: [
654
- expect.objectContaining({
655
- type: 'textBlock',
656
- text: 'Error: Custom error message',
657
- }),
658
- ],
659
- error: customError,
660
- });
661
- expect(result.error.code).toBe('ERR_001');
662
- });
663
- it('preserves error stack traces', async () => {
664
- const tool = new FunctionTool({
665
- name: 'stackTraceTool',
666
- description: 'Throws error with stack trace',
667
- inputSchema: { type: 'object' },
668
- callback: () => {
669
- throw new Error('Error with stack');
670
- },
671
- });
672
- const toolUse = {
673
- name: 'stackTraceTool',
674
- toolUseId: 'test-stack-trace',
675
- input: {},
676
- };
677
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
678
- expect(result).toEqual({
679
- type: 'toolResultBlock',
680
- toolUseId: 'test-stack-trace',
681
- status: 'error',
682
- content: [
683
- expect.objectContaining({
684
- type: 'textBlock',
685
- text: 'Error: Error with stack',
686
- }),
687
- ],
688
- error: expect.any(Error),
689
- });
690
- expect(result.error?.stack).toBeDefined();
691
- expect(result.error?.stack).toContain('Error: Error with stack');
692
- });
693
- it('captures errors thrown in async generator callbacks', async () => {
694
- const testError = new Error('Async generator error');
695
- const tool = new FunctionTool({
696
- name: 'asyncGenErrorTool',
697
- description: 'Async generator that throws',
698
- inputSchema: { type: 'object' },
699
- callback: async function* () {
700
- yield 'Starting...';
701
- throw testError;
702
- },
703
- });
704
- const toolUse = {
705
- name: 'asyncGenErrorTool',
706
- toolUseId: 'test-async-gen-error',
707
- input: {},
708
- };
709
- const context = tool.stream(createMockContext(toolUse));
710
- const { items: streamEvents, result } = await collectGenerator(context);
711
- // Should have one stream event before the error
712
- expect(streamEvents.length).toBe(1);
713
- expect(streamEvents[0]).toEqual({ type: 'toolStreamEvent', data: 'Starting...' });
714
- // Final result should have error object
715
- expect(result).toEqual({
716
- type: 'toolResultBlock',
717
- toolUseId: 'test-async-gen-error',
718
- status: 'error',
719
- content: [
720
- expect.objectContaining({
721
- type: 'textBlock',
722
- text: 'Error: Async generator error',
723
- }),
724
- ],
725
- error: testError,
726
- });
727
- });
728
- it('catches errors in async generators', async () => {
729
- const tool = new FunctionTool({
730
- name: 'genErrorTool',
731
- description: 'Generator throws',
732
- inputSchema: { type: 'object' },
733
- callback: async function* () {
734
- yield 'Starting...';
735
- throw new Error('Generator error');
736
- },
737
- });
738
- const toolUse = {
739
- name: 'genErrorTool',
740
- toolUseId: 'test-error-3',
741
- input: {},
742
- };
743
- const context = createMockContext(toolUse);
744
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
745
- // Should have one stream event before the error
746
- expect(streamEvents.length).toBe(1);
747
- expect(streamEvents[0]?.type).toBe('toolStreamEvent');
748
- // Final result should be error
749
- expect(result.status).toBe('error');
750
- });
751
- it('handles non-Error thrown values', async () => {
752
- const tool = new FunctionTool({
753
- name: 'stringErrorTool',
754
- description: 'Throws string',
755
- inputSchema: { type: 'object' },
756
- callback: () => {
757
- throw 'String error';
758
- },
759
- });
760
- const toolUse = {
761
- name: 'stringErrorTool',
762
- toolUseId: 'test-error-4',
763
- input: {},
764
- };
765
- const context = createMockContext(toolUse);
766
- const { items: streamEvents, result } = await collectGenerator(tool.stream(context));
767
- expect(streamEvents.length).toBe(0);
768
- expect(result.status).toBe('error');
769
- });
770
- it('returns error for circular references', async () => {
771
- const tool = new FunctionTool({
772
- name: 'circularTool',
773
- description: 'Returns circular object',
774
- inputSchema: { type: 'object' },
775
- callback: () => {
776
- // Create circular reference
777
- const obj = { a: 1 };
778
- obj.self = obj;
779
- return obj;
780
- },
781
- });
782
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'circularTool', toolUseId: 'test-circular', input: {} })));
783
- expect(result).toEqual({
784
- type: 'toolResultBlock',
785
- toolUseId: 'test-circular',
786
- status: 'error',
787
- error: expect.any(Error),
788
- content: [
789
- expect.objectContaining({
790
- type: 'textBlock',
791
- text: expect.stringContaining('Error:'),
792
- }),
793
- ],
794
- });
795
- });
796
- it('silently drops non-serializable values (functions)', async () => {
797
- const tool = new FunctionTool({
798
- name: 'functionTool',
799
- description: 'Returns object with function',
800
- inputSchema: { type: 'object' },
801
- callback: () => {
802
- return { fn: () => { } };
803
- },
804
- });
805
- const { result } = await collectGenerator(tool.stream(createMockContext({ name: 'functionTool', toolUseId: 'test-function', input: {} })));
806
- // Functions are silently dropped during JSON serialization
807
- expect(result).toEqual({
808
- type: 'toolResultBlock',
809
- toolUseId: 'test-function',
810
- status: 'success',
811
- content: [
812
- expect.objectContaining({
813
- type: 'jsonBlock',
814
- json: {},
815
- }),
816
- ],
817
- });
818
- });
819
- });
820
- });
821
- });
822
- describe('Tool interface backwards compatibility', () => {
823
- it('maintains stable interface signature', () => {
824
- const tool = new FunctionTool({
825
- name: 'testTool',
826
- description: 'Test description',
827
- inputSchema: { type: 'object' },
828
- callback: () => 'result',
829
- });
830
- // Verify interface properties exist
831
- expect(tool).toHaveProperty('name');
832
- expect(tool).toHaveProperty('description');
833
- expect(tool).toHaveProperty('toolSpec');
834
- expect(tool).toHaveProperty('stream');
835
- // Verify stream is a function
836
- expect(typeof tool.stream).toBe('function');
837
- });
838
- it('stream method accepts correct parameter types', async () => {
839
- const tool = new FunctionTool({
840
- name: 'testTool',
841
- description: 'Test description',
842
- inputSchema: { type: 'object' },
843
- callback: (input) => input,
844
- });
845
- const toolUse = {
846
- name: 'testTool',
847
- toolUseId: 'test-types',
848
- input: { value: 123 },
849
- };
850
- const context = createMockContext(toolUse);
851
- // This should compile and execute without type errors
852
- const stream = tool.stream({ ...context, toolUse });
853
- expect(stream).toBeDefined();
854
- expect(Symbol.asyncIterator in stream).toBe(true);
855
- // Consume the stream with helper
856
- const { result } = await collectGenerator(stream);
857
- expect(result).toBeDefined();
858
- expect(result.status).toBe('success');
859
- });
860
- });
861
- describe('ToolStreamEvent', () => {
862
- describe('instantiation', () => {
863
- it('creates instance with data', () => {
864
- const event = new ToolStreamEvent({
865
- data: 'test data',
866
- });
867
- expect(event).toEqual({
868
- type: 'toolStreamEvent',
869
- data: 'test data',
870
- });
871
- });
872
- it('creates instance without data', () => {
873
- const event = new ToolStreamEvent({});
874
- expect(event).toEqual({
875
- type: 'toolStreamEvent',
876
- });
877
- });
878
- it('creates instance with structured data', () => {
879
- const structuredData = {
880
- progress: 50,
881
- message: 'halfway complete',
882
- };
883
- const event = new ToolStreamEvent({
884
- data: structuredData,
885
- });
886
- expect(event).toEqual({
887
- type: 'toolStreamEvent',
888
- data: structuredData,
889
- });
890
- });
891
- });
892
- });
893
- describe('instanceof checks', () => {
894
- describe('FunctionTool', () => {
895
- it('passes instanceof Tool check', () => {
896
- const tool = new FunctionTool({
897
- name: 'testTool',
898
- description: 'Test description',
899
- inputSchema: { type: 'object' },
900
- callback: () => 'result',
901
- });
902
- expect(tool instanceof Tool).toBe(true);
903
- });
904
- it('can be used as type guard', () => {
905
- const tool = new FunctionTool({
906
- name: 'testTool',
907
- description: 'Test description',
908
- inputSchema: { type: 'object' },
909
- callback: () => 'result',
910
- });
911
- // Type guard function
912
- function isTool(value) {
913
- return value instanceof Tool;
914
- }
915
- expect(isTool(tool)).toBe(true);
916
- expect(isTool({})).toBe(false);
917
- expect(isTool(null)).toBe(false);
918
- });
919
- });
920
- });
921
- describe('optional inputSchema', () => {
922
- describe('when inputSchema is undefined', () => {
923
- it('creates tool with default empty object schema', () => {
924
- const tool = new FunctionTool({
925
- name: 'noInputTool',
926
- description: 'Tool that takes no input',
927
- callback: () => 'result',
928
- });
929
- expect(tool.name).toBe('noInputTool');
930
- expect(tool.description).toBe('Tool that takes no input');
931
- expect(tool.toolSpec).toEqual({
932
- name: 'noInputTool',
933
- description: 'Tool that takes no input',
934
- inputSchema: {
935
- type: 'object',
936
- properties: {},
937
- additionalProperties: false,
938
- },
939
- });
940
- });
941
- it('executes successfully with empty input', async () => {
942
- const tool = new FunctionTool({
943
- name: 'getStatus',
944
- description: 'Gets system status',
945
- callback: () => ({ status: 'operational' }),
946
- });
947
- const toolUse = {
948
- name: 'getStatus',
949
- toolUseId: 'test-no-input-1',
950
- input: {},
951
- };
952
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
953
- expect(result).toEqual({
954
- type: 'toolResultBlock',
955
- toolUseId: 'test-no-input-1',
956
- status: 'success',
957
- content: [
958
- expect.objectContaining({
959
- type: 'jsonBlock',
960
- json: { status: 'operational' },
961
- }),
962
- ],
963
- });
964
- });
965
- it('callback receives empty object when no schema provided', async () => {
966
- let receivedInput;
967
- const tool = new FunctionTool({
968
- name: 'captureInput',
969
- description: 'Captures the input',
970
- callback: (input) => {
971
- receivedInput = input;
972
- return 'captured';
973
- },
974
- });
975
- const toolUse = {
976
- name: 'captureInput',
977
- toolUseId: 'test-input-capture',
978
- input: {},
979
- };
980
- await collectGenerator(tool.stream(createMockContext(toolUse)));
981
- expect(receivedInput).toEqual({});
982
- });
983
- it('works with async callback', async () => {
984
- const tool = new FunctionTool({
985
- name: 'asyncNoInput',
986
- description: 'Async tool with no input',
987
- callback: async () => {
988
- return 'async result';
989
- },
990
- });
991
- const toolUse = {
992
- name: 'asyncNoInput',
993
- toolUseId: 'test-async-no-input',
994
- input: {},
995
- };
996
- const { result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
997
- expect(result).toEqual({
998
- type: 'toolResultBlock',
999
- toolUseId: 'test-async-no-input',
1000
- status: 'success',
1001
- content: [
1002
- expect.objectContaining({
1003
- type: 'textBlock',
1004
- text: 'async result',
1005
- }),
1006
- ],
1007
- });
1008
- });
1009
- it('works with async generator callback', async () => {
1010
- const tool = new FunctionTool({
1011
- name: 'streamNoInput',
1012
- description: 'Streaming tool with no input',
1013
- callback: async function* () {
1014
- yield 'Starting...';
1015
- yield 'Processing...';
1016
- return 'Complete!';
1017
- },
1018
- });
1019
- const toolUse = {
1020
- name: 'streamNoInput',
1021
- toolUseId: 'test-stream-no-input',
1022
- input: {},
1023
- };
1024
- const { items: streamEvents, result } = await collectGenerator(tool.stream(createMockContext(toolUse)));
1025
- expect(streamEvents).toEqual([
1026
- { type: 'toolStreamEvent', data: 'Starting...' },
1027
- { type: 'toolStreamEvent', data: 'Processing...' },
1028
- ]);
1029
- expect(result).toEqual({
1030
- type: 'toolResultBlock',
1031
- toolUseId: 'test-stream-no-input',
1032
- status: 'success',
1033
- content: [
1034
- expect.objectContaining({
1035
- type: 'textBlock',
1036
- text: 'Complete!',
1037
- }),
1038
- ],
1039
- });
1040
- });
1041
- });
1042
- });
1043
- //# sourceMappingURL=tool.test.js.map