@mastra/server 0.0.0-feat-support-ai-sdk-5-again-20250813225910 → 0.0.0-feat-improve-processors-20251205191721

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 (374) hide show
  1. package/CHANGELOG.md +4963 -0
  2. package/README.md +1 -6
  3. package/dist/chunk-2NW6POYK.cjs +89 -0
  4. package/dist/chunk-2NW6POYK.cjs.map +1 -0
  5. package/dist/{chunk-25LDKW7R.js → chunk-2PB6VJQX.js} +225 -36
  6. package/dist/chunk-2PB6VJQX.js.map +1 -0
  7. package/dist/chunk-2PLXW4ZX.cjs +2777 -0
  8. package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
  9. package/dist/chunk-4W2SM6CG.js +294 -0
  10. package/dist/chunk-4W2SM6CG.js.map +1 -0
  11. package/dist/chunk-5W4RPVTK.cjs +49 -0
  12. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  13. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  14. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  15. package/dist/chunk-6FKQ4DSG.js +23216 -0
  16. package/dist/chunk-6FKQ4DSG.js.map +1 -0
  17. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  18. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  19. package/dist/chunk-7MKJBWFB.js +328 -0
  20. package/dist/chunk-7MKJBWFB.js.map +1 -0
  21. package/dist/chunk-BMZXKXKN.js +1024 -0
  22. package/dist/chunk-BMZXKXKN.js.map +1 -0
  23. package/dist/chunk-C36PTNGG.js +310 -0
  24. package/dist/chunk-C36PTNGG.js.map +1 -0
  25. package/dist/chunk-CENPXDRK.js +131 -0
  26. package/dist/chunk-CENPXDRK.js.map +1 -0
  27. package/dist/chunk-CLRYA4BH.cjs +125 -0
  28. package/dist/chunk-CLRYA4BH.cjs.map +1 -0
  29. package/dist/chunk-ER3QM7DD.js +46 -0
  30. package/dist/chunk-ER3QM7DD.js.map +1 -0
  31. package/dist/chunk-FCCK5TSS.js +116 -0
  32. package/dist/chunk-FCCK5TSS.js.map +1 -0
  33. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  34. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  35. package/dist/chunk-GU4EWMZB.cjs +769 -0
  36. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  37. package/dist/chunk-GXPLVMB6.cjs +135 -0
  38. package/dist/chunk-GXPLVMB6.cjs.map +1 -0
  39. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  40. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  41. package/dist/chunk-ICROWJN4.cjs +23258 -0
  42. package/dist/chunk-ICROWJN4.cjs.map +1 -0
  43. package/dist/{chunk-WNK42E5I.cjs → chunk-KXHMFCVS.cjs} +231 -36
  44. package/dist/chunk-KXHMFCVS.cjs.map +1 -0
  45. package/dist/chunk-LF2ZLOFP.js +767 -0
  46. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  47. package/dist/chunk-LPM6BBAX.cjs +1043 -0
  48. package/dist/chunk-LPM6BBAX.cjs.map +1 -0
  49. package/dist/chunk-MWQQRVQC.cjs +259 -0
  50. package/dist/chunk-MWQQRVQC.cjs.map +1 -0
  51. package/dist/chunk-O7I5CWRX.cjs +44 -0
  52. package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  53. package/dist/chunk-ORJBWSYB.js +196 -0
  54. package/dist/chunk-ORJBWSYB.js.map +1 -0
  55. package/dist/chunk-PKRHEXX7.js +74 -0
  56. package/dist/chunk-PKRHEXX7.js.map +1 -0
  57. package/dist/chunk-PR4QN5HX.js +39 -0
  58. package/dist/{chunk-PZ5AY32C.js.map → chunk-PR4QN5HX.js.map} +1 -1
  59. package/dist/chunk-PRNUFXPC.cjs +1067 -0
  60. package/dist/chunk-PRNUFXPC.cjs.map +1 -0
  61. package/dist/chunk-QCW6WANZ.cjs +296 -0
  62. package/dist/chunk-QCW6WANZ.cjs.map +1 -0
  63. package/dist/chunk-QS23OV2B.cjs +916 -0
  64. package/dist/chunk-QS23OV2B.cjs.map +1 -0
  65. package/dist/chunk-R4M3BSUG.js +226 -0
  66. package/dist/chunk-R4M3BSUG.js.map +1 -0
  67. package/dist/chunk-RQK4FQUD.js +1012 -0
  68. package/dist/chunk-RQK4FQUD.js.map +1 -0
  69. package/dist/chunk-SWIK2QSP.cjs +346 -0
  70. package/dist/chunk-SWIK2QSP.cjs.map +1 -0
  71. package/dist/chunk-SXVANU23.js +164 -0
  72. package/dist/chunk-SXVANU23.js.map +1 -0
  73. package/dist/chunk-TIX6M3ZD.js +354 -0
  74. package/dist/chunk-TIX6M3ZD.js.map +1 -0
  75. package/dist/chunk-TLA5YDQF.cjs +801 -0
  76. package/dist/chunk-TLA5YDQF.cjs.map +1 -0
  77. package/dist/chunk-TOUBNMVI.cjs +322 -0
  78. package/dist/chunk-TOUBNMVI.cjs.map +1 -0
  79. package/dist/chunk-TT25WHVT.cjs +368 -0
  80. package/dist/chunk-TT25WHVT.cjs.map +1 -0
  81. package/dist/chunk-U565A3UD.js +777 -0
  82. package/dist/chunk-U565A3UD.js.map +1 -0
  83. package/dist/chunk-UPY7WWRA.cjs +205 -0
  84. package/dist/chunk-UPY7WWRA.cjs.map +1 -0
  85. package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
  86. package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
  87. package/dist/chunk-V272B7RM.cjs +255 -0
  88. package/dist/chunk-V272B7RM.cjs.map +1 -0
  89. package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
  90. package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
  91. package/dist/chunk-VJVDLNFK.js +286 -0
  92. package/dist/chunk-VJVDLNFK.js.map +1 -0
  93. package/dist/chunk-WISPJOEJ.js +887 -0
  94. package/dist/chunk-WISPJOEJ.js.map +1 -0
  95. package/dist/chunk-XMKZWHVG.js +204 -0
  96. package/dist/chunk-XMKZWHVG.js.map +1 -0
  97. package/dist/chunk-XQPJ63ZD.cjs +48 -0
  98. package/dist/chunk-XQPJ63ZD.cjs.map +1 -0
  99. package/dist/chunk-XWGAT2DA.js +44 -0
  100. package/dist/chunk-XWGAT2DA.js.map +1 -0
  101. package/dist/chunk-YP34EWWK.js +253 -0
  102. package/dist/chunk-YP34EWWK.js.map +1 -0
  103. package/dist/chunk-Z4GN2JAO.cjs +211 -0
  104. package/dist/chunk-Z4GN2JAO.cjs.map +1 -0
  105. package/dist/chunk-ZULZ2752.js +2774 -0
  106. package/dist/chunk-ZULZ2752.js.map +1 -0
  107. package/dist/dist-4MVGNSRL.cjs +1150 -0
  108. package/dist/dist-4MVGNSRL.cjs.map +1 -0
  109. package/dist/dist-FZYCV3VB.cjs +940 -0
  110. package/dist/dist-FZYCV3VB.cjs.map +1 -0
  111. package/dist/dist-G2BYZJOC.cjs +928 -0
  112. package/dist/dist-G2BYZJOC.cjs.map +1 -0
  113. package/dist/dist-P4MXBQ3U.cjs +16 -0
  114. package/dist/dist-P4MXBQ3U.cjs.map +1 -0
  115. package/dist/dist-PQZUVLPC.js +937 -0
  116. package/dist/dist-PQZUVLPC.js.map +1 -0
  117. package/dist/dist-R7WYX6LC.js +925 -0
  118. package/dist/dist-R7WYX6LC.js.map +1 -0
  119. package/dist/dist-RFMYFILX.cjs +764 -0
  120. package/dist/dist-RFMYFILX.cjs.map +1 -0
  121. package/dist/dist-X7XR3M3Z.js +1147 -0
  122. package/dist/dist-X7XR3M3Z.js.map +1 -0
  123. package/dist/dist-XVBSOGFK.js +761 -0
  124. package/dist/dist-XVBSOGFK.js.map +1 -0
  125. package/dist/dist-YREX2TJT.js +3 -0
  126. package/dist/dist-YREX2TJT.js.map +1 -0
  127. package/dist/index.cjs +4 -0
  128. package/dist/index.cjs.map +1 -1
  129. package/dist/index.js +3 -0
  130. package/dist/index.js.map +1 -1
  131. package/dist/server/auth/defaults.d.ts +3 -0
  132. package/dist/server/auth/defaults.d.ts.map +1 -0
  133. package/dist/server/auth/helpers.d.ts +14 -0
  134. package/dist/server/auth/helpers.d.ts.map +1 -0
  135. package/dist/server/auth/index.cjs +137 -0
  136. package/dist/server/auth/index.cjs.map +1 -0
  137. package/dist/server/auth/index.d.ts +3 -0
  138. package/dist/server/auth/index.d.ts.map +1 -0
  139. package/dist/server/auth/index.js +127 -0
  140. package/dist/server/auth/index.js.map +1 -0
  141. package/dist/server/handlers/a2a.cjs +15 -7
  142. package/dist/server/handlers/a2a.d.ts +492 -10
  143. package/dist/server/handlers/a2a.d.ts.map +1 -1
  144. package/dist/server/handlers/a2a.js +1 -1
  145. package/dist/server/handlers/agent-builder.cjs +80 -0
  146. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  147. package/dist/server/handlers/agent-builder.d.ts +625 -0
  148. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  149. package/dist/server/handlers/agent-builder.js +3 -0
  150. package/dist/server/handlers/agent-builder.js.map +1 -0
  151. package/dist/server/handlers/agents.cjs +73 -17
  152. package/dist/server/handlers/agents.d.ts +3328 -80
  153. package/dist/server/handlers/agents.d.ts.map +1 -1
  154. package/dist/server/handlers/agents.js +1 -1
  155. package/dist/server/handlers/error.cjs +2 -2
  156. package/dist/server/handlers/error.js +1 -1
  157. package/dist/server/handlers/logs.cjs +7 -7
  158. package/dist/server/handlers/logs.d.ts +135 -27
  159. package/dist/server/handlers/logs.d.ts.map +1 -1
  160. package/dist/server/handlers/logs.js +1 -1
  161. package/dist/server/handlers/mcp.cjs +40 -0
  162. package/dist/server/handlers/mcp.cjs.map +1 -0
  163. package/dist/server/handlers/mcp.d.ts +108 -0
  164. package/dist/server/handlers/mcp.d.ts.map +1 -0
  165. package/dist/server/handlers/mcp.js +3 -0
  166. package/dist/server/handlers/mcp.js.map +1 -0
  167. package/dist/server/handlers/memory.cjs +63 -31
  168. package/dist/server/handlers/memory.d.ts +934 -106
  169. package/dist/server/handlers/memory.d.ts.map +1 -1
  170. package/dist/server/handlers/memory.js +1 -1
  171. package/dist/server/handlers/observability.cjs +40 -0
  172. package/dist/server/handlers/observability.cjs.map +1 -0
  173. package/dist/server/handlers/observability.d.ts +156 -0
  174. package/dist/server/handlers/observability.d.ts.map +1 -0
  175. package/dist/server/handlers/observability.js +3 -0
  176. package/dist/server/handlers/observability.js.map +1 -0
  177. package/dist/server/handlers/scores.cjs +13 -13
  178. package/dist/server/handlers/scores.d.ts +112 -40
  179. package/dist/server/handlers/scores.d.ts.map +1 -1
  180. package/dist/server/handlers/scores.js +1 -1
  181. package/dist/server/handlers/test-utils.cjs +15 -0
  182. package/dist/server/handlers/test-utils.cjs.map +1 -0
  183. package/dist/server/handlers/test-utils.d.ts +6 -0
  184. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  185. package/dist/server/handlers/test-utils.js +13 -0
  186. package/dist/server/handlers/test-utils.js.map +1 -0
  187. package/dist/server/handlers/tools.cjs +13 -9
  188. package/dist/server/handlers/tools.d.ts +69 -19
  189. package/dist/server/handlers/tools.d.ts.map +1 -1
  190. package/dist/server/handlers/tools.js +1 -1
  191. package/dist/server/handlers/utils.cjs +14 -2
  192. package/dist/server/handlers/utils.d.ts +11 -0
  193. package/dist/server/handlers/utils.d.ts.map +1 -1
  194. package/dist/server/handlers/utils.js +1 -1
  195. package/dist/server/handlers/vector.cjs +31 -7
  196. package/dist/server/handlers/vector.d.ts +93 -9
  197. package/dist/server/handlers/vector.d.ts.map +1 -1
  198. package/dist/server/handlers/vector.js +1 -1
  199. package/dist/server/handlers/voice.cjs +21 -9
  200. package/dist/server/handlers/voice.d.ts +81 -38
  201. package/dist/server/handlers/voice.d.ts.map +1 -1
  202. package/dist/server/handlers/voice.js +1 -1
  203. package/dist/server/handlers/workflows.cjs +71 -31
  204. package/dist/server/handlers/workflows.d.ts +936 -79
  205. package/dist/server/handlers/workflows.d.ts.map +1 -1
  206. package/dist/server/handlers/workflows.js +1 -1
  207. package/dist/server/handlers.cjs +35 -35
  208. package/dist/server/handlers.d.ts +3 -3
  209. package/dist/server/handlers.d.ts.map +1 -1
  210. package/dist/server/handlers.js +12 -12
  211. package/dist/server/http-exception.d.ts +0 -5
  212. package/dist/server/http-exception.d.ts.map +1 -1
  213. package/dist/server/schemas/a2a.d.ts +786 -0
  214. package/dist/server/schemas/a2a.d.ts.map +1 -0
  215. package/dist/server/schemas/agent-builder.d.ts +204 -0
  216. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  217. package/dist/server/schemas/agents.d.ts +1375 -0
  218. package/dist/server/schemas/agents.d.ts.map +1 -0
  219. package/dist/server/schemas/common.d.ts +165 -0
  220. package/dist/server/schemas/common.d.ts.map +1 -0
  221. package/dist/server/schemas/logs.d.ts +124 -0
  222. package/dist/server/schemas/logs.d.ts.map +1 -0
  223. package/dist/server/schemas/mcp.d.ts +293 -0
  224. package/dist/server/schemas/mcp.d.ts.map +1 -0
  225. package/dist/server/schemas/memory.d.ts +998 -0
  226. package/dist/server/schemas/memory.d.ts.map +1 -0
  227. package/dist/server/schemas/observability.d.ts +402 -0
  228. package/dist/server/schemas/observability.d.ts.map +1 -0
  229. package/dist/server/schemas/scores.d.ts +259 -0
  230. package/dist/server/schemas/scores.d.ts.map +1 -0
  231. package/dist/server/schemas/vectors.d.ts +107 -0
  232. package/dist/server/schemas/vectors.d.ts.map +1 -0
  233. package/dist/server/schemas/workflows.d.ts +623 -0
  234. package/dist/server/schemas/workflows.d.ts.map +1 -0
  235. package/dist/server/server-adapter/index.cjs +471 -0
  236. package/dist/server/server-adapter/index.cjs.map +1 -0
  237. package/dist/server/server-adapter/index.d.ts +81 -0
  238. package/dist/server/server-adapter/index.d.ts.map +1 -0
  239. package/dist/server/server-adapter/index.js +456 -0
  240. package/dist/server/server-adapter/index.js.map +1 -0
  241. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  242. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  243. package/dist/server/server-adapter/redact.d.ts +26 -0
  244. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  245. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  246. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  247. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  248. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  249. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  250. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  251. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  252. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  253. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  254. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  255. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  256. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  257. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  258. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  259. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  260. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  261. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  262. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  263. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  264. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  265. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  266. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  267. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  268. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  269. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  270. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  271. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  272. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  273. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  274. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  275. package/dist/server/utils.d.ts +45 -0
  276. package/dist/server/utils.d.ts.map +1 -0
  277. package/dist/token-GVZ7HRD7.js +62 -0
  278. package/dist/token-GVZ7HRD7.js.map +1 -0
  279. package/dist/token-JGA3ZWAN.js +61 -0
  280. package/dist/token-JGA3ZWAN.js.map +1 -0
  281. package/dist/token-VFONFWVS.cjs +64 -0
  282. package/dist/token-VFONFWVS.cjs.map +1 -0
  283. package/dist/token-ZOD6YIQ3.cjs +63 -0
  284. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  285. package/dist/token-util-7R2ZFIXO.js +7 -0
  286. package/dist/token-util-7R2ZFIXO.js.map +1 -0
  287. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  288. package/dist/token-util-BLJZJDBZ.cjs.map +1 -0
  289. package/dist/token-util-VGZUWSNR.cjs +9 -0
  290. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  291. package/dist/token-util-VKTPZLSE.js +7 -0
  292. package/dist/token-util-VKTPZLSE.js.map +1 -0
  293. package/package.json +53 -14
  294. package/dist/chunk-25LDKW7R.js.map +0 -1
  295. package/dist/chunk-4MQU6AJN.js +0 -83
  296. package/dist/chunk-4MQU6AJN.js.map +0 -1
  297. package/dist/chunk-4QSNRCOT.cjs +0 -20
  298. package/dist/chunk-4QSNRCOT.cjs.map +0 -1
  299. package/dist/chunk-4US5W7PH.cjs +0 -120
  300. package/dist/chunk-4US5W7PH.cjs.map +0 -1
  301. package/dist/chunk-7FHF55WA.js +0 -2041
  302. package/dist/chunk-7FHF55WA.js.map +0 -1
  303. package/dist/chunk-BED2O446.cjs +0 -88
  304. package/dist/chunk-BED2O446.cjs.map +0 -1
  305. package/dist/chunk-BUOJL3MN.js +0 -529
  306. package/dist/chunk-BUOJL3MN.js.map +0 -1
  307. package/dist/chunk-CERIVHRO.cjs +0 -153
  308. package/dist/chunk-CERIVHRO.cjs.map +0 -1
  309. package/dist/chunk-G7NVCO5M.js +0 -123
  310. package/dist/chunk-G7NVCO5M.js.map +0 -1
  311. package/dist/chunk-HWHKM67I.js +0 -114
  312. package/dist/chunk-HWHKM67I.js.map +0 -1
  313. package/dist/chunk-HXZTRBY4.js +0 -147
  314. package/dist/chunk-HXZTRBY4.js.map +0 -1
  315. package/dist/chunk-ILCWPBYQ.cjs +0 -147
  316. package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
  317. package/dist/chunk-JGVY3KWV.cjs +0 -334
  318. package/dist/chunk-JGVY3KWV.cjs.map +0 -1
  319. package/dist/chunk-KXXJ7Y4H.js +0 -592
  320. package/dist/chunk-KXXJ7Y4H.js.map +0 -1
  321. package/dist/chunk-L7YG7WQH.js +0 -151
  322. package/dist/chunk-L7YG7WQH.js.map +0 -1
  323. package/dist/chunk-LRUH33B4.cjs +0 -2044
  324. package/dist/chunk-LRUH33B4.cjs.map +0 -1
  325. package/dist/chunk-LZASFI6W.cjs +0 -609
  326. package/dist/chunk-LZASFI6W.cjs.map +0 -1
  327. package/dist/chunk-MMROOK5J.js.map +0 -1
  328. package/dist/chunk-NCS2OXX6.cjs +0 -131
  329. package/dist/chunk-NCS2OXX6.cjs.map +0 -1
  330. package/dist/chunk-O4I563YW.cjs +0 -130
  331. package/dist/chunk-O4I563YW.cjs.map +0 -1
  332. package/dist/chunk-OW4FX5TS.js +0 -18
  333. package/dist/chunk-OW4FX5TS.js.map +0 -1
  334. package/dist/chunk-PZ5AY32C.js +0 -9
  335. package/dist/chunk-Q4OQ4DOR.cjs +0 -334
  336. package/dist/chunk-Q4OQ4DOR.cjs.map +0 -1
  337. package/dist/chunk-Q7SFCCGT.cjs +0 -11
  338. package/dist/chunk-RQQNZZAI.cjs +0 -159
  339. package/dist/chunk-RQQNZZAI.cjs.map +0 -1
  340. package/dist/chunk-S37KCGOR.cjs +0 -546
  341. package/dist/chunk-S37KCGOR.cjs.map +0 -1
  342. package/dist/chunk-SQ7KKIH3.js +0 -143
  343. package/dist/chunk-SQ7KKIH3.js.map +0 -1
  344. package/dist/chunk-SXXGIMWO.js +0 -324
  345. package/dist/chunk-SXXGIMWO.js.map +0 -1
  346. package/dist/chunk-UVOSITKU.js +0 -322
  347. package/dist/chunk-UVOSITKU.js.map +0 -1
  348. package/dist/chunk-WNK42E5I.cjs.map +0 -1
  349. package/dist/chunk-YS66MFDY.js +0 -124
  350. package/dist/chunk-YS66MFDY.js.map +0 -1
  351. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  352. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  353. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  354. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  355. package/dist/server/handlers/legacyWorkflows.js +0 -3
  356. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
  357. package/dist/server/handlers/network.cjs +0 -24
  358. package/dist/server/handlers/network.cjs.map +0 -1
  359. package/dist/server/handlers/network.d.ts +0 -51
  360. package/dist/server/handlers/network.d.ts.map +0 -1
  361. package/dist/server/handlers/network.js +0 -3
  362. package/dist/server/handlers/network.js.map +0 -1
  363. package/dist/server/handlers/telemetry.cjs +0 -16
  364. package/dist/server/handlers/telemetry.cjs.map +0 -1
  365. package/dist/server/handlers/telemetry.d.ts +0 -32
  366. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  367. package/dist/server/handlers/telemetry.js +0 -3
  368. package/dist/server/handlers/telemetry.js.map +0 -1
  369. package/dist/server/handlers/vNextNetwork.cjs +0 -220
  370. package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
  371. package/dist/server/handlers/vNextNetwork.d.ts +0 -179
  372. package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
  373. package/dist/server/handlers/vNextNetwork.js +0 -213
  374. package/dist/server/handlers/vNextNetwork.js.map +0 -1
package/README.md CHANGED
@@ -23,7 +23,7 @@ import { mastra } from './mastra-instance';
23
23
 
24
24
  const app = new Hono();
25
25
 
26
- app.get('/mastra/agents', ctx => handlers.agents.getAgentsHandler({ mastra, runtimeContext: ctx }));
26
+ app.get('/mastra/agents', ctx => handlers.agents.listAgentsHandler({ mastra, runtimeContext: ctx }));
27
27
  app.post('/mastra/agents/:id/generate', async ctx => {
28
28
  const body = await ctx.req.json();
29
29
  return handlers.agents.generateHandler({
@@ -65,8 +65,3 @@ pnpm run pull:openapispec
65
65
  ```
66
66
 
67
67
  within the `@mastra/server` directory.
68
-
69
- ## License
70
-
71
- Released under the Elastic License 2.0. The full license text is available in
72
- this repository.
@@ -0,0 +1,89 @@
1
+ 'use strict';
2
+
3
+ var z = require('zod');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var z__default = /*#__PURE__*/_interopDefault(z);
8
+
9
+ // src/server/schemas/common.ts
10
+ var runIdSchema = z__default.default.object({
11
+ runId: z__default.default.string().describe("Unique identifier for the run")
12
+ });
13
+ var optionalRunIdSchema = z__default.default.object({
14
+ runId: z__default.default.string().optional()
15
+ });
16
+ var paginationInfoSchema = z__default.default.object({
17
+ total: z__default.default.number(),
18
+ page: z__default.default.number(),
19
+ perPage: z__default.default.union([z__default.default.number(), z__default.default.literal(false)]),
20
+ hasMore: z__default.default.boolean()
21
+ });
22
+ var createPagePaginationSchema = (defaultPerPage) => {
23
+ const baseSchema = {
24
+ page: z__default.default.coerce.number().optional().default(0)
25
+ };
26
+ if (defaultPerPage !== void 0) {
27
+ return z__default.default.object({
28
+ ...baseSchema,
29
+ perPage: z__default.default.coerce.number().optional().default(defaultPerPage)
30
+ });
31
+ } else {
32
+ return z__default.default.object({
33
+ ...baseSchema,
34
+ perPage: z__default.default.coerce.number().optional()
35
+ });
36
+ }
37
+ };
38
+ var createOffsetPaginationSchema = (defaultLimit) => {
39
+ const baseSchema = {
40
+ offset: z__default.default.coerce.number().optional().default(0)
41
+ };
42
+ if (defaultLimit !== void 0) {
43
+ return z__default.default.object({
44
+ ...baseSchema,
45
+ limit: z__default.default.coerce.number().optional().default(defaultLimit)
46
+ });
47
+ } else {
48
+ return z__default.default.object({
49
+ ...baseSchema,
50
+ limit: z__default.default.coerce.number().optional()
51
+ });
52
+ }
53
+ };
54
+ var tracingOptionsSchema = z__default.default.object({
55
+ metadata: z__default.default.record(z__default.default.string(), z__default.default.unknown()).optional(),
56
+ requestContextKeys: z__default.default.array(z__default.default.string()).optional(),
57
+ traceId: z__default.default.string().optional(),
58
+ parentSpanId: z__default.default.string().optional()
59
+ });
60
+ var coreMessageSchema = z__default.default.any();
61
+ var successResponseSchema = z__default.default.object({
62
+ success: z__default.default.boolean()
63
+ });
64
+ var messageResponseSchema = z__default.default.object({
65
+ message: z__default.default.string()
66
+ });
67
+ var baseLogMessageSchema = z__default.default.object({
68
+ level: z__default.default.enum(["debug", "info", "warn", "error", "silent"]),
69
+ msg: z__default.default.string(),
70
+ time: z__default.default.date(),
71
+ context: z__default.default.record(z__default.default.string(), z__default.default.unknown()).optional(),
72
+ runId: z__default.default.string().optional(),
73
+ pid: z__default.default.number(),
74
+ hostname: z__default.default.string(),
75
+ name: z__default.default.string()
76
+ });
77
+
78
+ exports.baseLogMessageSchema = baseLogMessageSchema;
79
+ exports.coreMessageSchema = coreMessageSchema;
80
+ exports.createOffsetPaginationSchema = createOffsetPaginationSchema;
81
+ exports.createPagePaginationSchema = createPagePaginationSchema;
82
+ exports.messageResponseSchema = messageResponseSchema;
83
+ exports.optionalRunIdSchema = optionalRunIdSchema;
84
+ exports.paginationInfoSchema = paginationInfoSchema;
85
+ exports.runIdSchema = runIdSchema;
86
+ exports.successResponseSchema = successResponseSchema;
87
+ exports.tracingOptionsSchema = tracingOptionsSchema;
88
+ //# sourceMappingURL=chunk-2NW6POYK.cjs.map
89
+ //# sourceMappingURL=chunk-2NW6POYK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/common.ts"],"names":["z"],"mappings":"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","file":"chunk-2NW6POYK.cjs","sourcesContent":["import z from 'zod';\n\n// Path parameter schemas\nexport const runIdSchema = z.object({\n runId: z.string().describe('Unique identifier for the run'),\n});\n\n/**\n * Query parameter schema for runId (optional)\n * Used by create-run route where runId is optional\n */\nexport const optionalRunIdSchema = z.object({\n runId: z.string().optional(),\n});\n\n// ============================================================================\n// Pagination Schemas\n// ============================================================================\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\n/**\n * Factory function for page/perPage pagination query params\n * @param defaultPerPage - Default value for perPage (omit for no default)\n */\nexport const createPagePaginationSchema = (defaultPerPage?: number) => {\n const baseSchema = {\n page: z.coerce.number().optional().default(0),\n };\n\n if (defaultPerPage !== undefined) {\n return z.object({\n ...baseSchema,\n perPage: z.coerce.number().optional().default(defaultPerPage),\n });\n } else {\n return z.object({\n ...baseSchema,\n perPage: z.coerce.number().optional(),\n });\n }\n};\n\n/**\n * Factory function for offset/limit pagination query params\n * @param defaultLimit - Default value for limit (omit for no default)\n */\nexport const createOffsetPaginationSchema = (defaultLimit?: number) => {\n const baseSchema = {\n offset: z.coerce.number().optional().default(0),\n };\n\n if (defaultLimit !== undefined) {\n return z.object({\n ...baseSchema,\n limit: z.coerce.number().optional().default(defaultLimit),\n });\n } else {\n return z.object({\n ...baseSchema,\n limit: z.coerce.number().optional(),\n });\n }\n};\n\n// ============================================================================\n// Observability Schemas\n// ============================================================================\n\n/**\n * Tracing options for observability\n * Used by agents and workflows\n */\nexport const tracingOptionsSchema = z.object({\n metadata: z.record(z.string(), z.unknown()).optional(),\n requestContextKeys: z.array(z.string()).optional(),\n traceId: z.string().optional(),\n parentSpanId: z.string().optional(),\n});\n\n// ============================================================================\n// Message Schemas\n// ============================================================================\n\n/**\n * Core message schema from AI SDK\n * Represents messages exchanged with AI models\n * Content can be string, array of content parts, or object (for complex message types)\n */\nexport const coreMessageSchema = z.any();\n// .object({\n// role: z.enum(['system', 'user', 'assistant', 'tool']),\n// content: z.union([\n// z.string(),\n// z.array(\n// z\n// .object({\n// type: z.enum(['text', 'image', 'file', 'tool-call', 'tool-result']),\n// })\n// .passthrough(), // Preserve additional fields like text, image, toolCall, etc.\n// ),\n// z.any(), // For complex message content objects\n// ]),\n// })\n// .passthrough();\n\n// ============================================================================\n// Common Response Schemas\n// ============================================================================\n\n/**\n * Standard success response schema\n * Used by operations that return only a success boolean\n */\nexport const successResponseSchema = z.object({\n success: z.boolean(),\n});\n\n/**\n * Standard message response schema\n * Used by operations that return only a message string\n */\nexport const messageResponseSchema = z.object({\n message: z.string(),\n});\n\n// ============================================================================\n// Logging Schemas\n// ============================================================================\n\n/**\n * Base log message schema\n */\nexport const baseLogMessageSchema = z.object({\n level: z.enum(['debug', 'info', 'warn', 'error', 'silent']),\n msg: z.string(),\n time: z.date(),\n context: z.record(z.string(), z.unknown()).optional(),\n runId: z.string().optional(),\n pid: z.number(),\n hostname: z.string(),\n name: z.string(),\n});\n"]}
@@ -1,10 +1,14 @@
1
- import { __export } from './chunk-PZ5AY32C.js';
1
+ import { convertInstructionsToString } from './chunk-CENPXDRK.js';
2
+ import { createRoute } from './chunk-SXVANU23.js';
3
+ import { __export } from './chunk-PR4QN5HX.js';
2
4
  import { MastraA2AError } from '@mastra/core/a2a';
3
- import { z } from 'zod';
5
+ import z, { z as z$1 } from 'zod';
4
6
 
5
7
  // src/server/handlers/a2a.ts
6
8
  var a2a_exports = {};
7
9
  __export(a2a_exports, {
10
+ AGENT_EXECUTION_ROUTE: () => AGENT_EXECUTION_ROUTE,
11
+ GET_AGENT_CARD_ROUTE: () => GET_AGENT_CARD_ROUTE,
8
12
  getAgentCardByIdHandler: () => getAgentCardByIdHandler,
9
13
  getAgentExecutionHandler: () => getAgentExecutionHandler,
10
14
  handleMessageSend: () => handleMessageSend,
@@ -62,8 +66,7 @@ function convertToCoreMessagePart(part) {
62
66
  return {
63
67
  type: "file",
64
68
  data: "uri" in part.file ? new URL(part.file.uri) : part.file.bytes,
65
- mimeType: part.file.mimeType,
66
- mediaType: part.file.mimeType
69
+ mimeType: part.file.mimeType
67
70
  };
68
71
  case "data":
69
72
  throw new Error("Data parts are not supported in core messages");
@@ -178,24 +181,138 @@ function createTaskContext({
178
181
  isCancelled: () => activeCancellations.has(task.id)
179
182
  };
180
183
  }
184
+ var a2aAgentIdPathParams = z.object({
185
+ agentId: z.string().describe("Unique identifier for the agent")
186
+ });
187
+ a2aAgentIdPathParams.extend({
188
+ taskId: z.string().describe("Unique identifier for the task")
189
+ });
190
+ var pushNotificationAuthenticationInfoSchema = z.object({
191
+ schemes: z.array(z.string()).describe("Supported authentication schemes - e.g. Basic, Bearer"),
192
+ credentials: z.string().optional().describe("Optional credentials")
193
+ });
194
+ var pushNotificationConfigSchema = z.object({
195
+ url: z.string().describe("URL for sending the push notifications"),
196
+ id: z.string().optional().describe("Push Notification ID - created by server to support multiple callbacks"),
197
+ token: z.string().optional().describe("Token unique to this task/session"),
198
+ authentication: pushNotificationAuthenticationInfoSchema.optional()
199
+ });
200
+ var messageSendConfigurationSchema = z.object({
201
+ acceptedOutputModes: z.array(z.string()).describe("Accepted output modalities by the client"),
202
+ blocking: z.boolean().optional().describe("If the server should treat the client as a blocking request"),
203
+ historyLength: z.number().optional().describe("Number of recent messages to be retrieved"),
204
+ pushNotificationConfig: pushNotificationConfigSchema.optional()
205
+ });
206
+ var textPartSchema = z.object({
207
+ kind: z.literal("text").describe("Part type - text for TextParts"),
208
+ text: z.string().describe("Text content"),
209
+ metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
210
+ });
211
+ var fileWithBytesSchema = z.object({
212
+ bytes: z.string().describe("base64 encoded content of the file"),
213
+ mimeType: z.string().optional().describe("Optional mimeType for the file"),
214
+ name: z.string().optional().describe("Optional name for the file")
215
+ });
216
+ var fileWithUriSchema = z.object({
217
+ uri: z.string().describe("URL for the File content"),
218
+ mimeType: z.string().optional().describe("Optional mimeType for the file"),
219
+ name: z.string().optional().describe("Optional name for the file")
220
+ });
221
+ var filePartSchema = z.object({
222
+ kind: z.literal("file").describe("Part type - file for FileParts"),
223
+ file: z.union([fileWithBytesSchema, fileWithUriSchema]).describe("File content either as url or bytes"),
224
+ metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
225
+ });
226
+ var dataPartSchema = z.object({
227
+ kind: z.literal("data").describe("Part type - data for DataParts"),
228
+ data: z.record(z.unknown()).describe("Structured data content"),
229
+ metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
230
+ });
231
+ var partSchema = z.union([textPartSchema, filePartSchema, dataPartSchema]);
232
+ var messageSchema = z.object({
233
+ kind: z.literal("message").describe("Event type"),
234
+ messageId: z.string().describe("Identifier created by the message creator"),
235
+ role: z.enum(["user", "agent"]).describe("Message sender's role"),
236
+ parts: z.array(partSchema).describe("Message content"),
237
+ contextId: z.string().optional().describe("The context the message is associated with"),
238
+ taskId: z.string().optional().describe("Identifier of task the message is related to"),
239
+ referenceTaskIds: z.array(z.string()).optional().describe("List of tasks referenced as context by this message"),
240
+ extensions: z.array(z.string()).optional().describe("The URIs of extensions that are present or contributed to this Message"),
241
+ metadata: z.record(z.unknown()).optional().describe("Extension metadata")
242
+ });
243
+ var messageSendParamsSchema = z.object({
244
+ message: messageSchema,
245
+ configuration: messageSendConfigurationSchema.optional(),
246
+ metadata: z.record(z.unknown()).optional().describe("Extension metadata")
247
+ });
248
+ var taskQueryParamsSchema = z.object({
249
+ id: z.string().describe("Task id"),
250
+ historyLength: z.number().optional().describe("Number of recent messages to be retrieved"),
251
+ metadata: z.record(z.unknown()).optional()
252
+ });
253
+ var taskIdParamsSchema = z.object({
254
+ id: z.string().describe("Task id"),
255
+ metadata: z.record(z.unknown()).optional()
256
+ });
257
+ z.object({
258
+ message: messageSchema,
259
+ metadata: z.record(z.any()).optional()
260
+ });
261
+ z.object({
262
+ id: z.string()
263
+ });
264
+ var agentExecutionParamsSchema = z.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);
265
+ var agentExecutionBodySchema = z.object({
266
+ jsonrpc: z.literal("2.0"),
267
+ id: z.union([z.string(), z.number()]),
268
+ method: z.enum(["message/send", "message/stream", "tasks/get", "tasks/cancel"]),
269
+ params: agentExecutionParamsSchema
270
+ });
271
+ var agentCardResponseSchema = z.object({
272
+ name: z.string(),
273
+ description: z.string(),
274
+ url: z.string(),
275
+ provider: z.object({
276
+ organization: z.string(),
277
+ url: z.string()
278
+ }).optional(),
279
+ version: z.string(),
280
+ capabilities: z.object({
281
+ streaming: z.boolean().optional(),
282
+ pushNotifications: z.boolean().optional(),
283
+ stateTransitionHistory: z.boolean().optional()
284
+ }),
285
+ defaultInputModes: z.array(z.string()),
286
+ defaultOutputModes: z.array(z.string()),
287
+ skills: z.array(
288
+ z.object({
289
+ id: z.string(),
290
+ name: z.string(),
291
+ description: z.string(),
292
+ tags: z.array(z.string()).optional()
293
+ })
294
+ )
295
+ });
296
+ z.unknown();
297
+ var agentExecutionResponseSchema = z.unknown();
181
298
 
182
299
  // src/server/handlers/a2a.ts
183
- var messageSendParamsSchema = z.object({
184
- message: z.object({
185
- role: z.enum(["user", "agent"]),
186
- parts: z.array(
187
- z.object({
188
- kind: z.enum(["text"]),
189
- text: z.string()
300
+ var messageSendParamsSchema2 = z$1.object({
301
+ message: z$1.object({
302
+ role: z$1.enum(["user", "agent"]),
303
+ parts: z$1.array(
304
+ z$1.object({
305
+ kind: z$1.enum(["text"]),
306
+ text: z$1.string()
190
307
  })
191
308
  ),
192
- kind: z.literal("message"),
193
- messageId: z.string(),
194
- contextId: z.string().optional(),
195
- taskId: z.string().optional(),
196
- referenceTaskIds: z.array(z.string()).optional(),
197
- extensions: z.array(z.string()).optional(),
198
- metadata: z.record(z.any()).optional()
309
+ kind: z$1.literal("message"),
310
+ messageId: z$1.string(),
311
+ contextId: z$1.string().optional(),
312
+ taskId: z$1.string().optional(),
313
+ referenceTaskIds: z$1.array(z$1.string()).optional(),
314
+ extensions: z$1.array(z$1.string()).optional(),
315
+ metadata: z$1.record(z$1.any()).optional()
199
316
  })
200
317
  });
201
318
  async function getAgentCardByIdHandler({
@@ -207,19 +324,19 @@ async function getAgentCardByIdHandler({
207
324
  url: "https://mastra.ai"
208
325
  },
209
326
  version = "1.0",
210
- runtimeContext
327
+ requestContext
211
328
  }) {
212
- const agent = mastra.getAgent(agentId);
329
+ const agent = mastra.getAgentById(agentId);
213
330
  if (!agent) {
214
331
  throw new Error(`Agent with ID ${agentId} not found`);
215
332
  }
216
333
  const [instructions, tools] = await Promise.all([
217
- agent.getInstructions({ runtimeContext }),
218
- agent.getTools({ runtimeContext })
334
+ agent.getInstructions({ requestContext }),
335
+ agent.listTools({ requestContext })
219
336
  ]);
220
337
  const agentCard = {
221
338
  name: agent.id || agentId,
222
- description: instructions,
339
+ description: convertInstructionsToString(instructions),
223
340
  url: executionUrl,
224
341
  provider,
225
342
  version,
@@ -244,9 +361,9 @@ async function getAgentCardByIdHandler({
244
361
  }
245
362
  function validateMessageSendParams(params) {
246
363
  try {
247
- messageSendParamsSchema.parse(params);
364
+ messageSendParamsSchema2.parse(params);
248
365
  } catch (error) {
249
- if (error instanceof z.ZodError) {
366
+ if (error instanceof z$1.ZodError) {
250
367
  throw MastraA2AError.invalidParams(error.errors[0].message);
251
368
  }
252
369
  throw error;
@@ -259,7 +376,7 @@ async function handleMessageSend({
259
376
  agent,
260
377
  agentId,
261
378
  logger,
262
- runtimeContext
379
+ requestContext
263
380
  }) {
264
381
  validateMessageSendParams(params);
265
382
  const { message, metadata } = params;
@@ -280,9 +397,11 @@ async function handleMessageSend({
280
397
  activeCancellations: taskStore.activeCancellations
281
398
  });
282
399
  try {
400
+ const resourceId = metadata?.resourceId ?? message.metadata?.resourceId ?? agentId;
283
401
  const { text } = await agent.generate([convertToCoreMessage(message)], {
284
402
  runId: taskId,
285
- runtimeContext
403
+ requestContext,
404
+ ...contextId ? { threadId: contextId, resourceId } : {}
286
405
  });
287
406
  currentData = applyUpdateToTask(currentData, {
288
407
  state: "completed",
@@ -343,7 +462,7 @@ async function* handleMessageStream({
343
462
  agent,
344
463
  agentId,
345
464
  logger,
346
- runtimeContext
465
+ requestContext
347
466
  }) {
348
467
  yield createSuccessResponse(requestId, {
349
468
  state: "working",
@@ -362,7 +481,7 @@ async function* handleMessageStream({
362
481
  taskStore,
363
482
  agent,
364
483
  agentId,
365
- runtimeContext,
484
+ requestContext,
366
485
  logger
367
486
  });
368
487
  } catch (err) {
@@ -411,13 +530,13 @@ async function getAgentExecutionHandler({
411
530
  requestId,
412
531
  mastra,
413
532
  agentId,
414
- runtimeContext,
533
+ requestContext,
415
534
  method,
416
535
  params,
417
536
  taskStore,
418
537
  logger
419
538
  }) {
420
- const agent = mastra.getAgent(agentId);
539
+ const agent = mastra.getAgentById(agentId);
421
540
  let taskId;
422
541
  try {
423
542
  taskId = "id" in params ? params.id : params.message?.taskId || "No task ID provided";
@@ -429,7 +548,7 @@ async function getAgentExecutionHandler({
429
548
  taskStore,
430
549
  agent,
431
550
  agentId,
432
- runtimeContext
551
+ requestContext
433
552
  });
434
553
  return result2;
435
554
  }
@@ -440,7 +559,7 @@ async function getAgentExecutionHandler({
440
559
  params,
441
560
  agent,
442
561
  agentId,
443
- runtimeContext
562
+ requestContext
444
563
  });
445
564
  return result;
446
565
  case "tasks/get": {
@@ -471,7 +590,77 @@ async function getAgentExecutionHandler({
471
590
  return normalizeError(error, requestId, taskId, logger);
472
591
  }
473
592
  }
593
+ var GET_AGENT_CARD_ROUTE = createRoute({
594
+ method: "GET",
595
+ path: "/.well-known/:agentId/agent-card.json",
596
+ responseType: "json",
597
+ pathParamSchema: a2aAgentIdPathParams,
598
+ responseSchema: agentCardResponseSchema,
599
+ summary: "Get agent card",
600
+ description: "Returns the agent card information for A2A protocol discovery",
601
+ tags: ["Agent-to-Agent"],
602
+ handler: async ({ mastra, agentId, requestContext }) => {
603
+ const executionUrl = `/a2a/${agentId}`;
604
+ const provider = {
605
+ organization: "Mastra",
606
+ url: "https://mastra.ai"
607
+ };
608
+ const version = "1.0";
609
+ const agent = mastra.getAgentById(agentId);
610
+ if (!agent) {
611
+ throw new Error(`Agent with ID ${agentId} not found`);
612
+ }
613
+ const [instructions, tools] = await Promise.all([
614
+ agent.getInstructions({ requestContext }),
615
+ agent.listTools({ requestContext })
616
+ ]);
617
+ const agentCard = {
618
+ name: agent.id || agentId,
619
+ description: convertInstructionsToString(instructions),
620
+ url: executionUrl,
621
+ provider,
622
+ version,
623
+ capabilities: {
624
+ streaming: true,
625
+ pushNotifications: false,
626
+ stateTransitionHistory: false
627
+ },
628
+ defaultInputModes: ["text"],
629
+ defaultOutputModes: ["text"],
630
+ skills: Object.entries(tools).map(([toolId, tool]) => ({
631
+ id: toolId,
632
+ name: toolId,
633
+ description: tool.description || `Tool: ${toolId}`,
634
+ tags: ["tool"]
635
+ }))
636
+ };
637
+ return agentCard;
638
+ }
639
+ });
640
+ var AGENT_EXECUTION_ROUTE = createRoute({
641
+ method: "POST",
642
+ path: "/a2a/:agentId",
643
+ responseType: "json",
644
+ pathParamSchema: a2aAgentIdPathParams,
645
+ bodySchema: agentExecutionBodySchema,
646
+ responseSchema: agentExecutionResponseSchema,
647
+ summary: "Execute agent",
648
+ description: "Executes an agent action via JSON-RPC 2.0 over A2A protocol",
649
+ tags: ["Agent-to-Agent"],
650
+ handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {
651
+ const { id: requestId, method, params } = bodyParams;
652
+ return await getAgentExecutionHandler({
653
+ requestId: String(requestId),
654
+ mastra,
655
+ agentId,
656
+ requestContext,
657
+ method,
658
+ params,
659
+ taskStore
660
+ });
661
+ }
662
+ });
474
663
 
475
- export { a2a_exports, getAgentCardByIdHandler, getAgentExecutionHandler, handleMessageSend, handleMessageStream, handleTaskCancel, handleTaskGet };
476
- //# sourceMappingURL=chunk-25LDKW7R.js.map
477
- //# sourceMappingURL=chunk-25LDKW7R.js.map
664
+ export { AGENT_EXECUTION_ROUTE, GET_AGENT_CARD_ROUTE, a2a_exports, getAgentCardByIdHandler, getAgentExecutionHandler, handleMessageSend, handleMessageStream, handleTaskCancel, handleTaskGet };
665
+ //# sourceMappingURL=chunk-2PB6VJQX.js.map
666
+ //# sourceMappingURL=chunk-2PB6VJQX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts","../src/server/schemas/a2a.ts"],"names":["messageSendParamsSchema","z","MastraA2AError","result"],"mappings":"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","file":"chunk-2PB6VJQX.js","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { z } from 'zod';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse, createErrorResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport {\n a2aAgentIdPathParams,\n agentExecutionBodySchema,\n agentCardResponseSchema,\n agentExecutionResponseSchema,\n} from '../schemas/a2a';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.any()).optional(),\n }),\n});\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n agentId: keyof ReturnType<typeof mastra.listAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools] = await Promise.all([\n agent.getInstructions({ requestContext }),\n agent.listTools({ requestContext }),\n ]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || agentId,\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true, // All agents support streaming\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).errors[0]!.message);\n }\n\n throw error;\n }\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n // Pass contextId as threadId for memory persistence across A2A conversations\n // Allow user to pass resourceId via metadata, fall back to agentId\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const { text } = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: text,\n },\n ],\n kind: 'message',\n },\n });\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n yield createSuccessResponse(requestId, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n let result;\n try {\n result = await handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n requestContext,\n logger,\n });\n } catch (err) {\n if (!(err instanceof MastraA2AError)) {\n throw err;\n }\n\n result = createErrorResponse(requestId, err.toJSONRPCError());\n }\n\n yield result;\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n requestContext,\n method,\n params,\n taskStore,\n logger,\n}: Context & {\n requestId: string;\n requestContext: RequestContext;\n agentId: string;\n method: 'message/send' | 'message/stream' | 'tasks/get' | 'tasks/cancel';\n params: MessageSendParams | TaskQueryParams | TaskIdParams;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n}): Promise<any> {\n const agent = mastra.getAgentById(agentId);\n\n let taskId: string | undefined; // For error context\n\n try {\n // Attempt to get task ID early for error context. Cast params to any to access id.\n // Proper validation happens within specific handlers.\n taskId = 'id' in params ? params.id : params.message?.taskId || 'No task ID provided';\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n case 'message/stream':\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n requestContext,\n });\n return result;\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_AGENT_CARD_ROUTE = createRoute({\n method: 'GET',\n path: '/.well-known/:agentId/agent-card.json',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n responseSchema: agentCardResponseSchema,\n summary: 'Get agent card',\n description: 'Returns the agent card information for A2A protocol discovery',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext }) => {\n const executionUrl = `/a2a/${agentId}`;\n const provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n };\n const version = '1.0';\n\n const agent = mastra.getAgentById(agentId as string);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools] = await Promise.all([\n agent.getInstructions({ requestContext }),\n agent.listTools({ requestContext }),\n ]);\n\n const agentCard: AgentCard = {\n name: agent.id || (agentId as string),\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true,\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n },\n});\n\nexport const AGENT_EXECUTION_ROUTE = createRoute({\n method: 'POST',\n path: '/a2a/:agentId',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: agentExecutionResponseSchema,\n summary: 'Execute agent',\n description: 'Executes an agent action via JSON-RPC 2.0 over A2A protocol',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {\n const { id: requestId, method, params } = bodyParams;\n\n return await getAgentExecutionHandler({\n requestId: String(requestId),\n mastra,\n agentId: agentId as string,\n requestContext,\n method,\n params,\n taskStore: taskStore!,\n });\n },\n});\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n","import z from 'zod';\n\n// Path parameter schemas\nexport const a2aAgentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\nexport const a2aTaskPathParams = a2aAgentIdPathParams.extend({\n taskId: z.string().describe('Unique identifier for the task'),\n});\n\n// Body schemas for A2A protocol\n\n// Push notification schemas\nconst pushNotificationAuthenticationInfoSchema = z.object({\n schemes: z.array(z.string()).describe('Supported authentication schemes - e.g. Basic, Bearer'),\n credentials: z.string().optional().describe('Optional credentials'),\n});\n\nconst pushNotificationConfigSchema = z.object({\n url: z.string().describe('URL for sending the push notifications'),\n id: z.string().optional().describe('Push Notification ID - created by server to support multiple callbacks'),\n token: z.string().optional().describe('Token unique to this task/session'),\n authentication: pushNotificationAuthenticationInfoSchema.optional(),\n});\n\nconst messageSendConfigurationSchema = z.object({\n acceptedOutputModes: z.array(z.string()).describe('Accepted output modalities by the client'),\n blocking: z.boolean().optional().describe('If the server should treat the client as a blocking request'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n pushNotificationConfig: pushNotificationConfigSchema.optional(),\n});\n\n// Part schemas\nconst textPartSchema = z.object({\n kind: z.literal('text').describe('Part type - text for TextParts'),\n text: z.string().describe('Text content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst fileWithBytesSchema = z.object({\n bytes: z.string().describe('base64 encoded content of the file'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst fileWithUriSchema = z.object({\n uri: z.string().describe('URL for the File content'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst filePartSchema = z.object({\n kind: z.literal('file').describe('Part type - file for FileParts'),\n file: z.union([fileWithBytesSchema, fileWithUriSchema]).describe('File content either as url or bytes'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst dataPartSchema = z.object({\n kind: z.literal('data').describe('Part type - data for DataParts'),\n data: z.record(z.unknown()).describe('Structured data content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst partSchema = z.union([textPartSchema, filePartSchema, dataPartSchema]);\n\n// Message schema\nconst messageSchema = z.object({\n kind: z.literal('message').describe('Event type'),\n messageId: z.string().describe('Identifier created by the message creator'),\n role: z.enum(['user', 'agent']).describe(\"Message sender's role\"),\n parts: z.array(partSchema).describe('Message content'),\n contextId: z.string().optional().describe('The context the message is associated with'),\n taskId: z.string().optional().describe('Identifier of task the message is related to'),\n referenceTaskIds: z.array(z.string()).optional().describe('List of tasks referenced as context by this message'),\n extensions: z\n .array(z.string())\n .optional()\n .describe('The URIs of extensions that are present or contributed to this Message'),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// MessageSendParams schema\nconst messageSendParamsSchema = z.object({\n message: messageSchema,\n configuration: messageSendConfigurationSchema.optional(),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// TaskQueryParams schema\nconst taskQueryParamsSchema = z.object({\n id: z.string().describe('Task id'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// TaskIdParams schema\nconst taskIdParamsSchema = z.object({\n id: z.string().describe('Task id'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// Legacy schema for backwards compatibility\nexport const messageSendBodySchema = z.object({\n message: messageSchema,\n metadata: z.record(z.any()).optional(),\n});\n\nexport const taskQueryBodySchema = z.object({\n id: z.string(),\n});\n\n// Union of all possible params types\nconst agentExecutionParamsSchema = z.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);\n\nexport const agentExecutionBodySchema = z.object({\n jsonrpc: z.literal('2.0'),\n id: z.union([z.string(), z.number()]),\n method: z.enum(['message/send', 'message/stream', 'tasks/get', 'tasks/cancel']),\n params: agentExecutionParamsSchema,\n});\n\n// Response schemas\nexport const agentCardResponseSchema = z.object({\n name: z.string(),\n description: z.string(),\n url: z.string(),\n provider: z\n .object({\n organization: z.string(),\n url: z.string(),\n })\n .optional(),\n version: z.string(),\n capabilities: z.object({\n streaming: z.boolean().optional(),\n pushNotifications: z.boolean().optional(),\n stateTransitionHistory: z.boolean().optional(),\n }),\n defaultInputModes: z.array(z.string()),\n defaultOutputModes: z.array(z.string()),\n skills: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n tags: z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport const taskResponseSchema = z.unknown(); // Complex task state structure\n\nexport const agentExecutionResponseSchema = z.unknown(); // JSON-RPC response\n"]}