@strands-agents/sdk 0.5.0 → 0.7.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 (486) hide show
  1. package/README.md +64 -0
  2. package/dist/src/__fixtures__/agent-helpers.d.ts +37 -4
  3. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  4. package/dist/src/__fixtures__/agent-helpers.js +31 -4
  5. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  6. package/dist/src/__fixtures__/metrics-helpers.d.ts +55 -0
  7. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
  8. package/dist/src/__fixtures__/metrics-helpers.js +57 -0
  9. package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
  10. package/dist/src/__fixtures__/mock-message-model.d.ts +8 -4
  11. package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
  12. package/dist/src/__fixtures__/mock-message-model.js +25 -7
  13. package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
  14. package/dist/src/__fixtures__/mock-meter.d.ts +32 -0
  15. package/dist/src/__fixtures__/mock-meter.d.ts.map +1 -0
  16. package/dist/src/__fixtures__/mock-meter.js +47 -0
  17. package/dist/src/__fixtures__/mock-meter.js.map +1 -0
  18. package/dist/src/__fixtures__/mock-plugin.d.ts +13 -0
  19. package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -0
  20. package/dist/src/__fixtures__/{mock-hook-provider.js → mock-plugin.js} +8 -5
  21. package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
  22. package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
  23. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
  24. package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
  25. package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
  26. package/dist/src/__fixtures__/slim-types.d.ts +2 -1
  27. package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
  28. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  29. package/dist/src/__fixtures__/tool-helpers.js +5 -2
  30. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  31. package/dist/src/__tests__/index.test.js +21 -0
  32. package/dist/src/__tests__/index.test.js.map +1 -1
  33. package/dist/src/__tests__/mcp.test.js +45 -15
  34. package/dist/src/__tests__/mcp.test.js.map +1 -1
  35. package/dist/src/__tests__/mime.test.d.ts +2 -0
  36. package/dist/src/__tests__/mime.test.d.ts.map +1 -0
  37. package/dist/src/__tests__/mime.test.js +83 -0
  38. package/dist/src/__tests__/mime.test.js.map +1 -0
  39. package/dist/src/__tests__/state-store.test.d.ts +2 -0
  40. package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
  41. package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
  42. package/dist/src/__tests__/state-store.test.js.map +1 -0
  43. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
  44. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
  45. package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
  46. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
  47. package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
  48. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
  49. package/dist/src/a2a/__tests__/adapters.test.js +151 -0
  50. package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
  51. package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
  52. package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
  53. package/dist/src/a2a/__tests__/executor.test.js +196 -0
  54. package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
  55. package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
  56. package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
  57. package/dist/src/a2a/__tests__/server.test.js +51 -0
  58. package/dist/src/a2a/__tests__/server.test.js.map +1 -0
  59. package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
  60. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
  61. package/dist/src/a2a/__tests__/server.test.node.js +110 -0
  62. package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
  63. package/dist/src/a2a/a2a-agent.d.ts +132 -0
  64. package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
  65. package/dist/src/a2a/a2a-agent.js +255 -0
  66. package/dist/src/a2a/a2a-agent.js.map +1 -0
  67. package/dist/src/a2a/adapters.d.ts +27 -0
  68. package/dist/src/a2a/adapters.d.ts.map +1 -0
  69. package/dist/src/a2a/adapters.js +175 -0
  70. package/dist/src/a2a/adapters.js.map +1 -0
  71. package/dist/src/a2a/events.d.ts +42 -0
  72. package/dist/src/a2a/events.d.ts.map +1 -0
  73. package/dist/src/a2a/events.js +35 -0
  74. package/dist/src/a2a/events.js.map +1 -0
  75. package/dist/src/a2a/executor.d.ts +57 -0
  76. package/dist/src/a2a/executor.d.ts.map +1 -0
  77. package/dist/src/a2a/executor.js +130 -0
  78. package/dist/src/a2a/executor.js.map +1 -0
  79. package/dist/src/a2a/express-server.d.ts +67 -0
  80. package/dist/src/a2a/express-server.d.ts.map +1 -0
  81. package/dist/src/a2a/express-server.js +95 -0
  82. package/dist/src/a2a/express-server.js.map +1 -0
  83. package/dist/src/a2a/index.d.ts +16 -0
  84. package/dist/src/a2a/index.d.ts.map +1 -0
  85. package/dist/src/a2a/index.js +16 -0
  86. package/dist/src/a2a/index.js.map +1 -0
  87. package/dist/src/a2a/logging.d.ts +8 -0
  88. package/dist/src/a2a/logging.d.ts.map +1 -0
  89. package/dist/src/a2a/logging.js +15 -0
  90. package/dist/src/a2a/logging.js.map +1 -0
  91. package/dist/src/a2a/server.d.ts +67 -0
  92. package/dist/src/a2a/server.d.ts.map +1 -0
  93. package/dist/src/a2a/server.js +67 -0
  94. package/dist/src/a2a/server.js.map +1 -0
  95. package/dist/src/agent/__tests__/agent.hook.test.js +87 -51
  96. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  97. package/dist/src/agent/__tests__/agent.test.js +176 -101
  98. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  99. package/dist/src/agent/__tests__/agent.tracer.test.js +10 -10
  100. package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -1
  101. package/dist/src/agent/__tests__/snapshot.test.js +11 -11
  102. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  103. package/dist/src/agent/agent.d.ts +71 -58
  104. package/dist/src/agent/agent.d.ts.map +1 -1
  105. package/dist/src/agent/agent.js +177 -93
  106. package/dist/src/agent/agent.js.map +1 -1
  107. package/dist/src/agent/snapshot.d.ts.map +1 -1
  108. package/dist/src/agent/snapshot.js +3 -2
  109. package/dist/src/agent/snapshot.js.map +1 -1
  110. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
  111. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
  112. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +100 -0
  113. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
  114. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
  115. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  116. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +84 -21
  117. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  118. package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
  119. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
  120. package/dist/src/conversation-manager/conversation-manager.js +59 -0
  121. package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
  122. package/dist/src/conversation-manager/index.d.ts +1 -0
  123. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  124. package/dist/src/conversation-manager/index.js +1 -0
  125. package/dist/src/conversation-manager/index.js.map +1 -1
  126. package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
  127. package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
  128. package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
  129. package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
  130. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
  131. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  132. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +44 -36
  133. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  134. package/dist/src/errors.d.ts +6 -0
  135. package/dist/src/errors.d.ts.map +1 -1
  136. package/dist/src/errors.js +9 -0
  137. package/dist/src/errors.js.map +1 -1
  138. package/dist/src/hooks/__tests__/events.test.js +2 -0
  139. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  140. package/dist/src/hooks/__tests__/registry.test.js +10 -154
  141. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  142. package/dist/src/hooks/events.d.ts +60 -44
  143. package/dist/src/hooks/events.d.ts.map +1 -1
  144. package/dist/src/hooks/events.js +11 -11
  145. package/dist/src/hooks/events.js.map +1 -1
  146. package/dist/src/hooks/index.d.ts +4 -4
  147. package/dist/src/hooks/index.d.ts.map +1 -1
  148. package/dist/src/hooks/index.js +2 -2
  149. package/dist/src/hooks/registry.d.ts +1 -32
  150. package/dist/src/hooks/registry.d.ts.map +1 -1
  151. package/dist/src/hooks/registry.js +1 -47
  152. package/dist/src/hooks/registry.js.map +1 -1
  153. package/dist/src/hooks/types.d.ts +0 -31
  154. package/dist/src/hooks/types.d.ts.map +1 -1
  155. package/dist/src/index.d.ts +30 -15
  156. package/dist/src/index.d.ts.map +1 -1
  157. package/dist/src/index.js +21 -8
  158. package/dist/src/index.js.map +1 -1
  159. package/dist/src/mcp.d.ts +38 -0
  160. package/dist/src/mcp.d.ts.map +1 -1
  161. package/dist/src/mcp.js +23 -6
  162. package/dist/src/mcp.js.map +1 -1
  163. package/dist/src/mime.d.ts +24 -0
  164. package/dist/src/mime.d.ts.map +1 -0
  165. package/dist/src/mime.js +82 -0
  166. package/dist/src/mime.js.map +1 -0
  167. package/dist/src/models/__tests__/anthropic.test.js +78 -1
  168. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  169. package/dist/src/models/__tests__/bedrock.test.js +2050 -131
  170. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  171. package/dist/src/models/__tests__/gemini.test.js +100 -1
  172. package/dist/src/models/__tests__/gemini.test.js.map +1 -1
  173. package/dist/src/models/__tests__/model.test.js +131 -0
  174. package/dist/src/models/__tests__/model.test.js.map +1 -1
  175. package/dist/src/models/__tests__/openai.test.js +184 -32
  176. package/dist/src/models/__tests__/openai.test.js.map +1 -1
  177. package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
  178. package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
  179. package/dist/src/models/__tests__/streaming.test.js +50 -0
  180. package/dist/src/models/__tests__/streaming.test.js.map +1 -0
  181. package/dist/src/models/anthropic.d.ts.map +1 -1
  182. package/dist/src/models/anthropic.js +6 -7
  183. package/dist/src/models/anthropic.js.map +1 -1
  184. package/dist/src/models/bedrock.d.ts +144 -11
  185. package/dist/src/models/bedrock.d.ts.map +1 -1
  186. package/dist/src/models/bedrock.js +416 -28
  187. package/dist/src/models/bedrock.js.map +1 -1
  188. package/dist/src/models/gemini/adapters.d.ts.map +1 -1
  189. package/dist/src/models/gemini/adapters.js +65 -14
  190. package/dist/src/models/gemini/adapters.js.map +1 -1
  191. package/dist/src/models/model.d.ts +18 -0
  192. package/dist/src/models/model.d.ts.map +1 -1
  193. package/dist/src/models/model.js +57 -11
  194. package/dist/src/models/model.js.map +1 -1
  195. package/dist/src/models/openai.d.ts +15 -0
  196. package/dist/src/models/openai.d.ts.map +1 -1
  197. package/dist/src/models/openai.js +108 -64
  198. package/dist/src/models/openai.js.map +1 -1
  199. package/dist/src/models/streaming.d.ts +88 -2
  200. package/dist/src/models/streaming.d.ts.map +1 -1
  201. package/dist/src/models/streaming.js +26 -0
  202. package/dist/src/models/streaming.js.map +1 -1
  203. package/dist/src/multiagent/__tests__/events.test.js +41 -8
  204. package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
  205. package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
  206. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
  207. package/dist/src/multiagent/__tests__/graph.test.js +453 -0
  208. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
  209. package/dist/src/multiagent/__tests__/nodes.test.js +34 -16
  210. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  211. package/dist/src/multiagent/__tests__/queue.test.js +22 -0
  212. package/dist/src/multiagent/__tests__/queue.test.js.map +1 -1
  213. package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
  214. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
  215. package/dist/src/multiagent/__tests__/swarm.test.js +264 -0
  216. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
  217. package/dist/src/multiagent/edge.d.ts +9 -2
  218. package/dist/src/multiagent/edge.d.ts.map +1 -1
  219. package/dist/src/multiagent/events.d.ts +63 -15
  220. package/dist/src/multiagent/events.d.ts.map +1 -1
  221. package/dist/src/multiagent/events.js +28 -3
  222. package/dist/src/multiagent/events.js.map +1 -1
  223. package/dist/src/multiagent/graph.d.ts +135 -0
  224. package/dist/src/multiagent/graph.d.ts.map +1 -0
  225. package/dist/src/multiagent/graph.js +400 -0
  226. package/dist/src/multiagent/graph.js.map +1 -0
  227. package/dist/src/multiagent/index.d.ts +8 -3
  228. package/dist/src/multiagent/index.d.ts.map +1 -1
  229. package/dist/src/multiagent/index.js +3 -1
  230. package/dist/src/multiagent/index.js.map +1 -1
  231. package/dist/src/multiagent/multiagent.d.ts +41 -0
  232. package/dist/src/multiagent/multiagent.d.ts.map +1 -0
  233. package/dist/src/multiagent/multiagent.js +2 -0
  234. package/dist/src/multiagent/multiagent.js.map +1 -0
  235. package/dist/src/multiagent/nodes.d.ts +24 -25
  236. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  237. package/dist/src/multiagent/nodes.js +42 -15
  238. package/dist/src/multiagent/nodes.js.map +1 -1
  239. package/dist/src/multiagent/plugins.d.ts +70 -0
  240. package/dist/src/multiagent/plugins.d.ts.map +1 -0
  241. package/dist/src/multiagent/plugins.js +70 -0
  242. package/dist/src/multiagent/plugins.js.map +1 -0
  243. package/dist/src/multiagent/queue.d.ts +6 -0
  244. package/dist/src/multiagent/queue.d.ts.map +1 -1
  245. package/dist/src/multiagent/queue.js +13 -0
  246. package/dist/src/multiagent/queue.js.map +1 -1
  247. package/dist/src/multiagent/state.d.ts +4 -2
  248. package/dist/src/multiagent/state.d.ts.map +1 -1
  249. package/dist/src/multiagent/state.js +5 -2
  250. package/dist/src/multiagent/state.js.map +1 -1
  251. package/dist/src/multiagent/swarm.d.ts +112 -0
  252. package/dist/src/multiagent/swarm.d.ts.map +1 -0
  253. package/dist/src/multiagent/swarm.js +256 -0
  254. package/dist/src/multiagent/swarm.js.map +1 -0
  255. package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
  256. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
  257. package/dist/src/plugins/__tests__/plugin.test.js +114 -0
  258. package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
  259. package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
  260. package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
  261. package/dist/src/plugins/__tests__/registry.test.js +147 -0
  262. package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
  263. package/dist/src/plugins/index.d.ts +30 -0
  264. package/dist/src/plugins/index.d.ts.map +1 -0
  265. package/dist/src/plugins/index.js +30 -0
  266. package/dist/src/plugins/index.js.map +1 -0
  267. package/dist/src/plugins/plugin.d.ts +74 -0
  268. package/dist/src/plugins/plugin.d.ts.map +1 -0
  269. package/dist/src/plugins/plugin.js +8 -0
  270. package/dist/src/plugins/plugin.js.map +1 -0
  271. package/dist/src/plugins/registry.d.ts +25 -0
  272. package/dist/src/plugins/registry.d.ts.map +1 -0
  273. package/dist/src/plugins/registry.js +41 -0
  274. package/dist/src/plugins/registry.js.map +1 -0
  275. package/dist/src/registry/__tests__/tool-registry.test.d.ts +2 -0
  276. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
  277. package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
  278. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
  279. package/dist/src/registry/tool-registry.d.ts +32 -20
  280. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  281. package/dist/src/registry/tool-registry.js +60 -158
  282. package/dist/src/registry/tool-registry.js.map +1 -1
  283. package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
  284. package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
  285. package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
  286. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
  287. package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
  288. package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
  289. package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
  290. package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
  291. package/dist/src/session/__tests__/session-manager.test.js +443 -0
  292. package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
  293. package/dist/src/session/__tests__/validation.test.js +28 -1
  294. package/dist/src/session/__tests__/validation.test.js.map +1 -1
  295. package/dist/src/session/file-storage.d.ts +53 -27
  296. package/dist/src/session/file-storage.d.ts.map +1 -1
  297. package/dist/src/session/file-storage.js +103 -52
  298. package/dist/src/session/file-storage.js.map +1 -1
  299. package/dist/src/session/index.d.ts +6 -14
  300. package/dist/src/session/index.d.ts.map +1 -1
  301. package/dist/src/session/index.js +4 -13
  302. package/dist/src/session/index.js.map +1 -1
  303. package/dist/src/session/s3-storage.d.ts +49 -20
  304. package/dist/src/session/s3-storage.d.ts.map +1 -1
  305. package/dist/src/session/s3-storage.js +120 -35
  306. package/dist/src/session/s3-storage.js.map +1 -1
  307. package/dist/src/session/session-manager.d.ts +87 -0
  308. package/dist/src/session/session-manager.d.ts.map +1 -0
  309. package/dist/src/session/session-manager.js +128 -0
  310. package/dist/src/session/session-manager.js.map +1 -0
  311. package/dist/src/session/storage.d.ts +20 -12
  312. package/dist/src/session/storage.d.ts.map +1 -1
  313. package/dist/src/session/types.d.ts +8 -20
  314. package/dist/src/session/types.d.ts.map +1 -1
  315. package/dist/src/session/validation.d.ts +7 -0
  316. package/dist/src/session/validation.d.ts.map +1 -1
  317. package/dist/src/session/validation.js +12 -0
  318. package/dist/src/session/validation.js.map +1 -1
  319. package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
  320. package/dist/src/state-store.d.ts.map +1 -0
  321. package/dist/src/{app-state.js → state-store.js} +8 -7
  322. package/dist/src/state-store.js.map +1 -0
  323. package/dist/src/structured-output/__tests__/context.test.js +13 -13
  324. package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
  325. package/dist/src/structured-output/context.js +1 -1
  326. package/dist/src/structured-output/context.js.map +1 -1
  327. package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
  328. package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
  329. package/dist/src/telemetry/__tests__/config.test.js +64 -0
  330. package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
  331. package/dist/src/telemetry/__tests__/config.test.node.js +66 -36
  332. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
  333. package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
  334. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
  335. package/dist/src/telemetry/__tests__/meter.test.js +624 -0
  336. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
  337. package/dist/src/telemetry/__tests__/tracer.test.node.js +123 -2
  338. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
  339. package/dist/src/telemetry/config.d.ts +104 -23
  340. package/dist/src/telemetry/config.d.ts.map +1 -1
  341. package/dist/src/telemetry/config.js +152 -43
  342. package/dist/src/telemetry/config.js.map +1 -1
  343. package/dist/src/telemetry/index.d.ts +10 -7
  344. package/dist/src/telemetry/index.d.ts.map +1 -1
  345. package/dist/src/telemetry/index.js +9 -6
  346. package/dist/src/telemetry/index.js.map +1 -1
  347. package/dist/src/telemetry/meter.d.ts +296 -0
  348. package/dist/src/telemetry/meter.d.ts.map +1 -0
  349. package/dist/src/telemetry/meter.js +365 -0
  350. package/dist/src/telemetry/meter.js.map +1 -0
  351. package/dist/src/telemetry/tracer.d.ts +27 -0
  352. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  353. package/dist/src/telemetry/tracer.js +79 -4
  354. package/dist/src/telemetry/tracer.js.map +1 -1
  355. package/dist/src/telemetry/types.d.ts +2 -0
  356. package/dist/src/telemetry/types.d.ts.map +1 -1
  357. package/dist/src/telemetry/utils.d.ts +10 -0
  358. package/dist/src/telemetry/utils.d.ts.map +1 -0
  359. package/dist/src/telemetry/utils.js +13 -0
  360. package/dist/src/telemetry/utils.js.map +1 -0
  361. package/dist/src/tools/__tests__/tool-factory.test.d.ts +2 -0
  362. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
  363. package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
  364. package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
  365. package/dist/src/tools/__tests__/tool.test.js +22 -1
  366. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  367. package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
  368. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
  369. package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
  370. package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
  371. package/dist/src/tools/function-tool.d.ts +26 -3
  372. package/dist/src/tools/function-tool.d.ts.map +1 -1
  373. package/dist/src/tools/function-tool.js +88 -3
  374. package/dist/src/tools/function-tool.js.map +1 -1
  375. package/dist/src/tools/tool-factory.d.ts +22 -0
  376. package/dist/src/tools/tool-factory.d.ts.map +1 -0
  377. package/dist/src/tools/tool-factory.js +55 -0
  378. package/dist/src/tools/tool-factory.js.map +1 -0
  379. package/dist/src/tools/tool.d.ts +2 -2
  380. package/dist/src/tools/tool.d.ts.map +1 -1
  381. package/dist/src/tools/zod-tool.d.ts +55 -52
  382. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  383. package/dist/src/tools/zod-tool.js +7 -61
  384. package/dist/src/tools/zod-tool.js.map +1 -1
  385. package/dist/src/tsconfig.tsbuildinfo +1 -1
  386. package/dist/src/types/__tests__/agent.test.js +11 -0
  387. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  388. package/dist/src/types/__tests__/citations.test.d.ts +2 -0
  389. package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
  390. package/dist/src/types/__tests__/citations.test.js +104 -0
  391. package/dist/src/types/__tests__/citations.test.js.map +1 -0
  392. package/dist/src/types/__tests__/media.test.js +22 -16
  393. package/dist/src/types/__tests__/media.test.js.map +1 -1
  394. package/dist/src/types/__tests__/messages.test.js +26 -0
  395. package/dist/src/types/__tests__/messages.test.js.map +1 -1
  396. package/dist/src/types/agent.d.ts +82 -7
  397. package/dist/src/types/agent.d.ts.map +1 -1
  398. package/dist/src/types/agent.js +9 -0
  399. package/dist/src/types/agent.js.map +1 -1
  400. package/dist/src/types/citations.d.ts +180 -0
  401. package/dist/src/types/citations.d.ts.map +1 -0
  402. package/dist/src/types/citations.js +45 -0
  403. package/dist/src/types/citations.js.map +1 -0
  404. package/dist/src/types/media.d.ts +27 -30
  405. package/dist/src/types/media.d.ts.map +1 -1
  406. package/dist/src/types/media.js +15 -56
  407. package/dist/src/types/media.js.map +1 -1
  408. package/dist/src/types/messages.d.ts +23 -5
  409. package/dist/src/types/messages.d.ts.map +1 -1
  410. package/dist/src/types/messages.js +26 -26
  411. package/dist/src/types/messages.js.map +1 -1
  412. package/dist/src/types/serializable.d.ts +34 -4
  413. package/dist/src/types/serializable.d.ts.map +1 -1
  414. package/dist/src/types/serializable.js +31 -2
  415. package/dist/src/types/serializable.js.map +1 -1
  416. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +5 -4
  417. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  418. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  419. package/dist/src/vended-tools/bash/bash.js +1 -2
  420. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  421. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
  422. package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
  423. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
  424. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
  425. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
  426. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +3 -3
  427. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
  428. package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
  429. package/dist/src/vended-tools/file-editor/index.js.map +1 -0
  430. package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
  431. package/dist/src/vended-tools/file-editor/types.js.map +1 -0
  432. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
  433. package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
  434. package/dist/src/vended-tools/http-request/http-request.d.ts.map +1 -0
  435. package/dist/src/vended-tools/{http_request → http-request}/http-request.js +1 -2
  436. package/dist/src/vended-tools/http-request/http-request.js.map +1 -0
  437. package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
  438. package/dist/src/vended-tools/http-request/index.js.map +1 -0
  439. package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
  440. package/dist/src/vended-tools/http-request/types.js.map +1 -0
  441. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
  442. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  443. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  444. package/dist/src/vended-tools/notebook/notebook.js +2 -2
  445. package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
  446. package/package.json +66 -12
  447. package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
  448. package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
  449. package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
  450. package/dist/src/__tests__/app-state.test.d.ts +0 -2
  451. package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
  452. package/dist/src/__tests__/app-state.test.js.map +0 -1
  453. package/dist/src/app-state.d.ts.map +0 -1
  454. package/dist/src/app-state.js.map +0 -1
  455. package/dist/src/multiagent/base.d.ts +0 -25
  456. package/dist/src/multiagent/base.d.ts.map +0 -1
  457. package/dist/src/multiagent/base.js +0 -2
  458. package/dist/src/multiagent/base.js.map +0 -1
  459. package/dist/src/registry/registry.d.ts +0 -117
  460. package/dist/src/registry/registry.d.ts.map +0 -1
  461. package/dist/src/registry/registry.js +0 -298
  462. package/dist/src/registry/registry.js.map +0 -1
  463. package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
  464. package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
  465. package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
  466. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  467. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
  468. package/dist/src/vended-tools/file_editor/index.js.map +0 -1
  469. package/dist/src/vended-tools/file_editor/types.js.map +0 -1
  470. package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
  471. package/dist/src/vended-tools/http_request/http-request.d.ts.map +0 -1
  472. package/dist/src/vended-tools/http_request/http-request.js.map +0 -1
  473. package/dist/src/vended-tools/http_request/index.js.map +0 -1
  474. package/dist/src/vended-tools/http_request/types.js.map +0 -1
  475. /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
  476. /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
  477. /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
  478. /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
  479. /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
  480. /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
  481. /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
  482. /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
  483. /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
  484. /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
  485. /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
  486. /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
@@ -1,7 +1,8 @@
1
1
  import { createErrorResult, Tool } from './tool.js';
2
2
  import { ToolStreamEvent } from './tool.js';
3
3
  import { deepCopy } from '../types/json.js';
4
- import { JsonBlock, TextBlock, ToolResultBlock } from '../types/messages.js';
4
+ import { JsonBlock, TextBlock, ToolResultBlock, toolResultContentFromData, } from '../types/messages.js';
5
+ import { DocumentBlock, ImageBlock, VideoBlock } from '../types/media.js';
5
6
  /**
6
7
  * A Tool implementation that wraps a callback function and handles all ToolResultBlock conversion.
7
8
  *
@@ -134,16 +135,42 @@ export class FunctionTool extends Tool {
134
135
  return createErrorResult(error, toolUse.toolUseId);
135
136
  }
136
137
  }
138
+ /**
139
+ * Invokes the tool directly with raw input and returns the unwrapped result.
140
+ *
141
+ * Unlike stream(), this method:
142
+ * - Returns the raw result (not wrapped in ToolResult)
143
+ * - Consumes async generators and returns the generator's return value
144
+ * - Lets errors throw naturally (not wrapped in error ToolResult)
145
+ *
146
+ * @param input - The input parameters for the tool
147
+ * @param context - Optional tool execution context
148
+ * @returns The unwrapped result
149
+ */
150
+ async invoke(input, context) {
151
+ const result = this._callback(input, context);
152
+ if (result && typeof result === 'object' && Symbol.asyncIterator in result) {
153
+ const generator = result;
154
+ let iterResult = await generator.next();
155
+ while (!iterResult.done) {
156
+ iterResult = await generator.next();
157
+ }
158
+ return iterResult.value;
159
+ }
160
+ return (await result);
161
+ }
137
162
  /**
138
163
  * Wraps a value in a ToolResultBlock with success status.
139
164
  *
140
165
  * Due to AWS Bedrock limitations (only accepts objects as JSON content), the following
141
166
  * rules are applied:
167
+ * - Content blocks (TextBlock, JsonBlock, ImageBlock, VideoBlock, DocumentBlock) → passed through directly
168
+ * - Arrays of content blocks → used directly as content array
142
169
  * - Strings → TextBlock
143
170
  * - Numbers, Booleans → TextBlock (converted to string)
144
171
  * - null, undefined → TextBlock (special string representation)
145
172
  * - Objects → JsonBlock (with deep copy)
146
- * - Arrays → JsonBlock wrapped in \{ $value: array \} (with deep copy)
173
+ * - Arrays (non-content blocks) → JsonBlock wrapped in \{ $value: array \} (with deep copy)
147
174
  *
148
175
  * @param value - The value to wrap (can be any type)
149
176
  * @param toolUseId - The tool use ID for the ToolResultBlock
@@ -151,6 +178,14 @@ export class FunctionTool extends Tool {
151
178
  */
152
179
  _wrapInToolResult(value, toolUseId) {
153
180
  try {
181
+ // Handle media blocks - pass through directly
182
+ if (value instanceof DocumentBlock || value instanceof ImageBlock || value instanceof VideoBlock) {
183
+ return new ToolResultBlock({
184
+ toolUseId,
185
+ status: 'success',
186
+ content: [value],
187
+ });
188
+ }
154
189
  // Handle null with special string representation as text content
155
190
  if (value === null) {
156
191
  return new ToolResultBlock({
@@ -167,6 +202,15 @@ export class FunctionTool extends Tool {
167
202
  content: [new TextBlock('<undefined>')],
168
203
  });
169
204
  }
205
+ // Handle content blocks - class instances or plain data objects
206
+ const contentBlock = this._asToolResultContent(value);
207
+ if (contentBlock) {
208
+ return new ToolResultBlock({
209
+ toolUseId,
210
+ status: 'success',
211
+ content: [contentBlock],
212
+ });
213
+ }
170
214
  // Handle primitives (strings, numbers, booleans) as text content
171
215
  // Bedrock doesn't accept primitives as JSON content, so we convert all to strings
172
216
  if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
@@ -176,8 +220,20 @@ export class FunctionTool extends Tool {
176
220
  content: [new TextBlock(String(value))],
177
221
  });
178
222
  }
179
- // Handle arrays by wrapping in object { $value: array }
223
+ // Handle arrays
180
224
  if (Array.isArray(value)) {
225
+ // Check if array contains only content blocks (class instances or plain data objects)
226
+ if (value.length > 0) {
227
+ const converted = value.map((item) => this._asToolResultContent(item));
228
+ if (converted.every((item) => item !== undefined)) {
229
+ return new ToolResultBlock({
230
+ toolUseId,
231
+ status: 'success',
232
+ content: converted,
233
+ });
234
+ }
235
+ }
236
+ // Otherwise wrap in object { $value: array }
181
237
  const copiedValue = deepCopy(value);
182
238
  return new ToolResultBlock({
183
239
  toolUseId,
@@ -198,5 +254,34 @@ export class FunctionTool extends Tool {
198
254
  return createErrorResult(error, toolUseId);
199
255
  }
200
256
  }
257
+ /**
258
+ * Converts a value to a ToolResultContent instance if it matches a known content type.
259
+ * Accepts both class instances and plain data objects.
260
+ *
261
+ * @param value - Value to check and convert
262
+ * @returns ToolResultContent instance, or undefined if not a recognized content type
263
+ */
264
+ _asToolResultContent(value) {
265
+ if (typeof value !== 'object')
266
+ return undefined;
267
+ // Class instances — pass through
268
+ if (value instanceof TextBlock ||
269
+ value instanceof JsonBlock ||
270
+ value instanceof ImageBlock ||
271
+ value instanceof VideoBlock ||
272
+ value instanceof DocumentBlock) {
273
+ return value;
274
+ }
275
+ // Plain data objects — require exactly one key to match the discriminated
276
+ // union shape; multi-key objects fall through to JsonBlock instead.
277
+ try {
278
+ if (Object.keys(value).length !== 1)
279
+ return undefined;
280
+ return toolResultContentFromData(value);
281
+ }
282
+ catch {
283
+ return undefined;
284
+ }
285
+ }
201
286
  }
202
287
  //# sourceMappingURL=function-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-tool.js","sourceRoot":"","sources":["../../../src/tools/function-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-tool.js","sourceRoot":"","sources":["../../../src/tools/function-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { InvokableTool } from './tool.js';
2
+ import type { FunctionToolConfig } from './function-tool.js';
3
+ import type { JSONValue } from '../types/json.js';
4
+ import { z } from 'zod';
5
+ import { type ZodToolConfig } from './zod-tool.js';
6
+ /**
7
+ * Creates an InvokableTool from a Zod schema and callback function.
8
+ *
9
+ * @typeParam TInput - Zod schema type for input validation
10
+ * @typeParam TReturn - Return type of the callback function
11
+ * @param config - Tool configuration with Zod schema
12
+ * @returns An InvokableTool with typed input and output
13
+ */
14
+ export declare function tool<TInput extends z.ZodType, TReturn extends JSONValue = JSONValue>(config: ZodToolConfig<TInput, TReturn>): InvokableTool<z.infer<TInput>, TReturn>;
15
+ /**
16
+ * Creates an InvokableTool from a JSON schema and callback function.
17
+ *
18
+ * @param config - Tool configuration with optional JSON schema
19
+ * @returns An InvokableTool with unknown input
20
+ */
21
+ export declare function tool(config: FunctionToolConfig): InvokableTool<unknown, JSONValue>;
22
+ //# sourceMappingURL=tool-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAY3D;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,EAClF,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;AAE1C;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { FunctionTool } from './function-tool.js';
2
+ import { z } from 'zod';
3
+ import { ZodTool } from './zod-tool.js';
4
+ /**
5
+ * Checks whether a value is a Zod schema type.
6
+ *
7
+ * @param value - The value to check
8
+ * @returns True if the value is a Zod schema
9
+ */
10
+ function isZodType(value) {
11
+ return value instanceof z.ZodType;
12
+ }
13
+ /**
14
+ * Creates an InvokableTool from either a Zod schema or JSON schema configuration.
15
+ *
16
+ * When a Zod schema is provided as `inputSchema`, input is validated at runtime and
17
+ * the callback receives typed input. When a JSON schema (or no schema) is provided,
18
+ * the callback receives `unknown` input with no runtime validation.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { tool } from '@strands-agents/sdk'
23
+ * import { z } from 'zod'
24
+ *
25
+ * // With Zod schema (typed + validated)
26
+ * const calculator = tool({
27
+ * name: 'calculator',
28
+ * description: 'Adds two numbers',
29
+ * inputSchema: z.object({ a: z.number(), b: z.number() }),
30
+ * callback: (input) => input.a + input.b,
31
+ * })
32
+ *
33
+ * // With JSON schema (untyped, no validation)
34
+ * const greeter = tool({
35
+ * name: 'greeter',
36
+ * description: 'Greets a person',
37
+ * inputSchema: {
38
+ * type: 'object',
39
+ * properties: { name: { type: 'string' } },
40
+ * required: ['name'],
41
+ * },
42
+ * callback: (input) => `Hello, ${(input as { name: string }).name}!`,
43
+ * })
44
+ * ```
45
+ *
46
+ * @param config - Tool configuration
47
+ * @returns An InvokableTool that implements the Tool interface with invoke() method
48
+ */
49
+ export function tool(config) {
50
+ if (config.inputSchema && isZodType(config.inputSchema)) {
51
+ return new ZodTool(config);
52
+ }
53
+ return new FunctionTool(config);
54
+ }
55
+ //# sourceMappingURL=tool-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.js","sourceRoot":"","sources":["../../../src/tools/tool-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAsB,MAAM,eAAe,CAAA;AAE3D;;;;;GAKG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,CAAC,CAAC,OAAO,CAAA;AACnC,CAAC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,IAAI,CAClB,MAA4E;IAE5E,IAAI,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,OAAO,CAAC,MAA6C,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,MAA4B,CAAC,CAAA;AACvD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ToolSpec, ToolUse } from './types.js';
2
2
  import { ToolResultBlock } from '../types/messages.js';
3
- import type { AgentData } from '../types/agent.js';
3
+ import type { LocalAgent } from '../types/agent.js';
4
4
  export type { ToolSpec } from './types.js';
5
5
  /**
6
6
  * Context provided to tool implementations during execution.
@@ -16,7 +16,7 @@ export interface ToolContext {
16
16
  * The agent instance that is executing this tool.
17
17
  * Provides access to agent state and other agent-level information.
18
18
  */
19
- agent: AgentData;
19
+ agent: LocalAgent;
20
20
  }
21
21
  /**
22
22
  * Data for a tool stream event.
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAa,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,mBAAmB;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAE1C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;gBAEX,SAAS,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAK1C;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;AAE7F;;;;;;;;GAQG;AACH,8BAAsB,IAAI;IACxB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAC/D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,IAAI;IAC1D;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAUpF"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAa,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;OAGG;IACH,KAAK,EAAE,UAAU,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,mBAAmB;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAE1C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;gBAEX,SAAS,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAK1C;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;AAE7F;;;;;;;;GAQG;AACH,8BAAsB,IAAI;IACxB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAC/D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,IAAI;IAC1D;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAUpF"}
@@ -1,4 +1,6 @@
1
- import type { InvokableTool, ToolContext } from './tool.js';
1
+ import type { InvokableTool, ToolContext, ToolStreamGenerator } from './tool.js';
2
+ import { Tool } from './tool.js';
3
+ import type { ToolSpec } from './types.js';
2
4
  import type { JSONValue } from '../types/json.js';
3
5
  import { z } from 'zod';
4
6
  /**
@@ -11,7 +13,7 @@ type ZodInferred<TInput> = TInput extends z.ZodType ? z.infer<TInput> : never;
11
13
  * @typeParam TInput - Zod schema type for input validation
12
14
  * @typeParam TReturn - Return type of the callback function
13
15
  */
14
- export interface ToolConfig<TInput extends z.ZodType | undefined, TReturn extends JSONValue = JSONValue> {
16
+ export interface ZodToolConfig<TInput extends z.ZodType | undefined, TReturn extends JSONValue = JSONValue> {
15
17
  /** The name of the tool */
16
18
  name: string;
17
19
  /** A description of what the tool does (optional) */
@@ -31,56 +33,57 @@ export interface ToolConfig<TInput extends z.ZodType | undefined, TReturn extend
31
33
  callback: (input: ZodInferred<TInput>, context?: ToolContext) => AsyncGenerator<unknown, TReturn, never> | Promise<TReturn> | TReturn;
32
34
  }
33
35
  /**
34
- * Creates an InvokableTool from a Zod schema and callback function.
35
- *
36
- * The tool() function validates input against the schema and generates JSON schema
37
- * for model providers using Zod v4's built-in z.toJSONSchema() method.
38
- *
39
- * @example
40
- * ```typescript
41
- * import { tool } from '@strands-agents/sdk'
42
- * import { z } from 'zod'
43
- *
44
- * // Tool with input parameters
45
- * const calculator = tool({
46
- * name: 'calculator',
47
- * description: 'Performs basic arithmetic',
48
- * inputSchema: z.object({
49
- * operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
50
- * a: z.number(),
51
- * b: z.number()
52
- * }),
53
- * callback: (input) => {
54
- * switch (input.operation) {
55
- * case 'add': return input.a + input.b
56
- * case 'subtract': return input.a - input.b
57
- * case 'multiply': return input.a * input.b
58
- * case 'divide': return input.a / input.b
59
- * }
60
- * }
61
- * })
62
- *
63
- * // Tool without input (omit inputSchema)
64
- * const getStatus = tool({
65
- * name: 'getStatus',
66
- * description: 'Gets system status',
67
- * callback: () => ({ status: 'operational', uptime: 99.9 })
68
- * })
69
- *
70
- * // Direct invocation
71
- * const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
72
- *
73
- * // Agent usage
74
- * for await (const event of calculator.stream(context)) {
75
- * console.log(event)
76
- * }
77
- * ```
78
- *
79
- * @typeParam TInput - Zod schema type for input validation
80
- * @typeParam TReturn - Return type of the callback function
81
- * @param config - Tool configuration
82
- * @returns An InvokableTool that implements the Tool interface with invoke() method
36
+ * Zod-based tool implementation.
37
+ * Extends Tool abstract class and implements InvokableTool interface.
83
38
  */
84
- export declare function tool<TInput extends z.ZodType | undefined, TReturn extends JSONValue = JSONValue>(config: ToolConfig<TInput, TReturn>): InvokableTool<ZodInferred<TInput>, TReturn>;
39
+ export declare class ZodTool<TInput extends z.ZodType | undefined, TReturn extends JSONValue = JSONValue> extends Tool implements InvokableTool<ZodInferred<TInput>, TReturn> {
40
+ /**
41
+ * Internal FunctionTool for delegating stream operations.
42
+ */
43
+ private readonly _functionTool;
44
+ /**
45
+ * Zod schema for input validation.
46
+ * Note: undefined is normalized to z.void() in constructor, so this is always defined.
47
+ */
48
+ private readonly _inputSchema;
49
+ /**
50
+ * User callback function.
51
+ */
52
+ private readonly _callback;
53
+ constructor(config: ZodToolConfig<TInput, TReturn>);
54
+ /**
55
+ * The unique name of the tool.
56
+ */
57
+ get name(): string;
58
+ /**
59
+ * Human-readable description of what the tool does.
60
+ */
61
+ get description(): string;
62
+ /**
63
+ * OpenAPI JSON specification for the tool.
64
+ */
65
+ get toolSpec(): ToolSpec;
66
+ /**
67
+ * Executes the tool with streaming support.
68
+ * Delegates to internal FunctionTool implementation.
69
+ *
70
+ * @param toolContext - Context information including the tool use request and invocation state
71
+ * @returns Async generator that yields ToolStreamEvents and returns a ToolResultBlock
72
+ */
73
+ stream(toolContext: ToolContext): ToolStreamGenerator;
74
+ /**
75
+ * Invokes the tool directly with type-safe input and returns the unwrapped result.
76
+ *
77
+ * Unlike stream(), this method:
78
+ * - Returns the raw result (not wrapped in ToolResult)
79
+ * - Consumes async generators and returns only the final value
80
+ * - Lets errors throw naturally (not wrapped in error ToolResult)
81
+ *
82
+ * @param input - The input parameters for the tool
83
+ * @param context - Optional tool execution context
84
+ * @returns The unwrapped result
85
+ */
86
+ invoke(input: ZodInferred<TInput>, context?: ToolContext): Promise<TReturn>;
87
+ }
85
88
  export {};
86
89
  //# sourceMappingURL=zod-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAA;AAGhF,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,CAAC,EAAW,MAAM,KAAK,CAAA;AAGhC;;GAEG;AACH,KAAK,WAAW,CAAC,MAAM,IAAI,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS;IACrG,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;OAMG;IACH,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,EAAE,WAAW,KAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC1E;AAwID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,EAC9F,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAE7C"}
1
+ {"version":3,"file":"zod-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,CAAC,EAAW,MAAM,KAAK,CAAA;AAGhC;;GAEG;AACH,KAAK,WAAW,CAAC,MAAM,IAAI,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS;IACxG,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;OAMG;IACH,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,EAAE,WAAW,KAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC1E;AAED;;;GAGG;AACH,qBAAa,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAC9F,SAAQ,IACR,YAAW,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEtD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAE5C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAG+C;gBAE7D,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;IAyClD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;IAIrD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBlF"}
@@ -3,10 +3,10 @@ import { FunctionTool } from './function-tool.js';
3
3
  import { z, ZodVoid } from 'zod';
4
4
  import { zodSchemaToJsonSchema } from '../utils/zod.js';
5
5
  /**
6
- * Internal implementation of a Zod-based tool.
6
+ * Zod-based tool implementation.
7
7
  * Extends Tool abstract class and implements InvokableTool interface.
8
8
  */
9
- class ZodTool extends Tool {
9
+ export class ZodTool extends Tool {
10
10
  /**
11
11
  * Internal FunctionTool for delegating stream operations.
12
12
  */
@@ -98,12 +98,12 @@ class ZodTool extends Tool {
98
98
  const result = this._callback(validatedInput, context);
99
99
  // Handle different return types
100
100
  if (result && typeof result === 'object' && Symbol.asyncIterator in result) {
101
- // AsyncGenerator - consume all yielded values and return the last one
102
- let lastValue = undefined;
103
- for await (const value of result) {
104
- lastValue = value;
101
+ const generator = result;
102
+ let iterResult = await generator.next();
103
+ while (!iterResult.done) {
104
+ iterResult = await generator.next();
105
105
  }
106
- return lastValue;
106
+ return iterResult.value;
107
107
  }
108
108
  else {
109
109
  // Regular value or Promise - return directly
@@ -111,58 +111,4 @@ class ZodTool extends Tool {
111
111
  }
112
112
  }
113
113
  }
114
- /**
115
- * Creates an InvokableTool from a Zod schema and callback function.
116
- *
117
- * The tool() function validates input against the schema and generates JSON schema
118
- * for model providers using Zod v4's built-in z.toJSONSchema() method.
119
- *
120
- * @example
121
- * ```typescript
122
- * import { tool } from '@strands-agents/sdk'
123
- * import { z } from 'zod'
124
- *
125
- * // Tool with input parameters
126
- * const calculator = tool({
127
- * name: 'calculator',
128
- * description: 'Performs basic arithmetic',
129
- * inputSchema: z.object({
130
- * operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
131
- * a: z.number(),
132
- * b: z.number()
133
- * }),
134
- * callback: (input) => {
135
- * switch (input.operation) {
136
- * case 'add': return input.a + input.b
137
- * case 'subtract': return input.a - input.b
138
- * case 'multiply': return input.a * input.b
139
- * case 'divide': return input.a / input.b
140
- * }
141
- * }
142
- * })
143
- *
144
- * // Tool without input (omit inputSchema)
145
- * const getStatus = tool({
146
- * name: 'getStatus',
147
- * description: 'Gets system status',
148
- * callback: () => ({ status: 'operational', uptime: 99.9 })
149
- * })
150
- *
151
- * // Direct invocation
152
- * const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
153
- *
154
- * // Agent usage
155
- * for await (const event of calculator.stream(context)) {
156
- * console.log(event)
157
- * }
158
- * ```
159
- *
160
- * @typeParam TInput - Zod schema type for input validation
161
- * @typeParam TReturn - Return type of the callback function
162
- * @param config - Tool configuration
163
- * @returns An InvokableTool that implements the Tool interface with invoke() method
164
- */
165
- export function tool(config) {
166
- return new ZodTool(config);
167
- }
168
114
  //# sourceMappingURL=zod-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-tool.js","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod-tool.js","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"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"}