@mastra/server 0.0.0-new-scorer-api-20250801075530 → 0.0.0-new-button-export-20251219130424

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 (402) hide show
  1. package/CHANGELOG.md +5548 -0
  2. package/README.md +2 -7
  3. package/dist/chunk-3BXS37TQ.js +1105 -0
  4. package/dist/chunk-3BXS37TQ.js.map +1 -0
  5. package/dist/chunk-3SFLFUKY.js +116 -0
  6. package/dist/chunk-3SFLFUKY.js.map +1 -0
  7. package/dist/chunk-3XI22UQR.cjs +148 -0
  8. package/dist/chunk-3XI22UQR.cjs.map +1 -0
  9. package/dist/chunk-5W4RPVTK.cjs +49 -0
  10. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  11. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  12. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  13. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  14. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  15. package/dist/chunk-6V57U52D.js +196 -0
  16. package/dist/chunk-6V57U52D.js.map +1 -0
  17. package/dist/chunk-7KOS32XA.cjs +928 -0
  18. package/dist/chunk-7KOS32XA.cjs.map +1 -0
  19. package/dist/chunk-AZIH2QEC.js +83 -0
  20. package/dist/chunk-AZIH2QEC.js.map +1 -0
  21. package/dist/chunk-BMLUV4BH.cjs +992 -0
  22. package/dist/chunk-BMLUV4BH.cjs.map +1 -0
  23. package/dist/chunk-BMYZ4DO6.cjs +269 -0
  24. package/dist/chunk-BMYZ4DO6.cjs.map +1 -0
  25. package/dist/chunk-BNGT3NIC.cjs +211 -0
  26. package/dist/chunk-BNGT3NIC.cjs.map +1 -0
  27. package/dist/chunk-C3UIIRAT.cjs +920 -0
  28. package/dist/chunk-C3UIIRAT.cjs.map +1 -0
  29. package/dist/chunk-DRUNNM4C.js +328 -0
  30. package/dist/chunk-DRUNNM4C.js.map +1 -0
  31. package/dist/chunk-DVSCJECS.js +250 -0
  32. package/dist/chunk-DVSCJECS.js.map +1 -0
  33. package/dist/chunk-DW3WE4M4.js +250 -0
  34. package/dist/chunk-DW3WE4M4.js.map +1 -0
  35. package/dist/chunk-E646Y4FQ.js +970 -0
  36. package/dist/chunk-E646Y4FQ.js.map +1 -0
  37. package/dist/chunk-EUBTCHQC.js +83 -0
  38. package/dist/chunk-EUBTCHQC.js.map +1 -0
  39. package/dist/chunk-FWSKVWS7.cjs +88 -0
  40. package/dist/chunk-FWSKVWS7.cjs.map +1 -0
  41. package/dist/chunk-FYY54HZC.js +310 -0
  42. package/dist/chunk-FYY54HZC.js.map +1 -0
  43. package/dist/chunk-GFF2I6UD.js +354 -0
  44. package/dist/chunk-GFF2I6UD.js.map +1 -0
  45. package/dist/chunk-GU4EWMZB.cjs +769 -0
  46. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  47. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  48. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  49. package/dist/chunk-HAJOEDNB.js +274 -0
  50. package/dist/chunk-HAJOEDNB.js.map +1 -0
  51. package/dist/chunk-HT4LP3BO.js +75 -0
  52. package/dist/chunk-HT4LP3BO.js.map +1 -0
  53. package/dist/chunk-I6LR6CPC.cjs +125 -0
  54. package/dist/chunk-I6LR6CPC.cjs.map +1 -0
  55. package/dist/chunk-IEYXQTUW.cjs +284 -0
  56. package/dist/chunk-IEYXQTUW.cjs.map +1 -0
  57. package/dist/chunk-JUYWLFVT.cjs +689 -0
  58. package/dist/chunk-JUYWLFVT.cjs.map +1 -0
  59. package/dist/chunk-K73YS7YB.cjs +2777 -0
  60. package/dist/chunk-K73YS7YB.cjs.map +1 -0
  61. package/dist/chunk-KPSSRYGH.js +234 -0
  62. package/dist/chunk-KPSSRYGH.js.map +1 -0
  63. package/dist/chunk-LF2ZLOFP.js +767 -0
  64. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  65. package/dist/chunk-LH722MPX.cjs +27569 -0
  66. package/dist/chunk-LH722MPX.cjs.map +1 -0
  67. package/dist/chunk-LKTCAPBD.cjs +252 -0
  68. package/dist/chunk-LKTCAPBD.cjs.map +1 -0
  69. package/dist/chunk-LQSZ4FJJ.cjs +205 -0
  70. package/dist/chunk-LQSZ4FJJ.cjs.map +1 -0
  71. package/dist/chunk-MCYD5LW7.cjs +90 -0
  72. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  73. package/dist/chunk-MQLS6Z7A.js +891 -0
  74. package/dist/chunk-MQLS6Z7A.js.map +1 -0
  75. package/dist/chunk-O7I5CWRX.cjs +44 -0
  76. package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  77. package/dist/chunk-P3H4AZKI.cjs +252 -0
  78. package/dist/chunk-P3H4AZKI.cjs.map +1 -0
  79. package/dist/chunk-P6S2HIVE.cjs +1149 -0
  80. package/dist/chunk-P6S2HIVE.cjs.map +1 -0
  81. package/dist/chunk-PR4QN5HX.js +39 -0
  82. package/dist/{chunk-PZ5AY32C.js.map → chunk-PR4QN5HX.js.map} +1 -1
  83. package/dist/chunk-PUFCKXFW.cjs +312 -0
  84. package/dist/chunk-PUFCKXFW.cjs.map +1 -0
  85. package/dist/chunk-Q7NPRJRV.cjs +88 -0
  86. package/dist/chunk-Q7NPRJRV.cjs.map +1 -0
  87. package/dist/chunk-S3TIWWQL.cjs +322 -0
  88. package/dist/chunk-S3TIWWQL.cjs.map +1 -0
  89. package/dist/chunk-S5XBFHJL.js +675 -0
  90. package/dist/chunk-S5XBFHJL.js.map +1 -0
  91. package/dist/chunk-SRQY5IWD.js +204 -0
  92. package/dist/chunk-SRQY5IWD.js.map +1 -0
  93. package/dist/chunk-SV4AUWGY.js +2774 -0
  94. package/dist/chunk-SV4AUWGY.js.map +1 -0
  95. package/dist/chunk-SXVANU23.js +164 -0
  96. package/dist/chunk-SXVANU23.js.map +1 -0
  97. package/dist/chunk-TYZ6ZISQ.cjs +368 -0
  98. package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
  99. package/dist/chunk-UWRAKVAJ.js +903 -0
  100. package/dist/chunk-UWRAKVAJ.js.map +1 -0
  101. package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
  102. package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
  103. package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
  104. package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
  105. package/dist/chunk-WBLT2HL3.js +144 -0
  106. package/dist/chunk-WBLT2HL3.js.map +1 -0
  107. package/dist/chunk-X43DWDXB.cjs +346 -0
  108. package/dist/chunk-X43DWDXB.cjs.map +1 -0
  109. package/dist/chunk-XW2HXQDO.js +302 -0
  110. package/dist/chunk-XW2HXQDO.js.map +1 -0
  111. package/dist/chunk-XWGAT2DA.js +44 -0
  112. package/dist/chunk-XWGAT2DA.js.map +1 -0
  113. package/dist/chunk-ZSD2NWTP.js +27527 -0
  114. package/dist/chunk-ZSD2NWTP.js.map +1 -0
  115. package/dist/dist-2J26LQO2.cjs +16 -0
  116. package/dist/dist-2J26LQO2.cjs.map +1 -0
  117. package/dist/dist-4CMHRWC4.js +1147 -0
  118. package/dist/dist-4CMHRWC4.js.map +1 -0
  119. package/dist/dist-AEJONJSS.js +937 -0
  120. package/dist/dist-AEJONJSS.js.map +1 -0
  121. package/dist/dist-AF7EUPXA.cjs +928 -0
  122. package/dist/dist-AF7EUPXA.cjs.map +1 -0
  123. package/dist/dist-MEN73GGI.js +3 -0
  124. package/dist/dist-MEN73GGI.js.map +1 -0
  125. package/dist/dist-NVXXJWBO.cjs +940 -0
  126. package/dist/dist-NVXXJWBO.cjs.map +1 -0
  127. package/dist/dist-Q2ST4SUQ.cjs +764 -0
  128. package/dist/dist-Q2ST4SUQ.cjs.map +1 -0
  129. package/dist/dist-TE7XRSWH.js +761 -0
  130. package/dist/dist-TE7XRSWH.js.map +1 -0
  131. package/dist/dist-VPYZNWNG.js +925 -0
  132. package/dist/dist-VPYZNWNG.js.map +1 -0
  133. package/dist/dist-Y5SYUVLY.cjs +1150 -0
  134. package/dist/dist-Y5SYUVLY.cjs.map +1 -0
  135. package/dist/index.cjs +4 -0
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.js +3 -0
  138. package/dist/index.js.map +1 -1
  139. package/dist/server/a2a/store.cjs +25 -0
  140. package/dist/server/a2a/store.cjs.map +1 -0
  141. package/dist/server/a2a/store.d.ts +3 -3
  142. package/dist/server/a2a/store.d.ts.map +1 -1
  143. package/dist/server/a2a/store.js +23 -0
  144. package/dist/server/a2a/store.js.map +1 -0
  145. package/dist/server/a2a/tasks.d.ts +7 -7
  146. package/dist/server/a2a/tasks.d.ts.map +1 -1
  147. package/dist/server/auth/defaults.d.ts +3 -0
  148. package/dist/server/auth/defaults.d.ts.map +1 -0
  149. package/dist/server/auth/helpers.d.ts +14 -0
  150. package/dist/server/auth/helpers.d.ts.map +1 -0
  151. package/dist/server/auth/index.cjs +137 -0
  152. package/dist/server/auth/index.cjs.map +1 -0
  153. package/dist/server/auth/index.d.ts +3 -0
  154. package/dist/server/auth/index.d.ts.map +1 -0
  155. package/dist/server/auth/index.js +127 -0
  156. package/dist/server/auth/index.js.map +1 -0
  157. package/dist/server/handlers/a2a.cjs +19 -11
  158. package/dist/server/handlers/a2a.d.ts +507 -23
  159. package/dist/server/handlers/a2a.d.ts.map +1 -1
  160. package/dist/server/handlers/a2a.js +1 -1
  161. package/dist/server/handlers/agent-builder.cjs +80 -0
  162. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  163. package/dist/server/handlers/agent-builder.d.ts +642 -0
  164. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  165. package/dist/server/handlers/agent-builder.js +3 -0
  166. package/dist/server/handlers/agent-builder.js.map +1 -0
  167. package/dist/server/handlers/agents.cjs +79 -15
  168. package/dist/server/handlers/agents.d.ts +3350 -72
  169. package/dist/server/handlers/agents.d.ts.map +1 -1
  170. package/dist/server/handlers/agents.js +1 -1
  171. package/dist/server/handlers/error.cjs +2 -2
  172. package/dist/server/handlers/error.js +1 -1
  173. package/dist/server/handlers/logs.cjs +7 -7
  174. package/dist/server/handlers/logs.d.ts +135 -27
  175. package/dist/server/handlers/logs.d.ts.map +1 -1
  176. package/dist/server/handlers/logs.js +1 -1
  177. package/dist/server/handlers/mcp.cjs +40 -0
  178. package/dist/server/handlers/mcp.cjs.map +1 -0
  179. package/dist/server/handlers/mcp.d.ts +110 -0
  180. package/dist/server/handlers/mcp.d.ts.map +1 -0
  181. package/dist/server/handlers/mcp.js +3 -0
  182. package/dist/server/handlers/mcp.js.map +1 -0
  183. package/dist/server/handlers/memory.cjs +65 -29
  184. package/dist/server/handlers/memory.d.ts +935 -99
  185. package/dist/server/handlers/memory.d.ts.map +1 -1
  186. package/dist/server/handlers/memory.js +1 -1
  187. package/dist/server/handlers/observability.cjs +40 -0
  188. package/dist/server/handlers/observability.cjs.map +1 -0
  189. package/dist/server/handlers/observability.d.ts +156 -0
  190. package/dist/server/handlers/observability.d.ts.map +1 -0
  191. package/dist/server/handlers/observability.js +3 -0
  192. package/dist/server/handlers/observability.js.map +1 -0
  193. package/dist/server/handlers/scores.cjs +13 -13
  194. package/dist/server/handlers/scores.d.ts +112 -40
  195. package/dist/server/handlers/scores.d.ts.map +1 -1
  196. package/dist/server/handlers/scores.js +1 -1
  197. package/dist/server/handlers/stored-agents.cjs +28 -0
  198. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  199. package/dist/server/handlers/stored-agents.d.ts +289 -0
  200. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  201. package/dist/server/handlers/stored-agents.js +3 -0
  202. package/dist/server/handlers/stored-agents.js.map +1 -0
  203. package/dist/server/handlers/test-utils.cjs +15 -0
  204. package/dist/server/handlers/test-utils.cjs.map +1 -0
  205. package/dist/server/handlers/test-utils.d.ts +6 -0
  206. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  207. package/dist/server/handlers/test-utils.js +13 -0
  208. package/dist/server/handlers/test-utils.js.map +1 -0
  209. package/dist/server/handlers/tools.cjs +13 -9
  210. package/dist/server/handlers/tools.d.ts +69 -19
  211. package/dist/server/handlers/tools.d.ts.map +1 -1
  212. package/dist/server/handlers/tools.js +1 -1
  213. package/dist/server/handlers/utils.cjs +14 -2
  214. package/dist/server/handlers/utils.d.ts +11 -0
  215. package/dist/server/handlers/utils.d.ts.map +1 -1
  216. package/dist/server/handlers/utils.js +1 -1
  217. package/dist/server/handlers/vector.cjs +31 -7
  218. package/dist/server/handlers/vector.d.ts +94 -10
  219. package/dist/server/handlers/vector.d.ts.map +1 -1
  220. package/dist/server/handlers/vector.js +1 -1
  221. package/dist/server/handlers/voice.cjs +21 -9
  222. package/dist/server/handlers/voice.d.ts +81 -38
  223. package/dist/server/handlers/voice.d.ts.map +1 -1
  224. package/dist/server/handlers/voice.js +1 -1
  225. package/dist/server/handlers/workflows.cjs +75 -31
  226. package/dist/server/handlers/workflows.d.ts +1000 -80
  227. package/dist/server/handlers/workflows.d.ts.map +1 -1
  228. package/dist/server/handlers/workflows.js +1 -1
  229. package/dist/server/handlers.cjs +36 -36
  230. package/dist/server/handlers.d.ts +12 -12
  231. package/dist/server/handlers.d.ts.map +1 -1
  232. package/dist/server/handlers.js +12 -12
  233. package/dist/server/http-exception.d.ts +0 -5
  234. package/dist/server/http-exception.d.ts.map +1 -1
  235. package/dist/server/schemas/a2a.d.ts +786 -0
  236. package/dist/server/schemas/a2a.d.ts.map +1 -0
  237. package/dist/server/schemas/agent-builder.d.ts +213 -0
  238. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  239. package/dist/server/schemas/agents.d.ts +1401 -0
  240. package/dist/server/schemas/agents.d.ts.map +1 -0
  241. package/dist/server/schemas/common.d.ts +179 -0
  242. package/dist/server/schemas/common.d.ts.map +1 -0
  243. package/dist/server/schemas/logs.d.ts +124 -0
  244. package/dist/server/schemas/logs.d.ts.map +1 -0
  245. package/dist/server/schemas/mcp.d.ts +299 -0
  246. package/dist/server/schemas/mcp.d.ts.map +1 -0
  247. package/dist/server/schemas/memory.d.ts +998 -0
  248. package/dist/server/schemas/memory.d.ts.map +1 -0
  249. package/dist/server/schemas/observability.d.ts +402 -0
  250. package/dist/server/schemas/observability.d.ts.map +1 -0
  251. package/dist/server/schemas/scores.d.ts +259 -0
  252. package/dist/server/schemas/scores.d.ts.map +1 -0
  253. package/dist/server/schemas/stored-agents.d.ts +792 -0
  254. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  255. package/dist/server/schemas/vectors.d.ts +107 -0
  256. package/dist/server/schemas/vectors.d.ts.map +1 -0
  257. package/dist/server/schemas/workflows.d.ts +668 -0
  258. package/dist/server/schemas/workflows.d.ts.map +1 -0
  259. package/dist/server/server-adapter/index.cjs +485 -0
  260. package/dist/server/server-adapter/index.cjs.map +1 -0
  261. package/dist/server/server-adapter/index.d.ts +91 -0
  262. package/dist/server/server-adapter/index.d.ts.map +1 -0
  263. package/dist/server/server-adapter/index.js +470 -0
  264. package/dist/server/server-adapter/index.js.map +1 -0
  265. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  266. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  267. package/dist/server/server-adapter/redact.d.ts +26 -0
  268. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  269. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  270. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  271. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  272. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  273. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  274. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  275. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  276. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  277. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  278. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  279. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  280. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  281. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  282. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  283. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  284. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  285. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  286. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  287. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  288. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  289. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  290. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  291. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  292. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  293. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  294. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  295. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  296. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  297. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  298. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  299. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  300. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  301. package/dist/server/utils.d.ts +45 -0
  302. package/dist/server/utils.d.ts.map +1 -0
  303. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs +63 -0
  304. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs.map +1 -0
  305. package/dist/token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js +61 -0
  306. package/dist/token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js.map +1 -0
  307. package/dist/token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs +63 -0
  308. package/dist/token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs.map +1 -0
  309. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js +61 -0
  310. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js.map +1 -0
  311. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs +10 -0
  312. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs.map +1 -0
  313. package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js +8 -0
  314. package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js.map +1 -0
  315. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js +8 -0
  316. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js.map +1 -0
  317. package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs +10 -0
  318. package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs.map +1 -0
  319. package/package.json +66 -17
  320. package/dist/chunk-2XIJW7SV.cjs +0 -310
  321. package/dist/chunk-2XIJW7SV.cjs.map +0 -1
  322. package/dist/chunk-4CEZIJWJ.cjs +0 -150
  323. package/dist/chunk-4CEZIJWJ.cjs.map +0 -1
  324. package/dist/chunk-4MQU6AJN.js +0 -83
  325. package/dist/chunk-4MQU6AJN.js.map +0 -1
  326. package/dist/chunk-4QSNRCOT.cjs +0 -20
  327. package/dist/chunk-4QSNRCOT.cjs.map +0 -1
  328. package/dist/chunk-4US5W7PH.cjs +0 -120
  329. package/dist/chunk-4US5W7PH.cjs.map +0 -1
  330. package/dist/chunk-7FHF55WA.js +0 -2041
  331. package/dist/chunk-7FHF55WA.js.map +0 -1
  332. package/dist/chunk-BED2O446.cjs +0 -88
  333. package/dist/chunk-BED2O446.cjs.map +0 -1
  334. package/dist/chunk-BUOJL3MN.js +0 -529
  335. package/dist/chunk-BUOJL3MN.js.map +0 -1
  336. package/dist/chunk-G7NVCO5M.js +0 -123
  337. package/dist/chunk-G7NVCO5M.js.map +0 -1
  338. package/dist/chunk-GASWM5HJ.cjs +0 -514
  339. package/dist/chunk-GASWM5HJ.cjs.map +0 -1
  340. package/dist/chunk-HWHKM67I.js +0 -114
  341. package/dist/chunk-HWHKM67I.js.map +0 -1
  342. package/dist/chunk-HXIOPAHT.js +0 -541
  343. package/dist/chunk-HXIOPAHT.js.map +0 -1
  344. package/dist/chunk-ILCWPBYQ.cjs +0 -147
  345. package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
  346. package/dist/chunk-JGVY3KWV.cjs +0 -334
  347. package/dist/chunk-JGVY3KWV.cjs.map +0 -1
  348. package/dist/chunk-LRUH33B4.cjs +0 -2044
  349. package/dist/chunk-LRUH33B4.cjs.map +0 -1
  350. package/dist/chunk-MMROOK5J.js.map +0 -1
  351. package/dist/chunk-NCS2OXX6.cjs +0 -131
  352. package/dist/chunk-NCS2OXX6.cjs.map +0 -1
  353. package/dist/chunk-O4I563YW.cjs +0 -130
  354. package/dist/chunk-O4I563YW.cjs.map +0 -1
  355. package/dist/chunk-OW4FX5TS.js +0 -18
  356. package/dist/chunk-OW4FX5TS.js.map +0 -1
  357. package/dist/chunk-PZ5AY32C.js +0 -9
  358. package/dist/chunk-Q7SFCCGT.cjs +0 -11
  359. package/dist/chunk-S37KCGOR.cjs +0 -546
  360. package/dist/chunk-S37KCGOR.cjs.map +0 -1
  361. package/dist/chunk-SQ7KKIH3.js +0 -143
  362. package/dist/chunk-SQ7KKIH3.js.map +0 -1
  363. package/dist/chunk-TRWPUPGD.js +0 -506
  364. package/dist/chunk-TRWPUPGD.js.map +0 -1
  365. package/dist/chunk-TXAQU2XN.js +0 -151
  366. package/dist/chunk-TXAQU2XN.js.map +0 -1
  367. package/dist/chunk-UVOSITKU.js +0 -322
  368. package/dist/chunk-UVOSITKU.js.map +0 -1
  369. package/dist/chunk-VIGPWTDA.cjs +0 -159
  370. package/dist/chunk-VIGPWTDA.cjs.map +0 -1
  371. package/dist/chunk-VOY6MGKA.js +0 -301
  372. package/dist/chunk-VOY6MGKA.js.map +0 -1
  373. package/dist/chunk-X5SDJOY6.cjs +0 -557
  374. package/dist/chunk-X5SDJOY6.cjs.map +0 -1
  375. package/dist/chunk-Y3J45CVZ.js +0 -144
  376. package/dist/chunk-Y3J45CVZ.js.map +0 -1
  377. package/dist/chunk-YS66MFDY.js +0 -124
  378. package/dist/chunk-YS66MFDY.js.map +0 -1
  379. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  380. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  381. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  382. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  383. package/dist/server/handlers/legacyWorkflows.js +0 -3
  384. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
  385. package/dist/server/handlers/network.cjs +0 -24
  386. package/dist/server/handlers/network.cjs.map +0 -1
  387. package/dist/server/handlers/network.d.ts +0 -50
  388. package/dist/server/handlers/network.d.ts.map +0 -1
  389. package/dist/server/handlers/network.js +0 -3
  390. package/dist/server/handlers/network.js.map +0 -1
  391. package/dist/server/handlers/telemetry.cjs +0 -16
  392. package/dist/server/handlers/telemetry.cjs.map +0 -1
  393. package/dist/server/handlers/telemetry.d.ts +0 -32
  394. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  395. package/dist/server/handlers/telemetry.js +0 -3
  396. package/dist/server/handlers/telemetry.js.map +0 -1
  397. package/dist/server/handlers/vNextNetwork.cjs +0 -220
  398. package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
  399. package/dist/server/handlers/vNextNetwork.d.ts +0 -179
  400. package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
  401. package/dist/server/handlers/vNextNetwork.js +0 -213
  402. package/dist/server/handlers/vNextNetwork.js.map +0 -1
@@ -0,0 +1,354 @@
1
+ import { paginationInfoSchema, createPagePaginationSchema } from './chunk-HT4LP3BO.js';
2
+ import { createRoute } from './chunk-SXVANU23.js';
3
+ import { handleError } from './chunk-UXGQZUYZ.js';
4
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
5
+ import { __export } from './chunk-PR4QN5HX.js';
6
+ import { scoreTraces } from '@mastra/core/evals/scoreTraces';
7
+ import z from 'zod';
8
+
9
+ // src/server/handlers/observability.ts
10
+ var observability_exports = {};
11
+ __export(observability_exports, {
12
+ GET_TRACES_PAGINATED_ROUTE: () => GET_TRACES_PAGINATED_ROUTE,
13
+ GET_TRACE_ROUTE: () => GET_TRACE_ROUTE,
14
+ LIST_SCORES_BY_SPAN_ROUTE: () => LIST_SCORES_BY_SPAN_ROUTE,
15
+ SCORE_TRACES_ROUTE: () => SCORE_TRACES_ROUTE,
16
+ getTraceHandler: () => getTraceHandler,
17
+ getTracesPaginatedHandler: () => getTracesPaginatedHandler,
18
+ listScoresBySpan: () => listScoresBySpan,
19
+ scoreTracesHandler: () => scoreTracesHandler
20
+ });
21
+ var aiSpanTypeSchema = z.enum([
22
+ "agent_run",
23
+ "generic",
24
+ "model_generation",
25
+ "model_step",
26
+ "model_chunk",
27
+ "mcp_tool_call",
28
+ "processor_run",
29
+ "tool_call",
30
+ "workflow_run",
31
+ "workflow_step",
32
+ "workflow_conditional",
33
+ "workflow_conditional_eval",
34
+ "workflow_parallel",
35
+ "workflow_loop",
36
+ "workflow_sleep",
37
+ "workflow_wait_event"
38
+ ]);
39
+ var aiSpanRecordSchema = z.object({
40
+ traceId: z.string(),
41
+ spanId: z.string(),
42
+ parentSpanId: z.string().nullable(),
43
+ name: z.string(),
44
+ scope: z.record(z.string(), z.any()).nullable(),
45
+ spanType: aiSpanTypeSchema,
46
+ attributes: z.record(z.string(), z.any()).nullable(),
47
+ metadata: z.record(z.string(), z.any()).nullable(),
48
+ links: z.any(),
49
+ startedAt: z.coerce.date(),
50
+ endedAt: z.coerce.date().nullable(),
51
+ createdAt: z.coerce.date(),
52
+ updatedAt: z.coerce.date().nullable(),
53
+ input: z.any(),
54
+ output: z.any(),
55
+ error: z.any(),
56
+ isEvent: z.boolean()
57
+ });
58
+ var getAITracesPaginatedResponseSchema = z.object({
59
+ pagination: paginationInfoSchema,
60
+ spans: z.array(aiSpanRecordSchema)
61
+ });
62
+ var traceIdPathParams = z.object({
63
+ traceId: z.string().describe("Unique identifier for the trace")
64
+ });
65
+ var traceSpanPathParams = traceIdPathParams.extend({
66
+ spanId: z.string().describe("Unique identifier for the span")
67
+ });
68
+ var scoreTracesBodySchema = z.object({
69
+ scorerName: z.string(),
70
+ targets: z.array(
71
+ z.object({
72
+ traceId: z.string(),
73
+ spanId: z.string().optional()
74
+ })
75
+ )
76
+ });
77
+ var getAITraceResponseSchema = z.object({
78
+ spans: z.array(aiSpanRecordSchema)
79
+ });
80
+ var scoreTracesResponseSchema = z.object({
81
+ status: z.string(),
82
+ message: z.string(),
83
+ traceCount: z.number()
84
+ });
85
+ var listScoresBySpanResponseSchema = z.object({
86
+ pagination: paginationInfoSchema,
87
+ scores: z.array(z.unknown())
88
+ });
89
+ var listScoresBySpanQuerySchema = createPagePaginationSchema(10);
90
+
91
+ // src/server/handlers/observability.ts
92
+ async function getTraceHandler({ mastra, traceId }) {
93
+ try {
94
+ if (!traceId) {
95
+ throw new HTTPException(400, { message: "Trace ID is required" });
96
+ }
97
+ const storage = mastra.getStorage();
98
+ if (!storage) {
99
+ throw new HTTPException(500, { message: "Storage is not available" });
100
+ }
101
+ const trace = await storage.getTrace(traceId);
102
+ if (!trace) {
103
+ throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
104
+ }
105
+ return trace;
106
+ } catch (error) {
107
+ handleError(error, "Error getting trace");
108
+ }
109
+ }
110
+ async function getTracesPaginatedHandler({ mastra, pagination, filters }) {
111
+ try {
112
+ const storage = mastra.getStorage();
113
+ if (!storage) {
114
+ throw new HTTPException(500, { message: "Storage is not available" });
115
+ }
116
+ if (pagination?.page && pagination.page < 0) {
117
+ throw new HTTPException(400, { message: "Page must be a non-negative integer" });
118
+ }
119
+ if (pagination?.perPage && pagination.perPage < 0) {
120
+ throw new HTTPException(400, { message: "Per page must be a non-negative integer" });
121
+ }
122
+ if (pagination?.dateRange) {
123
+ const { start, end } = pagination.dateRange;
124
+ if (start && !(start instanceof Date)) {
125
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
126
+ }
127
+ if (end && !(end instanceof Date)) {
128
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
129
+ }
130
+ }
131
+ return storage.getTracesPaginated({
132
+ pagination,
133
+ filters
134
+ });
135
+ } catch (error) {
136
+ handleError(error, "Error getting traces paginated");
137
+ }
138
+ }
139
+ async function scoreTracesHandler({ mastra, scorerName, targets }) {
140
+ try {
141
+ if (!scorerName) {
142
+ throw new HTTPException(400, { message: "Scorer ID is required" });
143
+ }
144
+ if (!targets || targets.length === 0) {
145
+ throw new HTTPException(400, { message: "At least one target is required" });
146
+ }
147
+ const storage = mastra.getStorage();
148
+ if (!storage) {
149
+ throw new HTTPException(500, { message: "Storage is not available" });
150
+ }
151
+ const scorer = mastra.getScorerById(scorerName);
152
+ if (!scorer) {
153
+ throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });
154
+ }
155
+ const logger = mastra.getLogger();
156
+ scoreTraces({
157
+ scorerId: scorer.config.id || scorer.config.name,
158
+ targets,
159
+ mastra
160
+ }).catch((error) => {
161
+ logger?.error(`Background trace scoring failed: ${error.message}`, error);
162
+ });
163
+ return {
164
+ status: "success",
165
+ message: `Scoring started for ${targets.length} ${targets.length === 1 ? "trace" : "traces"}`,
166
+ traceCount: targets.length
167
+ };
168
+ } catch (error) {
169
+ handleError(error, "Error processing trace scoring");
170
+ }
171
+ }
172
+ async function listScoresBySpan({
173
+ mastra,
174
+ traceId,
175
+ spanId,
176
+ page,
177
+ perPage
178
+ }) {
179
+ try {
180
+ const storage = mastra.getStorage();
181
+ if (!storage) {
182
+ throw new HTTPException(500, { message: "Storage is not available" });
183
+ }
184
+ if (!traceId || !spanId) {
185
+ throw new HTTPException(400, { message: "Trace ID and span ID are required" });
186
+ }
187
+ return await storage.listScoresBySpan({ traceId, spanId, pagination: { page, perPage } });
188
+ } catch (error) {
189
+ return handleError(error, "Error getting scores by span");
190
+ }
191
+ }
192
+ var GET_TRACES_PAGINATED_ROUTE = createRoute({
193
+ method: "GET",
194
+ path: "/api/observability/traces",
195
+ responseType: "json",
196
+ queryParamSchema: z.object({
197
+ page: z.coerce.number().optional().default(0),
198
+ perPage: z.coerce.number().optional().default(10),
199
+ name: z.string().optional(),
200
+ spanType: z.string().optional(),
201
+ dateRange: z.string().optional(),
202
+ entityId: z.string().optional(),
203
+ entityType: z.string().optional()
204
+ }),
205
+ responseSchema: getAITracesPaginatedResponseSchema,
206
+ summary: "Get AI traces",
207
+ description: "Returns a paginated list of AI execution traces with optional filtering by name, type, date range, and entity",
208
+ tags: ["Observability"],
209
+ handler: async ({ mastra, ...params }) => {
210
+ try {
211
+ const storage = mastra.getStorage();
212
+ if (!storage) {
213
+ throw new HTTPException(500, { message: "Storage is not available" });
214
+ }
215
+ const { page, perPage, name, spanType, dateRange, entityId, entityType } = params;
216
+ const rawDateRange = dateRange ? JSON.parse(dateRange) : void 0;
217
+ const pagination = {
218
+ page,
219
+ perPage,
220
+ dateRange: rawDateRange ? {
221
+ start: rawDateRange.start ? new Date(rawDateRange.start) : void 0,
222
+ end: rawDateRange.end ? new Date(rawDateRange.end) : void 0
223
+ } : void 0
224
+ };
225
+ const filters = Object.fromEntries(
226
+ Object.entries({ name, spanType, entityId, entityType }).filter(([_, v]) => v !== void 0)
227
+ );
228
+ if (pagination?.page && pagination.page < 0) {
229
+ throw new HTTPException(400, { message: "Page must be a non-negative integer" });
230
+ }
231
+ if (pagination?.perPage && pagination.perPage < 0) {
232
+ throw new HTTPException(400, { message: "Per page must be a non-negative integer" });
233
+ }
234
+ if (pagination?.dateRange) {
235
+ const { start, end } = pagination.dateRange;
236
+ if (start && !(start instanceof Date)) {
237
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
238
+ }
239
+ if (end && !(end instanceof Date)) {
240
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
241
+ }
242
+ }
243
+ return storage.getTracesPaginated({ pagination, filters });
244
+ } catch (error) {
245
+ handleError(error, "Error getting traces paginated");
246
+ }
247
+ }
248
+ });
249
+ var GET_TRACE_ROUTE = createRoute({
250
+ method: "GET",
251
+ path: "/api/observability/traces/:traceId",
252
+ responseType: "json",
253
+ pathParamSchema: traceIdPathParams,
254
+ responseSchema: getAITraceResponseSchema,
255
+ summary: "Get AI trace by ID",
256
+ description: "Returns a complete AI trace with all spans by trace ID",
257
+ tags: ["Observability"],
258
+ handler: async ({ mastra, traceId }) => {
259
+ try {
260
+ if (!traceId) {
261
+ throw new HTTPException(400, { message: "Trace ID is required" });
262
+ }
263
+ const storage = mastra.getStorage();
264
+ if (!storage) {
265
+ throw new HTTPException(500, { message: "Storage is not available" });
266
+ }
267
+ const trace = await storage.getTrace(traceId);
268
+ if (!trace) {
269
+ throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
270
+ }
271
+ return trace;
272
+ } catch (error) {
273
+ handleError(error, "Error getting trace");
274
+ }
275
+ }
276
+ });
277
+ var SCORE_TRACES_ROUTE = createRoute({
278
+ method: "POST",
279
+ path: "/api/observability/traces/score",
280
+ responseType: "json",
281
+ bodySchema: scoreTracesBodySchema,
282
+ responseSchema: scoreTracesResponseSchema,
283
+ summary: "Score traces",
284
+ description: "Scores one or more traces using a specified scorer (fire-and-forget)",
285
+ tags: ["Observability"],
286
+ handler: async ({ mastra, ...params }) => {
287
+ try {
288
+ const { scorerName, targets } = params;
289
+ if (!scorerName) {
290
+ throw new HTTPException(400, { message: "Scorer ID is required" });
291
+ }
292
+ if (!targets || targets.length === 0) {
293
+ throw new HTTPException(400, { message: "At least one target is required" });
294
+ }
295
+ const storage = mastra.getStorage();
296
+ if (!storage) {
297
+ throw new HTTPException(500, { message: "Storage is not available" });
298
+ }
299
+ const scorer = mastra.getScorerById(scorerName);
300
+ if (!scorer) {
301
+ throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });
302
+ }
303
+ const logger = mastra.getLogger();
304
+ scoreTraces({
305
+ scorerId: scorer.config.id || scorer.config.name,
306
+ targets,
307
+ mastra
308
+ }).catch((error) => {
309
+ logger?.error(`Background trace scoring failed: ${error.message}`, error);
310
+ });
311
+ return {
312
+ status: "success",
313
+ message: `Scoring started for ${targets.length} ${targets.length === 1 ? "trace" : "traces"}`,
314
+ traceCount: targets.length
315
+ };
316
+ } catch (error) {
317
+ handleError(error, "Error processing trace scoring");
318
+ }
319
+ }
320
+ });
321
+ var LIST_SCORES_BY_SPAN_ROUTE = createRoute({
322
+ method: "GET",
323
+ path: "/api/observability/traces/:traceId/:spanId/scores",
324
+ responseType: "json",
325
+ pathParamSchema: traceSpanPathParams,
326
+ queryParamSchema: listScoresBySpanQuerySchema,
327
+ responseSchema: listScoresBySpanResponseSchema,
328
+ summary: "List scores by span",
329
+ description: "Returns all scores for a specific span within a trace",
330
+ tags: ["Observability"],
331
+ handler: async ({ mastra, traceId, spanId, ...params }) => {
332
+ try {
333
+ const storage = mastra.getStorage();
334
+ if (!storage) {
335
+ throw new HTTPException(500, { message: "Storage is not available" });
336
+ }
337
+ if (!traceId || !spanId) {
338
+ throw new HTTPException(400, { message: "Trace ID and span ID are required" });
339
+ }
340
+ const { page, perPage } = params;
341
+ return await storage.listScoresBySpan({
342
+ traceId,
343
+ spanId,
344
+ pagination: { page: page ?? 0, perPage: perPage ?? 10 }
345
+ });
346
+ } catch (error) {
347
+ return handleError(error, "Error getting scores by span");
348
+ }
349
+ }
350
+ });
351
+
352
+ export { GET_TRACES_PAGINATED_ROUTE, GET_TRACE_ROUTE, LIST_SCORES_BY_SPAN_ROUTE, SCORE_TRACES_ROUTE, getTraceHandler, getTracesPaginatedHandler, listScoresBySpan, observability_exports, scoreTracesHandler };
353
+ //# sourceMappingURL=chunk-GFF2I6UD.js.map
354
+ //# sourceMappingURL=chunk-GFF2I6UD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/observability.ts","../src/server/schemas/observability.ts"],"names":["z"],"mappings":"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","file":"chunk-GFF2I6UD.js","sourcesContent":["import { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { TracesPaginatedArg, StoragePagination } from '@mastra/core/storage';\nimport z from 'zod';\nimport { HTTPException } from '../http-exception';\nimport {\n getAITracesPaginatedResponseSchema,\n getAITraceResponseSchema,\n scoreTracesBodySchema,\n scoreTracesResponseSchema,\n listScoresBySpanResponseSchema,\n traceIdPathParams,\n traceSpanPathParams,\n listScoresBySpanQuerySchema,\n} from '../schemas/observability';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { handleError } from './error';\n\ninterface ObservabilityContext extends Context {\n traceId?: string;\n pagination?: TracesPaginatedArg['pagination'];\n filters?: TracesPaginatedArg['filters'];\n}\n\ninterface ScoreTracesContext extends Context {\n // scorer.id\n scorerName?: string;\n targets?: Array<{\n traceId: string;\n spanId?: string;\n }>;\n}\n\n/**\n * Get a complete trace by trace ID\n * Returns all spans in the trace with their parent-child relationships\n */\nexport async function getTraceHandler({ mastra, traceId }: ObservabilityContext & { traceId: string }) {\n try {\n if (!traceId) {\n throw new HTTPException(400, { message: 'Trace ID is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const trace = await storage.getTrace(traceId);\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n handleError(error, 'Error getting trace');\n }\n}\n\n/**\n * Get paginated traces with filtering and pagination\n * Returns only root spans (parent spans) for pagination, not child spans\n */\nexport async function getTracesPaginatedHandler({ mastra, pagination, filters }: ObservabilityContext) {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (pagination?.page && pagination.page < 0) {\n throw new HTTPException(400, { message: 'Page must be a non-negative integer' });\n }\n\n if (pagination?.perPage && pagination.perPage < 0) {\n throw new HTTPException(400, { message: 'Per page must be a non-negative integer' });\n }\n\n if (pagination?.dateRange) {\n const { start, end } = pagination.dateRange;\n\n if (start && !(start instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n\n if (end && !(end instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n }\n\n return storage.getTracesPaginated({\n pagination,\n filters,\n });\n } catch (error) {\n handleError(error, 'Error getting traces paginated');\n }\n}\n\n/**\n * Score traces using a specified scorer\n * Fire-and-forget approach - returns immediately while scoring runs in background\n */\nexport async function scoreTracesHandler({ mastra, scorerName, targets }: ScoreTracesContext) {\n try {\n if (!scorerName) {\n throw new HTTPException(400, { message: 'Scorer ID is required' });\n }\n\n if (!targets || targets.length === 0) {\n throw new HTTPException(400, { message: 'At least one target is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n const logger = mastra.getLogger();\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n // Return immediate response\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n handleError(error, 'Error processing trace scoring');\n }\n}\n\nexport async function listScoresBySpan({\n mastra,\n traceId,\n spanId,\n page,\n perPage,\n}: Context & {\n traceId: string;\n spanId: string;\n page: StoragePagination['page'];\n perPage: StoragePagination['perPage'];\n}) {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (!traceId || !spanId) {\n throw new HTTPException(400, { message: 'Trace ID and span ID are required' });\n }\n\n return await storage.listScoresBySpan({ traceId, spanId, pagination: { page, perPage } });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_TRACES_PAGINATED_ROUTE = createRoute({\n method: 'GET',\n path: '/api/observability/traces',\n responseType: 'json',\n queryParamSchema: z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n name: z.string().optional(),\n spanType: z.string().optional(),\n dateRange: z.string().optional(),\n entityId: z.string().optional(),\n entityType: z.string().optional(),\n }),\n responseSchema: getAITracesPaginatedResponseSchema,\n summary: 'Get AI traces',\n description:\n 'Returns a paginated list of AI execution traces with optional filtering by name, type, date range, and entity',\n tags: ['Observability'],\n handler: async ({ mastra, ...params }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const { page, perPage, name, spanType, dateRange, entityId, entityType } = params;\n\n // Parse and convert dateRange to Date objects\n const rawDateRange = dateRange ? JSON.parse(dateRange) : undefined;\n const pagination = {\n page,\n perPage,\n dateRange: rawDateRange\n ? {\n start: rawDateRange.start ? new Date(rawDateRange.start) : undefined,\n end: rawDateRange.end ? new Date(rawDateRange.end) : undefined,\n }\n : undefined,\n };\n\n const filters = Object.fromEntries(\n Object.entries({ name, spanType, entityId, entityType }).filter(([_, v]) => v !== undefined),\n );\n\n if (pagination?.page && pagination.page < 0) {\n throw new HTTPException(400, { message: 'Page must be a non-negative integer' });\n }\n\n if (pagination?.perPage && pagination.perPage < 0) {\n throw new HTTPException(400, { message: 'Per page must be a non-negative integer' });\n }\n\n if (pagination?.dateRange) {\n const { start, end } = pagination.dateRange;\n\n if (start && !(start instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n\n if (end && !(end instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n }\n\n return storage.getTracesPaginated({ pagination, filters });\n } catch (error) {\n handleError(error, 'Error getting traces paginated');\n }\n },\n});\n\nexport const GET_TRACE_ROUTE = createRoute({\n method: 'GET',\n path: '/api/observability/traces/:traceId',\n responseType: 'json',\n pathParamSchema: traceIdPathParams,\n responseSchema: getAITraceResponseSchema,\n summary: 'Get AI trace by ID',\n description: 'Returns a complete AI trace with all spans by trace ID',\n tags: ['Observability'],\n handler: async ({ mastra, traceId }) => {\n try {\n if (!traceId) {\n throw new HTTPException(400, { message: 'Trace ID is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const trace = await storage.getTrace(traceId);\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n handleError(error, 'Error getting trace');\n }\n },\n});\n\nexport const SCORE_TRACES_ROUTE = createRoute({\n method: 'POST',\n path: '/api/observability/traces/score',\n responseType: 'json',\n bodySchema: scoreTracesBodySchema,\n responseSchema: scoreTracesResponseSchema,\n summary: 'Score traces',\n description: 'Scores one or more traces using a specified scorer (fire-and-forget)',\n tags: ['Observability'],\n handler: async ({ mastra, ...params }) => {\n try {\n const { scorerName, targets } = params;\n\n if (!scorerName) {\n throw new HTTPException(400, { message: 'Scorer ID is required' });\n }\n\n if (!targets || targets.length === 0) {\n throw new HTTPException(400, { message: 'At least one target is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n const logger = mastra.getLogger();\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n handleError(error, 'Error processing trace scoring');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SPAN_ROUTE = createRoute({\n method: 'GET',\n path: '/api/observability/traces/:traceId/:spanId/scores',\n responseType: 'json',\n pathParamSchema: traceSpanPathParams,\n queryParamSchema: listScoresBySpanQuerySchema,\n responseSchema: listScoresBySpanResponseSchema,\n summary: 'List scores by span',\n description: 'Returns all scores for a specific span within a trace',\n tags: ['Observability'],\n handler: async ({ mastra, traceId, spanId, ...params }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (!traceId || !spanId) {\n throw new HTTPException(400, { message: 'Trace ID and span ID are required' });\n }\n\n const { page, perPage } = params;\n return await storage.listScoresBySpan({\n traceId,\n spanId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n },\n});\n","import z from 'zod';\nimport { createPagePaginationSchema, paginationInfoSchema } from './common';\n\n/**\n * Schema for AI span types\n * Defines all possible span types in the observability system\n */\nexport const aiSpanTypeSchema = z.enum([\n 'agent_run',\n 'generic',\n 'model_generation',\n 'model_step',\n 'model_chunk',\n 'mcp_tool_call',\n 'processor_run',\n 'tool_call',\n 'workflow_run',\n 'workflow_step',\n 'workflow_conditional',\n 'workflow_conditional_eval',\n 'workflow_parallel',\n 'workflow_loop',\n 'workflow_sleep',\n 'workflow_wait_event',\n]);\n\n/**\n * Schema for AI span record\n * Represents a single trace span with all its metadata\n */\nexport const aiSpanRecordSchema = z.object({\n traceId: z.string(),\n spanId: z.string(),\n parentSpanId: z.string().nullable(),\n name: z.string(),\n scope: z.record(z.string(), z.any()).nullable(),\n spanType: aiSpanTypeSchema,\n attributes: z.record(z.string(), z.any()).nullable(),\n metadata: z.record(z.string(), z.any()).nullable(),\n links: z.any(),\n startedAt: z.coerce.date(),\n endedAt: z.coerce.date().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date().nullable(),\n input: z.any(),\n output: z.any(),\n error: z.any(),\n isEvent: z.boolean(),\n});\n\n/**\n * Schema for paginated AI traces response\n * Returns pagination info and array of trace spans\n */\nexport const getAITracesPaginatedResponseSchema = z.object({\n pagination: paginationInfoSchema,\n spans: z.array(aiSpanRecordSchema),\n});\n\n// Path parameter schemas\nexport const traceIdPathParams = z.object({\n traceId: z.string().describe('Unique identifier for the trace'),\n});\n\nexport const traceSpanPathParams = traceIdPathParams.extend({\n spanId: z.string().describe('Unique identifier for the span'),\n});\n\n// Body schema for scoring traces\nexport const scoreTracesBodySchema = z.object({\n scorerName: z.string(),\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n});\n\n// Response schemas\nexport const getAITraceResponseSchema = z.object({\n spans: z.array(aiSpanRecordSchema),\n});\n\nexport const scoreTracesResponseSchema = z.object({\n status: z.string(),\n message: z.string(),\n traceCount: z.number(),\n});\n\nexport const listScoresBySpanResponseSchema = z.object({\n pagination: paginationInfoSchema,\n scores: z.array(z.unknown()),\n});\n\n// Query schema for list scores by span\nexport const listScoresBySpanQuerySchema = createPagePaginationSchema(10);\n"]}