beeai-framework 0.1.28 → 0.1.30

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 (564) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/a2a/agents/agent.d.cts +2 -2
  3. package/dist/adapters/a2a/agents/agent.d.ts +2 -2
  4. package/dist/adapters/a2a/agents/agent.js.map +1 -1
  5. package/dist/adapters/a2a/agents/events.d.cts +1 -1
  6. package/dist/adapters/a2a/agents/events.d.ts +1 -1
  7. package/dist/adapters/a2a/agents/types.d.cts +2 -2
  8. package/dist/adapters/a2a/agents/types.d.ts +2 -2
  9. package/dist/adapters/a2a/agents/utils.cjs +52 -11
  10. package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
  11. package/dist/adapters/a2a/agents/utils.js +52 -11
  12. package/dist/adapters/a2a/agents/utils.js.map +1 -1
  13. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
  14. package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
  15. package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
  16. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
  17. package/dist/adapters/a2a/serve/server.cjs.map +1 -1
  18. package/dist/adapters/a2a/serve/server.d.cts +2 -2
  19. package/dist/adapters/a2a/serve/server.d.ts +2 -2
  20. package/dist/adapters/a2a/serve/server.js.map +1 -1
  21. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  22. package/dist/adapters/acp/agents/agent.d.cts +2 -2
  23. package/dist/adapters/acp/agents/agent.d.ts +2 -2
  24. package/dist/adapters/acp/agents/agent.js.map +1 -1
  25. package/dist/adapters/acp/agents/events.d.cts +1 -1
  26. package/dist/adapters/acp/agents/events.d.ts +1 -1
  27. package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
  28. package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
  29. package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
  30. package/dist/adapters/agentstack/agents/agent.js.map +1 -1
  31. package/dist/adapters/agentstack/agents/events.d.cts +1 -1
  32. package/dist/adapters/agentstack/agents/events.d.ts +1 -1
  33. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  34. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
  35. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
  36. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  37. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  38. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  39. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  40. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
  41. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
  42. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  43. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  44. package/dist/adapters/anthropic/backend/chat.d.cts +3 -3
  45. package/dist/adapters/anthropic/backend/chat.d.ts +3 -3
  46. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  47. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  48. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  49. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  50. package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
  51. package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
  52. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  53. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  54. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
  55. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
  56. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  57. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  58. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  59. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  60. package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
  61. package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
  62. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  63. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  64. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  65. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  66. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  67. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  68. package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
  69. package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
  70. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
  73. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
  74. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  77. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  78. package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
  79. package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
  80. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  81. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  82. package/dist/adapters/groq/backend/chat.d.cts +3 -3
  83. package/dist/adapters/groq/backend/chat.d.ts +3 -3
  84. package/dist/adapters/groq/backend/chat.js.map +1 -1
  85. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +2 -2
  89. package/dist/adapters/groq/backend/embedding.d.ts +2 -2
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs +6 -28
  92. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  93. package/dist/adapters/langchain/backend/chat.d.cts +6 -5
  94. package/dist/adapters/langchain/backend/chat.d.ts +6 -5
  95. package/dist/adapters/langchain/backend/chat.js +6 -28
  96. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  97. package/dist/adapters/langchain/backend/embedding.cjs +3 -2
  98. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  99. package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
  100. package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
  101. package/dist/adapters/langchain/backend/embedding.js +3 -2
  102. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  103. package/dist/adapters/langchain/backend/utils.cjs +328 -0
  104. package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
  105. package/dist/adapters/langchain/backend/utils.d.cts +39 -0
  106. package/dist/adapters/langchain/backend/utils.d.ts +39 -0
  107. package/dist/adapters/langchain/backend/utils.js +324 -0
  108. package/dist/adapters/langchain/backend/utils.js.map +1 -0
  109. package/dist/adapters/langchain/tools.cjs.map +1 -1
  110. package/dist/adapters/langchain/tools.d.cts +2 -2
  111. package/dist/adapters/langchain/tools.d.ts +2 -2
  112. package/dist/adapters/langchain/tools.js.map +1 -1
  113. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  114. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  115. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  116. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  117. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  118. package/dist/adapters/mcp/serve/server.js.map +1 -1
  119. package/dist/adapters/minimax/backend/chat.cjs +25 -0
  120. package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
  121. package/dist/adapters/minimax/backend/chat.d.cts +38 -0
  122. package/dist/adapters/minimax/backend/chat.d.ts +38 -0
  123. package/dist/adapters/minimax/backend/chat.js +23 -0
  124. package/dist/adapters/minimax/backend/chat.js.map +1 -0
  125. package/dist/adapters/minimax/backend/client.cjs +31 -0
  126. package/dist/adapters/minimax/backend/client.cjs.map +1 -0
  127. package/dist/adapters/minimax/backend/client.d.cts +17 -0
  128. package/dist/adapters/minimax/backend/client.d.ts +17 -0
  129. package/dist/adapters/minimax/backend/client.js +29 -0
  130. package/dist/adapters/minimax/backend/client.js.map +1 -0
  131. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  132. package/dist/adapters/ollama/backend/chat.d.cts +2 -2
  133. package/dist/adapters/ollama/backend/chat.d.ts +2 -2
  134. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  135. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  136. package/dist/adapters/ollama/backend/client.js.map +1 -1
  137. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  138. package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
  139. package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
  140. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  141. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  142. package/dist/adapters/openai/backend/chat.d.cts +2 -2
  143. package/dist/adapters/openai/backend/chat.d.ts +2 -2
  144. package/dist/adapters/openai/backend/chat.js.map +1 -1
  145. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  146. package/dist/adapters/openai/backend/client.js.map +1 -1
  147. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  148. package/dist/adapters/openai/backend/embedding.d.cts +2 -2
  149. package/dist/adapters/openai/backend/embedding.d.ts +2 -2
  150. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  151. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  152. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  153. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  154. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  155. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  156. package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
  157. package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
  158. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  159. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  160. package/dist/adapters/vercel/backend/utils.d.cts +2 -2
  161. package/dist/adapters/vercel/backend/utils.d.ts +2 -2
  162. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  163. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  164. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  165. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  166. package/dist/adapters/watsonx/backend/chat.js +1 -1
  167. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  168. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  169. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  171. package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
  172. package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
  173. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -1
  175. package/dist/adapters/xai/backend/chat.d.cts +2 -2
  176. package/dist/adapters/xai/backend/chat.d.ts +2 -2
  177. package/dist/adapters/xai/backend/chat.js.map +1 -1
  178. package/dist/adapters/xai/backend/client.cjs.map +1 -1
  179. package/dist/adapters/xai/backend/client.js.map +1 -1
  180. package/dist/{agent-BAVf6-xf.d.ts → agent-s3uhvAba.d.ts} +5 -5
  181. package/dist/{agent-DHO-oJQf.d.cts → agent-zfT__iq9.d.cts} +5 -5
  182. package/dist/agents/base.cjs.map +1 -1
  183. package/dist/agents/base.d.cts +2 -2
  184. package/dist/agents/base.d.ts +2 -2
  185. package/dist/agents/base.js.map +1 -1
  186. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  187. package/dist/agents/experimental/replan/agent.d.cts +3 -3
  188. package/dist/agents/experimental/replan/agent.d.ts +3 -3
  189. package/dist/agents/experimental/replan/agent.js.map +1 -1
  190. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  191. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  192. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  193. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  194. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  195. package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
  196. package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
  197. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  198. package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
  199. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  200. package/dist/agents/experimental/streamlit/prompts.js +2 -2
  201. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  202. package/dist/agents/react/agent.cjs +6 -6
  203. package/dist/agents/react/agent.cjs.map +1 -1
  204. package/dist/agents/react/agent.d.cts +4 -4
  205. package/dist/agents/react/agent.d.ts +4 -4
  206. package/dist/agents/react/agent.js.map +1 -1
  207. package/dist/agents/react/prompts.cjs.map +1 -1
  208. package/dist/agents/react/prompts.d.cts +1 -1
  209. package/dist/agents/react/prompts.d.ts +1 -1
  210. package/dist/agents/react/prompts.js.map +1 -1
  211. package/dist/agents/react/runners/base.cjs.map +1 -1
  212. package/dist/agents/react/runners/base.d.cts +4 -4
  213. package/dist/agents/react/runners/base.d.ts +4 -4
  214. package/dist/agents/react/runners/base.js.map +1 -1
  215. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  216. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
  217. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
  218. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  219. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  220. package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
  221. package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
  222. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  223. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  224. package/dist/agents/react/runners/default/runner.d.cts +5 -5
  225. package/dist/agents/react/runners/default/runner.d.ts +5 -5
  226. package/dist/agents/react/runners/default/runner.js.map +1 -1
  227. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  228. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  229. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  230. package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
  231. package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
  232. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  233. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  234. package/dist/agents/react/runners/granite/runner.d.cts +5 -5
  235. package/dist/agents/react/runners/granite/runner.d.ts +5 -5
  236. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  237. package/dist/agents/react/types.d.cts +2 -2
  238. package/dist/agents/react/types.d.ts +2 -2
  239. package/dist/agents/requirement/agent.cjs.map +1 -1
  240. package/dist/agents/requirement/agent.d.cts +5 -5
  241. package/dist/agents/requirement/agent.d.ts +5 -5
  242. package/dist/agents/requirement/agent.js.map +1 -1
  243. package/dist/agents/requirement/prompts.d.cts +2 -2
  244. package/dist/agents/requirement/prompts.d.ts +2 -2
  245. package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
  246. package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
  247. package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
  248. package/dist/agents/requirement/requirements/conditional.js.map +1 -1
  249. package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
  250. package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
  251. package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
  252. package/dist/agents/requirement/requirements/requirement.js.map +1 -1
  253. package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
  254. package/dist/agents/requirement/requirements/utils.d.cts +1 -1
  255. package/dist/agents/requirement/requirements/utils.d.ts +1 -1
  256. package/dist/agents/requirement/requirements/utils.js.map +1 -1
  257. package/dist/agents/requirement/runner.cjs.map +1 -1
  258. package/dist/agents/requirement/runner.d.cts +5 -5
  259. package/dist/agents/requirement/runner.d.ts +5 -5
  260. package/dist/agents/requirement/runner.js.map +1 -1
  261. package/dist/agents/requirement/types.d.cts +4 -4
  262. package/dist/agents/requirement/types.d.ts +4 -4
  263. package/dist/agents/requirement/utils/llm.cjs.map +1 -1
  264. package/dist/agents/requirement/utils/llm.d.cts +4 -4
  265. package/dist/agents/requirement/utils/llm.d.ts +4 -4
  266. package/dist/agents/requirement/utils/llm.js.map +1 -1
  267. package/dist/agents/requirement/utils/tool.cjs.map +1 -1
  268. package/dist/agents/requirement/utils/tool.d.cts +4 -4
  269. package/dist/agents/requirement/utils/tool.d.ts +4 -4
  270. package/dist/agents/requirement/utils/tool.js.map +1 -1
  271. package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
  272. package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
  273. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  274. package/dist/agents/toolCalling/agent.d.cts +4 -4
  275. package/dist/agents/toolCalling/agent.d.ts +4 -4
  276. package/dist/agents/toolCalling/agent.js.map +1 -1
  277. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  278. package/dist/agents/toolCalling/prompts.js.map +1 -1
  279. package/dist/agents/toolCalling/types.d.cts +1 -1
  280. package/dist/agents/toolCalling/types.d.ts +1 -1
  281. package/dist/agents/types.d.cts +2 -2
  282. package/dist/agents/types.d.ts +2 -2
  283. package/dist/backend/backend.cjs.map +1 -1
  284. package/dist/backend/backend.d.cts +3 -3
  285. package/dist/backend/backend.d.ts +3 -3
  286. package/dist/backend/backend.js.map +1 -1
  287. package/dist/backend/chat.cjs.map +1 -1
  288. package/dist/backend/chat.d.cts +2 -2
  289. package/dist/backend/chat.d.ts +2 -2
  290. package/dist/backend/chat.js.map +1 -1
  291. package/dist/backend/client.cjs.map +1 -1
  292. package/dist/backend/client.js.map +1 -1
  293. package/dist/backend/constants.cjs +7 -0
  294. package/dist/backend/constants.cjs.map +1 -1
  295. package/dist/backend/constants.d.cts +5 -0
  296. package/dist/backend/constants.d.ts +5 -0
  297. package/dist/backend/constants.js +7 -0
  298. package/dist/backend/constants.js.map +1 -1
  299. package/dist/backend/core.d.cts +2 -2
  300. package/dist/backend/core.d.ts +2 -2
  301. package/dist/backend/embedding.cjs.map +1 -1
  302. package/dist/backend/embedding.d.cts +2 -2
  303. package/dist/backend/embedding.d.ts +2 -2
  304. package/dist/backend/embedding.js.map +1 -1
  305. package/dist/backend/errors.cjs.map +1 -1
  306. package/dist/backend/errors.d.cts +2 -2
  307. package/dist/backend/errors.d.ts +2 -2
  308. package/dist/backend/errors.js.map +1 -1
  309. package/dist/backend/message.cjs.map +1 -1
  310. package/dist/backend/message.js.map +1 -1
  311. package/dist/backend/utils.cjs.map +1 -1
  312. package/dist/backend/utils.d.cts +2 -2
  313. package/dist/backend/utils.d.ts +2 -2
  314. package/dist/backend/utils.js.map +1 -1
  315. package/dist/{base-BfhNzUYf.d.ts → base-BjzyQ8k6.d.ts} +2 -2
  316. package/dist/{base-BqzN2QwB.d.cts → base-s3ioVIE9.d.cts} +2 -2
  317. package/dist/cache/decoratorCache.cjs.map +1 -1
  318. package/dist/cache/decoratorCache.js.map +1 -1
  319. package/dist/cache/fileCache.cjs.map +1 -1
  320. package/dist/cache/fileCache.js.map +1 -1
  321. package/dist/cache/nullCache.cjs.map +1 -1
  322. package/dist/cache/nullCache.js.map +1 -1
  323. package/dist/cache/slidingCache.cjs.map +1 -1
  324. package/dist/cache/slidingCache.js.map +1 -1
  325. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  326. package/dist/cache/unconstrainedCache.js.map +1 -1
  327. package/dist/{chat-DaqV3woF.d.cts → chat-C20nYj46.d.cts} +3 -3
  328. package/dist/{chat-DTxmaKP0.d.ts → chat-CfTNfR60.d.ts} +3 -3
  329. package/dist/context.cjs.map +1 -1
  330. package/dist/context.d.cts +1 -1
  331. package/dist/context.d.ts +1 -1
  332. package/dist/context.js.map +1 -1
  333. package/dist/emitter/emitter.cjs.map +1 -1
  334. package/dist/emitter/emitter.d.cts +1 -1
  335. package/dist/emitter/emitter.d.ts +1 -1
  336. package/dist/emitter/emitter.js.map +1 -1
  337. package/dist/emitter/types.d.cts +1 -1
  338. package/dist/emitter/types.d.ts +1 -1
  339. package/dist/emitter/utils.cjs.map +1 -1
  340. package/dist/emitter/utils.js.map +1 -1
  341. package/dist/{emitter-UkIkNrek.d.cts → emitter-D4OcelZ9.d.cts} +2 -2
  342. package/dist/{emitter-CL56qab4.d.ts → emitter-kHxkUxco.d.ts} +2 -2
  343. package/dist/errors.cjs.map +1 -1
  344. package/dist/errors.js.map +1 -1
  345. package/dist/index.d.cts +4 -4
  346. package/dist/index.d.ts +4 -4
  347. package/dist/internals/env.cjs.map +1 -1
  348. package/dist/internals/env.js.map +1 -1
  349. package/dist/internals/fetcher.cjs.map +1 -1
  350. package/dist/internals/fetcher.d.cts +1 -1
  351. package/dist/internals/fetcher.d.ts +1 -1
  352. package/dist/internals/fetcher.js.map +1 -1
  353. package/dist/internals/helpers/array.cjs.map +1 -1
  354. package/dist/internals/helpers/array.js.map +1 -1
  355. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  356. package/dist/internals/helpers/cancellation.js.map +1 -1
  357. package/dist/internals/helpers/counter.cjs.map +1 -1
  358. package/dist/internals/helpers/counter.js.map +1 -1
  359. package/dist/internals/helpers/general.cjs.map +1 -1
  360. package/dist/internals/helpers/general.js.map +1 -1
  361. package/dist/internals/helpers/hash.cjs.map +1 -1
  362. package/dist/internals/helpers/hash.js.map +1 -1
  363. package/dist/internals/helpers/map.cjs.map +1 -1
  364. package/dist/internals/helpers/map.js.map +1 -1
  365. package/dist/internals/helpers/math.cjs.map +1 -1
  366. package/dist/internals/helpers/math.js.map +1 -1
  367. package/dist/internals/helpers/object.cjs +7 -1
  368. package/dist/internals/helpers/object.cjs.map +1 -1
  369. package/dist/internals/helpers/object.js +7 -1
  370. package/dist/internals/helpers/object.js.map +1 -1
  371. package/dist/internals/helpers/paginate.cjs.map +1 -1
  372. package/dist/internals/helpers/paginate.js.map +1 -1
  373. package/dist/internals/helpers/promise.cjs.map +1 -1
  374. package/dist/internals/helpers/promise.js.map +1 -1
  375. package/dist/internals/helpers/prototype.cjs.map +1 -1
  376. package/dist/internals/helpers/prototype.js.map +1 -1
  377. package/dist/internals/helpers/retry.cjs.map +1 -1
  378. package/dist/internals/helpers/retry.js.map +1 -1
  379. package/dist/internals/helpers/retryable.cjs.map +1 -1
  380. package/dist/internals/helpers/retryable.js.map +1 -1
  381. package/dist/internals/helpers/schema.cjs.map +1 -1
  382. package/dist/internals/helpers/schema.d.cts +4 -4
  383. package/dist/internals/helpers/schema.d.ts +4 -4
  384. package/dist/internals/helpers/schema.js.map +1 -1
  385. package/dist/internals/helpers/stream.cjs.map +1 -1
  386. package/dist/internals/helpers/stream.js.map +1 -1
  387. package/dist/internals/helpers/string.cjs.map +1 -1
  388. package/dist/internals/helpers/string.js.map +1 -1
  389. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  390. package/dist/internals/helpers/weakRef.js.map +1 -1
  391. package/dist/internals/serializable.cjs +3 -1
  392. package/dist/internals/serializable.cjs.map +1 -1
  393. package/dist/internals/serializable.d.cts +6 -0
  394. package/dist/internals/serializable.d.ts +6 -0
  395. package/dist/internals/serializable.js +3 -1
  396. package/dist/internals/serializable.js.map +1 -1
  397. package/dist/internals/types.cjs.map +1 -1
  398. package/dist/internals/types.js.map +1 -1
  399. package/dist/logger/logger.cjs.map +1 -1
  400. package/dist/logger/logger.d.cts +2 -2
  401. package/dist/logger/logger.d.ts +2 -2
  402. package/dist/logger/logger.js +2 -2
  403. package/dist/logger/logger.js.map +1 -1
  404. package/dist/logger/pretty.cjs.map +1 -1
  405. package/dist/logger/pretty.js.map +1 -1
  406. package/dist/memory/base.cjs.map +1 -1
  407. package/dist/memory/base.js.map +1 -1
  408. package/dist/memory/slidingMemory.cjs.map +1 -1
  409. package/dist/memory/slidingMemory.js.map +1 -1
  410. package/dist/memory/summarizeMemory.cjs.map +1 -1
  411. package/dist/memory/summarizeMemory.d.cts +2 -2
  412. package/dist/memory/summarizeMemory.d.ts +2 -2
  413. package/dist/memory/summarizeMemory.js.map +1 -1
  414. package/dist/memory/tokenMemory.cjs.map +1 -1
  415. package/dist/memory/tokenMemory.js.map +1 -1
  416. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  417. package/dist/memory/unconstrainedMemory.js.map +1 -1
  418. package/dist/middleware/streamToolCall.cjs.map +1 -1
  419. package/dist/middleware/streamToolCall.d.cts +2 -2
  420. package/dist/middleware/streamToolCall.d.ts +2 -2
  421. package/dist/middleware/streamToolCall.js.map +1 -1
  422. package/dist/middleware/trajectory.cjs.map +1 -1
  423. package/dist/middleware/trajectory.d.cts +2 -2
  424. package/dist/middleware/trajectory.d.ts +2 -2
  425. package/dist/middleware/trajectory.js.map +1 -1
  426. package/dist/parsers/errors.cjs.map +1 -1
  427. package/dist/parsers/errors.js.map +1 -1
  428. package/dist/parsers/field.cjs.map +1 -1
  429. package/dist/parsers/field.js.map +1 -1
  430. package/dist/parsers/linePrefix.cjs.map +1 -1
  431. package/dist/parsers/linePrefix.d.cts +1 -1
  432. package/dist/parsers/linePrefix.d.ts +1 -1
  433. package/dist/parsers/linePrefix.js.map +1 -1
  434. package/dist/serializer/error.cjs.map +1 -1
  435. package/dist/serializer/error.js.map +1 -1
  436. package/dist/serializer/serializer.cjs +16 -3
  437. package/dist/serializer/serializer.cjs.map +1 -1
  438. package/dist/serializer/serializer.d.cts +1 -1
  439. package/dist/serializer/serializer.d.ts +1 -1
  440. package/dist/serializer/serializer.js +16 -4
  441. package/dist/serializer/serializer.js.map +1 -1
  442. package/dist/serializer/utils.cjs.map +1 -1
  443. package/dist/serializer/utils.d.cts +1 -1
  444. package/dist/serializer/utils.d.ts +1 -1
  445. package/dist/serializer/utils.js.map +1 -1
  446. package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
  447. package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
  448. package/dist/serve/server.cjs.map +1 -1
  449. package/dist/serve/server.js.map +1 -1
  450. package/dist/template.cjs.map +1 -1
  451. package/dist/template.js.map +1 -1
  452. package/dist/tools/arxiv.cjs.map +1 -1
  453. package/dist/tools/arxiv.d.cts +2 -2
  454. package/dist/tools/arxiv.d.ts +2 -2
  455. package/dist/tools/arxiv.js.map +1 -1
  456. package/dist/tools/base.cjs.map +1 -1
  457. package/dist/tools/base.d.cts +1 -1
  458. package/dist/tools/base.d.ts +1 -1
  459. package/dist/tools/base.js.map +1 -1
  460. package/dist/tools/calculator.cjs.map +1 -1
  461. package/dist/tools/calculator.d.cts +3 -3
  462. package/dist/tools/calculator.d.ts +3 -3
  463. package/dist/tools/calculator.js.map +1 -1
  464. package/dist/tools/custom.cjs.map +1 -1
  465. package/dist/tools/custom.d.cts +3 -3
  466. package/dist/tools/custom.d.ts +3 -3
  467. package/dist/tools/custom.js.map +1 -1
  468. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  469. package/dist/tools/database/elasticsearch.d.cts +3 -3
  470. package/dist/tools/database/elasticsearch.d.ts +3 -3
  471. package/dist/tools/database/elasticsearch.js.map +1 -1
  472. package/dist/tools/database/metadata.cjs.map +1 -1
  473. package/dist/tools/database/metadata.js.map +1 -1
  474. package/dist/tools/database/milvus.cjs.map +1 -1
  475. package/dist/tools/database/milvus.d.cts +3 -3
  476. package/dist/tools/database/milvus.d.ts +3 -3
  477. package/dist/tools/database/milvus.js.map +1 -1
  478. package/dist/tools/database/qdrant.cjs.map +1 -1
  479. package/dist/tools/database/qdrant.d.cts +2 -2
  480. package/dist/tools/database/qdrant.d.ts +2 -2
  481. package/dist/tools/database/qdrant.js.map +1 -1
  482. package/dist/tools/database/sql.cjs.map +1 -1
  483. package/dist/tools/database/sql.d.cts +2 -2
  484. package/dist/tools/database/sql.d.ts +2 -2
  485. package/dist/tools/database/sql.js.map +1 -1
  486. package/dist/tools/handoff.cjs.map +1 -1
  487. package/dist/tools/handoff.d.cts +2 -2
  488. package/dist/tools/handoff.d.ts +2 -2
  489. package/dist/tools/handoff.js.map +1 -1
  490. package/dist/tools/llm.cjs +1 -1
  491. package/dist/tools/llm.cjs.map +1 -1
  492. package/dist/tools/llm.d.cts +3 -3
  493. package/dist/tools/llm.d.ts +3 -3
  494. package/dist/tools/llm.js +1 -1
  495. package/dist/tools/llm.js.map +1 -1
  496. package/dist/tools/mcp.cjs.map +1 -1
  497. package/dist/tools/mcp.d.cts +2 -2
  498. package/dist/tools/mcp.d.ts +2 -2
  499. package/dist/tools/mcp.js.map +1 -1
  500. package/dist/tools/openapi.cjs.map +1 -1
  501. package/dist/tools/openapi.d.cts +2 -2
  502. package/dist/tools/openapi.d.ts +2 -2
  503. package/dist/tools/openapi.js.map +1 -1
  504. package/dist/tools/python/output.cjs.map +1 -1
  505. package/dist/tools/python/output.d.cts +1 -1
  506. package/dist/tools/python/output.d.ts +1 -1
  507. package/dist/tools/python/output.js.map +1 -1
  508. package/dist/tools/python/python.cjs +5 -2
  509. package/dist/tools/python/python.cjs.map +1 -1
  510. package/dist/tools/python/python.d.cts +3 -3
  511. package/dist/tools/python/python.d.ts +3 -3
  512. package/dist/tools/python/python.js +5 -2
  513. package/dist/tools/python/python.js.map +1 -1
  514. package/dist/tools/python/storage.cjs.map +1 -1
  515. package/dist/tools/python/storage.js.map +1 -1
  516. package/dist/tools/search/base.cjs.map +1 -1
  517. package/dist/tools/search/base.d.cts +2 -2
  518. package/dist/tools/search/base.d.ts +2 -2
  519. package/dist/tools/search/base.js.map +1 -1
  520. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  521. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
  522. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
  523. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  524. package/dist/tools/search/googleSearch.cjs.map +1 -1
  525. package/dist/tools/search/googleSearch.d.cts +2 -2
  526. package/dist/tools/search/googleSearch.d.ts +2 -2
  527. package/dist/tools/search/googleSearch.js.map +1 -1
  528. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  529. package/dist/tools/search/searXNGSearch.d.cts +2 -2
  530. package/dist/tools/search/searXNGSearch.d.ts +2 -2
  531. package/dist/tools/search/searXNGSearch.js.map +1 -1
  532. package/dist/tools/search/wikipedia.cjs.map +1 -1
  533. package/dist/tools/search/wikipedia.d.cts +3 -3
  534. package/dist/tools/search/wikipedia.d.ts +3 -3
  535. package/dist/tools/search/wikipedia.js.map +1 -1
  536. package/dist/tools/similarity.cjs.map +1 -1
  537. package/dist/tools/similarity.d.cts +2 -2
  538. package/dist/tools/similarity.d.ts +2 -2
  539. package/dist/tools/similarity.js.map +1 -1
  540. package/dist/tools/think.cjs.map +1 -1
  541. package/dist/tools/think.d.cts +2 -2
  542. package/dist/tools/think.d.ts +2 -2
  543. package/dist/tools/think.js.map +1 -1
  544. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  545. package/dist/tools/weather/openMeteo.d.cts +2 -2
  546. package/dist/tools/weather/openMeteo.d.ts +2 -2
  547. package/dist/tools/weather/openMeteo.js.map +1 -1
  548. package/dist/tools/web/webCrawler.cjs.map +1 -1
  549. package/dist/tools/web/webCrawler.d.cts +2 -2
  550. package/dist/tools/web/webCrawler.d.ts +2 -2
  551. package/dist/tools/web/webCrawler.js.map +1 -1
  552. package/dist/{types-YoNQSxQH.d.cts → types-BNsa3W7Z.d.cts} +4 -4
  553. package/dist/{types-YT-WdK3m.d.ts → types-DYtzF6ya.d.ts} +4 -4
  554. package/dist/version.cjs +1 -1
  555. package/dist/version.js +1 -1
  556. package/dist/workflows/agent.cjs.map +1 -1
  557. package/dist/workflows/agent.d.cts +40 -40
  558. package/dist/workflows/agent.d.ts +40 -40
  559. package/dist/workflows/agent.js.map +1 -1
  560. package/dist/workflows/workflow.cjs.map +1 -1
  561. package/dist/workflows/workflow.d.cts +1 -1
  562. package/dist/workflows/workflow.d.ts +1 -1
  563. package/dist/workflows/workflow.js.map +1 -1
  564. package/package.json +38 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/a2a/agents/agent.ts"],"names":["A2AAgent","BaseAgent","_memory","emitter","url","agentCard","agentCardPath","contextId","taskId","referenceTaskIds","input","Emitter","root","child","namespace","toCamelCase","name","creator","AgentError","isFatal","memory","AGENT_CARD_PATH","split","_run","_options","context","setRunParams","clearContext","loadAgentCard","client","A2AClient","lastEvent","messages","task","stream","sendMessageStream","message","convertToA2AMessage","event","kind","id","includes","push","content","status","artifact","final","state","undefined","emit","value","inputMessages","Array","isArray","addMany","map","convertToFrameworkMessage","results","artifacts","history","length","assistantMessages","result","AssistantMessage","err","error","toString","fromCardUrl","URL","href","getAgentCard","checkAgentExists","isEmpty","createSnapshot","shallowCopy","role","parts","text","messageId","uuid4","Message","convertFrameworkContentToA2APart","UserMessage","convertA2AMessageToFrameworkMessage","type","rest","data","image","decoder","TextDecoder","file","uri","bytes","decode","mimeType","mediaType","filename","metadata","providerOptions"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuid4 } from \"uuid\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, MessageContentPart, UserMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { A2AAgentInput, A2AAgentRunInput, A2AAgentRunOutput, A2AAgentRunOptions } from \"./types.js\";\nimport { A2AAgentEvents } from \"./events.js\";\nimport { toCamelCase } from \"remeda\";\nimport {\n AGENT_CARD_PATH,\n AgentCard,\n Message as A2AMessage,\n Task,\n Artifact,\n Part,\n FileWithUri,\n FileWithBytes,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport { Message } from \"@/backend/message.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"./utils.js\";\n\nexport class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {\n private _memory!: BaseMemory;\n public readonly emitter: Emitter<A2AAgentEvents>;\n protected url: string | undefined;\n public agentCard: AgentCard | undefined;\n protected agentCardPath: string;\n protected contextId: string | undefined;\n protected taskId: string | undefined;\n protected referenceTaskIds: string[] = [];\n\n constructor(protected readonly input: A2AAgentInput) {\n super();\n this.emitter = Emitter.root.child<A2AAgentEvents>({\n namespace: [\"a2a\", \"agent\", toCamelCase(this.name)],\n creator: this,\n });\n if (input.url) {\n this.url = input.url;\n } else if (input.agentCard) {\n this.agentCard = input.agentCard;\n } else {\n throw new AgentError(\"Either url or agentCard must be provided in A2AAgentInput\", [], {\n isFatal: true,\n });\n }\n\n this.memory = input.memory;\n this.agentCardPath = input.agentCardPath || AGENT_CARD_PATH;\n }\n\n get name() {\n return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(\":\")[-1]}`;\n }\n\n protected async _run(\n input: A2AAgentRunInput,\n _options: A2AAgentRunOptions,\n context: GetRunContext<this>,\n ): Promise<A2AAgentRunOutput> {\n this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);\n\n if (!this.agentCard) {\n await this.loadAgentCard();\n }\n\n const client = new A2AClient(this.agentCard!);\n\n let lastEvent = null;\n const messages: (A2AMessage | Artifact)[] = [];\n let task: Task | null = null;\n\n try {\n const stream = client.sendMessageStream({ message: this.convertToA2AMessage(input.input) });\n\n for await (const event of stream) {\n lastEvent = event;\n\n const taskId = event.kind === \"task\" ? event.id : event.taskId;\n const contextId = event.contextId;\n if (taskId && taskId !== this.taskId) {\n this.taskId = taskId;\n }\n if (contextId && contextId !== this.contextId) {\n this.contextId = contextId;\n }\n if (taskId && !this.referenceTaskIds.includes(taskId)) {\n this.referenceTaskIds.push(taskId);\n }\n\n if (event.kind === \"status-update\" || event.kind === \"artifact-update\") {\n const content = event.kind === \"status-update\" ? event.status.message : event.artifact;\n if (content) {\n messages.push(content);\n }\n if (\n event.kind === \"status-update\" &&\n event.final &&\n event.status.state !== \"input-required\"\n ) {\n this.taskId = undefined;\n }\n } else if (event.kind === \"message\") {\n messages.push(event);\n } else if (event.kind === \"task\") {\n task = event;\n }\n\n await context.emitter.emit(\"update\", { value: event });\n }\n\n if (!lastEvent) {\n throw new AgentError(\"No result received from agent.\");\n }\n\n // add input messages to memory\n const inputMessages = Array.isArray(input.input) ? input.input : [input.input];\n await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));\n\n let results: (A2AMessage | Artifact)[];\n if (task) {\n if (task.artifacts) {\n results = task.artifacts;\n } else if (task.history) {\n results = task.history;\n } else if (task.status.message) {\n results = [task.status.message];\n } else {\n results = [];\n }\n } else {\n results = messages;\n }\n\n // retrieve the assistant's response\n if (results.length > 0) {\n const assistantMessages = results.map(this.convertToFrameworkMessage);\n await this.memory.addMany(assistantMessages);\n return {\n result: assistantMessages[assistantMessages.length - 1],\n event: lastEvent,\n };\n } else {\n return {\n result: new AssistantMessage(\"No response from agent.\"),\n event: lastEvent,\n };\n }\n } catch (err) {\n let message: string;\n\n if (err.message) {\n message = err.message;\n } else if (err.error) {\n message = err.error.toString();\n } else {\n message = \"Unknown error\";\n }\n\n await context.emitter.emit(\"error\", { message });\n\n throw new AgentError(message, [err], {\n context: lastEvent ?? undefined,\n });\n }\n }\n\n protected setRunParams(contextId?: string, taskId?: string, clearContext = false) {\n if (contextId) {\n this.contextId = contextId;\n }\n this.taskId = taskId;\n if (clearContext) {\n this.contextId = undefined;\n this.taskId = undefined;\n this.referenceTaskIds = [];\n }\n }\n\n async loadAgentCard() {\n if (this.agentCard) {\n return;\n }\n\n if (!this.url) {\n throw new AgentError(\"URL must be provided to load the agent card.\", [], { isFatal: true });\n }\n\n try {\n const client = await A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {\n agentCardPath: this.agentCardPath,\n });\n this.agentCard = await client.getAgentCard();\n } catch (error) {\n throw new AgentError(`Can not load agent card: ${error.message}`, [error], {\n isFatal: true,\n });\n }\n }\n\n async checkAgentExists() {\n await this.loadAgentCard();\n if (!this.agentCard) {\n throw new AgentError(`Agent ${this.name} does not exist.`, [], { isFatal: true });\n }\n }\n\n get memory() {\n return this._memory;\n }\n\n set memory(memory: BaseMemory) {\n if (!memory.isEmpty()) {\n throw new AgentError(\"Memory must be empty before setting.\");\n }\n this._memory = memory;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n protected convertToA2AMessage(input: string | Message | Message[] | A2AMessage): A2AMessage {\n if (typeof input === \"string\") {\n return {\n kind: \"message\",\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: input,\n },\n ],\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (input instanceof Message) {\n const parts = input.content.map(convertFrameworkContentToA2APart);\n return {\n kind: \"message\",\n role: input.role == \"assistant\" ? \"agent\" : \"user\",\n parts: parts,\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (\"kind\" in input && input.kind === \"message\") {\n return input;\n } else if (Array.isArray(input) && input.length > 0) {\n return this.convertToA2AMessage(input[input.length - 1]);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n\n protected convertToFrameworkMessage(input: string | Message | A2AMessage | Artifact): Message {\n if (typeof input === \"string\") {\n return new UserMessage(input);\n } else if (input instanceof Message) {\n return input;\n } else if ((\"kind\" in input && input.kind === \"message\") || \"artifactId\" in input) {\n return convertA2AMessageToFrameworkMessage(input);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n}\n\nfunction convertFrameworkContentToA2APart(content: MessageContentPart): Part {\n const { type, ...rest } = content;\n switch (type) {\n case \"text\":\n return { kind: \"text\", text: content.text };\n case \"file\":\n case \"image\": {\n const data = type === \"file\" ? content.data : content.image;\n const decoder = new TextDecoder(\"utf-8\");\n const file =\n data instanceof URL\n ? ({ uri: data.href } as FileWithUri)\n : ({\n bytes: typeof data === \"string\" ? data : decoder.decode(data),\n } as FileWithBytes);\n return {\n kind: \"file\",\n file: {\n ...file,\n mimeType: content.mediaType,\n name: \"filename\" in content ? content.filename : undefined,\n },\n metadata: {\n providerOptions: content.providerOptions,\n },\n };\n }\n case \"tool-call\":\n case \"tool-result\":\n return {\n kind: \"data\",\n data: rest,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/agents/agent.ts"],"names":["A2AAgent","BaseAgent","_memory","emitter","url","agentCard","agentCardPath","contextId","taskId","referenceTaskIds","input","Emitter","root","child","namespace","toCamelCase","name","creator","AgentError","isFatal","memory","AGENT_CARD_PATH","split","_run","_options","context","setRunParams","clearContext","loadAgentCard","client","A2AClient","lastEvent","messages","task","stream","sendMessageStream","message","convertToA2AMessage","event","kind","id","includes","push","content","status","artifact","final","state","undefined","emit","value","inputMessages","Array","isArray","addMany","map","convertToFrameworkMessage","results","artifacts","history","length","assistantMessages","result","AssistantMessage","err","error","toString","fromCardUrl","URL","href","getAgentCard","checkAgentExists","isEmpty","createSnapshot","shallowCopy","role","parts","text","messageId","uuid4","Message","convertFrameworkContentToA2APart","UserMessage","convertA2AMessageToFrameworkMessage","type","rest","data","image","decoder","TextDecoder","file","uri","bytes","decode","mimeType","mediaType","filename","metadata","providerOptions"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuid4 } from \"uuid\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, MessageContentPart, UserMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { A2AAgentInput, A2AAgentRunInput, A2AAgentRunOutput, A2AAgentRunOptions } from \"./types.js\";\nimport { A2AAgentEvents } from \"./events.js\";\nimport { toCamelCase } from \"remeda\";\nimport {\n AGENT_CARD_PATH,\n AgentCard,\n Message as A2AMessage,\n Task,\n Artifact,\n Part,\n FileWithUri,\n FileWithBytes,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport { Message } from \"@/backend/message.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"./utils.js\";\n\nexport class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {\n private _memory!: BaseMemory;\n public readonly emitter: Emitter<A2AAgentEvents>;\n protected url: string | undefined;\n public agentCard: AgentCard | undefined;\n protected agentCardPath: string;\n protected contextId: string | undefined;\n protected taskId: string | undefined;\n protected referenceTaskIds: string[] = [];\n\n constructor(protected readonly input: A2AAgentInput) {\n super();\n this.emitter = Emitter.root.child<A2AAgentEvents>({\n namespace: [\"a2a\", \"agent\", toCamelCase(this.name)],\n creator: this,\n });\n if (input.url) {\n this.url = input.url;\n } else if (input.agentCard) {\n this.agentCard = input.agentCard;\n } else {\n throw new AgentError(\"Either url or agentCard must be provided in A2AAgentInput\", [], {\n isFatal: true,\n });\n }\n\n this.memory = input.memory;\n this.agentCardPath = input.agentCardPath || AGENT_CARD_PATH;\n }\n\n get name() {\n return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(\":\")[-1]}`;\n }\n\n protected async _run(\n input: A2AAgentRunInput,\n _options: A2AAgentRunOptions,\n context: GetRunContext<this>,\n ): Promise<A2AAgentRunOutput> {\n this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);\n\n if (!this.agentCard) {\n await this.loadAgentCard();\n }\n\n const client = new A2AClient(this.agentCard!);\n\n let lastEvent = null;\n const messages: (A2AMessage | Artifact)[] = [];\n let task: Task | null = null;\n\n try {\n const stream = client.sendMessageStream({ message: this.convertToA2AMessage(input.input) });\n\n for await (const event of stream) {\n lastEvent = event;\n\n const taskId = event.kind === \"task\" ? event.id : event.taskId;\n const contextId = event.contextId;\n if (taskId && taskId !== this.taskId) {\n this.taskId = taskId;\n }\n if (contextId && contextId !== this.contextId) {\n this.contextId = contextId;\n }\n if (taskId && !this.referenceTaskIds.includes(taskId)) {\n this.referenceTaskIds.push(taskId);\n }\n\n if (event.kind === \"status-update\" || event.kind === \"artifact-update\") {\n const content = event.kind === \"status-update\" ? event.status.message : event.artifact;\n if (content) {\n messages.push(content);\n }\n if (\n event.kind === \"status-update\" &&\n event.final &&\n event.status.state !== \"input-required\"\n ) {\n this.taskId = undefined;\n }\n } else if (event.kind === \"message\") {\n messages.push(event);\n } else if (event.kind === \"task\") {\n task = event;\n }\n\n await context.emitter.emit(\"update\", { value: event });\n }\n\n if (!lastEvent) {\n throw new AgentError(\"No result received from agent.\");\n }\n\n // add input messages to memory\n const inputMessages = Array.isArray(input.input) ? input.input : [input.input];\n await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));\n\n let results: (A2AMessage | Artifact)[];\n if (task) {\n if (task.artifacts) {\n results = task.artifacts;\n } else if (task.history) {\n results = task.history;\n } else if (task.status.message) {\n results = [task.status.message];\n } else {\n results = [];\n }\n } else {\n results = messages;\n }\n\n // retrieve the assistant's response\n if (results.length > 0) {\n const assistantMessages = results.map(this.convertToFrameworkMessage);\n await this.memory.addMany(assistantMessages);\n return {\n result: assistantMessages[assistantMessages.length - 1],\n event: lastEvent,\n };\n } else {\n return {\n result: new AssistantMessage(\"No response from agent.\"),\n event: lastEvent,\n };\n }\n } catch (err) {\n let message: string;\n\n if (err.message) {\n message = err.message;\n } else if (err.error) {\n message = err.error.toString();\n } else {\n message = \"Unknown error\";\n }\n\n await context.emitter.emit(\"error\", { message });\n\n throw new AgentError(message, [err], {\n context: lastEvent ?? undefined,\n });\n }\n }\n\n protected setRunParams(contextId?: string, taskId?: string, clearContext = false) {\n if (contextId) {\n this.contextId = contextId;\n }\n this.taskId = taskId;\n if (clearContext) {\n this.contextId = undefined;\n this.taskId = undefined;\n this.referenceTaskIds = [];\n }\n }\n\n async loadAgentCard() {\n if (this.agentCard) {\n return;\n }\n\n if (!this.url) {\n throw new AgentError(\"URL must be provided to load the agent card.\", [], { isFatal: true });\n }\n\n try {\n const client = await A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {\n agentCardPath: this.agentCardPath,\n });\n this.agentCard = await client.getAgentCard();\n } catch (error) {\n throw new AgentError(`Can not load agent card: ${error.message}`, [error], {\n isFatal: true,\n });\n }\n }\n\n async checkAgentExists() {\n await this.loadAgentCard();\n if (!this.agentCard) {\n throw new AgentError(`Agent ${this.name} does not exist.`, [], { isFatal: true });\n }\n }\n\n get memory() {\n return this._memory;\n }\n\n set memory(memory: BaseMemory) {\n if (!memory.isEmpty()) {\n throw new AgentError(\"Memory must be empty before setting.\");\n }\n this._memory = memory;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n protected convertToA2AMessage(input: string | Message | Message[] | A2AMessage): A2AMessage {\n if (typeof input === \"string\") {\n return {\n kind: \"message\",\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: input,\n },\n ],\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (input instanceof Message) {\n const parts = input.content.map(convertFrameworkContentToA2APart);\n return {\n kind: \"message\",\n role: input.role == \"assistant\" ? \"agent\" : \"user\",\n parts: parts,\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (\"kind\" in input && input.kind === \"message\") {\n return input;\n } else if (Array.isArray(input) && input.length > 0) {\n return this.convertToA2AMessage(input[input.length - 1]);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n\n protected convertToFrameworkMessage(input: string | Message | A2AMessage | Artifact): Message {\n if (typeof input === \"string\") {\n return new UserMessage(input);\n } else if (input instanceof Message) {\n return input;\n } else if ((\"kind\" in input && input.kind === \"message\") || \"artifactId\" in input) {\n return convertA2AMessageToFrameworkMessage(input);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n}\n\nfunction convertFrameworkContentToA2APart(content: MessageContentPart): Part {\n const { type, ...rest } = content;\n switch (type) {\n case \"text\":\n return { kind: \"text\", text: content.text };\n case \"file\":\n case \"image\": {\n const data = type === \"file\" ? content.data : content.image;\n const decoder = new TextDecoder(\"utf-8\");\n const file =\n data instanceof URL\n ? ({ uri: data.href } as FileWithUri)\n : ({\n bytes: typeof data === \"string\" ? data : decoder.decode(data),\n } as FileWithBytes);\n return {\n kind: \"file\",\n file: {\n ...file,\n mimeType: content.mediaType,\n name: \"filename\" in content ? content.filename : undefined,\n },\n metadata: {\n providerOptions: content.providerOptions,\n },\n };\n }\n case \"tool-call\":\n case \"tool-result\":\n return {\n kind: \"data\",\n data: rest,\n };\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { GetRunContext, MiddlewareType } from '../../../context.cjs';
2
- import { E as Emitter } from '../../../emitter-UkIkNrek.cjs';
3
- import { a as BaseAgent } from '../../../base-BqzN2QwB.cjs';
2
+ import { E as Emitter } from '../../../emitter-D4OcelZ9.cjs';
3
+ import { B as BaseAgent } from '../../../base-s3ioVIE9.cjs';
4
4
  import { BaseMemory } from '../../../memory/base.cjs';
5
5
  import { A2AAgentRunInput, A2AAgentRunOutput, A2AAgentInput, A2AAgentRunOptions } from './types.cjs';
6
6
  import { A2AAgentEvents } from './events.cjs';
@@ -1,6 +1,6 @@
1
1
  import { GetRunContext, MiddlewareType } from '../../../context.js';
2
- import { E as Emitter } from '../../../emitter-CL56qab4.js';
3
- import { a as BaseAgent } from '../../../base-BfhNzUYf.js';
2
+ import { E as Emitter } from '../../../emitter-kHxkUxco.js';
3
+ import { B as BaseAgent } from '../../../base-BjzyQ8k6.js';
4
4
  import { BaseMemory } from '../../../memory/base.js';
5
5
  import { A2AAgentRunInput, A2AAgentRunOutput, A2AAgentInput, A2AAgentRunOptions } from './types.js';
6
6
  import { A2AAgentEvents } from './events.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/a2a/agents/agent.ts"],"names":["A2AAgent","BaseAgent","_memory","emitter","url","agentCard","agentCardPath","contextId","taskId","referenceTaskIds","input","Emitter","root","child","namespace","toCamelCase","name","creator","AgentError","isFatal","memory","AGENT_CARD_PATH","split","_run","_options","context","setRunParams","clearContext","loadAgentCard","client","A2AClient","lastEvent","messages","task","stream","sendMessageStream","message","convertToA2AMessage","event","kind","id","includes","push","content","status","artifact","final","state","undefined","emit","value","inputMessages","Array","isArray","addMany","map","convertToFrameworkMessage","results","artifacts","history","length","assistantMessages","result","AssistantMessage","err","error","toString","fromCardUrl","URL","href","getAgentCard","checkAgentExists","isEmpty","createSnapshot","shallowCopy","role","parts","text","messageId","uuid4","Message","convertFrameworkContentToA2APart","UserMessage","convertA2AMessageToFrameworkMessage","type","rest","data","image","decoder","TextDecoder","file","uri","bytes","decode","mimeType","mediaType","filename","metadata","providerOptions"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuid4 } from \"uuid\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, MessageContentPart, UserMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { A2AAgentInput, A2AAgentRunInput, A2AAgentRunOutput, A2AAgentRunOptions } from \"./types.js\";\nimport { A2AAgentEvents } from \"./events.js\";\nimport { toCamelCase } from \"remeda\";\nimport {\n AGENT_CARD_PATH,\n AgentCard,\n Message as A2AMessage,\n Task,\n Artifact,\n Part,\n FileWithUri,\n FileWithBytes,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport { Message } from \"@/backend/message.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"./utils.js\";\n\nexport class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {\n private _memory!: BaseMemory;\n public readonly emitter: Emitter<A2AAgentEvents>;\n protected url: string | undefined;\n public agentCard: AgentCard | undefined;\n protected agentCardPath: string;\n protected contextId: string | undefined;\n protected taskId: string | undefined;\n protected referenceTaskIds: string[] = [];\n\n constructor(protected readonly input: A2AAgentInput) {\n super();\n this.emitter = Emitter.root.child<A2AAgentEvents>({\n namespace: [\"a2a\", \"agent\", toCamelCase(this.name)],\n creator: this,\n });\n if (input.url) {\n this.url = input.url;\n } else if (input.agentCard) {\n this.agentCard = input.agentCard;\n } else {\n throw new AgentError(\"Either url or agentCard must be provided in A2AAgentInput\", [], {\n isFatal: true,\n });\n }\n\n this.memory = input.memory;\n this.agentCardPath = input.agentCardPath || AGENT_CARD_PATH;\n }\n\n get name() {\n return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(\":\")[-1]}`;\n }\n\n protected async _run(\n input: A2AAgentRunInput,\n _options: A2AAgentRunOptions,\n context: GetRunContext<this>,\n ): Promise<A2AAgentRunOutput> {\n this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);\n\n if (!this.agentCard) {\n await this.loadAgentCard();\n }\n\n const client = new A2AClient(this.agentCard!);\n\n let lastEvent = null;\n const messages: (A2AMessage | Artifact)[] = [];\n let task: Task | null = null;\n\n try {\n const stream = client.sendMessageStream({ message: this.convertToA2AMessage(input.input) });\n\n for await (const event of stream) {\n lastEvent = event;\n\n const taskId = event.kind === \"task\" ? event.id : event.taskId;\n const contextId = event.contextId;\n if (taskId && taskId !== this.taskId) {\n this.taskId = taskId;\n }\n if (contextId && contextId !== this.contextId) {\n this.contextId = contextId;\n }\n if (taskId && !this.referenceTaskIds.includes(taskId)) {\n this.referenceTaskIds.push(taskId);\n }\n\n if (event.kind === \"status-update\" || event.kind === \"artifact-update\") {\n const content = event.kind === \"status-update\" ? event.status.message : event.artifact;\n if (content) {\n messages.push(content);\n }\n if (\n event.kind === \"status-update\" &&\n event.final &&\n event.status.state !== \"input-required\"\n ) {\n this.taskId = undefined;\n }\n } else if (event.kind === \"message\") {\n messages.push(event);\n } else if (event.kind === \"task\") {\n task = event;\n }\n\n await context.emitter.emit(\"update\", { value: event });\n }\n\n if (!lastEvent) {\n throw new AgentError(\"No result received from agent.\");\n }\n\n // add input messages to memory\n const inputMessages = Array.isArray(input.input) ? input.input : [input.input];\n await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));\n\n let results: (A2AMessage | Artifact)[];\n if (task) {\n if (task.artifacts) {\n results = task.artifacts;\n } else if (task.history) {\n results = task.history;\n } else if (task.status.message) {\n results = [task.status.message];\n } else {\n results = [];\n }\n } else {\n results = messages;\n }\n\n // retrieve the assistant's response\n if (results.length > 0) {\n const assistantMessages = results.map(this.convertToFrameworkMessage);\n await this.memory.addMany(assistantMessages);\n return {\n result: assistantMessages[assistantMessages.length - 1],\n event: lastEvent,\n };\n } else {\n return {\n result: new AssistantMessage(\"No response from agent.\"),\n event: lastEvent,\n };\n }\n } catch (err) {\n let message: string;\n\n if (err.message) {\n message = err.message;\n } else if (err.error) {\n message = err.error.toString();\n } else {\n message = \"Unknown error\";\n }\n\n await context.emitter.emit(\"error\", { message });\n\n throw new AgentError(message, [err], {\n context: lastEvent ?? undefined,\n });\n }\n }\n\n protected setRunParams(contextId?: string, taskId?: string, clearContext = false) {\n if (contextId) {\n this.contextId = contextId;\n }\n this.taskId = taskId;\n if (clearContext) {\n this.contextId = undefined;\n this.taskId = undefined;\n this.referenceTaskIds = [];\n }\n }\n\n async loadAgentCard() {\n if (this.agentCard) {\n return;\n }\n\n if (!this.url) {\n throw new AgentError(\"URL must be provided to load the agent card.\", [], { isFatal: true });\n }\n\n try {\n const client = await A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {\n agentCardPath: this.agentCardPath,\n });\n this.agentCard = await client.getAgentCard();\n } catch (error) {\n throw new AgentError(`Can not load agent card: ${error.message}`, [error], {\n isFatal: true,\n });\n }\n }\n\n async checkAgentExists() {\n await this.loadAgentCard();\n if (!this.agentCard) {\n throw new AgentError(`Agent ${this.name} does not exist.`, [], { isFatal: true });\n }\n }\n\n get memory() {\n return this._memory;\n }\n\n set memory(memory: BaseMemory) {\n if (!memory.isEmpty()) {\n throw new AgentError(\"Memory must be empty before setting.\");\n }\n this._memory = memory;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n protected convertToA2AMessage(input: string | Message | Message[] | A2AMessage): A2AMessage {\n if (typeof input === \"string\") {\n return {\n kind: \"message\",\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: input,\n },\n ],\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (input instanceof Message) {\n const parts = input.content.map(convertFrameworkContentToA2APart);\n return {\n kind: \"message\",\n role: input.role == \"assistant\" ? \"agent\" : \"user\",\n parts: parts,\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (\"kind\" in input && input.kind === \"message\") {\n return input;\n } else if (Array.isArray(input) && input.length > 0) {\n return this.convertToA2AMessage(input[input.length - 1]);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n\n protected convertToFrameworkMessage(input: string | Message | A2AMessage | Artifact): Message {\n if (typeof input === \"string\") {\n return new UserMessage(input);\n } else if (input instanceof Message) {\n return input;\n } else if ((\"kind\" in input && input.kind === \"message\") || \"artifactId\" in input) {\n return convertA2AMessageToFrameworkMessage(input);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n}\n\nfunction convertFrameworkContentToA2APart(content: MessageContentPart): Part {\n const { type, ...rest } = content;\n switch (type) {\n case \"text\":\n return { kind: \"text\", text: content.text };\n case \"file\":\n case \"image\": {\n const data = type === \"file\" ? content.data : content.image;\n const decoder = new TextDecoder(\"utf-8\");\n const file =\n data instanceof URL\n ? ({ uri: data.href } as FileWithUri)\n : ({\n bytes: typeof data === \"string\" ? data : decoder.decode(data),\n } as FileWithBytes);\n return {\n kind: \"file\",\n file: {\n ...file,\n mimeType: content.mediaType,\n name: \"filename\" in content ? content.filename : undefined,\n },\n metadata: {\n providerOptions: content.providerOptions,\n },\n };\n }\n case \"tool-call\":\n case \"tool-result\":\n return {\n kind: \"data\",\n data: rest,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/agents/agent.ts"],"names":["A2AAgent","BaseAgent","_memory","emitter","url","agentCard","agentCardPath","contextId","taskId","referenceTaskIds","input","Emitter","root","child","namespace","toCamelCase","name","creator","AgentError","isFatal","memory","AGENT_CARD_PATH","split","_run","_options","context","setRunParams","clearContext","loadAgentCard","client","A2AClient","lastEvent","messages","task","stream","sendMessageStream","message","convertToA2AMessage","event","kind","id","includes","push","content","status","artifact","final","state","undefined","emit","value","inputMessages","Array","isArray","addMany","map","convertToFrameworkMessage","results","artifacts","history","length","assistantMessages","result","AssistantMessage","err","error","toString","fromCardUrl","URL","href","getAgentCard","checkAgentExists","isEmpty","createSnapshot","shallowCopy","role","parts","text","messageId","uuid4","Message","convertFrameworkContentToA2APart","UserMessage","convertA2AMessageToFrameworkMessage","type","rest","data","image","decoder","TextDecoder","file","uri","bytes","decode","mimeType","mediaType","filename","metadata","providerOptions"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuid4 } from \"uuid\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, MessageContentPart, UserMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { A2AAgentInput, A2AAgentRunInput, A2AAgentRunOutput, A2AAgentRunOptions } from \"./types.js\";\nimport { A2AAgentEvents } from \"./events.js\";\nimport { toCamelCase } from \"remeda\";\nimport {\n AGENT_CARD_PATH,\n AgentCard,\n Message as A2AMessage,\n Task,\n Artifact,\n Part,\n FileWithUri,\n FileWithBytes,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport { Message } from \"@/backend/message.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"./utils.js\";\n\nexport class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {\n private _memory!: BaseMemory;\n public readonly emitter: Emitter<A2AAgentEvents>;\n protected url: string | undefined;\n public agentCard: AgentCard | undefined;\n protected agentCardPath: string;\n protected contextId: string | undefined;\n protected taskId: string | undefined;\n protected referenceTaskIds: string[] = [];\n\n constructor(protected readonly input: A2AAgentInput) {\n super();\n this.emitter = Emitter.root.child<A2AAgentEvents>({\n namespace: [\"a2a\", \"agent\", toCamelCase(this.name)],\n creator: this,\n });\n if (input.url) {\n this.url = input.url;\n } else if (input.agentCard) {\n this.agentCard = input.agentCard;\n } else {\n throw new AgentError(\"Either url or agentCard must be provided in A2AAgentInput\", [], {\n isFatal: true,\n });\n }\n\n this.memory = input.memory;\n this.agentCardPath = input.agentCardPath || AGENT_CARD_PATH;\n }\n\n get name() {\n return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(\":\")[-1]}`;\n }\n\n protected async _run(\n input: A2AAgentRunInput,\n _options: A2AAgentRunOptions,\n context: GetRunContext<this>,\n ): Promise<A2AAgentRunOutput> {\n this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);\n\n if (!this.agentCard) {\n await this.loadAgentCard();\n }\n\n const client = new A2AClient(this.agentCard!);\n\n let lastEvent = null;\n const messages: (A2AMessage | Artifact)[] = [];\n let task: Task | null = null;\n\n try {\n const stream = client.sendMessageStream({ message: this.convertToA2AMessage(input.input) });\n\n for await (const event of stream) {\n lastEvent = event;\n\n const taskId = event.kind === \"task\" ? event.id : event.taskId;\n const contextId = event.contextId;\n if (taskId && taskId !== this.taskId) {\n this.taskId = taskId;\n }\n if (contextId && contextId !== this.contextId) {\n this.contextId = contextId;\n }\n if (taskId && !this.referenceTaskIds.includes(taskId)) {\n this.referenceTaskIds.push(taskId);\n }\n\n if (event.kind === \"status-update\" || event.kind === \"artifact-update\") {\n const content = event.kind === \"status-update\" ? event.status.message : event.artifact;\n if (content) {\n messages.push(content);\n }\n if (\n event.kind === \"status-update\" &&\n event.final &&\n event.status.state !== \"input-required\"\n ) {\n this.taskId = undefined;\n }\n } else if (event.kind === \"message\") {\n messages.push(event);\n } else if (event.kind === \"task\") {\n task = event;\n }\n\n await context.emitter.emit(\"update\", { value: event });\n }\n\n if (!lastEvent) {\n throw new AgentError(\"No result received from agent.\");\n }\n\n // add input messages to memory\n const inputMessages = Array.isArray(input.input) ? input.input : [input.input];\n await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));\n\n let results: (A2AMessage | Artifact)[];\n if (task) {\n if (task.artifacts) {\n results = task.artifacts;\n } else if (task.history) {\n results = task.history;\n } else if (task.status.message) {\n results = [task.status.message];\n } else {\n results = [];\n }\n } else {\n results = messages;\n }\n\n // retrieve the assistant's response\n if (results.length > 0) {\n const assistantMessages = results.map(this.convertToFrameworkMessage);\n await this.memory.addMany(assistantMessages);\n return {\n result: assistantMessages[assistantMessages.length - 1],\n event: lastEvent,\n };\n } else {\n return {\n result: new AssistantMessage(\"No response from agent.\"),\n event: lastEvent,\n };\n }\n } catch (err) {\n let message: string;\n\n if (err.message) {\n message = err.message;\n } else if (err.error) {\n message = err.error.toString();\n } else {\n message = \"Unknown error\";\n }\n\n await context.emitter.emit(\"error\", { message });\n\n throw new AgentError(message, [err], {\n context: lastEvent ?? undefined,\n });\n }\n }\n\n protected setRunParams(contextId?: string, taskId?: string, clearContext = false) {\n if (contextId) {\n this.contextId = contextId;\n }\n this.taskId = taskId;\n if (clearContext) {\n this.contextId = undefined;\n this.taskId = undefined;\n this.referenceTaskIds = [];\n }\n }\n\n async loadAgentCard() {\n if (this.agentCard) {\n return;\n }\n\n if (!this.url) {\n throw new AgentError(\"URL must be provided to load the agent card.\", [], { isFatal: true });\n }\n\n try {\n const client = await A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {\n agentCardPath: this.agentCardPath,\n });\n this.agentCard = await client.getAgentCard();\n } catch (error) {\n throw new AgentError(`Can not load agent card: ${error.message}`, [error], {\n isFatal: true,\n });\n }\n }\n\n async checkAgentExists() {\n await this.loadAgentCard();\n if (!this.agentCard) {\n throw new AgentError(`Agent ${this.name} does not exist.`, [], { isFatal: true });\n }\n }\n\n get memory() {\n return this._memory;\n }\n\n set memory(memory: BaseMemory) {\n if (!memory.isEmpty()) {\n throw new AgentError(\"Memory must be empty before setting.\");\n }\n this._memory = memory;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n protected convertToA2AMessage(input: string | Message | Message[] | A2AMessage): A2AMessage {\n if (typeof input === \"string\") {\n return {\n kind: \"message\",\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: input,\n },\n ],\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (input instanceof Message) {\n const parts = input.content.map(convertFrameworkContentToA2APart);\n return {\n kind: \"message\",\n role: input.role == \"assistant\" ? \"agent\" : \"user\",\n parts: parts,\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (\"kind\" in input && input.kind === \"message\") {\n return input;\n } else if (Array.isArray(input) && input.length > 0) {\n return this.convertToA2AMessage(input[input.length - 1]);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n\n protected convertToFrameworkMessage(input: string | Message | A2AMessage | Artifact): Message {\n if (typeof input === \"string\") {\n return new UserMessage(input);\n } else if (input instanceof Message) {\n return input;\n } else if ((\"kind\" in input && input.kind === \"message\") || \"artifactId\" in input) {\n return convertA2AMessageToFrameworkMessage(input);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n}\n\nfunction convertFrameworkContentToA2APart(content: MessageContentPart): Part {\n const { type, ...rest } = content;\n switch (type) {\n case \"text\":\n return { kind: \"text\", text: content.text };\n case \"file\":\n case \"image\": {\n const data = type === \"file\" ? content.data : content.image;\n const decoder = new TextDecoder(\"utf-8\");\n const file =\n data instanceof URL\n ? ({ uri: data.href } as FileWithUri)\n : ({\n bytes: typeof data === \"string\" ? data : decoder.decode(data),\n } as FileWithBytes);\n return {\n kind: \"file\",\n file: {\n ...file,\n mimeType: content.mediaType,\n name: \"filename\" in content ? content.filename : undefined,\n },\n metadata: {\n providerOptions: content.providerOptions,\n },\n };\n }\n case \"tool-call\":\n case \"tool-result\":\n return {\n kind: \"data\",\n data: rest,\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { C as Callback } from '../../../emitter-UkIkNrek.cjs';
1
+ import { C as Callback } from '../../../emitter-D4OcelZ9.cjs';
2
2
  import { Message, Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent } from '@a2a-js/sdk';
3
3
  import '../../../internals/types.cjs';
4
4
  import '../../../internals/helpers/guards.cjs';
@@ -1,4 +1,4 @@
1
- import { C as Callback } from '../../../emitter-CL56qab4.js';
1
+ import { C as Callback } from '../../../emitter-kHxkUxco.js';
2
2
  import { Message, Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent } from '@a2a-js/sdk';
3
3
  import '../../../internals/types.js';
4
4
  import '../../../internals/helpers/guards.js';
@@ -1,6 +1,6 @@
1
1
  import { Message } from '../../../backend/message.cjs';
2
2
  import { BaseMemory } from '../../../memory/base.cjs';
3
- import { B as BaseAgentRunOptions } from '../../../base-BqzN2QwB.cjs';
3
+ import { a as BaseAgentRunOptions } from '../../../base-s3ioVIE9.cjs';
4
4
  import { Message as Message$1, Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent, AgentCard } from '@a2a-js/sdk';
5
5
  import '../../../internals/serializable.cjs';
6
6
  import '../../../internals/types.cjs';
@@ -8,7 +8,7 @@ import '../../../internals/helpers/guards.cjs';
8
8
  import 'ai';
9
9
  import '../../../errors.cjs';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-UkIkNrek.cjs';
11
+ import '../../../emitter-D4OcelZ9.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../tools/base.cjs';
14
14
  import 'ajv';
@@ -1,6 +1,6 @@
1
1
  import { Message } from '../../../backend/message.js';
2
2
  import { BaseMemory } from '../../../memory/base.js';
3
- import { B as BaseAgentRunOptions } from '../../../base-BfhNzUYf.js';
3
+ import { a as BaseAgentRunOptions } from '../../../base-BjzyQ8k6.js';
4
4
  import { Message as Message$1, Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent, AgentCard } from '@a2a-js/sdk';
5
5
  import '../../../internals/serializable.js';
6
6
  import '../../../internals/types.js';
@@ -8,7 +8,7 @@ import '../../../internals/helpers/guards.js';
8
8
  import 'ai';
9
9
  import '../../../errors.js';
10
10
  import '../../../context.js';
11
- import '../../../emitter-CL56qab4.js';
11
+ import '../../../emitter-kHxkUxco.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../tools/base.js';
14
14
  import 'ajv';
@@ -4,6 +4,41 @@ var message_cjs = require('../../../backend/message.cjs');
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ function dataUriToBase64(uri) {
8
+ if (!uri.startsWith("data:")) {
9
+ return void 0;
10
+ }
11
+ const commaIndex = uri.indexOf(",");
12
+ if (commaIndex === -1) {
13
+ return void 0;
14
+ }
15
+ let header = uri.slice("data:".length, commaIndex);
16
+ const payload = uri.slice(commaIndex + 1);
17
+ const isBase64 = header.endsWith(";base64");
18
+ if (isBase64) {
19
+ header = header.slice(0, -";base64".length);
20
+ }
21
+ const mediaType = header.split(";")[0] || void 0;
22
+ try {
23
+ if (isBase64) {
24
+ const normalized = payload.replace(/\s/g, "");
25
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {
26
+ return void 0;
27
+ }
28
+ return {
29
+ data: Buffer.from(normalized, "base64").toString("base64"),
30
+ mediaType
31
+ };
32
+ }
33
+ return {
34
+ data: Buffer.from(decodeURIComponent(payload), "utf-8").toString("base64"),
35
+ mediaType
36
+ };
37
+ } catch {
38
+ return void 0;
39
+ }
40
+ }
41
+ __name(dataUriToBase64, "dataUriToBase64");
7
42
  function convertA2AMessageToFrameworkMessage(input) {
8
43
  const msg = "kind" in input && input.kind === "message" && input.role === "user" ? new message_cjs.UserMessage([], input.metadata) : new message_cjs.AssistantMessage([], input.metadata);
9
44
  for (const part of input.parts) {
@@ -18,17 +53,23 @@ function convertA2AMessageToFrameworkMessage(input) {
18
53
  text: JSON.stringify(part.data, null, 2)
19
54
  });
20
55
  } else if (part.kind === "file") {
21
- const fileData = "bytes" in part.file ? {
22
- type: "file",
23
- data: part.file.bytes,
24
- mediaType: part.file.mimeType || "application/octet-stream",
25
- filename: part.file.name
26
- } : {
27
- type: "file",
28
- data: part.file.uri,
29
- mediaType: part.file.mimeType || "application/octet-stream",
30
- filename: part.file.name
31
- };
56
+ let fileData;
57
+ if ("bytes" in part.file) {
58
+ fileData = {
59
+ type: "file",
60
+ data: part.file.bytes,
61
+ mediaType: part.file.mimeType || "application/octet-stream",
62
+ filename: part.file.name
63
+ };
64
+ } else {
65
+ const parsed = dataUriToBase64(part.file.uri);
66
+ fileData = {
67
+ type: "file",
68
+ data: parsed ? parsed.data : part.file.uri,
69
+ mediaType: part.file.mimeType || parsed?.mediaType || "application/octet-stream",
70
+ filename: part.file.name
71
+ };
72
+ }
32
73
  msg.content.push(fileData);
33
74
  }
34
75
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/a2a/agents/utils.ts"],"names":["convertA2AMessageToFrameworkMessage","input","msg","kind","role","UserMessage","metadata","AssistantMessage","part","parts","content","push","type","text","JSON","stringify","data","fileData","file","bytes","mediaType","mimeType","filename","name","uri"],"mappings":";;;;;;AASO,SAASA,oCAAoCC,KAAAA,EAA4B;AAC9E,EAAA,MAAMC,GAAAA,GACJ,UAAUD,KAAAA,IAASA,KAAAA,CAAME,SAAS,SAAA,IAAaF,KAAAA,CAAMG,SAAS,MAAA,GAC1D,IAAIC,wBAAY,EAAA,EAAIJ,MAAMK,QAAQ,CAAA,GAClC,IAAIC,4BAAAA,CAAiB,EAAA,EAAIN,KAAAA,CAAMK,QAAQ,CAAA;AAE7C,EAAA,KAAA,MAAWE,IAAAA,IAAQP,MAAMQ,KAAAA,EAAO;AAC9B,IAAA,IAAID,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AACxBD,MAAAA,GAAAA,CAAIQ,QAAQC,IAAAA,CAAK;QAAEC,IAAAA,EAAM,MAAA;AAAQC,QAAAA,IAAAA,EAAML,IAAAA,CAAKK;OAAK,CAAA;KACnD,MAAA,IAAWL,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AAC/BD,MAAAA,GAAAA,CAAIQ,QAAQC,IAAAA,CAAK;QAAEC,IAAAA,EAAM,MAAA;AAAQC,QAAAA,IAAAA,EAAMC,IAAAA,CAAKC,SAAAA,CAAUP,IAAAA,CAAKQ,IAAAA,EAAM,MAAM,CAAA;OAAG,CAAA;KAC5E,MAAA,IAAWR,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AAE/B,MAAA,MAAMc,QAAAA,GACJ,OAAA,IAAWT,IAAAA,CAAKU,IAAAA,GACZ;QACEN,IAAAA,EAAM,MAAA;AACNI,QAAAA,IAAAA,EAAMR,KAAKU,IAAAA,CAAKC,KAAAA;QAChBC,SAAAA,EAAWZ,IAAAA,CAAKU,KAAKG,QAAAA,IAAY,0BAAA;AACjCC,QAAAA,QAAAA,EAAUd,KAAKU,IAAAA,CAAKK;OACtB,GACA;QACEX,IAAAA,EAAM,MAAA;AACNI,QAAAA,IAAAA,EAAMR,KAAKU,IAAAA,CAAKM,GAAAA;QAChBJ,SAAAA,EAAWZ,IAAAA,CAAKU,KAAKG,QAAAA,IAAY,0BAAA;AACjCC,QAAAA,QAAAA,EAAUd,KAAKU,IAAAA,CAAKK;AACtB,OAAA;AAENrB,MAAAA,GAAAA,CAAIQ,OAAAA,CAAQC,KAAKM,QAAAA,CAAAA;AACnB;AACF;AAEA,EAAA,OAAOf,GAAAA;AACT;AAjCgBF,MAAAA,CAAAA,mCAAAA,EAAAA,qCAAAA,CAAAA","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AssistantMessage, Message, UserMessage } from \"@/backend/message.js\";\nimport { Message as A2AMessage, Artifact } from \"@a2a-js/sdk\";\nimport { FilePart } from \"ai\";\n\nexport function convertA2AMessageToFrameworkMessage(input: A2AMessage | Artifact): Message {\n const msg =\n \"kind\" in input && input.kind === \"message\" && input.role === \"user\"\n ? new UserMessage([], input.metadata)\n : new AssistantMessage([], input.metadata);\n\n for (const part of input.parts) {\n if (part.kind === \"text\") {\n msg.content.push({ type: \"text\", text: part.text });\n } else if (part.kind === \"data\") {\n msg.content.push({ type: \"text\", text: JSON.stringify(part.data, null, 2) });\n } else if (part.kind === \"file\") {\n // TODO: handle non-publicly accessible URLs (always convert to base64)\n const fileData: FilePart =\n \"bytes\" in part.file\n ? {\n type: \"file\",\n data: part.file.bytes,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n }\n : {\n type: \"file\",\n data: part.file.uri,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n };\n\n msg.content.push(fileData);\n }\n }\n\n return msg;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/agents/utils.ts"],"names":["dataUriToBase64","uri","startsWith","undefined","commaIndex","indexOf","header","slice","length","payload","isBase64","endsWith","mediaType","split","normalized","replace","test","data","Buffer","from","toString","decodeURIComponent","convertA2AMessageToFrameworkMessage","input","msg","kind","role","UserMessage","metadata","AssistantMessage","part","parts","content","push","type","text","JSON","stringify","fileData","file","bytes","mimeType","filename","name","parsed"],"mappings":"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","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AssistantMessage, Message, UserMessage } from \"@/backend/message.js\";\nimport { Message as A2AMessage, Artifact } from \"@a2a-js/sdk\";\nimport { FilePart } from \"ai\";\n\ninterface ParsedDataUri {\n data: string;\n mediaType?: string;\n}\n\n/**\n * Convert an RFC 2397 `data:` URI to base64 data and its media type.\n *\n * Returns `undefined` when `uri` is not a well-formed data URI, so callers can fall\n * back to treating it as a regular, fetchable URL. Percent-encoded payloads are\n * re-encoded to base64 so callers always receive base64 data.\n */\nfunction dataUriToBase64(uri: string): ParsedDataUri | undefined {\n if (!uri.startsWith(\"data:\")) {\n return undefined;\n }\n const commaIndex = uri.indexOf(\",\");\n if (commaIndex === -1) {\n return undefined; // malformed data URI\n }\n let header = uri.slice(\"data:\".length, commaIndex);\n const payload = uri.slice(commaIndex + 1);\n const isBase64 = header.endsWith(\";base64\");\n if (isBase64) {\n header = header.slice(0, -\";base64\".length);\n }\n const mediaType = header.split(\";\")[0] || undefined;\n try {\n if (isBase64) {\n const normalized = payload.replace(/\\s/g, \"\");\n if (!/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {\n return undefined; // not valid base64 -> treat as a regular URL\n }\n return { data: Buffer.from(normalized, \"base64\").toString(\"base64\"), mediaType };\n }\n return {\n data: Buffer.from(decodeURIComponent(payload), \"utf-8\").toString(\"base64\"),\n mediaType,\n };\n } catch {\n return undefined;\n }\n}\n\nexport function convertA2AMessageToFrameworkMessage(input: A2AMessage | Artifact): Message {\n const msg =\n \"kind\" in input && input.kind === \"message\" && input.role === \"user\"\n ? new UserMessage([], input.metadata)\n : new AssistantMessage([], input.metadata);\n\n for (const part of input.parts) {\n if (part.kind === \"text\") {\n msg.content.push({ type: \"text\", text: part.text });\n } else if (part.kind === \"data\") {\n msg.content.push({ type: \"text\", text: JSON.stringify(part.data, null, 2) });\n } else if (part.kind === \"file\") {\n let fileData: FilePart;\n if (\"bytes\" in part.file) {\n fileData = {\n type: \"file\",\n data: part.file.bytes,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n };\n } else {\n // Inline data: URIs as base64 so non-publicly-accessible content travels with\n // the message; leave regular (fetchable) URLs untouched.\n const parsed = dataUriToBase64(part.file.uri);\n fileData = {\n type: \"file\",\n data: parsed ? parsed.data : part.file.uri,\n mediaType: part.file.mimeType || parsed?.mediaType || \"application/octet-stream\",\n filename: part.file.name,\n };\n }\n\n msg.content.push(fileData);\n }\n }\n\n return msg;\n}\n"]}
@@ -2,6 +2,41 @@ import { UserMessage, AssistantMessage } from '../../../backend/message.js';
2
2
 
3
3
  var __defProp = Object.defineProperty;
4
4
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ function dataUriToBase64(uri) {
6
+ if (!uri.startsWith("data:")) {
7
+ return void 0;
8
+ }
9
+ const commaIndex = uri.indexOf(",");
10
+ if (commaIndex === -1) {
11
+ return void 0;
12
+ }
13
+ let header = uri.slice("data:".length, commaIndex);
14
+ const payload = uri.slice(commaIndex + 1);
15
+ const isBase64 = header.endsWith(";base64");
16
+ if (isBase64) {
17
+ header = header.slice(0, -";base64".length);
18
+ }
19
+ const mediaType = header.split(";")[0] || void 0;
20
+ try {
21
+ if (isBase64) {
22
+ const normalized = payload.replace(/\s/g, "");
23
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {
24
+ return void 0;
25
+ }
26
+ return {
27
+ data: Buffer.from(normalized, "base64").toString("base64"),
28
+ mediaType
29
+ };
30
+ }
31
+ return {
32
+ data: Buffer.from(decodeURIComponent(payload), "utf-8").toString("base64"),
33
+ mediaType
34
+ };
35
+ } catch {
36
+ return void 0;
37
+ }
38
+ }
39
+ __name(dataUriToBase64, "dataUriToBase64");
5
40
  function convertA2AMessageToFrameworkMessage(input) {
6
41
  const msg = "kind" in input && input.kind === "message" && input.role === "user" ? new UserMessage([], input.metadata) : new AssistantMessage([], input.metadata);
7
42
  for (const part of input.parts) {
@@ -16,17 +51,23 @@ function convertA2AMessageToFrameworkMessage(input) {
16
51
  text: JSON.stringify(part.data, null, 2)
17
52
  });
18
53
  } else if (part.kind === "file") {
19
- const fileData = "bytes" in part.file ? {
20
- type: "file",
21
- data: part.file.bytes,
22
- mediaType: part.file.mimeType || "application/octet-stream",
23
- filename: part.file.name
24
- } : {
25
- type: "file",
26
- data: part.file.uri,
27
- mediaType: part.file.mimeType || "application/octet-stream",
28
- filename: part.file.name
29
- };
54
+ let fileData;
55
+ if ("bytes" in part.file) {
56
+ fileData = {
57
+ type: "file",
58
+ data: part.file.bytes,
59
+ mediaType: part.file.mimeType || "application/octet-stream",
60
+ filename: part.file.name
61
+ };
62
+ } else {
63
+ const parsed = dataUriToBase64(part.file.uri);
64
+ fileData = {
65
+ type: "file",
66
+ data: parsed ? parsed.data : part.file.uri,
67
+ mediaType: part.file.mimeType || parsed?.mediaType || "application/octet-stream",
68
+ filename: part.file.name
69
+ };
70
+ }
30
71
  msg.content.push(fileData);
31
72
  }
32
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/a2a/agents/utils.ts"],"names":["convertA2AMessageToFrameworkMessage","input","msg","kind","role","UserMessage","metadata","AssistantMessage","part","parts","content","push","type","text","JSON","stringify","data","fileData","file","bytes","mediaType","mimeType","filename","name","uri"],"mappings":";;;;AASO,SAASA,oCAAoCC,KAAAA,EAA4B;AAC9E,EAAA,MAAMC,GAAAA,GACJ,UAAUD,KAAAA,IAASA,KAAAA,CAAME,SAAS,SAAA,IAAaF,KAAAA,CAAMG,SAAS,MAAA,GAC1D,IAAIC,YAAY,EAAA,EAAIJ,MAAMK,QAAQ,CAAA,GAClC,IAAIC,gBAAAA,CAAiB,EAAA,EAAIN,KAAAA,CAAMK,QAAQ,CAAA;AAE7C,EAAA,KAAA,MAAWE,IAAAA,IAAQP,MAAMQ,KAAAA,EAAO;AAC9B,IAAA,IAAID,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AACxBD,MAAAA,GAAAA,CAAIQ,QAAQC,IAAAA,CAAK;QAAEC,IAAAA,EAAM,MAAA;AAAQC,QAAAA,IAAAA,EAAML,IAAAA,CAAKK;OAAK,CAAA;KACnD,MAAA,IAAWL,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AAC/BD,MAAAA,GAAAA,CAAIQ,QAAQC,IAAAA,CAAK;QAAEC,IAAAA,EAAM,MAAA;AAAQC,QAAAA,IAAAA,EAAMC,IAAAA,CAAKC,SAAAA,CAAUP,IAAAA,CAAKQ,IAAAA,EAAM,MAAM,CAAA;OAAG,CAAA;KAC5E,MAAA,IAAWR,IAAAA,CAAKL,SAAS,MAAA,EAAQ;AAE/B,MAAA,MAAMc,QAAAA,GACJ,OAAA,IAAWT,IAAAA,CAAKU,IAAAA,GACZ;QACEN,IAAAA,EAAM,MAAA;AACNI,QAAAA,IAAAA,EAAMR,KAAKU,IAAAA,CAAKC,KAAAA;QAChBC,SAAAA,EAAWZ,IAAAA,CAAKU,KAAKG,QAAAA,IAAY,0BAAA;AACjCC,QAAAA,QAAAA,EAAUd,KAAKU,IAAAA,CAAKK;OACtB,GACA;QACEX,IAAAA,EAAM,MAAA;AACNI,QAAAA,IAAAA,EAAMR,KAAKU,IAAAA,CAAKM,GAAAA;QAChBJ,SAAAA,EAAWZ,IAAAA,CAAKU,KAAKG,QAAAA,IAAY,0BAAA;AACjCC,QAAAA,QAAAA,EAAUd,KAAKU,IAAAA,CAAKK;AACtB,OAAA;AAENrB,MAAAA,GAAAA,CAAIQ,OAAAA,CAAQC,KAAKM,QAAAA,CAAAA;AACnB;AACF;AAEA,EAAA,OAAOf,GAAAA;AACT;AAjCgBF,MAAAA,CAAAA,mCAAAA,EAAAA,qCAAAA,CAAAA","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AssistantMessage, Message, UserMessage } from \"@/backend/message.js\";\nimport { Message as A2AMessage, Artifact } from \"@a2a-js/sdk\";\nimport { FilePart } from \"ai\";\n\nexport function convertA2AMessageToFrameworkMessage(input: A2AMessage | Artifact): Message {\n const msg =\n \"kind\" in input && input.kind === \"message\" && input.role === \"user\"\n ? new UserMessage([], input.metadata)\n : new AssistantMessage([], input.metadata);\n\n for (const part of input.parts) {\n if (part.kind === \"text\") {\n msg.content.push({ type: \"text\", text: part.text });\n } else if (part.kind === \"data\") {\n msg.content.push({ type: \"text\", text: JSON.stringify(part.data, null, 2) });\n } else if (part.kind === \"file\") {\n // TODO: handle non-publicly accessible URLs (always convert to base64)\n const fileData: FilePart =\n \"bytes\" in part.file\n ? {\n type: \"file\",\n data: part.file.bytes,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n }\n : {\n type: \"file\",\n data: part.file.uri,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n };\n\n msg.content.push(fileData);\n }\n }\n\n return msg;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/agents/utils.ts"],"names":["dataUriToBase64","uri","startsWith","undefined","commaIndex","indexOf","header","slice","length","payload","isBase64","endsWith","mediaType","split","normalized","replace","test","data","Buffer","from","toString","decodeURIComponent","convertA2AMessageToFrameworkMessage","input","msg","kind","role","UserMessage","metadata","AssistantMessage","part","parts","content","push","type","text","JSON","stringify","fileData","file","bytes","mimeType","filename","name","parsed"],"mappings":"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","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AssistantMessage, Message, UserMessage } from \"@/backend/message.js\";\nimport { Message as A2AMessage, Artifact } from \"@a2a-js/sdk\";\nimport { FilePart } from \"ai\";\n\ninterface ParsedDataUri {\n data: string;\n mediaType?: string;\n}\n\n/**\n * Convert an RFC 2397 `data:` URI to base64 data and its media type.\n *\n * Returns `undefined` when `uri` is not a well-formed data URI, so callers can fall\n * back to treating it as a regular, fetchable URL. Percent-encoded payloads are\n * re-encoded to base64 so callers always receive base64 data.\n */\nfunction dataUriToBase64(uri: string): ParsedDataUri | undefined {\n if (!uri.startsWith(\"data:\")) {\n return undefined;\n }\n const commaIndex = uri.indexOf(\",\");\n if (commaIndex === -1) {\n return undefined; // malformed data URI\n }\n let header = uri.slice(\"data:\".length, commaIndex);\n const payload = uri.slice(commaIndex + 1);\n const isBase64 = header.endsWith(\";base64\");\n if (isBase64) {\n header = header.slice(0, -\";base64\".length);\n }\n const mediaType = header.split(\";\")[0] || undefined;\n try {\n if (isBase64) {\n const normalized = payload.replace(/\\s/g, \"\");\n if (!/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {\n return undefined; // not valid base64 -> treat as a regular URL\n }\n return { data: Buffer.from(normalized, \"base64\").toString(\"base64\"), mediaType };\n }\n return {\n data: Buffer.from(decodeURIComponent(payload), \"utf-8\").toString(\"base64\"),\n mediaType,\n };\n } catch {\n return undefined;\n }\n}\n\nexport function convertA2AMessageToFrameworkMessage(input: A2AMessage | Artifact): Message {\n const msg =\n \"kind\" in input && input.kind === \"message\" && input.role === \"user\"\n ? new UserMessage([], input.metadata)\n : new AssistantMessage([], input.metadata);\n\n for (const part of input.parts) {\n if (part.kind === \"text\") {\n msg.content.push({ type: \"text\", text: part.text });\n } else if (part.kind === \"data\") {\n msg.content.push({ type: \"text\", text: JSON.stringify(part.data, null, 2) });\n } else if (part.kind === \"file\") {\n let fileData: FilePart;\n if (\"bytes\" in part.file) {\n fileData = {\n type: \"file\",\n data: part.file.bytes,\n mediaType: part.file.mimeType || \"application/octet-stream\",\n filename: part.file.name,\n };\n } else {\n // Inline data: URIs as base64 so non-publicly-accessible content travels with\n // the message; leave regular (fetchable) URLs untouched.\n const parsed = dataUriToBase64(part.file.uri);\n fileData = {\n type: \"file\",\n data: parsed ? parsed.data : part.file.uri,\n mediaType: part.file.mimeType || parsed?.mediaType || \"application/octet-stream\",\n filename: part.file.name,\n };\n }\n\n msg.content.push(fileData);\n }\n }\n\n return msg;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/a2a/serve/agent_executor.ts"],"names":["logger","Logger","root","child","name","BaseA2AAgentExecutor","abortControllers","Map","agent","execute","requestContext","eventBus","userMessage","existingTask","task","kind","id","uuidv4","contextId","status","state","timestamp","Date","toISOString","history","metadata","taskId","publish","workingStatusUpdate","final","abortController","AbortController","set","clone","memory","reset","addMany","map","convertA2AMessageToFrameworkMessage","response","run","signal","observe","emitter","process_events","agentMessage","role","messageId","parts","text","result","push","finalUpdate","message","finished","error","errorMessage","Error","String","errorUpdate","_emitter","_requestContext","_eventBus","cancelTask","has","get","cancelledUpdate","abort","ToolCallingAgentExecutor","lastMsg","undefined","processEvent","messages","at","index","lastIndexOf","slice","update","JSON","stringify","toPlain","on","ReActAgentExecutor","updateEvent","value"],"mappings":"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","file":"agent_executor.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { AnyAgent } from \"@/agents/types.js\";\nimport { AgentExecutor, RequestContext, ExecutionEventBus } from \"@a2a-js/sdk/server\";\nimport { Message, TaskStatusUpdateEvent } from \"@a2a-js/sdk\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"@/adapters/a2a/agents/utils.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { ToolCallingAgentCallbacks, ToolCallingAgentRunState } from \"@/agents/toolCalling/types.js\";\nimport { ReActAgentCallbacks } from \"@/agents/react/types.js\";\nimport { Message as FrameworkMessage } from \"@/backend/message.js\";\n\nconst logger = Logger.root.child({\n name: \"A2A server\",\n});\n\nexport abstract class BaseA2AAgentExecutor implements AgentExecutor {\n protected readonly abortControllers = new Map<string, [string, AbortController]>();\n\n constructor(protected agent: AnyAgent) {}\n\n async execute(requestContext: RequestContext, eventBus: ExecutionEventBus): Promise<void> {\n const userMessage = requestContext.userMessage;\n const existingTask = requestContext.task || {\n kind: \"task\",\n id: uuidv4(),\n contextId: userMessage.contextId || uuidv4(),\n status: {\n state: \"submitted\",\n timestamp: new Date().toISOString(),\n },\n history: [userMessage],\n metadata: userMessage.metadata,\n };\n\n const taskId = existingTask.id;\n const contextId = existingTask.contextId;\n\n // Publish initial Task event if it's a new task\n eventBus.publish(existingTask);\n\n // Publish \"working\" status update\n const workingStatusUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"working\",\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(workingStatusUpdate);\n\n const abortController = new AbortController();\n this.abortControllers.set(taskId, [contextId, abortController]);\n\n const agent = await this.agent.clone();\n agent.memory = await agent.memory.clone();\n agent.memory.reset();\n await agent.memory.addMany(\n (existingTask.history || [requestContext.userMessage]).map(\n convertA2AMessageToFrameworkMessage,\n ) || [],\n );\n\n try {\n // run the agent\n const response = await agent\n .run(\n {},\n {\n signal: abortController.signal,\n },\n )\n .observe(async (emitter) => {\n await this.process_events(emitter, requestContext, eventBus);\n });\n\n const agentMessage: Message = {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: response.result.text }],\n taskId: taskId,\n contextId: contextId,\n };\n\n // Append agent message to task history\n if (!existingTask.history) {\n existingTask.history = [];\n }\n existingTask.history.push(agentMessage);\n eventBus.publish(existingTask);\n\n // Publish completed status update with agent message\n const finalUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"completed\",\n message: agentMessage,\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(finalUpdate);\n\n eventBus.finished();\n } catch (error) {\n logger.error(error, \"Agent execution error\");\n const errorMessage = error instanceof Error ? error.message : String(error);\n // Publish failed status update\n const errorUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"failed\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: `Agent error: ${errorMessage}` }],\n taskId: taskId,\n contextId: contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(errorUpdate);\n eventBus.finished();\n }\n }\n\n async process_events(\n _emitter: Emitter,\n _requestContext: RequestContext,\n _eventBus: ExecutionEventBus,\n ): Promise<void> {\n return;\n }\n\n public cancelTask = async (taskId: string, eventBus: ExecutionEventBus): Promise<void> => {\n if (this.abortControllers.has(taskId)) {\n const [contextId, abortController] = this.abortControllers.get(taskId)!;\n const cancelledUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"canceled\",\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(cancelledUpdate);\n abortController.abort();\n }\n };\n}\n\nexport class ToolCallingAgentExecutor extends BaseA2AAgentExecutor {\n async process_events(\n emitter: Emitter<ToolCallingAgentCallbacks>,\n requestContext: RequestContext,\n eventBus: ExecutionEventBus,\n ): Promise<void> {\n let lastMsg: FrameworkMessage | undefined = undefined;\n\n const processEvent: Callback<{ state: ToolCallingAgentRunState }> = async ({ state }) => {\n const messages = state.memory.messages;\n if (lastMsg === undefined) {\n lastMsg = messages.at(-1);\n }\n\n const index = lastMsg ? messages.lastIndexOf(lastMsg) : -1;\n for (const message of messages.slice(index + 1)) {\n const update: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n status: {\n state: \"working\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: JSON.stringify(message.toPlain()) }],\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(update);\n lastMsg = message;\n }\n };\n emitter.on(\"start\", processEvent);\n emitter.on(\"success\", processEvent);\n }\n}\n\nexport class ReActAgentExecutor extends BaseA2AAgentExecutor {\n async process_events(\n emitter: Emitter<ReActAgentCallbacks>,\n requestContext: RequestContext,\n eventBus: ExecutionEventBus,\n ): Promise<void> {\n emitter.on(\"update\", async ({ update }) => {\n const updateEvent: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n status: {\n state: \"working\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: update.value }],\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(updateEvent);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/serve/agent_executor.ts"],"names":["logger","Logger","root","child","name","BaseA2AAgentExecutor","abortControllers","Map","agent","execute","requestContext","eventBus","userMessage","existingTask","task","kind","id","uuidv4","contextId","status","state","timestamp","Date","toISOString","history","metadata","taskId","publish","workingStatusUpdate","final","abortController","AbortController","set","clone","memory","reset","addMany","map","convertA2AMessageToFrameworkMessage","response","run","signal","observe","emitter","process_events","agentMessage","role","messageId","parts","text","result","push","finalUpdate","message","finished","error","errorMessage","Error","String","errorUpdate","_emitter","_requestContext","_eventBus","cancelTask","has","get","cancelledUpdate","abort","ToolCallingAgentExecutor","lastMsg","undefined","processEvent","messages","at","index","lastIndexOf","slice","update","JSON","stringify","toPlain","on","ReActAgentExecutor","updateEvent","value"],"mappings":"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","file":"agent_executor.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { AnyAgent } from \"@/agents/types.js\";\nimport { AgentExecutor, RequestContext, ExecutionEventBus } from \"@a2a-js/sdk/server\";\nimport { Message, TaskStatusUpdateEvent } from \"@a2a-js/sdk\";\nimport { Logger } from \"@/logger/logger.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"@/adapters/a2a/agents/utils.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { ToolCallingAgentCallbacks, ToolCallingAgentRunState } from \"@/agents/toolCalling/types.js\";\nimport { ReActAgentCallbacks } from \"@/agents/react/types.js\";\nimport { Message as FrameworkMessage } from \"@/backend/message.js\";\n\nconst logger = Logger.root.child({\n name: \"A2A server\",\n});\n\nexport abstract class BaseA2AAgentExecutor implements AgentExecutor {\n protected readonly abortControllers = new Map<string, [string, AbortController]>();\n\n constructor(protected agent: AnyAgent) {}\n\n async execute(requestContext: RequestContext, eventBus: ExecutionEventBus): Promise<void> {\n const userMessage = requestContext.userMessage;\n const existingTask = requestContext.task || {\n kind: \"task\",\n id: uuidv4(),\n contextId: userMessage.contextId || uuidv4(),\n status: {\n state: \"submitted\",\n timestamp: new Date().toISOString(),\n },\n history: [userMessage],\n metadata: userMessage.metadata,\n };\n\n const taskId = existingTask.id;\n const contextId = existingTask.contextId;\n\n // Publish initial Task event if it's a new task\n eventBus.publish(existingTask);\n\n // Publish \"working\" status update\n const workingStatusUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"working\",\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(workingStatusUpdate);\n\n const abortController = new AbortController();\n this.abortControllers.set(taskId, [contextId, abortController]);\n\n const agent = await this.agent.clone();\n agent.memory = await agent.memory.clone();\n agent.memory.reset();\n await agent.memory.addMany(\n (existingTask.history || [requestContext.userMessage]).map(\n convertA2AMessageToFrameworkMessage,\n ) || [],\n );\n\n try {\n // run the agent\n const response = await agent\n .run(\n {},\n {\n signal: abortController.signal,\n },\n )\n .observe(async (emitter) => {\n await this.process_events(emitter, requestContext, eventBus);\n });\n\n const agentMessage: Message = {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: response.result.text }],\n taskId: taskId,\n contextId: contextId,\n };\n\n // Append agent message to task history\n if (!existingTask.history) {\n existingTask.history = [];\n }\n existingTask.history.push(agentMessage);\n eventBus.publish(existingTask);\n\n // Publish completed status update with agent message\n const finalUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"completed\",\n message: agentMessage,\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(finalUpdate);\n\n eventBus.finished();\n } catch (error) {\n logger.error(error, \"Agent execution error\");\n const errorMessage = error instanceof Error ? error.message : String(error);\n // Publish failed status update\n const errorUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"failed\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: `Agent error: ${errorMessage}` }],\n taskId: taskId,\n contextId: contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(errorUpdate);\n eventBus.finished();\n }\n }\n\n async process_events(\n _emitter: Emitter,\n _requestContext: RequestContext,\n _eventBus: ExecutionEventBus,\n ): Promise<void> {\n return;\n }\n\n public cancelTask = async (taskId: string, eventBus: ExecutionEventBus): Promise<void> => {\n if (this.abortControllers.has(taskId)) {\n const [contextId, abortController] = this.abortControllers.get(taskId)!;\n const cancelledUpdate: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: taskId,\n contextId: contextId,\n status: {\n state: \"canceled\",\n timestamp: new Date().toISOString(),\n },\n final: true,\n };\n eventBus.publish(cancelledUpdate);\n abortController.abort();\n }\n };\n}\n\nexport class ToolCallingAgentExecutor extends BaseA2AAgentExecutor {\n async process_events(\n emitter: Emitter<ToolCallingAgentCallbacks>,\n requestContext: RequestContext,\n eventBus: ExecutionEventBus,\n ): Promise<void> {\n let lastMsg: FrameworkMessage | undefined = undefined;\n\n const processEvent: Callback<{ state: ToolCallingAgentRunState }> = async ({ state }) => {\n const messages = state.memory.messages;\n if (lastMsg === undefined) {\n lastMsg = messages.at(-1);\n }\n\n const index = lastMsg ? messages.lastIndexOf(lastMsg) : -1;\n for (const message of messages.slice(index + 1)) {\n const update: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n status: {\n state: \"working\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: JSON.stringify(message.toPlain()) }],\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(update);\n lastMsg = message;\n }\n };\n emitter.on(\"start\", processEvent);\n emitter.on(\"success\", processEvent);\n }\n}\n\nexport class ReActAgentExecutor extends BaseA2AAgentExecutor {\n async process_events(\n emitter: Emitter<ReActAgentCallbacks>,\n requestContext: RequestContext,\n eventBus: ExecutionEventBus,\n ): Promise<void> {\n emitter.on(\"update\", async ({ update }) => {\n const updateEvent: TaskStatusUpdateEvent = {\n kind: \"status-update\",\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n status: {\n state: \"working\",\n message: {\n kind: \"message\",\n role: \"agent\",\n messageId: uuidv4(),\n parts: [{ kind: \"text\", text: update.value }],\n taskId: requestContext.taskId,\n contextId: requestContext.contextId,\n },\n timestamp: new Date().toISOString(),\n },\n final: false,\n };\n eventBus.publish(updateEvent);\n });\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { b as AnyAgent } from '../../../base-BqzN2QwB.cjs';
1
+ import { b as AnyAgent } from '../../../base-s3ioVIE9.cjs';
2
2
  import { AgentExecutor, RequestContext, ExecutionEventBus } from '@a2a-js/sdk/server';
3
- import { E as Emitter } from '../../../emitter-UkIkNrek.cjs';
3
+ import { E as Emitter } from '../../../emitter-D4OcelZ9.cjs';
4
4
  import { ToolCallingAgentCallbacks } from '../../../agents/toolCalling/types.cjs';
5
5
  import { ReActAgentCallbacks } from '../../../agents/react/types.cjs';
6
6
  import '../../../context.cjs';
@@ -28,7 +28,7 @@ import '../../../parsers/field.cjs';
28
28
  import '@streamparser/json';
29
29
  import 'jsonrepair/stream';
30
30
  import '../../../parsers/errors.cjs';
31
- import '../../../chat-DaqV3woF.cjs';
31
+ import '../../../chat-C20nYj46.cjs';
32
32
  import '../../../backend/constants.cjs';
33
33
  import '../../../logger/logger.cjs';
34
34
  import 'pino';