@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 @@
1
+ {"version":3,"file":"multiagent.d.ts","sourceRoot":"","sources":["../../../src/multiagent/multiagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC,CAAA;AAE5E;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEzD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAElG;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;CACjH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multiagent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiagent.js","sourceRoot":"","sources":["../../../src/multiagent/multiagent.ts"],"names":[],"mappings":""}
@@ -1,8 +1,9 @@
1
- import type { Agent, InvokeArgs } from '../agent/agent.js';
1
+ import type { InvokableAgent } from '../types/agent.js';
2
+ import type { MultiAgentInput } from './multiagent.js';
2
3
  import type { MultiAgentStreamEvent } from './events.js';
3
4
  import { NodeResult } from './state.js';
4
5
  import type { MultiAgentState, NodeResultUpdate } from './state.js';
5
- import type { MultiAgentBase } from './base.js';
6
+ import type { MultiAgent } from './multiagent.js';
6
7
  /**
7
8
  * Known node type identifiers with extensibility for custom nodes.
8
9
  */
@@ -38,38 +39,38 @@ export declare abstract class Node {
38
39
  * Execute the node. Handles duration measurement, error capture,
39
40
  * and delegates to handle() for node-specific logic.
40
41
  *
41
- * @param args - Input to pass to the node (string, content blocks, or messages)
42
+ * @param args - Input to pass to the node (string or content blocks)
42
43
  * @param state - The current multi-agent state
43
44
  * @returns Async generator yielding streaming events and returning a NodeResult
44
45
  */
45
- stream(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResult, undefined>;
46
+ stream(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResult, undefined>;
46
47
  /**
47
48
  * Node-specific execution logic implemented by subclasses.
48
49
  *
49
- * @param args - Input to process (string, content blocks, or messages)
50
+ * @param args - Input to process (string or content blocks)
50
51
  * @param state - The current multi-agent state
51
52
  * @returns Async generator yielding streaming events and returning a partial result
52
53
  */
53
- abstract handle(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
54
+ abstract handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
54
55
  }
55
56
  /**
56
57
  * Options for creating an {@link AgentNode}.
57
58
  */
58
59
  export interface AgentNodeOptions {
59
60
  /** The agent to wrap as a node. */
60
- agent: Agent;
61
+ agent: InvokableAgent;
61
62
  }
62
63
  /**
63
- * Node that wraps an Agent instance for multi-agent orchestration.
64
+ * Node that wraps an {@link InvokableAgent} instance for multi-agent orchestration.
64
65
  *
65
- * Each execution is isolated the wrapped agent's internal state
66
- * is unchanged after the node completes.
66
+ * Each execution is isolated. When the wrapped agent is an {@link Agent} instance,
67
+ * its internal state is snapshot/restored so it remains unchanged after the node completes.
67
68
  */
68
69
  export declare class AgentNode extends Node {
69
70
  readonly type: "agentNode";
70
71
  private readonly _agent;
71
72
  constructor(options: AgentNodeOptions);
72
- get agent(): Agent;
73
+ get agent(): InvokableAgent;
73
74
  /**
74
75
  * Executes the wrapped agent, yielding each agent streaming event
75
76
  * wrapped in a {@link NodeStreamUpdateEvent}.
@@ -78,14 +79,14 @@ export declare class AgentNode extends Node {
78
79
  * @param state - The current multi-agent state
79
80
  * @returns Async generator yielding streaming events and returning the agent's content blocks
80
81
  */
81
- handle(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
82
+ handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
82
83
  }
83
84
  /**
84
85
  * Options for creating a {@link MultiAgentNode}.
85
86
  */
86
87
  export interface MultiAgentNodeOptions extends NodeConfig {
87
88
  /** The orchestrator to wrap as a node. */
88
- orchestrator: MultiAgentBase;
89
+ orchestrator: MultiAgent;
89
90
  }
90
91
  /**
91
92
  * Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
@@ -98,7 +99,7 @@ export declare class MultiAgentNode extends Node {
98
99
  readonly type: "multiAgentNode";
99
100
  private readonly _orchestrator;
100
101
  constructor(options: MultiAgentNodeOptions);
101
- get orchestrator(): MultiAgentBase;
102
+ get orchestrator(): MultiAgent;
102
103
  /**
103
104
  * Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
104
105
  * pass through as-is; all other events are wrapped in a new
@@ -108,18 +109,14 @@ export declare class MultiAgentNode extends Node {
108
109
  * @param _state - The current multi-agent state (unused)
109
110
  * @returns Async generator yielding streaming events and returning the orchestrator's content
110
111
  */
111
- handle(args: InvokeArgs, _state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
112
+ handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
112
113
  }
113
114
  /**
114
115
  * A node definition accepted by orchestration constructors.
115
116
  *
116
- * Pass an {@link Agent} or {@link MultiAgentBase} directly for the simple case,
117
+ * Pass an {@link InvokableAgent} or {@link MultiAgent} directly for the simple case,
117
118
  * use typed options objects for per-node configuration, or provide pre-built
118
119
  * {@link Node} instances for full control.
119
120
  */
120
- export type NodeDefinition = Agent | MultiAgentBase | Node | (AgentNodeOptions & {
121
- type: 'agent';
122
- }) | (MultiAgentNodeOptions & {
123
- type: 'multiAgent';
124
- });
121
+ export type NodeDefinition = InvokableAgent | MultiAgent | Node | AgentNodeOptions | MultiAgentNodeOptions;
125
122
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,UAAU,EAAU,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAG/C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,8BAAsB,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAE3B;;;OAGG;gBACS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAK1C;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,UAAU,EAAE,SAAS,CAAC;IAgC/D;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CACb,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,IAAI;IACjC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;gBAElB,OAAO,EAAE,gBAAgB;IAWrC,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CAsBtE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,0CAA0C;IAC1C,YAAY,EAAE,cAAc,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACtC,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE,qBAAqB;IAM1C,IAAI,YAAY,IAAI,cAAc,CAEjC;IAED;;;;;;;;OAQG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CActE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,cAAc,GACd,IAAI,GACJ,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GACtC,CAAC,qBAAqB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAoB,MAAM,mBAAmB,CAAA;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,UAAU,EAAU,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGjD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,8BAAsB,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAE3B;;;OAGG;gBACS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAK1C;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,UAAU,EAAE,SAAS,CAAC;IAgC/D;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CACb,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,KAAK,EAAE,cAAc,CAAA;CACtB;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,IAAI;IACjC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,OAAO,EAAE,gBAAgB;IAWrC,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CAkCtE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,0CAA0C;IAC1C,YAAY,EAAE,UAAU,CAAA;CACzB;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACtC,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;gBAE9B,OAAO,EAAE,qBAAqB;IAM1C,IAAI,YAAY,IAAI,UAAU,CAE7B;IAED;;;;;;;;OAQG;IACI,MAAM,CACX,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CAmBtE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,gBAAgB,GAAG,qBAAqB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { Agent } from '../agent/agent.js';
1
2
  import { takeSnapshot, loadSnapshot } from '../agent/snapshot.js';
2
3
  import { NodeStreamUpdateEvent, NodeResultEvent } from './events.js';
3
4
  import { NodeResult, Status } from './state.js';
@@ -27,7 +28,7 @@ export class Node {
27
28
  * Execute the node. Handles duration measurement, error capture,
28
29
  * and delegates to handle() for node-specific logic.
29
30
  *
30
- * @param args - Input to pass to the node (string, content blocks, or messages)
31
+ * @param args - Input to pass to the node (string or content blocks)
31
32
  * @param state - The current multi-agent state
32
33
  * @returns Async generator yielding streaming events and returning a NodeResult
33
34
  */
@@ -59,22 +60,22 @@ export class Node {
59
60
  nodeState.status = result.status;
60
61
  nodeState.results.push(result);
61
62
  }
62
- yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, result });
63
+ yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, state, result });
63
64
  return result;
64
65
  }
65
66
  }
66
67
  /**
67
- * Node that wraps an Agent instance for multi-agent orchestration.
68
+ * Node that wraps an {@link InvokableAgent} instance for multi-agent orchestration.
68
69
  *
69
- * Each execution is isolated the wrapped agent's internal state
70
- * is unchanged after the node completes.
70
+ * Each execution is isolated. When the wrapped agent is an {@link Agent} instance,
71
+ * its internal state is snapshot/restored so it remains unchanged after the node completes.
71
72
  */
72
73
  export class AgentNode extends Node {
73
74
  type = 'agentNode';
74
75
  _agent;
75
76
  constructor(options) {
76
77
  const { agent, ...config } = options;
77
- super(agent.agentId, {
78
+ super(agent.id, {
78
79
  ...config,
79
80
  ...(agent.description !== undefined && { description: agent.description }),
80
81
  });
@@ -92,7 +93,8 @@ export class AgentNode extends Node {
92
93
  * @returns Async generator yielding streaming events and returning the agent's content blocks
93
94
  */
94
95
  async *handle(args, state) {
95
- const snapshot = takeSnapshot(this._agent, { include: ['messages', 'state'] });
96
+ // Only Agent instances support snapshot/restore for state isolation
97
+ const snapshot = this._agent instanceof Agent ? takeSnapshot(this._agent, { include: ['messages', 'state'] }) : undefined;
96
98
  try {
97
99
  const options = {
98
100
  ...(state.structuredOutputSchema && { structuredOutputSchema: state.structuredOutputSchema }),
@@ -100,7 +102,14 @@ export class AgentNode extends Node {
100
102
  const gen = this._agent.stream(args, options);
101
103
  let next = await gen.next();
102
104
  while (!next.done) {
103
- yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event: next.value });
105
+ yield new NodeStreamUpdateEvent({
106
+ nodeId: this.id,
107
+ nodeType: this.type,
108
+ state,
109
+ inner: this._agent instanceof Agent
110
+ ? { source: 'agent', event: next.value }
111
+ : { source: 'custom', event: next.value },
112
+ });
104
113
  next = await gen.next();
105
114
  }
106
115
  return {
@@ -109,7 +118,9 @@ export class AgentNode extends Node {
109
118
  };
110
119
  }
111
120
  finally {
112
- loadSnapshot(this._agent, snapshot);
121
+ if (snapshot) {
122
+ loadSnapshot(this._agent, snapshot);
123
+ }
113
124
  }
114
125
  }
115
126
  }
@@ -140,7 +151,7 @@ export class MultiAgentNode extends Node {
140
151
  * @param _state - The current multi-agent state (unused)
141
152
  * @returns Async generator yielding streaming events and returning the orchestrator's content
142
153
  */
143
- async *handle(args, _state) {
154
+ async *handle(args, state) {
144
155
  const gen = this._orchestrator.stream(args);
145
156
  let next = await gen.next();
146
157
  while (!next.done) {
@@ -149,7 +160,12 @@ export class MultiAgentNode extends Node {
149
160
  yield event;
150
161
  }
151
162
  else {
152
- yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event });
163
+ yield new NodeStreamUpdateEvent({
164
+ nodeId: this.id,
165
+ nodeType: this.type,
166
+ state,
167
+ inner: { source: 'multiAgent', event },
168
+ });
153
169
  }
154
170
  next = await gen.next();
155
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Plugin interface and registry for extending multi-agent orchestrator functionality.
3
+ *
4
+ * This module defines the MultiAgentPlugin abstract class and MultiAgentPluginRegistry,
5
+ * which provide a composable way to add behavior to multi-agent orchestrators (e.g. Swarm, Graph)
6
+ * through hook registration and custom initialization.
7
+ */
8
+ import type { MultiAgent } from './multiagent.js';
9
+ /**
10
+ * Abstract base class for plugins that extend multi-agent orchestrator functionality.
11
+ *
12
+ * MultiAgentPlugins provide a composable way to add behavior to orchestrators
13
+ * by registering hook callbacks in their `initMultiAgent` method.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * class LoggingPlugin extends MultiAgentPlugin {
18
+ * get name(): string {
19
+ * return 'logging-plugin'
20
+ * }
21
+ *
22
+ * override initMultiAgent(orchestrator: MultiAgent): void {
23
+ * orchestrator.addHook(BeforeNodeCallEvent, (event) => {
24
+ * console.log(`Node ${event.nodeId} starting`)
25
+ * })
26
+ * }
27
+ * }
28
+ *
29
+ * const swarm = new Swarm({
30
+ * nodes: [agentA, agentB],
31
+ * start: 'agentA',
32
+ * plugins: [new LoggingPlugin()],
33
+ * })
34
+ * ```
35
+ */
36
+ export declare abstract class MultiAgentPlugin {
37
+ /**
38
+ * A stable string identifier for the plugin.
39
+ * Used for logging, duplicate detection, and plugin management.
40
+ */
41
+ abstract readonly name: string;
42
+ /**
43
+ * Initialize the plugin with the orchestrator instance.
44
+ *
45
+ * Override this method to register hooks and perform custom initialization.
46
+ *
47
+ * @param orchestrator - The orchestrator this plugin is being attached to
48
+ */
49
+ abstract initMultiAgent(orchestrator: MultiAgent): void | Promise<void>;
50
+ }
51
+ /**
52
+ * Registry for managing plugins attached to a multi-agent orchestrator.
53
+ *
54
+ * Holds pending plugins and initializes them on first use.
55
+ * Handles duplicate detection and calls each plugin's initMultiAgent method.
56
+ */
57
+ export declare class MultiAgentPluginRegistry {
58
+ private readonly _plugins;
59
+ private readonly _pending;
60
+ constructor(plugins?: MultiAgentPlugin[]);
61
+ /**
62
+ * Initialize all pending plugins with the orchestrator.
63
+ * Safe to call multiple times — only runs once.
64
+ *
65
+ * @param orchestrator - The orchestrator instance to initialize plugins with
66
+ */
67
+ initialize(orchestrator: MultiAgent): Promise<void>;
68
+ private _addAndInit;
69
+ }
70
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/multiagent/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,gBAAgB;IACpC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAE9B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CACxE;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,OAAO,GAAE,gBAAgB,EAAO;IAK5C;;;;;OAKG;IACG,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAO3C,WAAW;CAO1B"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Plugin interface and registry for extending multi-agent orchestrator functionality.
3
+ *
4
+ * This module defines the MultiAgentPlugin abstract class and MultiAgentPluginRegistry,
5
+ * which provide a composable way to add behavior to multi-agent orchestrators (e.g. Swarm, Graph)
6
+ * through hook registration and custom initialization.
7
+ */
8
+ /**
9
+ * Abstract base class for plugins that extend multi-agent orchestrator functionality.
10
+ *
11
+ * MultiAgentPlugins provide a composable way to add behavior to orchestrators
12
+ * by registering hook callbacks in their `initMultiAgent` method.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * class LoggingPlugin extends MultiAgentPlugin {
17
+ * get name(): string {
18
+ * return 'logging-plugin'
19
+ * }
20
+ *
21
+ * override initMultiAgent(orchestrator: MultiAgent): void {
22
+ * orchestrator.addHook(BeforeNodeCallEvent, (event) => {
23
+ * console.log(`Node ${event.nodeId} starting`)
24
+ * })
25
+ * }
26
+ * }
27
+ *
28
+ * const swarm = new Swarm({
29
+ * nodes: [agentA, agentB],
30
+ * start: 'agentA',
31
+ * plugins: [new LoggingPlugin()],
32
+ * })
33
+ * ```
34
+ */
35
+ export class MultiAgentPlugin {
36
+ }
37
+ /**
38
+ * Registry for managing plugins attached to a multi-agent orchestrator.
39
+ *
40
+ * Holds pending plugins and initializes them on first use.
41
+ * Handles duplicate detection and calls each plugin's initMultiAgent method.
42
+ */
43
+ export class MultiAgentPluginRegistry {
44
+ _plugins;
45
+ _pending;
46
+ constructor(plugins = []) {
47
+ this._plugins = new Map();
48
+ this._pending = [...plugins];
49
+ }
50
+ /**
51
+ * Initialize all pending plugins with the orchestrator.
52
+ * Safe to call multiple times — only runs once.
53
+ *
54
+ * @param orchestrator - The orchestrator instance to initialize plugins with
55
+ */
56
+ async initialize(orchestrator) {
57
+ while (this._pending.length > 0) {
58
+ const plugin = this._pending.shift();
59
+ await this._addAndInit(plugin, orchestrator);
60
+ }
61
+ }
62
+ async _addAndInit(plugin, orchestrator) {
63
+ if (this._plugins.has(plugin.name)) {
64
+ throw new Error(`plugin_name=<${plugin.name}> | plugin already registered`);
65
+ }
66
+ this._plugins.set(plugin.name, plugin);
67
+ await plugin.initMultiAgent(orchestrator);
68
+ }
69
+ }
70
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/multiagent/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,gBAAgB;CAerC;AAED;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAClB,QAAQ,CAA+B;IACvC,QAAQ,CAAoB;IAE7C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,YAAwB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAA;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAwB,EAAE,YAAwB;QAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,+BAA+B,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtC,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAC3C,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { AppState } from '../app-state.js';
1
+ import { StateStore } from '../state-store.js';
2
2
  import type { ContentBlock } from '../types/messages.js';
3
3
  import type { z } from 'zod';
4
4
  /**
@@ -101,7 +101,7 @@ export declare class MultiAgentState {
101
101
  /** All node results in completion order. */
102
102
  readonly results: NodeResult[];
103
103
  /** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
104
- readonly app: AppState;
104
+ readonly app: StateStore;
105
105
  /** Structured output schema to apply to node invocations. */
106
106
  readonly structuredOutputSchema?: z.ZodSchema;
107
107
  private readonly _nodes;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,qCAAqC;;IAErC,0CAA0C;;IAE1C,uCAAuC;;IAEvC,sCAAsC;;IAEtC,2DAA2D;;CAEnD,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,SAAS,CAAA;AAEnG;;GAEG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBAEnC,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,YAAY,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;QACxB,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACvC;CAQF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhE;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAA;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;;IAS9B,mEAAmE;IACnE,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAGrC;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;gBAEV,IAAI,EAAE;QAChB,MAAM,CAAC,EAAE,YAAY,CAAA;QACrB,OAAO,EAAE,UAAU,EAAE,CAAA;QACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;QACxB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,KAAK,CAAA;KACd;IAQD,iEAAiE;IACjE,OAAO,CAAC,cAAc;CAKvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;KAAE;IAY/E;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIvC;;OAEG;IACH,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAE1C;CACF"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AppState } from '../app-state.js';
1
+ import { StateStore } from '../state-store.js';
2
2
  /**
3
3
  * Execution lifecycle status shared across all multi-agent patterns.
4
4
  */
@@ -108,7 +108,7 @@ export class MultiAgentState {
108
108
  this.startTime = Date.now();
109
109
  this.steps = 0;
110
110
  this.results = [];
111
- this.app = new AppState();
111
+ this.app = new StateStore();
112
112
  if (data?.structuredOutputSchema)
113
113
  this.structuredOutputSchema = data.structuredOutputSchema;
114
114
  this._nodes = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { Agent } from '../agent/agent.js';
2
- import type { InvokeArgs } from '../agent/agent.js';
3
- import { HookRegistryImplementation } from '../hooks/registry.js';
4
- import type { HookProvider } from '../hooks/types.js';
1
+ import type { InvokableAgent } from '../types/agent.js';
2
+ import type { MultiAgentInput } from './multiagent.js';
3
+ import { HookableEvent } from '../hooks/events.js';
4
+ import type { HookCallback, HookableEventConstructor, HookCleanup } from '../hooks/types.js';
5
+ import type { MultiAgentPlugin } from './plugins.js';
5
6
  import type { AgentNodeOptions } from './nodes.js';
6
7
  import { AgentNode } from './nodes.js';
7
8
  import { MultiAgentResult } from './state.js';
8
- import type { MultiAgentBase } from './base.js';
9
+ import type { MultiAgent } from './multiagent.js';
9
10
  import type { MultiAgentStreamEvent } from './events.js';
10
11
  /**
11
12
  * Runtime configuration for swarm execution.
@@ -18,19 +19,19 @@ export interface SwarmConfig {
18
19
  * Options for creating a Swarm instance.
19
20
  */
20
21
  /**
21
- * Input type for swarm nodes. Pass an {@link Agent} directly for the simple case,
22
+ * Input type for swarm nodes. Pass an {@link InvokableAgent} directly for the simple case,
22
23
  * or {@link AgentNodeOptions} for per-node config.
23
24
  */
24
- export type SwarmNodeDefinition = Agent | AgentNodeOptions;
25
+ export type SwarmNodeDefinition = InvokableAgent | AgentNodeOptions;
25
26
  export interface SwarmOptions extends SwarmConfig {
26
27
  /** Unique identifier. Defaults to `'swarm'`. */
27
28
  id?: string;
28
29
  /** Swarm agents. Pass agents directly or use {@link AgentNodeOptions} for per-node config. */
29
30
  nodes: SwarmNodeDefinition[];
30
- /** Agent id that receives the initial input. */
31
- start: string;
32
- /** Hook providers for event-driven extensibility. */
33
- hooks?: HookProvider[];
31
+ /** Agent id that receives the initial input. Defaults to the first agent in `nodes`. */
32
+ start?: string;
33
+ /** Plugins for event-driven extensibility. */
34
+ plugins?: MultiAgentPlugin[];
34
35
  }
35
36
  /**
36
37
  * Swarm multi-agent orchestration pattern.
@@ -60,12 +61,13 @@ export interface SwarmOptions extends SwarmConfig {
60
61
  * const result = await swarm.invoke('Explain quantum computing')
61
62
  * ```
62
63
  */
63
- export declare class Swarm implements MultiAgentBase {
64
+ export declare class Swarm implements MultiAgent {
64
65
  readonly id: string;
65
66
  readonly nodes: ReadonlyMap<string, AgentNode>;
66
67
  readonly config: Required<SwarmConfig>;
67
- readonly hooks: HookRegistryImplementation;
68
- private readonly _start;
68
+ private readonly _pluginRegistry;
69
+ private readonly _hookRegistry;
70
+ readonly start: AgentNode;
69
71
  private readonly _handoffSchema;
70
72
  private _initialized;
71
73
  constructor(options: SwarmOptions);
@@ -74,13 +76,21 @@ export declare class Swarm implements MultiAgentBase {
74
76
  * Called automatically on first invocation.
75
77
  */
76
78
  initialize(): Promise<void>;
79
+ /**
80
+ * Register a hook callback for a specific swarm event type.
81
+ *
82
+ * @param eventType - The event class constructor to register the callback for
83
+ * @param callback - The callback function to invoke when the event occurs
84
+ * @returns Cleanup function that removes the callback when invoked
85
+ */
86
+ addHook<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
77
87
  /**
78
88
  * Invoke swarm and return final result (consumes stream).
79
89
  *
80
90
  * @param input - The input to pass to the start agent
81
91
  * @returns Promise resolving to the final MultiAgentResult
82
92
  */
83
- invoke(input: InvokeArgs): Promise<MultiAgentResult>;
93
+ invoke(input: MultiAgentInput): Promise<MultiAgentResult>;
84
94
  /**
85
95
  * Stream swarm execution, yielding events as agents execute.
86
96
  * Invokes hook callbacks for each event before yielding.
@@ -88,7 +98,7 @@ export declare class Swarm implements MultiAgentBase {
88
98
  * @param input - The input to pass to the start agent
89
99
  * @returns Async generator yielding streaming events and returning a MultiAgentResult
90
100
  */
91
- stream(input: InvokeArgs): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
101
+ stream(input: MultiAgentInput): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
92
102
  private _stream;
93
103
  private _streamNode;
94
104
  private _validateConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/multiagent/swarm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAmB,gBAAgB,EAAsB,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAYxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAiBD;;GAEG;AACH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,gBAAgB,CAAA;AAE1D,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,8FAA8F;IAC9F,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAC5B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,KAAM,YAAW,cAAc;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAA;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,YAAY;IAoBjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS1D;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;YAerF,OAAO;YA8CP,WAAW;IA4C1B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,mBAAmB;CAsB5B"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/multiagent/swarm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAIpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAmB,gBAAgB,EAAsB,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAYxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAiBD;;GAEG;AACH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAEnE,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,8FAA8F;IAC9F,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAC5B,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,KAAM,YAAW,UAAU;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,YAAY;IAoBjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAIhH;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS/D;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;YAe1F,OAAO;YA8CP,WAAW;IA4C1B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,mBAAmB;CAsB5B"}