@strands-agents/sdk 0.6.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 (370) 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 +30 -0
  7. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -1
  8. package/dist/src/__fixtures__/metrics-helpers.js +29 -6
  9. package/dist/src/__fixtures__/metrics-helpers.js.map +1 -1
  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 +13 -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__/tool-helpers.d.ts.map +1 -1
  23. package/dist/src/__fixtures__/tool-helpers.js +5 -2
  24. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  25. package/dist/src/__tests__/index.test.js +21 -0
  26. package/dist/src/__tests__/index.test.js.map +1 -1
  27. package/dist/src/__tests__/mcp.test.js.map +1 -1
  28. package/dist/src/__tests__/mime.test.d.ts +2 -0
  29. package/dist/src/__tests__/mime.test.d.ts.map +1 -0
  30. package/dist/src/__tests__/mime.test.js +83 -0
  31. package/dist/src/__tests__/mime.test.js.map +1 -0
  32. package/dist/src/__tests__/state-store.test.d.ts +2 -0
  33. package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
  34. package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
  35. package/dist/src/__tests__/state-store.test.js.map +1 -0
  36. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
  37. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
  38. package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
  39. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
  40. package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
  41. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
  42. package/dist/src/a2a/__tests__/adapters.test.js +151 -0
  43. package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
  44. package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
  45. package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
  46. package/dist/src/a2a/__tests__/executor.test.js +196 -0
  47. package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
  48. package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
  49. package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
  50. package/dist/src/a2a/__tests__/server.test.js +51 -0
  51. package/dist/src/a2a/__tests__/server.test.js.map +1 -0
  52. package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
  53. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
  54. package/dist/src/a2a/__tests__/server.test.node.js +110 -0
  55. package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
  56. package/dist/src/a2a/a2a-agent.d.ts +132 -0
  57. package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
  58. package/dist/src/a2a/a2a-agent.js +255 -0
  59. package/dist/src/a2a/a2a-agent.js.map +1 -0
  60. package/dist/src/a2a/adapters.d.ts +27 -0
  61. package/dist/src/a2a/adapters.d.ts.map +1 -0
  62. package/dist/src/a2a/adapters.js +175 -0
  63. package/dist/src/a2a/adapters.js.map +1 -0
  64. package/dist/src/a2a/events.d.ts +42 -0
  65. package/dist/src/a2a/events.d.ts.map +1 -0
  66. package/dist/src/a2a/events.js +35 -0
  67. package/dist/src/a2a/events.js.map +1 -0
  68. package/dist/src/a2a/executor.d.ts +57 -0
  69. package/dist/src/a2a/executor.d.ts.map +1 -0
  70. package/dist/src/a2a/executor.js +130 -0
  71. package/dist/src/a2a/executor.js.map +1 -0
  72. package/dist/src/a2a/express-server.d.ts +67 -0
  73. package/dist/src/a2a/express-server.d.ts.map +1 -0
  74. package/dist/src/a2a/express-server.js +95 -0
  75. package/dist/src/a2a/express-server.js.map +1 -0
  76. package/dist/src/a2a/index.d.ts +16 -0
  77. package/dist/src/a2a/index.d.ts.map +1 -0
  78. package/dist/src/a2a/index.js +16 -0
  79. package/dist/src/a2a/index.js.map +1 -0
  80. package/dist/src/a2a/logging.d.ts +8 -0
  81. package/dist/src/a2a/logging.d.ts.map +1 -0
  82. package/dist/src/a2a/logging.js +15 -0
  83. package/dist/src/a2a/logging.js.map +1 -0
  84. package/dist/src/a2a/server.d.ts +67 -0
  85. package/dist/src/a2a/server.d.ts.map +1 -0
  86. package/dist/src/a2a/server.js +67 -0
  87. package/dist/src/a2a/server.js.map +1 -0
  88. package/dist/src/agent/__tests__/agent.hook.test.js +87 -51
  89. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  90. package/dist/src/agent/__tests__/agent.test.js +87 -10
  91. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  92. package/dist/src/agent/__tests__/agent.tracer.test.js +10 -10
  93. package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -1
  94. package/dist/src/agent/__tests__/snapshot.test.js +11 -11
  95. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  96. package/dist/src/agent/agent.d.ts +39 -43
  97. package/dist/src/agent/agent.d.ts.map +1 -1
  98. package/dist/src/agent/agent.js +66 -40
  99. package/dist/src/agent/agent.js.map +1 -1
  100. package/dist/src/agent/snapshot.d.ts.map +1 -1
  101. package/dist/src/agent/snapshot.js +3 -2
  102. package/dist/src/agent/snapshot.js.map +1 -1
  103. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
  104. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
  105. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +100 -0
  106. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
  107. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
  108. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  109. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +84 -21
  110. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  111. package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
  112. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
  113. package/dist/src/conversation-manager/conversation-manager.js +59 -0
  114. package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
  115. package/dist/src/conversation-manager/index.d.ts +1 -0
  116. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  117. package/dist/src/conversation-manager/index.js +1 -0
  118. package/dist/src/conversation-manager/index.js.map +1 -1
  119. package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
  120. package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
  121. package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
  122. package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
  123. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
  124. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  125. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +44 -36
  126. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  127. package/dist/src/hooks/__tests__/registry.test.js +10 -154
  128. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  129. package/dist/src/hooks/events.d.ts +44 -44
  130. package/dist/src/hooks/events.d.ts.map +1 -1
  131. package/dist/src/hooks/events.js +11 -11
  132. package/dist/src/hooks/events.js.map +1 -1
  133. package/dist/src/hooks/index.d.ts +3 -3
  134. package/dist/src/hooks/index.d.ts.map +1 -1
  135. package/dist/src/hooks/index.js +2 -2
  136. package/dist/src/hooks/registry.d.ts +1 -32
  137. package/dist/src/hooks/registry.d.ts.map +1 -1
  138. package/dist/src/hooks/registry.js +1 -47
  139. package/dist/src/hooks/registry.js.map +1 -1
  140. package/dist/src/hooks/types.d.ts +0 -31
  141. package/dist/src/hooks/types.d.ts.map +1 -1
  142. package/dist/src/index.d.ts +12 -12
  143. package/dist/src/index.d.ts.map +1 -1
  144. package/dist/src/index.js +8 -8
  145. package/dist/src/index.js.map +1 -1
  146. package/dist/src/mime.d.ts +24 -0
  147. package/dist/src/mime.d.ts.map +1 -0
  148. package/dist/src/mime.js +82 -0
  149. package/dist/src/mime.js.map +1 -0
  150. package/dist/src/models/__tests__/anthropic.test.js +78 -1
  151. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  152. package/dist/src/models/__tests__/bedrock.test.js +1844 -613
  153. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  154. package/dist/src/models/__tests__/gemini.test.js +100 -1
  155. package/dist/src/models/__tests__/gemini.test.js.map +1 -1
  156. package/dist/src/models/__tests__/model.test.js +25 -0
  157. package/dist/src/models/__tests__/model.test.js.map +1 -1
  158. package/dist/src/models/__tests__/openai.test.js +184 -32
  159. package/dist/src/models/__tests__/openai.test.js.map +1 -1
  160. package/dist/src/models/anthropic.d.ts.map +1 -1
  161. package/dist/src/models/anthropic.js +6 -7
  162. package/dist/src/models/anthropic.js.map +1 -1
  163. package/dist/src/models/bedrock.d.ts +64 -10
  164. package/dist/src/models/bedrock.d.ts.map +1 -1
  165. package/dist/src/models/bedrock.js +202 -23
  166. package/dist/src/models/bedrock.js.map +1 -1
  167. package/dist/src/models/gemini/adapters.d.ts.map +1 -1
  168. package/dist/src/models/gemini/adapters.js +65 -14
  169. package/dist/src/models/gemini/adapters.js.map +1 -1
  170. package/dist/src/models/model.d.ts +12 -0
  171. package/dist/src/models/model.d.ts.map +1 -1
  172. package/dist/src/models/model.js +5 -9
  173. package/dist/src/models/model.js.map +1 -1
  174. package/dist/src/models/openai.d.ts +15 -0
  175. package/dist/src/models/openai.d.ts.map +1 -1
  176. package/dist/src/models/openai.js +108 -64
  177. package/dist/src/models/openai.js.map +1 -1
  178. package/dist/src/models/streaming.d.ts +5 -0
  179. package/dist/src/models/streaming.d.ts.map +1 -1
  180. package/dist/src/multiagent/__tests__/events.test.js +24 -7
  181. package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
  182. package/dist/src/multiagent/__tests__/graph.test.js +28 -13
  183. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
  184. package/dist/src/multiagent/__tests__/nodes.test.js +28 -10
  185. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  186. package/dist/src/multiagent/__tests__/swarm.test.js +33 -10
  187. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
  188. package/dist/src/multiagent/events.d.ts +48 -14
  189. package/dist/src/multiagent/events.d.ts.map +1 -1
  190. package/dist/src/multiagent/events.js +11 -3
  191. package/dist/src/multiagent/events.js.map +1 -1
  192. package/dist/src/multiagent/graph.d.ts +21 -11
  193. package/dist/src/multiagent/graph.d.ts.map +1 -1
  194. package/dist/src/multiagent/graph.js +35 -29
  195. package/dist/src/multiagent/graph.js.map +1 -1
  196. package/dist/src/multiagent/index.d.ts +3 -2
  197. package/dist/src/multiagent/index.d.ts.map +1 -1
  198. package/dist/src/multiagent/index.js.map +1 -1
  199. package/dist/src/multiagent/multiagent.d.ts +41 -0
  200. package/dist/src/multiagent/multiagent.d.ts.map +1 -0
  201. package/dist/src/multiagent/multiagent.js +2 -0
  202. package/dist/src/multiagent/multiagent.js.map +1 -0
  203. package/dist/src/multiagent/nodes.d.ts +18 -21
  204. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  205. package/dist/src/multiagent/nodes.js +27 -11
  206. package/dist/src/multiagent/nodes.js.map +1 -1
  207. package/dist/src/multiagent/plugins.d.ts +70 -0
  208. package/dist/src/multiagent/plugins.d.ts.map +1 -0
  209. package/dist/src/multiagent/plugins.js +70 -0
  210. package/dist/src/multiagent/plugins.js.map +1 -0
  211. package/dist/src/multiagent/state.d.ts +2 -2
  212. package/dist/src/multiagent/state.d.ts.map +1 -1
  213. package/dist/src/multiagent/state.js +2 -2
  214. package/dist/src/multiagent/state.js.map +1 -1
  215. package/dist/src/multiagent/swarm.d.ts +26 -16
  216. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  217. package/dist/src/multiagent/swarm.js +31 -13
  218. package/dist/src/multiagent/swarm.js.map +1 -1
  219. package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
  220. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
  221. package/dist/src/plugins/__tests__/plugin.test.js +114 -0
  222. package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
  223. package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
  224. package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
  225. package/dist/src/plugins/__tests__/registry.test.js +147 -0
  226. package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
  227. package/dist/src/plugins/index.d.ts +30 -0
  228. package/dist/src/plugins/index.d.ts.map +1 -0
  229. package/dist/src/plugins/index.js +30 -0
  230. package/dist/src/plugins/index.js.map +1 -0
  231. package/dist/src/plugins/plugin.d.ts +74 -0
  232. package/dist/src/plugins/plugin.d.ts.map +1 -0
  233. package/dist/src/plugins/plugin.js +8 -0
  234. package/dist/src/plugins/plugin.js.map +1 -0
  235. package/dist/src/plugins/registry.d.ts +25 -0
  236. package/dist/src/plugins/registry.d.ts.map +1 -0
  237. package/dist/src/plugins/registry.js +41 -0
  238. package/dist/src/plugins/registry.js.map +1 -0
  239. package/dist/src/session/__tests__/session-manager.test.js +74 -92
  240. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  241. package/dist/src/session/index.d.ts +0 -1
  242. package/dist/src/session/index.d.ts.map +1 -1
  243. package/dist/src/session/index.js +0 -1
  244. package/dist/src/session/index.js.map +1 -1
  245. package/dist/src/session/session-manager.d.ts +9 -5
  246. package/dist/src/session/session-manager.d.ts.map +1 -1
  247. package/dist/src/session/session-manager.js +14 -8
  248. package/dist/src/session/session-manager.js.map +1 -1
  249. package/dist/src/session/storage.d.ts +1 -1
  250. package/dist/src/session/storage.d.ts.map +1 -1
  251. package/dist/src/session/types.d.ts +2 -2
  252. package/dist/src/session/types.d.ts.map +1 -1
  253. package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
  254. package/dist/src/state-store.d.ts.map +1 -0
  255. package/dist/src/{app-state.js → state-store.js} +8 -7
  256. package/dist/src/state-store.js.map +1 -0
  257. package/dist/src/telemetry/__tests__/config.test.js +24 -0
  258. package/dist/src/telemetry/__tests__/config.test.js.map +1 -1
  259. package/dist/src/telemetry/__tests__/config.test.node.js +56 -0
  260. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
  261. package/dist/src/telemetry/__tests__/meter.test.js +176 -9
  262. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
  263. package/dist/src/telemetry/__tests__/tracer.test.node.js +123 -2
  264. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
  265. package/dist/src/telemetry/config.d.ts +72 -12
  266. package/dist/src/telemetry/config.d.ts.map +1 -1
  267. package/dist/src/telemetry/config.js +101 -24
  268. package/dist/src/telemetry/config.js.map +1 -1
  269. package/dist/src/telemetry/index.d.ts +10 -7
  270. package/dist/src/telemetry/index.d.ts.map +1 -1
  271. package/dist/src/telemetry/index.js +9 -6
  272. package/dist/src/telemetry/index.js.map +1 -1
  273. package/dist/src/telemetry/meter.d.ts +23 -4
  274. package/dist/src/telemetry/meter.d.ts.map +1 -1
  275. package/dist/src/telemetry/meter.js +78 -5
  276. package/dist/src/telemetry/meter.js.map +1 -1
  277. package/dist/src/telemetry/tracer.d.ts +27 -0
  278. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  279. package/dist/src/telemetry/tracer.js +80 -5
  280. package/dist/src/telemetry/tracer.js.map +1 -1
  281. package/dist/src/telemetry/types.d.ts +2 -0
  282. package/dist/src/telemetry/types.d.ts.map +1 -1
  283. package/dist/src/telemetry/utils.d.ts +10 -0
  284. package/dist/src/telemetry/utils.d.ts.map +1 -0
  285. package/dist/src/telemetry/utils.js +13 -0
  286. package/dist/src/telemetry/utils.js.map +1 -0
  287. package/dist/src/tools/__tests__/tool.test.js +22 -1
  288. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  289. package/dist/src/tools/function-tool.d.ts +11 -1
  290. package/dist/src/tools/function-tool.d.ts.map +1 -1
  291. package/dist/src/tools/function-tool.js +64 -3
  292. package/dist/src/tools/function-tool.js.map +1 -1
  293. package/dist/src/tools/tool.d.ts +2 -2
  294. package/dist/src/tools/tool.d.ts.map +1 -1
  295. package/dist/src/tsconfig.tsbuildinfo +1 -1
  296. package/dist/src/types/__tests__/media.test.js +22 -16
  297. package/dist/src/types/__tests__/media.test.js.map +1 -1
  298. package/dist/src/types/agent.d.ts +75 -7
  299. package/dist/src/types/agent.d.ts.map +1 -1
  300. package/dist/src/types/agent.js.map +1 -1
  301. package/dist/src/types/media.d.ts +27 -30
  302. package/dist/src/types/media.d.ts.map +1 -1
  303. package/dist/src/types/media.js +15 -56
  304. package/dist/src/types/media.js.map +1 -1
  305. package/dist/src/types/messages.d.ts +18 -4
  306. package/dist/src/types/messages.d.ts.map +1 -1
  307. package/dist/src/types/messages.js +22 -26
  308. package/dist/src/types/messages.js.map +1 -1
  309. package/dist/src/types/serializable.d.ts +34 -4
  310. package/dist/src/types/serializable.d.ts.map +1 -1
  311. package/dist/src/types/serializable.js +31 -2
  312. package/dist/src/types/serializable.js.map +1 -1
  313. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +5 -4
  314. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  315. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
  316. package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
  317. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
  318. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
  319. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
  320. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +2 -2
  321. package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
  322. package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
  323. package/dist/src/vended-tools/file-editor/index.js.map +1 -0
  324. package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
  325. package/dist/src/vended-tools/file-editor/types.js.map +1 -0
  326. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
  327. package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
  328. package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts.map +1 -1
  329. package/dist/src/vended-tools/{http_request → http-request}/http-request.js.map +1 -1
  330. package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
  331. package/dist/src/vended-tools/http-request/index.js.map +1 -0
  332. package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
  333. package/dist/src/vended-tools/http-request/types.js.map +1 -0
  334. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
  335. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  336. package/dist/src/vended-tools/notebook/notebook.js +2 -2
  337. package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
  338. package/package.json +52 -10
  339. package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
  340. package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
  341. package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
  342. package/dist/src/__tests__/app-state.test.d.ts +0 -2
  343. package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
  344. package/dist/src/__tests__/app-state.test.js.map +0 -1
  345. package/dist/src/app-state.d.ts.map +0 -1
  346. package/dist/src/app-state.js.map +0 -1
  347. package/dist/src/multiagent/base.d.ts +0 -25
  348. package/dist/src/multiagent/base.d.ts.map +0 -1
  349. package/dist/src/multiagent/base.js +0 -2
  350. package/dist/src/multiagent/base.js.map +0 -1
  351. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  352. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
  353. package/dist/src/vended-tools/file_editor/index.js.map +0 -1
  354. package/dist/src/vended-tools/file_editor/types.js.map +0 -1
  355. package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
  356. package/dist/src/vended-tools/http_request/index.js.map +0 -1
  357. package/dist/src/vended-tools/http_request/types.js.map +0 -1
  358. /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
  359. /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
  360. /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
  361. /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
  362. /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
  363. /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
  364. /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
  365. /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
  366. /package/dist/src/vended-tools/{http_request → http-request}/http-request.js +0 -0
  367. /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
  368. /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
  369. /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
  370. /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * A2A executor that bridges a Strands Agent into the A2A protocol.
3
+ *
4
+ * Implements the AgentExecutor interface from `@a2a-js/sdk/server` to allow
5
+ * a Strands Agent to handle A2A JSON-RPC requests.
6
+ */
7
+ import { A2AError } from '@a2a-js/sdk/server';
8
+ import { ModelStreamUpdateEvent, ContentBlockEvent } from '../hooks/events.js';
9
+ import { contentBlocksToParts, partsToContentBlocks } from './adapters.js';
10
+ import { normalizeError } from '../errors.js';
11
+ import { logger } from '../logging/logger.js';
12
+ /**
13
+ * Bridges a Strands Agent into the A2A protocol as an AgentExecutor.
14
+ *
15
+ * Converts A2A message parts to Strands content blocks, streams the agent
16
+ * execution, and publishes text deltas as artifact updates through the A2A
17
+ * event bus. Text chunks are appended to a single artifact as they arrive,
18
+ * implementing A2A-compliant streaming behavior.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { Agent } from '@strands-agents/sdk'
23
+ * import { A2AExecutor } from '@strands-agents/sdk/a2a'
24
+ *
25
+ * const agent = new Agent({ model: 'my-model' })
26
+ * const executor = new A2AExecutor(agent)
27
+ * ```
28
+ */
29
+ export class A2AExecutor {
30
+ _agent;
31
+ /**
32
+ * Creates a new A2AExecutor.
33
+ *
34
+ * @param agent - The agent to execute for incoming A2A requests
35
+ */
36
+ constructor(agent) {
37
+ this._agent = agent;
38
+ }
39
+ /**
40
+ * Executes the agent in response to an A2A message.
41
+ *
42
+ * Converts A2A message parts to Strands content blocks, then streams the
43
+ * agent execution. Text deltas are streamed incrementally into a single
44
+ * artifact; non-text content blocks (images, videos, documents) are each
45
+ * published as separate complete artifacts. A final artifact with
46
+ * `lastChunk: true` signals the end of the text artifact, followed by a
47
+ * completed status update.
48
+ *
49
+ * @param context - The A2A request context containing the user message
50
+ * @param eventBus - The event bus for publishing A2A artifact and status events
51
+ */
52
+ async execute(context, eventBus) {
53
+ const { taskId, contextId, userMessage } = context;
54
+ const contentBlocks = partsToContentBlocks(userMessage.parts);
55
+ if (contentBlocks.length === 0) {
56
+ throw A2AError.invalidRequest('No content blocks available');
57
+ }
58
+ // Publish initial task event to register the task with the ResultManager.
59
+ // Without this, artifact and status events are ignored as "unknown task".
60
+ eventBus.publish({ kind: 'task', id: taskId, contextId, status: { state: 'working' } });
61
+ const artifactId = globalThis.crypto.randomUUID();
62
+ let isFirstChunk = true;
63
+ try {
64
+ const stream = this._agent.stream(contentBlocks);
65
+ let next = await stream.next();
66
+ while (!next.done) {
67
+ const event = next.value;
68
+ // Stream text deltas incrementally into the text artifact
69
+ if (event instanceof ModelStreamUpdateEvent &&
70
+ event.event.type === 'modelContentBlockDeltaEvent' &&
71
+ event.event.delta.type === 'textDelta') {
72
+ eventBus.publish({
73
+ kind: 'artifact-update',
74
+ taskId,
75
+ contextId,
76
+ artifact: {
77
+ artifactId,
78
+ parts: [{ kind: 'text', text: event.event.delta.text }],
79
+ },
80
+ append: !isFirstChunk,
81
+ });
82
+ isFirstChunk = false;
83
+ }
84
+ // Publish non-text content blocks (images, videos, documents) as separate artifacts
85
+ if (event instanceof ContentBlockEvent && event.contentBlock.type !== 'textBlock') {
86
+ const parts = contentBlocksToParts([event.contentBlock]);
87
+ if (parts.length > 0) {
88
+ eventBus.publish({
89
+ kind: 'artifact-update',
90
+ taskId,
91
+ contextId,
92
+ artifact: { artifactId: globalThis.crypto.randomUUID(), parts },
93
+ append: false,
94
+ lastChunk: true,
95
+ });
96
+ }
97
+ }
98
+ next = await stream.next();
99
+ }
100
+ // Publish final artifact chunk to signal end of artifact
101
+ eventBus.publish({
102
+ kind: 'artifact-update',
103
+ taskId,
104
+ contextId,
105
+ artifact: {
106
+ artifactId,
107
+ // If no deltas were streamed, publish the full result; otherwise empty to close the artifact
108
+ parts: [{ kind: 'text', text: isFirstChunk && next.value ? next.value.toString() : '' }],
109
+ },
110
+ append: !isFirstChunk, // false for new artifact, true to append to streamed chunks
111
+ lastChunk: true, // Always true — this runs after the stream loop ends
112
+ });
113
+ eventBus.publish({ kind: 'status-update', taskId, contextId, status: { state: 'completed' }, final: true });
114
+ }
115
+ catch (error) {
116
+ logger.error(`task_id=<${taskId}> | error in streaming execution`, normalizeError(error));
117
+ throw error;
118
+ }
119
+ }
120
+ /**
121
+ * Cancels a running task. Not supported by this executor.
122
+ *
123
+ * @param taskId - The ID of the task to cancel
124
+ * @param eventBus - The event bus for publishing status events
125
+ */
126
+ async cancelTask(_taskId, _eventBus) {
127
+ throw A2AError.unsupportedOperation('Task cancellation is not supported');
128
+ }
129
+ }
130
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/a2a/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Express-based A2A server that exposes a Strands Agent as an A2A-compliant HTTP endpoint.
3
+ *
4
+ * Separated from the base {@link A2AServer} so that importing the core A2A module
5
+ * does not pull in Express as a dependency, keeping it browser-compatible.
6
+ *
7
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
8
+ * may require breaking changes in this module.
9
+ */
10
+ import { type Router } from 'express';
11
+ import { UserBuilder } from '@a2a-js/sdk/server/express';
12
+ import { A2AServer, type A2AServerConfig } from './server.js';
13
+ /**
14
+ * Configuration options for creating an A2AExpressServer.
15
+ */
16
+ export interface A2AExpressServerConfig extends A2AServerConfig {
17
+ /** Host to bind the server to (default: '127.0.0.1') */
18
+ host?: string;
19
+ /** Port to listen on (default: 9000) */
20
+ port?: number;
21
+ /** User builder for authentication (default: no authentication) */
22
+ userBuilder?: UserBuilder;
23
+ }
24
+ /**
25
+ * Express-based A2A server implementation.
26
+ *
27
+ * Provides two usage modes:
28
+ * - **Standalone**: Call {@link serve} to start a self-contained HTTP server.
29
+ * - **Middleware**: Call {@link createMiddleware} to get an Express Router that
30
+ * can be mounted in an existing Express application.
31
+ */
32
+ export declare class A2AExpressServer extends A2AServer {
33
+ private _host;
34
+ private _port;
35
+ private _userBuilder;
36
+ /**
37
+ * Creates a new A2AExpressServer.
38
+ *
39
+ * @param config - Configuration for the server
40
+ */
41
+ constructor(config: A2AExpressServerConfig);
42
+ /**
43
+ * Returns the port the server is configured to listen on.
44
+ * After `serve()` resolves, this reflects the actual bound port
45
+ * (useful when configured with port 0 for OS-assigned ports).
46
+ */
47
+ get port(): number;
48
+ /**
49
+ * Creates an Express Router middleware for the A2A endpoints.
50
+ *
51
+ * Mounts:
52
+ * - `GET /.well-known/agent-card.json` — Returns the agent card
53
+ * - `POST /` — Handles A2A JSON-RPC requests
54
+ *
55
+ * @returns An Express Router with A2A endpoints mounted
56
+ */
57
+ createMiddleware(): Router;
58
+ /**
59
+ * Starts the HTTP server and begins listening for A2A requests.
60
+ *
61
+ * @param options - Optional server options
62
+ */
63
+ serve(options?: {
64
+ signal?: AbortSignal;
65
+ }): Promise<void>;
66
+ }
67
+ //# sourceMappingURL=express-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express-server.d.ts","sourceRoot":"","sources":["../../../src/a2a/express-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAoC,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7D;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAyB;IAE7C;;;;OAIG;gBACS,MAAM,EAAE,sBAAsB;IAY1C;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,gBAAgB,IAAI,MAAM;IAkB1B;;;;OAIG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B/D"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Express-based A2A server that exposes a Strands Agent as an A2A-compliant HTTP endpoint.
3
+ *
4
+ * Separated from the base {@link A2AServer} so that importing the core A2A module
5
+ * does not pull in Express as a dependency, keeping it browser-compatible.
6
+ *
7
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
8
+ * may require breaking changes in this module.
9
+ */
10
+ import express, {} from 'express';
11
+ import { agentCardHandler, jsonRpcHandler, UserBuilder } from '@a2a-js/sdk/server/express';
12
+ import { A2AServer } from './server.js';
13
+ import { logExperimentalWarning } from './logging.js';
14
+ import { logger } from '../logging/logger.js';
15
+ /**
16
+ * Express-based A2A server implementation.
17
+ *
18
+ * Provides two usage modes:
19
+ * - **Standalone**: Call {@link serve} to start a self-contained HTTP server.
20
+ * - **Middleware**: Call {@link createMiddleware} to get an Express Router that
21
+ * can be mounted in an existing Express application.
22
+ */
23
+ export class A2AExpressServer extends A2AServer {
24
+ _host;
25
+ _port;
26
+ _userBuilder;
27
+ /**
28
+ * Creates a new A2AExpressServer.
29
+ *
30
+ * @param config - Configuration for the server
31
+ */
32
+ constructor(config) {
33
+ const host = config.host ?? '127.0.0.1';
34
+ const port = config.port ?? 9000;
35
+ const httpUrl = config.httpUrl ?? `http://${host}:${port}`;
36
+ super({ ...config, httpUrl });
37
+ this._host = host;
38
+ this._port = port;
39
+ this._userBuilder = config.userBuilder;
40
+ }
41
+ /**
42
+ * Returns the port the server is configured to listen on.
43
+ * After `serve()` resolves, this reflects the actual bound port
44
+ * (useful when configured with port 0 for OS-assigned ports).
45
+ */
46
+ get port() {
47
+ return this._port;
48
+ }
49
+ /**
50
+ * Creates an Express Router middleware for the A2A endpoints.
51
+ *
52
+ * Mounts:
53
+ * - `GET /.well-known/agent-card.json` — Returns the agent card
54
+ * - `POST /` — Handles A2A JSON-RPC requests
55
+ *
56
+ * @returns An Express Router with A2A endpoints mounted
57
+ */
58
+ createMiddleware() {
59
+ logExperimentalWarning();
60
+ const router = express.Router();
61
+ router.use('/.well-known/agent-card.json', agentCardHandler({ agentCardProvider: this._requestHandler }));
62
+ router.use('/', jsonRpcHandler({
63
+ requestHandler: this._requestHandler,
64
+ userBuilder: this._userBuilder ?? UserBuilder.noAuthentication,
65
+ }));
66
+ return router;
67
+ }
68
+ /**
69
+ * Starts the HTTP server and begins listening for A2A requests.
70
+ *
71
+ * @param options - Optional server options
72
+ */
73
+ async serve(options) {
74
+ const app = express();
75
+ app.use(this.createMiddleware());
76
+ return new Promise((resolve, reject) => {
77
+ const server = app.listen(this._port, this._host, () => {
78
+ const addr = server.address();
79
+ if (addr && typeof addr === 'object') {
80
+ this._port = addr.port;
81
+ this._agentCard.url = `http://${this._host}:${this._port}`;
82
+ }
83
+ logger.info(`a2a server listening on http://${this._host}:${this._port}`);
84
+ resolve();
85
+ });
86
+ server.on('error', reject);
87
+ if (options?.signal) {
88
+ options.signal.addEventListener('abort', () => {
89
+ server.close();
90
+ }, { once: true });
91
+ }
92
+ });
93
+ }
94
+ }
95
+ //# sourceMappingURL=express-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express-server.js","sourceRoot":"","sources":["../../../src/a2a/express-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A2A (Agent-to-Agent) protocol support for the Strands Agents SDK.
3
+ *
4
+ * This module provides server and client components for the A2A protocol,
5
+ * allowing Strands agents to communicate with other agents across platforms.
6
+ *
7
+ * @remarks
8
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
9
+ * may require breaking changes in this module.
10
+ */
11
+ export { A2AServer, type A2AServerConfig } from './server.js';
12
+ export { A2AExpressServer, type A2AExpressServerConfig } from './express-server.js';
13
+ export { A2AAgent, type A2AAgentConfig } from './a2a-agent.js';
14
+ export { A2AStreamUpdateEvent, A2AResultEvent, type A2AEventData, type A2AStreamEvent } from './events.js';
15
+ export { A2AExecutor } from './executor.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A2A (Agent-to-Agent) protocol support for the Strands Agents SDK.
3
+ *
4
+ * This module provides server and client components for the A2A protocol,
5
+ * allowing Strands agents to communicate with other agents across platforms.
6
+ *
7
+ * @remarks
8
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
9
+ * may require breaking changes in this module.
10
+ */
11
+ export { A2AServer } from './server.js';
12
+ export { A2AExpressServer } from './express-server.js';
13
+ export { A2AAgent } from './a2a-agent.js';
14
+ export { A2AStreamUpdateEvent, A2AResultEvent } from './events.js';
15
+ export { A2AExecutor } from './executor.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/a2a/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAuB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAA0C,MAAM,aAAa,CAAA;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared experimental warning for A2A protocol modules.
3
+ */
4
+ /**
5
+ * Logs a one-time warning that the A2A protocol is experimental.
6
+ */
7
+ export declare function logExperimentalWarning(): void;
8
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../../src/a2a/logging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared experimental warning for A2A protocol modules.
3
+ */
4
+ import { logger } from '../logging/logger.js';
5
+ let _logged = false;
6
+ /**
7
+ * Logs a one-time warning that the A2A protocol is experimental.
8
+ */
9
+ export function logExperimentalWarning() {
10
+ if (!_logged) {
11
+ _logged = true;
12
+ logger.warn('protocol=<a2a> | experimental, breaking changes in the underlying sdk may require breaking changes in this module');
13
+ }
14
+ }
15
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/a2a/logging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,IAAI,OAAO,GAAG,KAAK,CAAA;AAEnB;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,CAAA;QACd,MAAM,CAAC,IAAI,CACT,mHAAmH,CACpH,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Base A2A server that manages agent card and request handler setup.
3
+ *
4
+ * This module is browser-compatible. For Express-based HTTP serving,
5
+ * see {@link A2AExpressServer} in `./express-server.ts`.
6
+ *
7
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
8
+ * may require breaking changes in this module.
9
+ */
10
+ import type { AgentCard, AgentSkill } from '@a2a-js/sdk';
11
+ import type { TaskStore, A2ARequestHandler } from '@a2a-js/sdk/server';
12
+ import type { InvokableAgent } from '../types/agent.js';
13
+ /**
14
+ * Configuration options for creating an A2AServer.
15
+ */
16
+ export interface A2AServerConfig {
17
+ /** The Strands Agent to serve via A2A protocol */
18
+ agent: InvokableAgent;
19
+ /** Human-readable name for the agent */
20
+ name: string;
21
+ /** Optional description of the agent's purpose */
22
+ description?: string;
23
+ /** Public URL override for the agent card */
24
+ httpUrl?: string;
25
+ /** Version string for the agent card (default: '0.0.1') */
26
+ version?: string;
27
+ /** Skills to advertise in the agent card */
28
+ skills?: AgentSkill[];
29
+ /** Task store for persisting task state */
30
+ taskStore?: TaskStore;
31
+ }
32
+ /**
33
+ * Base A2A server that manages agent card and request handler setup.
34
+ *
35
+ * Subclass this to integrate with different HTTP frameworks. For Express,
36
+ * use {@link A2AExpressServer}.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * import { Agent } from '@strands-agents/sdk'
41
+ * import { A2AExpressServer } from '@strands-agents/sdk/a2a'
42
+ *
43
+ * const agent = new Agent({ model: 'my-model' })
44
+ * const server = new A2AExpressServer({
45
+ * agent,
46
+ * name: 'My Agent',
47
+ * description: 'An agent that helps with tasks',
48
+ * })
49
+ *
50
+ * await server.serve()
51
+ * ```
52
+ */
53
+ export declare class A2AServer {
54
+ protected _agentCard: AgentCard;
55
+ protected _requestHandler: A2ARequestHandler;
56
+ /**
57
+ * Creates a new A2AServer.
58
+ *
59
+ * @param config - Configuration for the server
60
+ */
61
+ constructor(config: A2AServerConfig);
62
+ /**
63
+ * Returns the agent card for this server.
64
+ */
65
+ get agentCard(): AgentCard;
66
+ }
67
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/a2a/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,KAAK,EAAE,cAAc,CAAA;IACrB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;IACrB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAS;IACpB,SAAS,CAAC,UAAU,EAAE,SAAS,CAAA;IAC/B,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAA;IAE5C;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAsBnC;;OAEG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;CACF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Base A2A server that manages agent card and request handler setup.
3
+ *
4
+ * This module is browser-compatible. For Express-based HTTP serving,
5
+ * see {@link A2AExpressServer} in `./express-server.ts`.
6
+ *
7
+ * The A2A protocol is experimental, so breaking changes in the underlying SDK
8
+ * may require breaking changes in this module.
9
+ */
10
+ import { DefaultRequestHandler, InMemoryTaskStore } from '@a2a-js/sdk/server';
11
+ import { A2AExecutor } from './executor.js';
12
+ /**
13
+ * Base A2A server that manages agent card and request handler setup.
14
+ *
15
+ * Subclass this to integrate with different HTTP frameworks. For Express,
16
+ * use {@link A2AExpressServer}.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { Agent } from '@strands-agents/sdk'
21
+ * import { A2AExpressServer } from '@strands-agents/sdk/a2a'
22
+ *
23
+ * const agent = new Agent({ model: 'my-model' })
24
+ * const server = new A2AExpressServer({
25
+ * agent,
26
+ * name: 'My Agent',
27
+ * description: 'An agent that helps with tasks',
28
+ * })
29
+ *
30
+ * await server.serve()
31
+ * ```
32
+ */
33
+ export class A2AServer {
34
+ _agentCard;
35
+ _requestHandler;
36
+ /**
37
+ * Creates a new A2AServer.
38
+ *
39
+ * @param config - Configuration for the server
40
+ */
41
+ constructor(config) {
42
+ const httpUrl = config.httpUrl ?? '';
43
+ this._agentCard = {
44
+ name: config.name,
45
+ description: config.description ?? '',
46
+ version: config.version ?? '0.0.1',
47
+ protocolVersion: '0.2.0',
48
+ url: httpUrl,
49
+ defaultInputModes: ['text/plain'],
50
+ defaultOutputModes: ['text/plain'],
51
+ skills: config.skills ?? [],
52
+ capabilities: {
53
+ streaming: true,
54
+ },
55
+ };
56
+ const taskStore = config.taskStore ?? new InMemoryTaskStore();
57
+ const executor = new A2AExecutor(config.agent);
58
+ this._requestHandler = new DefaultRequestHandler(this._agentCard, taskStore, executor);
59
+ }
60
+ /**
61
+ * Returns the agent card for this server.
62
+ */
63
+ get agentCard() {
64
+ return this._agentCard;
65
+ }
66
+ }
67
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/a2a/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAsB3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAS;IACV,UAAU,CAAW;IACrB,eAAe,CAAmB;IAE5C;;;;OAIG;IACH,YAAY,MAAuB;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;YAClC,eAAe,EAAE,OAAO;YACxB,GAAG,EAAE,OAAO;YACZ,iBAAiB,EAAE,CAAC,YAAY,CAAC;YACjC,kBAAkB,EAAE,CAAC,YAAY,CAAC;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,YAAY,EAAE;gBACZ,SAAS,EAAE,IAAI;aAChB;SACF,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,iBAAiB,EAAE,CAAA;QAC7D,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACxF,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF"}