@mastra/server 0.0.0-fix-backport-setserver-20251201151948 → 0.0.0-fix-request-context-as-query-key-20251209093005

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 (336) hide show
  1. package/CHANGELOG.md +977 -101
  2. package/README.md +1 -1
  3. package/dist/chunk-3SFLFUKY.js +116 -0
  4. package/dist/chunk-3SFLFUKY.js.map +1 -0
  5. package/dist/chunk-4W2SM6CG.js +294 -0
  6. package/dist/chunk-4W2SM6CG.js.map +1 -0
  7. package/dist/chunk-5W4RPVTK.cjs +49 -0
  8. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  9. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  10. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  11. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  12. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  13. package/dist/{chunk-YWOK4F5A.js → chunk-6YWE7UPT.js} +20 -8
  14. package/dist/chunk-6YWE7UPT.js.map +1 -0
  15. package/dist/chunk-7N3PD4SV.js +196 -0
  16. package/dist/chunk-7N3PD4SV.js.map +1 -0
  17. package/dist/{chunk-7RGKOGE4.cjs → chunk-C3D3X2L5.cjs} +226 -31
  18. package/dist/chunk-C3D3X2L5.cjs.map +1 -0
  19. package/dist/chunk-C4J473OZ.js +786 -0
  20. package/dist/chunk-C4J473OZ.js.map +1 -0
  21. package/dist/{chunk-IAE7SFBS.js → chunk-CT5VG7NT.js} +220 -31
  22. package/dist/chunk-CT5VG7NT.js.map +1 -0
  23. package/dist/chunk-DHWPHLGF.cjs +211 -0
  24. package/dist/chunk-DHWPHLGF.cjs.map +1 -0
  25. package/dist/chunk-DRUNNM4C.js +328 -0
  26. package/dist/chunk-DRUNNM4C.js.map +1 -0
  27. package/dist/{chunk-TOCYBDP2.js → chunk-ER3QM7DD.js} +4 -4
  28. package/dist/{chunk-TOCYBDP2.js.map → chunk-ER3QM7DD.js.map} +1 -1
  29. package/dist/chunk-ESZ6V5WB.cjs +916 -0
  30. package/dist/chunk-ESZ6V5WB.cjs.map +1 -0
  31. package/dist/chunk-F4H7J6YV.cjs +1075 -0
  32. package/dist/chunk-F4H7J6YV.cjs.map +1 -0
  33. package/dist/chunk-FMTSLS25.cjs +810 -0
  34. package/dist/chunk-FMTSLS25.cjs.map +1 -0
  35. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  36. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  37. package/dist/chunk-FYY54HZC.js +310 -0
  38. package/dist/chunk-FYY54HZC.js.map +1 -0
  39. package/dist/chunk-GFF2I6UD.js +354 -0
  40. package/dist/chunk-GFF2I6UD.js.map +1 -0
  41. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  42. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  43. package/dist/chunk-HAJOEDNB.js +274 -0
  44. package/dist/chunk-HAJOEDNB.js.map +1 -0
  45. package/dist/chunk-HT4LP3BO.js +75 -0
  46. package/dist/chunk-HT4LP3BO.js.map +1 -0
  47. package/dist/chunk-I6LR6CPC.cjs +125 -0
  48. package/dist/chunk-I6LR6CPC.cjs.map +1 -0
  49. package/dist/chunk-IEYXQTUW.cjs +284 -0
  50. package/dist/chunk-IEYXQTUW.cjs.map +1 -0
  51. package/dist/chunk-LBSJWPXK.cjs +312 -0
  52. package/dist/chunk-LBSJWPXK.cjs.map +1 -0
  53. package/dist/chunk-MCYD5LW7.cjs +90 -0
  54. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  55. package/dist/{chunk-VY4ENABS.cjs → chunk-PUSD37LD.cjs} +20 -8
  56. package/dist/chunk-PUSD37LD.cjs.map +1 -0
  57. package/dist/chunk-QNVYGEJ4.js +204 -0
  58. package/dist/chunk-QNVYGEJ4.js.map +1 -0
  59. package/dist/chunk-S3TIWWQL.cjs +322 -0
  60. package/dist/chunk-S3TIWWQL.cjs.map +1 -0
  61. package/dist/chunk-SXVANU23.js +164 -0
  62. package/dist/chunk-SXVANU23.js.map +1 -0
  63. package/dist/chunk-TKL4TD2V.js +1032 -0
  64. package/dist/chunk-TKL4TD2V.js.map +1 -0
  65. package/dist/chunk-TYZ6ZISQ.cjs +368 -0
  66. package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
  67. package/dist/chunk-US6Y5RLR.cjs +205 -0
  68. package/dist/chunk-US6Y5RLR.cjs.map +1 -0
  69. package/dist/chunk-UTIOKR5C.js +887 -0
  70. package/dist/chunk-UTIOKR5C.js.map +1 -0
  71. package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
  72. package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
  73. package/dist/{chunk-QU6N55W6.cjs → chunk-V272B7RM.cjs} +11 -12
  74. package/dist/chunk-V272B7RM.cjs.map +1 -0
  75. package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
  76. package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
  77. package/dist/chunk-VD3WO2TJ.cjs +23268 -0
  78. package/dist/chunk-VD3WO2TJ.cjs.map +1 -0
  79. package/dist/chunk-VDJHDTPP.js +23226 -0
  80. package/dist/chunk-VDJHDTPP.js.map +1 -0
  81. package/dist/chunk-WE4USCF3.js +226 -0
  82. package/dist/chunk-WE4USCF3.js.map +1 -0
  83. package/dist/chunk-X43DWDXB.cjs +346 -0
  84. package/dist/chunk-X43DWDXB.cjs.map +1 -0
  85. package/dist/chunk-X4QMPCTP.cjs +259 -0
  86. package/dist/chunk-X4QMPCTP.cjs.map +1 -0
  87. package/dist/chunk-XNKZPXCY.js +302 -0
  88. package/dist/chunk-XNKZPXCY.js.map +1 -0
  89. package/dist/{chunk-X6C7BUWN.cjs → chunk-XQPJ63ZD.cjs} +4 -4
  90. package/dist/{chunk-X6C7BUWN.cjs.map → chunk-XQPJ63ZD.cjs.map} +1 -1
  91. package/dist/chunk-XWGAT2DA.js +44 -0
  92. package/dist/chunk-XWGAT2DA.js.map +1 -0
  93. package/dist/{chunk-SHWNNZBL.js → chunk-YP34EWWK.js} +9 -10
  94. package/dist/chunk-YP34EWWK.js.map +1 -0
  95. package/dist/server/auth/defaults.d.ts +3 -0
  96. package/dist/server/auth/defaults.d.ts.map +1 -0
  97. package/dist/server/auth/helpers.d.ts +14 -0
  98. package/dist/server/auth/helpers.d.ts.map +1 -0
  99. package/dist/server/auth/index.cjs +137 -0
  100. package/dist/server/auth/index.cjs.map +1 -0
  101. package/dist/server/auth/index.d.ts +3 -0
  102. package/dist/server/auth/index.d.ts.map +1 -0
  103. package/dist/server/auth/index.js +127 -0
  104. package/dist/server/auth/index.js.map +1 -0
  105. package/dist/server/handlers/a2a.cjs +15 -7
  106. package/dist/server/handlers/a2a.d.ts +492 -10
  107. package/dist/server/handlers/a2a.d.ts.map +1 -1
  108. package/dist/server/handlers/a2a.js +1 -1
  109. package/dist/server/handlers/agent-builder.cjs +43 -31
  110. package/dist/server/handlers/agent-builder.d.ts +597 -84
  111. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  112. package/dist/server/handlers/agent-builder.js +1 -1
  113. package/dist/server/handlers/agents.cjs +49 -41
  114. package/dist/server/handlers/agents.d.ts +3277 -148
  115. package/dist/server/handlers/agents.d.ts.map +1 -1
  116. package/dist/server/handlers/agents.js +1 -1
  117. package/dist/server/handlers/error.cjs +2 -2
  118. package/dist/server/handlers/error.js +1 -1
  119. package/dist/server/handlers/logs.cjs +7 -7
  120. package/dist/server/handlers/logs.d.ts +135 -27
  121. package/dist/server/handlers/logs.d.ts.map +1 -1
  122. package/dist/server/handlers/logs.js +1 -1
  123. package/dist/server/handlers/mcp.cjs +40 -0
  124. package/dist/server/handlers/mcp.cjs.map +1 -0
  125. package/dist/server/handlers/mcp.d.ts +110 -0
  126. package/dist/server/handlers/mcp.d.ts.map +1 -0
  127. package/dist/server/handlers/mcp.js +3 -0
  128. package/dist/server/handlers/mcp.js.map +1 -0
  129. package/dist/server/handlers/memory.cjs +63 -31
  130. package/dist/server/handlers/memory.d.ts +934 -103
  131. package/dist/server/handlers/memory.d.ts.map +1 -1
  132. package/dist/server/handlers/memory.js +1 -1
  133. package/dist/server/handlers/observability.cjs +24 -8
  134. package/dist/server/handlers/observability.d.ts +128 -21
  135. package/dist/server/handlers/observability.d.ts.map +1 -1
  136. package/dist/server/handlers/observability.js +1 -1
  137. package/dist/server/handlers/scores.cjs +13 -13
  138. package/dist/server/handlers/scores.d.ts +110 -141
  139. package/dist/server/handlers/scores.d.ts.map +1 -1
  140. package/dist/server/handlers/scores.js +1 -1
  141. package/dist/server/handlers/stored-agents.cjs +28 -0
  142. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  143. package/dist/server/handlers/stored-agents.d.ts +289 -0
  144. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  145. package/dist/server/handlers/stored-agents.js +3 -0
  146. package/dist/server/handlers/stored-agents.js.map +1 -0
  147. package/dist/server/handlers/test-utils.cjs +15 -0
  148. package/dist/server/handlers/test-utils.cjs.map +1 -0
  149. package/dist/server/handlers/test-utils.d.ts +6 -0
  150. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  151. package/dist/server/handlers/test-utils.js +13 -0
  152. package/dist/server/handlers/test-utils.js.map +1 -0
  153. package/dist/server/handlers/tools.cjs +11 -11
  154. package/dist/server/handlers/tools.d.ts +69 -23
  155. package/dist/server/handlers/tools.d.ts.map +1 -1
  156. package/dist/server/handlers/tools.js +1 -1
  157. package/dist/server/handlers/utils.cjs +11 -3
  158. package/dist/server/handlers/utils.d.ts +5 -0
  159. package/dist/server/handlers/utils.d.ts.map +1 -1
  160. package/dist/server/handlers/utils.js +1 -1
  161. package/dist/server/handlers/vector.cjs +31 -7
  162. package/dist/server/handlers/vector.d.ts +93 -9
  163. package/dist/server/handlers/vector.d.ts.map +1 -1
  164. package/dist/server/handlers/vector.js +1 -1
  165. package/dist/server/handlers/voice.cjs +21 -9
  166. package/dist/server/handlers/voice.d.ts +81 -40
  167. package/dist/server/handlers/voice.d.ts.map +1 -1
  168. package/dist/server/handlers/voice.js +1 -1
  169. package/dist/server/handlers/workflows.cjs +61 -41
  170. package/dist/server/handlers/workflows.d.ts +920 -87
  171. package/dist/server/handlers/workflows.d.ts.map +1 -1
  172. package/dist/server/handlers/workflows.js +1 -1
  173. package/dist/server/handlers.cjs +30 -35
  174. package/dist/server/handlers.d.ts +1 -2
  175. package/dist/server/handlers.d.ts.map +1 -1
  176. package/dist/server/handlers.js +12 -13
  177. package/dist/server/http-exception.d.ts +0 -5
  178. package/dist/server/http-exception.d.ts.map +1 -1
  179. package/dist/server/schemas/a2a.d.ts +786 -0
  180. package/dist/server/schemas/a2a.d.ts.map +1 -0
  181. package/dist/server/schemas/agent-builder.d.ts +204 -0
  182. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  183. package/dist/server/schemas/agents.d.ts +1375 -0
  184. package/dist/server/schemas/agents.d.ts.map +1 -0
  185. package/dist/server/schemas/common.d.ts +179 -0
  186. package/dist/server/schemas/common.d.ts.map +1 -0
  187. package/dist/server/schemas/logs.d.ts +124 -0
  188. package/dist/server/schemas/logs.d.ts.map +1 -0
  189. package/dist/server/schemas/mcp.d.ts +299 -0
  190. package/dist/server/schemas/mcp.d.ts.map +1 -0
  191. package/dist/server/schemas/memory.d.ts +998 -0
  192. package/dist/server/schemas/memory.d.ts.map +1 -0
  193. package/dist/server/schemas/observability.d.ts +402 -0
  194. package/dist/server/schemas/observability.d.ts.map +1 -0
  195. package/dist/server/schemas/scores.d.ts +259 -0
  196. package/dist/server/schemas/scores.d.ts.map +1 -0
  197. package/dist/server/schemas/stored-agents.d.ts +792 -0
  198. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  199. package/dist/server/schemas/vectors.d.ts +107 -0
  200. package/dist/server/schemas/vectors.d.ts.map +1 -0
  201. package/dist/server/schemas/workflows.d.ts +602 -0
  202. package/dist/server/schemas/workflows.d.ts.map +1 -0
  203. package/dist/server/server-adapter/index.cjs +486 -0
  204. package/dist/server/server-adapter/index.cjs.map +1 -0
  205. package/dist/server/server-adapter/index.d.ts +95 -0
  206. package/dist/server/server-adapter/index.d.ts.map +1 -0
  207. package/dist/server/server-adapter/index.js +471 -0
  208. package/dist/server/server-adapter/index.js.map +1 -0
  209. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  210. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  211. package/dist/server/server-adapter/redact.d.ts +26 -0
  212. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  213. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  214. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  215. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  216. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  217. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  218. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  219. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  220. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  221. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  222. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  223. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  224. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  225. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  226. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  227. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  228. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  229. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  230. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  231. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  232. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  233. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  234. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  235. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  236. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  237. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  238. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  239. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  240. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  241. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  242. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  243. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  244. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  245. package/dist/server/utils.d.ts +4 -3
  246. package/dist/server/utils.d.ts.map +1 -1
  247. package/dist/token-GVZ7HRD7.js +62 -0
  248. package/dist/{token-C3IMNCC4.js.map → token-GVZ7HRD7.js.map} +1 -1
  249. package/dist/{token-C3IMNCC4.js → token-JGA3ZWAN.js} +5 -6
  250. package/dist/token-JGA3ZWAN.js.map +1 -0
  251. package/dist/token-VFONFWVS.cjs +64 -0
  252. package/dist/{token-375W3LEI.cjs.map → token-VFONFWVS.cjs.map} +1 -1
  253. package/dist/{token-375W3LEI.cjs → token-ZOD6YIQ3.cjs} +7 -8
  254. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  255. package/dist/token-util-7R2ZFIXO.js +7 -0
  256. package/dist/{token-util-E5QO2RCL.js.map → token-util-7R2ZFIXO.js.map} +1 -1
  257. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  258. package/dist/{token-util-CV3RRG6K.cjs.map → token-util-BLJZJDBZ.cjs.map} +1 -1
  259. package/dist/token-util-VGZUWSNR.cjs +9 -0
  260. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  261. package/dist/token-util-VKTPZLSE.js +7 -0
  262. package/dist/token-util-VKTPZLSE.js.map +1 -0
  263. package/package.json +36 -15
  264. package/dist/chunk-2S4IMB6E.cjs +0 -130
  265. package/dist/chunk-2S4IMB6E.cjs.map +0 -1
  266. package/dist/chunk-3SNGNFUJ.cjs +0 -128
  267. package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
  268. package/dist/chunk-4ML6U6RF.js +0 -19529
  269. package/dist/chunk-4ML6U6RF.js.map +0 -1
  270. package/dist/chunk-4QCXUEAT.js +0 -25
  271. package/dist/chunk-4QCXUEAT.js.map +0 -1
  272. package/dist/chunk-67GYDFSB.js +0 -160
  273. package/dist/chunk-67GYDFSB.js.map +0 -1
  274. package/dist/chunk-6N3HC6O4.js +0 -705
  275. package/dist/chunk-6N3HC6O4.js.map +0 -1
  276. package/dist/chunk-6ZR275MD.cjs +0 -165
  277. package/dist/chunk-6ZR275MD.cjs.map +0 -1
  278. package/dist/chunk-7RGKOGE4.cjs.map +0 -1
  279. package/dist/chunk-ABRFV4XP.js +0 -83
  280. package/dist/chunk-ABRFV4XP.js.map +0 -1
  281. package/dist/chunk-AHB4JCIQ.js +0 -160
  282. package/dist/chunk-AHB4JCIQ.js.map +0 -1
  283. package/dist/chunk-AW5BU3RQ.js +0 -192
  284. package/dist/chunk-AW5BU3RQ.js.map +0 -1
  285. package/dist/chunk-BATEJLED.js +0 -124
  286. package/dist/chunk-BATEJLED.js.map +0 -1
  287. package/dist/chunk-CY6R3HLM.cjs +0 -727
  288. package/dist/chunk-CY6R3HLM.cjs.map +0 -1
  289. package/dist/chunk-EP3JQDPD.cjs +0 -131
  290. package/dist/chunk-EP3JQDPD.cjs.map +0 -1
  291. package/dist/chunk-G4PUALCE.cjs +0 -28
  292. package/dist/chunk-G4PUALCE.cjs.map +0 -1
  293. package/dist/chunk-H33KYEMY.cjs +0 -720
  294. package/dist/chunk-H33KYEMY.cjs.map +0 -1
  295. package/dist/chunk-I3C4ODGV.cjs +0 -335
  296. package/dist/chunk-I3C4ODGV.cjs.map +0 -1
  297. package/dist/chunk-IAE7SFBS.js.map +0 -1
  298. package/dist/chunk-LLUOPR3J.js +0 -323
  299. package/dist/chunk-LLUOPR3J.js.map +0 -1
  300. package/dist/chunk-MMROOK5J.js.map +0 -1
  301. package/dist/chunk-MYR4PVGN.js +0 -123
  302. package/dist/chunk-MYR4PVGN.js.map +0 -1
  303. package/dist/chunk-NT5XW5PI.cjs +0 -596
  304. package/dist/chunk-NT5XW5PI.cjs.map +0 -1
  305. package/dist/chunk-PBXWFGEH.js +0 -579
  306. package/dist/chunk-PBXWFGEH.js.map +0 -1
  307. package/dist/chunk-PY2K7VNW.js +0 -698
  308. package/dist/chunk-PY2K7VNW.js.map +0 -1
  309. package/dist/chunk-QQXMIP6C.js +0 -122
  310. package/dist/chunk-QQXMIP6C.js.map +0 -1
  311. package/dist/chunk-QU6N55W6.cjs.map +0 -1
  312. package/dist/chunk-SHWNNZBL.js.map +0 -1
  313. package/dist/chunk-SPRRK3P7.cjs +0 -200
  314. package/dist/chunk-SPRRK3P7.cjs.map +0 -1
  315. package/dist/chunk-TRGAMKHX.cjs +0 -167
  316. package/dist/chunk-TRGAMKHX.cjs.map +0 -1
  317. package/dist/chunk-USGGDGWL.cjs +0 -19565
  318. package/dist/chunk-USGGDGWL.cjs.map +0 -1
  319. package/dist/chunk-VY4ENABS.cjs.map +0 -1
  320. package/dist/chunk-XN74I6VW.cjs +0 -88
  321. package/dist/chunk-XN74I6VW.cjs.map +0 -1
  322. package/dist/chunk-YWOK4F5A.js.map +0 -1
  323. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  324. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  325. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  326. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  327. package/dist/server/handlers/legacyWorkflows.js +0 -3
  328. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
  329. package/dist/server/handlers/telemetry.cjs +0 -20
  330. package/dist/server/handlers/telemetry.cjs.map +0 -1
  331. package/dist/server/handlers/telemetry.d.ts +0 -33
  332. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  333. package/dist/server/handlers/telemetry.js +0 -3
  334. package/dist/server/handlers/telemetry.js.map +0 -1
  335. package/dist/token-util-CV3RRG6K.cjs +0 -9
  336. package/dist/token-util-E5QO2RCL.js +0 -7
@@ -0,0 +1,322 @@
1
+ 'use strict';
2
+
3
+ var chunkMCYD5LW7_cjs = require('./chunk-MCYD5LW7.cjs');
4
+ var chunkH2RMXG2Q_cjs = require('./chunk-H2RMXG2Q.cjs');
5
+ var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
6
+ var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
7
+ var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
8
+ var z = require('zod');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var z__default = /*#__PURE__*/_interopDefault(z);
13
+
14
+ // src/server/handlers/scores.ts
15
+ var scores_exports = {};
16
+ chunkO7I5CWRX_cjs.__export(scores_exports, {
17
+ GET_SCORER_ROUTE: () => GET_SCORER_ROUTE,
18
+ LIST_SCORERS_ROUTE: () => LIST_SCORERS_ROUTE,
19
+ LIST_SCORES_BY_ENTITY_ID_ROUTE: () => LIST_SCORES_BY_ENTITY_ID_ROUTE,
20
+ LIST_SCORES_BY_RUN_ID_ROUTE: () => LIST_SCORES_BY_RUN_ID_ROUTE,
21
+ LIST_SCORES_BY_SCORER_ID_ROUTE: () => LIST_SCORES_BY_SCORER_ID_ROUTE,
22
+ SAVE_SCORE_ROUTE: () => SAVE_SCORE_ROUTE
23
+ });
24
+ var scoringSamplingConfigSchema = z__default.default.object({});
25
+ var mastraScorerConfigSchema = z__default.default.object({
26
+ id: z__default.default.string(),
27
+ name: z__default.default.string().optional(),
28
+ description: z__default.default.string(),
29
+ type: z__default.default.unknown().optional(),
30
+ judge: z__default.default.unknown().optional()
31
+ });
32
+ var mastraScorerSchema = z__default.default.object({
33
+ config: mastraScorerConfigSchema
34
+ });
35
+ var scorerEntrySchema = z__default.default.object({
36
+ scorer: mastraScorerSchema,
37
+ sampling: scoringSamplingConfigSchema.optional(),
38
+ agentIds: z__default.default.array(z__default.default.string()),
39
+ agentNames: z__default.default.array(z__default.default.string()),
40
+ workflowIds: z__default.default.array(z__default.default.string()),
41
+ isRegistered: z__default.default.boolean()
42
+ });
43
+ var listScorersResponseSchema = z__default.default.record(z__default.default.string(), scorerEntrySchema);
44
+ var scorerIdPathParams = z__default.default.object({
45
+ scorerId: z__default.default.string().describe("Unique identifier for the scorer")
46
+ });
47
+ var entityPathParams = z__default.default.object({
48
+ entityType: z__default.default.string().describe("Type of the entity (AGENT or WORKFLOW)"),
49
+ entityId: z__default.default.string().describe("Unique identifier for the entity")
50
+ });
51
+ var listScoresByRunIdQuerySchema = z__default.default.object({
52
+ page: z__default.default.coerce.number().optional().default(0),
53
+ perPage: z__default.default.coerce.number().optional().default(10)
54
+ });
55
+ var listScoresByScorerIdQuerySchema = z__default.default.object({
56
+ page: z__default.default.coerce.number().optional().default(0),
57
+ perPage: z__default.default.coerce.number().optional().default(10),
58
+ entityId: z__default.default.string().optional(),
59
+ entityType: z__default.default.string().optional()
60
+ });
61
+ var listScoresByEntityIdQuerySchema = z__default.default.object({
62
+ page: z__default.default.coerce.number().optional().default(0),
63
+ perPage: z__default.default.coerce.number().optional().default(10)
64
+ });
65
+ var saveScoreBodySchema = z__default.default.object({
66
+ score: z__default.default.unknown()
67
+ // ScoreRowData - complex type
68
+ });
69
+ var scoresWithPaginationResponseSchema = z__default.default.object({
70
+ pagination: chunkMCYD5LW7_cjs.paginationInfoSchema,
71
+ scores: z__default.default.array(z__default.default.unknown())
72
+ // Array of score records
73
+ });
74
+ var saveScoreResponseSchema = z__default.default.object({
75
+ score: z__default.default.unknown()
76
+ // ScoreRowData
77
+ });
78
+
79
+ // src/server/handlers/scores.ts
80
+ async function listScorersFromSystem({
81
+ mastra,
82
+ requestContext
83
+ }) {
84
+ const agents = mastra.listAgents();
85
+ const workflows = mastra.listWorkflows();
86
+ const scorersMap = /* @__PURE__ */ new Map();
87
+ for (const [_, agent] of Object.entries(agents)) {
88
+ const scorers = await agent.listScorers({
89
+ requestContext
90
+ }) || {};
91
+ if (Object.keys(scorers).length > 0) {
92
+ for (const [_scorerId, scorer] of Object.entries(scorers)) {
93
+ const scorerId = scorer.scorer.id;
94
+ if (scorersMap.has(scorerId)) {
95
+ scorersMap.get(scorerId)?.agentIds.push(agent.id);
96
+ scorersMap.get(scorerId)?.agentNames.push(agent.name);
97
+ } else {
98
+ scorersMap.set(scorerId, {
99
+ workflowIds: [],
100
+ ...scorer,
101
+ agentNames: [agent.name],
102
+ agentIds: [agent.id],
103
+ isRegistered: false
104
+ });
105
+ }
106
+ }
107
+ }
108
+ }
109
+ for (const [workflowId, workflow] of Object.entries(workflows)) {
110
+ const scorers = await workflow.listScorers({
111
+ requestContext
112
+ }) || {};
113
+ if (Object.keys(scorers).length > 0) {
114
+ for (const [_scorerId, scorer] of Object.entries(scorers)) {
115
+ const scorerName = scorer.scorer.name;
116
+ if (scorersMap.has(scorerName)) {
117
+ scorersMap.get(scorerName)?.workflowIds.push(workflowId);
118
+ } else {
119
+ scorersMap.set(scorerName, {
120
+ agentIds: [],
121
+ agentNames: [],
122
+ ...scorer,
123
+ workflowIds: [workflowId],
124
+ isRegistered: false
125
+ });
126
+ }
127
+ }
128
+ }
129
+ }
130
+ const registeredScorers = await mastra.listScorers();
131
+ for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {
132
+ const scorerId = scorer.id;
133
+ if (scorersMap.has(scorerId)) {
134
+ scorersMap.get(scorerId).isRegistered = true;
135
+ } else {
136
+ scorersMap.set(scorerId, {
137
+ scorer,
138
+ agentIds: [],
139
+ agentNames: [],
140
+ workflowIds: [],
141
+ isRegistered: true
142
+ });
143
+ }
144
+ }
145
+ return Object.fromEntries(scorersMap.entries());
146
+ }
147
+ function getTraceDetails(traceIdWithSpanId) {
148
+ if (!traceIdWithSpanId) {
149
+ return {};
150
+ }
151
+ const [traceId, spanId] = traceIdWithSpanId.split("-");
152
+ return {
153
+ ...traceId ? { traceId } : {},
154
+ ...spanId ? { spanId } : {}
155
+ };
156
+ }
157
+ var LIST_SCORERS_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
158
+ method: "GET",
159
+ path: "/api/scores/scorers",
160
+ responseType: "json",
161
+ responseSchema: listScorersResponseSchema,
162
+ summary: "List all scorers",
163
+ description: "Returns a list of all registered scorers with their configuration and associated agents and workflows",
164
+ tags: ["Scoring"],
165
+ handler: async ({ mastra, requestContext }) => {
166
+ const scorers = await listScorersFromSystem({
167
+ mastra,
168
+ requestContext
169
+ });
170
+ return scorers;
171
+ }
172
+ });
173
+ var GET_SCORER_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
174
+ method: "GET",
175
+ path: "/api/scores/scorers/:scorerId",
176
+ responseType: "json",
177
+ pathParamSchema: scorerIdPathParams,
178
+ responseSchema: scorerEntrySchema.nullable(),
179
+ summary: "Get scorer by ID",
180
+ description: "Returns details for a specific scorer including its configuration and associations",
181
+ tags: ["Scoring"],
182
+ handler: async ({ mastra, scorerId, requestContext }) => {
183
+ const scorers = await listScorersFromSystem({
184
+ mastra,
185
+ requestContext
186
+ });
187
+ const scorer = scorers[scorerId];
188
+ if (!scorer) {
189
+ return null;
190
+ }
191
+ return scorer;
192
+ }
193
+ });
194
+ var LIST_SCORES_BY_RUN_ID_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
195
+ method: "GET",
196
+ path: "/api/scores/run/:runId",
197
+ responseType: "json",
198
+ pathParamSchema: chunkMCYD5LW7_cjs.runIdSchema,
199
+ queryParamSchema: listScoresByRunIdQuerySchema,
200
+ responseSchema: scoresWithPaginationResponseSchema,
201
+ summary: "List scores by run ID",
202
+ description: "Returns all scores for a specific execution run",
203
+ tags: ["Scoring"],
204
+ handler: async ({ mastra, runId, ...params }) => {
205
+ try {
206
+ const { page, perPage } = params;
207
+ const pagination = {
208
+ page: page ?? 0,
209
+ perPage: perPage ?? 10
210
+ };
211
+ const scoreResults = await mastra.getStorage()?.listScoresByRunId?.({
212
+ runId,
213
+ pagination
214
+ }) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
215
+ return {
216
+ pagination: scoreResults.pagination,
217
+ scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
218
+ };
219
+ } catch (error) {
220
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by run id");
221
+ }
222
+ }
223
+ });
224
+ var LIST_SCORES_BY_SCORER_ID_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
225
+ method: "GET",
226
+ path: "/api/scores/scorer/:scorerId",
227
+ responseType: "json",
228
+ pathParamSchema: scorerIdPathParams,
229
+ queryParamSchema: listScoresByScorerIdQuerySchema,
230
+ responseSchema: scoresWithPaginationResponseSchema,
231
+ summary: "List scores by scorer ID",
232
+ description: "Returns all scores generated by a specific scorer",
233
+ tags: ["Scoring"],
234
+ handler: async ({ mastra, scorerId, ...params }) => {
235
+ try {
236
+ const { page, perPage, entityId, entityType } = params;
237
+ const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== void 0));
238
+ const scoreResults = await mastra.getStorage()?.listScoresByScorerId?.({
239
+ scorerId,
240
+ pagination: { page: page ?? 0, perPage: perPage ?? 10 },
241
+ ...filters
242
+ }) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
243
+ return {
244
+ pagination: scoreResults.pagination,
245
+ scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
246
+ };
247
+ } catch (error) {
248
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by scorer id");
249
+ }
250
+ }
251
+ });
252
+ var LIST_SCORES_BY_ENTITY_ID_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
253
+ method: "GET",
254
+ path: "/api/scores/entity/:entityType/:entityId",
255
+ responseType: "json",
256
+ pathParamSchema: entityPathParams,
257
+ queryParamSchema: listScoresByEntityIdQuerySchema,
258
+ responseSchema: scoresWithPaginationResponseSchema,
259
+ summary: "List scores by entity ID",
260
+ description: "Returns all scores for a specific entity (agent or workflow)",
261
+ tags: ["Scoring"],
262
+ handler: async ({ mastra, entityId, entityType, ...params }) => {
263
+ try {
264
+ const { page, perPage } = params;
265
+ let entityIdToUse = entityId;
266
+ if (entityType === "AGENT") {
267
+ const agent = mastra.getAgentById(entityId);
268
+ entityIdToUse = agent.id;
269
+ } else if (entityType === "WORKFLOW") {
270
+ const workflow = mastra.getWorkflowById(entityId);
271
+ entityIdToUse = workflow.id;
272
+ }
273
+ const pagination = {
274
+ page: page ?? 0,
275
+ perPage: perPage ?? 10
276
+ };
277
+ const scoreResults = await mastra.getStorage()?.listScoresByEntityId?.({
278
+ entityId: entityIdToUse,
279
+ entityType,
280
+ pagination
281
+ }) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
282
+ return {
283
+ pagination: scoreResults.pagination,
284
+ scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
285
+ };
286
+ } catch (error) {
287
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by entity id");
288
+ }
289
+ }
290
+ });
291
+ var SAVE_SCORE_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
292
+ method: "POST",
293
+ path: "/api/scores",
294
+ responseType: "json",
295
+ bodySchema: saveScoreBodySchema,
296
+ responseSchema: saveScoreResponseSchema,
297
+ summary: "Save score",
298
+ description: "Saves a new score record to storage",
299
+ tags: ["Scoring"],
300
+ handler: async ({ mastra, ...params }) => {
301
+ try {
302
+ const { score } = params;
303
+ const result = await mastra.getStorage()?.saveScore?.(score);
304
+ if (!result) {
305
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage not configured" });
306
+ }
307
+ return result;
308
+ } catch (error) {
309
+ return chunkV5WWQN7P_cjs.handleError(error, "Error saving score");
310
+ }
311
+ }
312
+ });
313
+
314
+ exports.GET_SCORER_ROUTE = GET_SCORER_ROUTE;
315
+ exports.LIST_SCORERS_ROUTE = LIST_SCORERS_ROUTE;
316
+ exports.LIST_SCORES_BY_ENTITY_ID_ROUTE = LIST_SCORES_BY_ENTITY_ID_ROUTE;
317
+ exports.LIST_SCORES_BY_RUN_ID_ROUTE = LIST_SCORES_BY_RUN_ID_ROUTE;
318
+ exports.LIST_SCORES_BY_SCORER_ID_ROUTE = LIST_SCORES_BY_SCORER_ID_ROUTE;
319
+ exports.SAVE_SCORE_ROUTE = SAVE_SCORE_ROUTE;
320
+ exports.scores_exports = scores_exports;
321
+ //# sourceMappingURL=chunk-S3TIWWQL.cjs.map
322
+ //# sourceMappingURL=chunk-S3TIWWQL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/scores.ts","../src/server/schemas/scores.ts"],"names":["__export","z","paginationInfoSchema","createRoute","runIdSchema","handleError","HTTPException"],"mappings":"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","file":"chunk-S3TIWWQL.cjs","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport { runIdSchema } from '../schemas/common';\nimport {\n listScorersResponseSchema,\n scorerEntrySchema,\n scorerIdPathParams,\n entityPathParams,\n listScoresByRunIdQuerySchema,\n listScoresByScorerIdQuerySchema,\n listScoresByEntityIdQuerySchema,\n saveScoreBodySchema,\n scoresWithPaginationResponseSchema,\n saveScoreResponseSchema,\n} from '../schemas/scores';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & { agentIds: string[]; agentNames: string[]; workflowIds: string[]; isRegistered: boolean }\n >();\n\n for (const [_, agent] of Object.entries(agents)) {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\n isRegistered: false,\n });\n }\n }\n }\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/scores/scorers',\n responseType: 'json',\n responseSchema: listScorersResponseSchema,\n summary: 'List all scorers',\n description: 'Returns a list of all registered scorers with their configuration and associated agents and workflows',\n tags: ['Scoring'],\n handler: async ({ mastra, requestContext }) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n return scorers;\n },\n});\n\nexport const GET_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/api/scores/scorers/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n responseSchema: scorerEntrySchema.nullable(),\n summary: 'Get scorer by ID',\n description: 'Returns details for a specific scorer including its configuration and associations',\n tags: ['Scoring'],\n handler: async ({ mastra, scorerId, requestContext }) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n },\n});\n\nexport const LIST_SCORES_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/scores/run/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listScoresByRunIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by run ID',\n description: 'Returns all scores for a specific execution run',\n tags: ['Scoring'],\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { page, perPage } = params;\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n const scoreResults = (await mastra.getStorage()?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SCORER_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/scores/scorer/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n queryParamSchema: listScoresByScorerIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by scorer ID',\n description: 'Returns all scores generated by a specific scorer',\n tags: ['Scoring'],\n handler: async ({ mastra, scorerId, ...params }) => {\n try {\n const { page, perPage, entityId, entityType } = params;\n const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== undefined));\n const scoreResults = (await mastra.getStorage()?.listScoresByScorerId?.({\n scorerId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n ...filters,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_ENTITY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/scores/entity/:entityType/:entityId',\n responseType: 'json',\n pathParamSchema: entityPathParams,\n queryParamSchema: listScoresByEntityIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by entity ID',\n description: 'Returns all scores for a specific entity (agent or workflow)',\n tags: ['Scoring'],\n handler: async ({ mastra, entityId, entityType, ...params }) => {\n try {\n const { page, perPage } = params;\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = mastra.getAgentById(entityId);\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n\n const scoreResults = (await mastra.getStorage()?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n },\n});\n\nexport const SAVE_SCORE_ROUTE = createRoute({\n method: 'POST',\n path: '/api/scores',\n responseType: 'json',\n bodySchema: saveScoreBodySchema,\n responseSchema: saveScoreResponseSchema,\n summary: 'Save score',\n description: 'Saves a new score record to storage',\n tags: ['Scoring'],\n handler: async ({ mastra, ...params }) => {\n try {\n const { score } = params as { score: ScoreRowData };\n const result = await mastra.getStorage()?.saveScore?.(score);\n if (!result) {\n throw new HTTPException(500, { message: 'Storage not configured' });\n }\n return result;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n },\n});\n","import z from 'zod';\nimport { paginationInfoSchema } from './common';\n\n/**\n * Schema for sampling configuration\n * Using passthrough to allow various sampling config shapes\n */\nconst scoringSamplingConfigSchema = z.object({});\n\n/**\n * Schema for MastraScorer config object\n */\nconst mastraScorerConfigSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n description: z.string(),\n type: z.unknown().optional(),\n judge: z.unknown().optional(),\n});\n\n/**\n * Schema for MastraScorer\n * Only validates public config property, uses passthrough to allow class instance\n */\nconst mastraScorerSchema = z.object({\n config: mastraScorerConfigSchema,\n});\n\n/**\n * Schema for scorer entry with associations to agents and workflows\n */\nexport const scorerEntrySchema = z.object({\n scorer: mastraScorerSchema,\n sampling: scoringSamplingConfigSchema.optional(),\n agentIds: z.array(z.string()),\n agentNames: z.array(z.string()),\n workflowIds: z.array(z.string()),\n isRegistered: z.boolean(),\n});\n\n/**\n * Response schema for list scorers endpoint\n * Returns a record of scorer ID to scorer entry with associations\n */\nexport const listScorersResponseSchema = z.record(z.string(), scorerEntrySchema);\n\n// Path parameter schemas\nexport const scorerIdPathParams = z.object({\n scorerId: z.string().describe('Unique identifier for the scorer'),\n});\n\nexport const entityPathParams = z.object({\n entityType: z.string().describe('Type of the entity (AGENT or WORKFLOW)'),\n entityId: z.string().describe('Unique identifier for the entity'),\n});\n\n// Query parameter schemas\n// HTTP query params must be flat (e.g., ?page=0&perPage=10)\n// Adapters should transform these into nested pagination objects for handlers if needed\n\nexport const listScoresByRunIdQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n});\n\nexport const listScoresByScorerIdQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n entityId: z.string().optional(),\n entityType: z.string().optional(),\n});\n\nexport const listScoresByEntityIdQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n});\n\n// Body schema for saving scores\nexport const saveScoreBodySchema = z.object({\n score: z.unknown(), // ScoreRowData - complex type\n});\n\n// Response schemas\nexport const scoresWithPaginationResponseSchema = z.object({\n pagination: paginationInfoSchema,\n scores: z.array(z.unknown()), // Array of score records\n});\n\nexport const saveScoreResponseSchema = z.object({\n score: z.unknown(), // ScoreRowData\n});\n"]}
@@ -0,0 +1,164 @@
1
+ import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
2
+
3
+ // src/server/server-adapter/openapi-utils.ts
4
+ function generateRouteOpenAPI({
5
+ method,
6
+ path,
7
+ summary,
8
+ description,
9
+ tags = [],
10
+ pathParamSchema,
11
+ queryParamSchema,
12
+ bodySchema,
13
+ responseSchema,
14
+ deprecated
15
+ }) {
16
+ const route = {
17
+ summary: summary || `${method} ${path}`,
18
+ description,
19
+ tags,
20
+ deprecated,
21
+ responses: {
22
+ 200: {
23
+ description: "Successful response"
24
+ }
25
+ }
26
+ };
27
+ if (pathParamSchema || queryParamSchema) {
28
+ route.requestParams = {};
29
+ if (pathParamSchema) {
30
+ route.requestParams.path = pathParamSchema;
31
+ }
32
+ if (queryParamSchema) {
33
+ route.requestParams.query = queryParamSchema;
34
+ }
35
+ }
36
+ if (bodySchema) {
37
+ route.requestBody = {
38
+ content: {
39
+ "application/json": {
40
+ schema: bodySchema
41
+ }
42
+ }
43
+ };
44
+ }
45
+ if (responseSchema) {
46
+ route.responses[200] = {
47
+ description: "Successful response",
48
+ content: {
49
+ "application/json": {
50
+ schema: responseSchema
51
+ }
52
+ }
53
+ };
54
+ }
55
+ return route;
56
+ }
57
+ function convertZodToJsonSchema(spec) {
58
+ const converted = {
59
+ summary: spec.summary,
60
+ description: spec.description,
61
+ tags: spec.tags,
62
+ responses: {}
63
+ };
64
+ const parameters = [];
65
+ if (spec.requestParams?.path) {
66
+ const pathSchema = zodToJsonSchema(spec.requestParams.path, "openApi3", "none");
67
+ const properties = pathSchema.properties || {};
68
+ Object.entries(properties).forEach(([name, schema]) => {
69
+ parameters.push({
70
+ name,
71
+ in: "path",
72
+ required: true,
73
+ description: schema.description || `The ${name} parameter`,
74
+ schema
75
+ });
76
+ });
77
+ }
78
+ if (spec.requestParams?.query) {
79
+ const querySchema = zodToJsonSchema(spec.requestParams.query, "openApi3", "none");
80
+ const properties = querySchema.properties || {};
81
+ const required = querySchema.required || [];
82
+ Object.entries(properties).forEach(([name, schema]) => {
83
+ parameters.push({
84
+ name,
85
+ in: "query",
86
+ required: required.includes(name),
87
+ description: schema.description || `Query parameter: ${name}`,
88
+ schema
89
+ });
90
+ });
91
+ }
92
+ if (parameters.length > 0) {
93
+ converted.parameters = parameters;
94
+ }
95
+ if (spec.requestBody?.content?.["application/json"]?.schema) {
96
+ converted.requestBody = {
97
+ required: true,
98
+ content: {
99
+ "application/json": {
100
+ schema: zodToJsonSchema(spec.requestBody.content["application/json"].schema, "openApi3", "none")
101
+ }
102
+ }
103
+ };
104
+ }
105
+ Object.entries(spec.responses).forEach(([statusCode, response]) => {
106
+ converted.responses[statusCode] = {
107
+ description: response.description
108
+ };
109
+ if (response.content?.["application/json"]?.schema) {
110
+ converted.responses[statusCode].content = {
111
+ "application/json": {
112
+ schema: zodToJsonSchema(response.content["application/json"].schema, "openApi3", "none")
113
+ }
114
+ };
115
+ }
116
+ });
117
+ return converted;
118
+ }
119
+ function generateOpenAPIDocument(routes, info) {
120
+ const paths = {};
121
+ routes.forEach((route) => {
122
+ if (!route.openapi) return;
123
+ const openapiPath = route.path.replace(/:(\w+)/g, "{$1}");
124
+ if (!paths[openapiPath]) {
125
+ paths[openapiPath] = {};
126
+ }
127
+ paths[openapiPath][route.method.toLowerCase()] = convertZodToJsonSchema(route.openapi);
128
+ });
129
+ return {
130
+ openapi: "3.1.0",
131
+ info: {
132
+ title: info.title,
133
+ version: info.version,
134
+ description: info.description
135
+ },
136
+ paths
137
+ };
138
+ }
139
+
140
+ // src/server/server-adapter/routes/route-builder.ts
141
+ function createRoute(config) {
142
+ const { summary, description, tags, deprecated, ...baseRoute } = config;
143
+ const openapi = config.method !== "ALL" ? generateRouteOpenAPI({
144
+ method: config.method,
145
+ path: config.path,
146
+ summary,
147
+ description,
148
+ tags,
149
+ pathParamSchema: config.pathParamSchema,
150
+ queryParamSchema: config.queryParamSchema,
151
+ bodySchema: config.bodySchema,
152
+ responseSchema: config.responseSchema,
153
+ deprecated
154
+ }) : void 0;
155
+ return {
156
+ ...baseRoute,
157
+ openapi,
158
+ deprecated
159
+ };
160
+ }
161
+
162
+ export { createRoute, generateOpenAPIDocument };
163
+ //# sourceMappingURL=chunk-SXVANU23.js.map
164
+ //# sourceMappingURL=chunk-SXVANU23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/server-adapter/openapi-utils.ts","../src/server/server-adapter/routes/route-builder.ts"],"names":[],"mappings":"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","file":"chunk-SXVANU23.js","sourcesContent":["import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport type { ZodSchema } from 'zod';\nimport type { ServerRoute } from './routes';\n\ninterface RouteOpenAPIConfig {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n summary?: string;\n description?: string;\n tags?: string[];\n pathParamSchema?: ZodSchema;\n queryParamSchema?: ZodSchema;\n bodySchema?: ZodSchema;\n responseSchema?: ZodSchema;\n deprecated?: boolean;\n}\n\ninterface OpenAPIRoute {\n summary?: string;\n description?: string;\n tags?: string[];\n deprecated?: boolean;\n requestParams?: {\n path?: ZodSchema;\n query?: ZodSchema;\n };\n requestBody?: {\n content: {\n 'application/json': {\n schema: ZodSchema;\n };\n };\n };\n responses: {\n [statusCode: string]: {\n description: string;\n content?: {\n 'application/json': {\n schema: ZodSchema;\n };\n };\n };\n };\n}\n\n/**\n * Generates OpenAPI specification for a single route\n * Extracts path parameters, query parameters, request body, and response schemas\n */\nexport function generateRouteOpenAPI({\n method,\n path,\n summary,\n description,\n tags = [],\n pathParamSchema,\n queryParamSchema,\n bodySchema,\n responseSchema,\n deprecated,\n}: RouteOpenAPIConfig): OpenAPIRoute {\n const route: OpenAPIRoute = {\n summary: summary || `${method} ${path}`,\n description,\n tags,\n deprecated,\n responses: {\n 200: {\n description: 'Successful response',\n },\n },\n };\n\n // Add path and query parameters\n if (pathParamSchema || queryParamSchema) {\n route.requestParams = {};\n\n if (pathParamSchema) {\n route.requestParams.path = pathParamSchema;\n }\n\n if (queryParamSchema) {\n route.requestParams.query = queryParamSchema;\n }\n }\n\n // Add request body with raw Zod schema\n if (bodySchema) {\n route.requestBody = {\n content: {\n 'application/json': {\n schema: bodySchema,\n },\n },\n };\n }\n\n // Add response schema with raw Zod schema\n if (responseSchema) {\n route.responses[200] = {\n description: 'Successful response',\n content: {\n 'application/json': {\n schema: responseSchema,\n },\n },\n };\n }\n\n return route;\n}\n\n/**\n * Converts an OpenAPI route spec with Zod schemas to one with JSON Schema\n */\nfunction convertZodToJsonSchema(spec: OpenAPIRoute): any {\n const converted: any = {\n summary: spec.summary,\n description: spec.description,\n tags: spec.tags,\n responses: {},\n };\n\n const parameters: any[] = [];\n\n // Convert path parameters\n if (spec.requestParams?.path) {\n const pathSchema = zodToJsonSchema(spec.requestParams.path, 'openApi3', 'none') as any;\n const properties = pathSchema.properties || {};\n\n Object.entries(properties).forEach(([name, schema]) => {\n parameters.push({\n name,\n in: 'path',\n required: true,\n description: (schema as any).description || `The ${name} parameter`,\n schema,\n });\n });\n }\n\n // Convert query parameters\n if (spec.requestParams?.query) {\n const querySchema = zodToJsonSchema(spec.requestParams.query, 'openApi3', 'none') as any;\n const properties = querySchema.properties || {};\n const required = querySchema.required || [];\n\n Object.entries(properties).forEach(([name, schema]) => {\n parameters.push({\n name,\n in: 'query',\n required: required.includes(name),\n description: (schema as any).description || `Query parameter: ${name}`,\n schema,\n });\n });\n }\n\n if (parameters.length > 0) {\n converted.parameters = parameters;\n }\n\n // Convert request body\n if (spec.requestBody?.content?.['application/json']?.schema) {\n converted.requestBody = {\n required: true,\n content: {\n 'application/json': {\n schema: zodToJsonSchema(spec.requestBody.content['application/json'].schema, 'openApi3', 'none'),\n },\n },\n };\n }\n\n // Convert response schemas\n Object.entries(spec.responses).forEach(([statusCode, response]) => {\n converted.responses[statusCode] = {\n description: response.description,\n };\n\n if (response.content?.['application/json']?.schema) {\n converted.responses[statusCode].content = {\n 'application/json': {\n schema: zodToJsonSchema(response.content['application/json'].schema, 'openApi3', 'none'),\n },\n };\n }\n });\n\n return converted;\n}\n\n/**\n * Generates a complete OpenAPI 3.1.0 document from server routes\n * @param routes - Array of ServerRoute objects with OpenAPI specifications\n * @param info - API metadata (title, version, description)\n * @returns Complete OpenAPI 3.1.0 document\n */\nexport function generateOpenAPIDocument(\n routes: ServerRoute[],\n info: { title: string; version: string; description?: string },\n): any {\n const paths: Record<string, any> = {};\n\n // Build paths object from routes\n // Convert Express-style :param to OpenAPI-style {param}\n routes.forEach(route => {\n if (!route.openapi) return;\n\n const openapiPath = route.path.replace(/:(\\w+)/g, '{$1}');\n if (!paths[openapiPath]) {\n paths[openapiPath] = {};\n }\n\n // Convert Zod schemas to JSON Schema\n paths[openapiPath][route.method.toLowerCase()] = convertZodToJsonSchema(route.openapi);\n });\n\n return {\n openapi: '3.1.0',\n info: {\n title: info.title,\n version: info.version,\n description: info.description,\n },\n paths,\n };\n}\n","import type z from 'zod';\nimport { generateRouteOpenAPI } from '../openapi-utils';\nimport type { InferParams, ResponseType, ServerRoute, ServerRouteHandler } from './index';\n\ninterface RouteConfig<\n TPathSchema extends z.ZodTypeAny | undefined = undefined,\n TQuerySchema extends z.ZodTypeAny | undefined = undefined,\n TBodySchema extends z.ZodTypeAny | undefined = undefined,\n TResponseSchema extends z.ZodTypeAny | undefined = undefined,\n TResponseType extends ResponseType = 'json',\n> {\n method: ServerRoute['method'];\n path: string;\n responseType: TResponseType;\n streamFormat?: 'sse' | 'stream'; // Only used when responseType is 'stream'\n handler: ServerRouteHandler<\n InferParams<TPathSchema, TQuerySchema, TBodySchema>,\n TResponseSchema extends z.ZodTypeAny ? z.infer<TResponseSchema> : unknown,\n TResponseType\n >;\n pathParamSchema?: TPathSchema;\n queryParamSchema?: TQuerySchema;\n bodySchema?: TBodySchema;\n responseSchema?: TResponseSchema;\n summary?: string;\n description?: string;\n tags?: string[];\n deprecated?: boolean;\n maxBodySize?: number;\n}\n\n/**\n * Creates a server route with auto-generated OpenAPI specification and type-safe handler inference.\n *\n * The handler parameters are automatically inferred from the provided schemas:\n * - pathParamSchema: Infers path parameter types (e.g., :agentId)\n * - queryParamSchema: Infers query parameter types\n * - bodySchema: Infers request body types\n * - Runtime context (mastra, requestContext, tools, taskStore) is always available\n *\n * @param config - Route configuration including schemas, handler, and metadata\n * @returns Complete ServerRoute with OpenAPI spec\n *\n * @example\n * ```typescript\n * export const getAgentRoute = createRoute({\n * method: 'GET',\n * path: '/api/agents/:agentId',\n * responseType: 'json',\n * pathParamSchema: z.object({ agentId: z.string() }),\n * responseSchema: serializedAgentSchema,\n * handler: async ({ agentId, mastra, requestContext }) => {\n * // agentId is typed as string\n * // mastra, requestContext, tools, taskStore are always available\n * return mastra.getAgentById(agentId);\n * },\n * summary: 'Get agent by ID',\n * description: 'Returns details for a specific agent',\n * tags: ['Agents'],\n * });\n * ```\n */\nexport function createRoute<\n TPathSchema extends z.ZodTypeAny | undefined = undefined,\n TQuerySchema extends z.ZodTypeAny | undefined = undefined,\n TBodySchema extends z.ZodTypeAny | undefined = undefined,\n TResponseSchema extends z.ZodTypeAny | undefined = undefined,\n TResponseType extends ResponseType = 'json',\n>(\n config: RouteConfig<TPathSchema, TQuerySchema, TBodySchema, TResponseSchema, TResponseType>,\n): ServerRoute<\n InferParams<TPathSchema, TQuerySchema, TBodySchema>,\n TResponseSchema extends z.ZodTypeAny ? z.infer<TResponseSchema> : unknown,\n TResponseType\n> {\n const { summary, description, tags, deprecated, ...baseRoute } = config;\n\n // Generate OpenAPI specification from the route config\n // Skip OpenAPI generation for 'ALL' method as it doesn't map to OpenAPI\n const openapi =\n config.method !== 'ALL'\n ? generateRouteOpenAPI({\n method: config.method as 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH',\n path: config.path,\n summary,\n description,\n tags,\n pathParamSchema: config.pathParamSchema,\n queryParamSchema: config.queryParamSchema,\n bodySchema: config.bodySchema,\n responseSchema: config.responseSchema,\n deprecated,\n })\n : undefined;\n\n return {\n ...baseRoute,\n openapi: openapi as any,\n deprecated,\n };\n}\n"]}