@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,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