@mastra/server 1.82.0-alpha.3 → 1.83.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/_types/@internal_core@0.1.4/dist/storage/index.d.ts +24 -2
  2. package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-v6@0.0.94 → @internal_ai-v6@0.0.95}/dist/index.d.ts +96 -15
  3. package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/anthropic.d.ts +1 -1
  4. package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/deepseek.d.ts +1 -1
  5. package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/meta.d.ts +1 -1
  6. package/dist/_types/@mastra_schema-compat@1.3.17/dist/schema.types.d.ts +3 -3
  7. package/dist/{a2a-CoiG3TAj.js → a2a-DCpd3CTv.js} +4 -4
  8. package/dist/{a2a-CoiG3TAj.js.map → a2a-DCpd3CTv.js.map} +1 -1
  9. package/dist/{a2a-DvqRdny6.cjs → a2a-kz7NjjCg.cjs} +4 -4
  10. package/dist/{a2a-DvqRdny6.cjs.map → a2a-kz7NjjCg.cjs.map} +1 -1
  11. package/dist/{agent-builder-C_L1i2eE.js → agent-builder-CocfOSi8.js} +7 -7
  12. package/dist/{agent-builder-C_L1i2eE.js.map → agent-builder-CocfOSi8.js.map} +1 -1
  13. package/dist/{agent-builder-D0Up9Fw1.cjs → agent-builder-uDstZROq.cjs} +7 -7
  14. package/dist/{agent-builder-D0Up9Fw1.cjs.map → agent-builder-uDstZROq.cjs.map} +1 -1
  15. package/dist/{agents-CgcW6lHt.js → agents-BI8ez-FT.js} +7 -7
  16. package/dist/{agents-CgcW6lHt.js.map → agents-BI8ez-FT.js.map} +1 -1
  17. package/dist/{agents-DOHGWXDa.cjs → agents-DsfsDhIT.cjs} +7 -7
  18. package/dist/{agents-DOHGWXDa.cjs.map → agents-DsfsDhIT.cjs.map} +1 -1
  19. package/dist/{api-schema-manifest-Ci2qUYHc.js → api-schema-manifest-ChxbN16M.js} +3 -3
  20. package/dist/{api-schema-manifest-Ci2qUYHc.js.map → api-schema-manifest-ChxbN16M.js.map} +1 -1
  21. package/dist/{api-schema-manifest-DCHOlOuJ.cjs → api-schema-manifest-DtYTPvh9.cjs} +3 -3
  22. package/dist/{api-schema-manifest-DCHOlOuJ.cjs.map → api-schema-manifest-DtYTPvh9.cjs.map} +1 -1
  23. package/dist/{background-tasks-BHhn4YZA.js → background-tasks-BIuEr2of.js} +3 -3
  24. package/dist/{background-tasks-BHhn4YZA.js.map → background-tasks-BIuEr2of.js.map} +1 -1
  25. package/dist/{background-tasks-Ci2tlxJC.cjs → background-tasks-BXTIp0QV.cjs} +3 -3
  26. package/dist/{background-tasks-Ci2tlxJC.cjs.map → background-tasks-BXTIp0QV.cjs.map} +1 -1
  27. package/dist/{builder-registry-m_gHCe12.js → builder-registry-Dd7pbJ5A.js} +4 -4
  28. package/dist/{builder-registry-m_gHCe12.js.map → builder-registry-Dd7pbJ5A.js.map} +1 -1
  29. package/dist/{builder-registry-D1_hGKCJ.cjs → builder-registry-DrBUA6EZ.cjs} +4 -4
  30. package/dist/{builder-registry-D1_hGKCJ.cjs.map → builder-registry-DrBUA6EZ.cjs.map} +1 -1
  31. package/dist/{channels-hhQ3vD30.js → channels-B6hwVMbV.js} +4 -4
  32. package/dist/{channels-hhQ3vD30.js.map → channels-B6hwVMbV.js.map} +1 -1
  33. package/dist/{channels-Bfkp5vYI.cjs → channels-DbfSH5O2.cjs} +4 -4
  34. package/dist/{channels-Bfkp5vYI.cjs.map → channels-DbfSH5O2.cjs.map} +1 -1
  35. package/dist/{conversations-xS7yHuG1.js → conversations-BbZYXKIa.js} +5 -5
  36. package/dist/{conversations-xS7yHuG1.js.map → conversations-BbZYXKIa.js.map} +1 -1
  37. package/dist/{conversations-Ch_VuVwY.cjs → conversations-QuKJVEFe.cjs} +5 -5
  38. package/dist/{conversations-Ch_VuVwY.cjs.map → conversations-QuKJVEFe.cjs.map} +1 -1
  39. package/dist/{dist-BKNKucT9.cjs → dist-Ctfk9X6u.cjs} +208 -247
  40. package/dist/dist-Ctfk9X6u.cjs.map +1 -0
  41. package/dist/dist-DJjVMQiv.js +1 -0
  42. package/dist/{dist-CIYZuix4.js → dist-OKFDPspq.js} +208 -247
  43. package/dist/dist-OKFDPspq.js.map +1 -0
  44. package/dist/{dist-DgKeISkr.cjs → dist-ZYvqJK9p.cjs} +1 -1
  45. package/dist/docs/SKILL.md +3 -1
  46. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  47. package/dist/docs/references/docs-knowledge-overview.md +106 -0
  48. package/dist/docs/references/docs-server-custom-adapters.md +4 -0
  49. package/dist/docs/references/docs-studio-knowledge.md +45 -24
  50. package/dist/docs/references/reference-server-invoke-route.md +86 -0
  51. package/dist/docs/references/reference-server-routes.md +63 -0
  52. package/dist/{dynamic-workflows-DDauBnDt.js → dynamic-workflows-CyaZLmHX.js} +2 -2
  53. package/dist/{dynamic-workflows-DDauBnDt.js.map → dynamic-workflows-CyaZLmHX.js.map} +1 -1
  54. package/dist/{dynamic-workflows-CpCkqM1g.cjs → dynamic-workflows-ZmzWJXxG.cjs} +2 -2
  55. package/dist/{dynamic-workflows-CpCkqM1g.cjs.map → dynamic-workflows-ZmzWJXxG.cjs.map} +1 -1
  56. package/dist/{editor-builder-Ceen28s8.js → editor-builder-CbfX5bvL.js} +4 -4
  57. package/dist/{editor-builder-Ceen28s8.js.map → editor-builder-CbfX5bvL.js.map} +1 -1
  58. package/dist/{editor-builder-CKfy5eZY.cjs → editor-builder-CjJlqR9a.cjs} +4 -4
  59. package/dist/{editor-builder-CKfy5eZY.cjs.map → editor-builder-CjJlqR9a.cjs.map} +1 -1
  60. package/dist/{helpers-DNq3LtLq.js → helpers-B29a1nM3.js} +51 -48
  61. package/dist/helpers-B29a1nM3.js.map +1 -0
  62. package/dist/{helpers-BKtUXhz2.cjs → helpers-CylvUIZm.cjs} +56 -47
  63. package/dist/helpers-CylvUIZm.cjs.map +1 -0
  64. package/dist/{knowledge-Ba74qr0v.js → knowledge-Cd2cCq-Y.js} +4 -4
  65. package/dist/{knowledge-Ba74qr0v.js.map → knowledge-Cd2cCq-Y.js.map} +1 -1
  66. package/dist/{knowledge-urR7FFG8.cjs → knowledge-Q_SCnD9m.cjs} +4 -4
  67. package/dist/{knowledge-urR7FFG8.cjs.map → knowledge-Q_SCnD9m.cjs.map} +1 -1
  68. package/dist/{logs-B57_NKDn.js → logs-C5L6gRGr.js} +4 -4
  69. package/dist/{logs-B57_NKDn.js.map → logs-C5L6gRGr.js.map} +1 -1
  70. package/dist/{logs-BJN3M88A.cjs → logs-DWIbFIw6.cjs} +4 -4
  71. package/dist/{logs-BJN3M88A.cjs.map → logs-DWIbFIw6.cjs.map} +1 -1
  72. package/dist/{mcp-B9BILfJP.cjs → mcp-CKvOVfHn.cjs} +3 -3
  73. package/dist/{mcp-B9BILfJP.cjs.map → mcp-CKvOVfHn.cjs.map} +1 -1
  74. package/dist/{mcp-BkmWZD6M.js → mcp-CntC59iU.js} +3 -3
  75. package/dist/{mcp-BkmWZD6M.js.map → mcp-CntC59iU.js.map} +1 -1
  76. package/dist/{memory-Dqod_AK9.cjs → memory-DIos0BE-.cjs} +57 -15
  77. package/dist/{memory-Dqod_AK9.cjs.map → memory-DIos0BE-.cjs.map} +1 -1
  78. package/dist/{memory-ipOCmg0C.js → memory-JzgWJevA.js} +57 -15
  79. package/dist/{memory-ipOCmg0C.js.map → memory-JzgWJevA.js.map} +1 -1
  80. package/dist/{observability-DBtyAJnb.js → observability-BCTkIhJT.js} +3 -3
  81. package/dist/{observability-DBtyAJnb.js.map → observability-BCTkIhJT.js.map} +1 -1
  82. package/dist/{observability-BtdW6mjq.cjs → observability-mnHHbnoc.cjs} +3 -3
  83. package/dist/{observability-BtdW6mjq.cjs.map → observability-mnHHbnoc.cjs.map} +1 -1
  84. package/dist/{observability-new-endpoints-jjCgXuTF.cjs → observability-new-endpoints-B6fo20v5.cjs} +129 -955
  85. package/dist/observability-new-endpoints-B6fo20v5.cjs.map +1 -0
  86. package/dist/{observability-new-endpoints-Di7m_-xc.js → observability-new-endpoints-DHn8uKyr.js} +51 -877
  87. package/dist/observability-new-endpoints-DHn8uKyr.js.map +1 -0
  88. package/dist/observability-signal-context-BYOFtbM_.cjs +1317 -0
  89. package/dist/observability-signal-context-BYOFtbM_.cjs.map +1 -0
  90. package/dist/observability-signal-context-CL5-rCWM.js +952 -0
  91. package/dist/observability-signal-context-CL5-rCWM.js.map +1 -0
  92. package/dist/{plans-nHOnlGzr.js → plans-9hdkc-t8.js} +4 -4
  93. package/dist/{plans-nHOnlGzr.js.map → plans-9hdkc-t8.js.map} +1 -1
  94. package/dist/{plans-Djcp3C0d.cjs → plans-DMs8SVBG.cjs} +4 -4
  95. package/dist/{plans-Djcp3C0d.cjs.map → plans-DMs8SVBG.cjs.map} +1 -1
  96. package/dist/{probe-image-size-DGTRKrgq.js → probe-image-size-Cxm5QtwO.js} +2 -2
  97. package/dist/{probe-image-size-DGTRKrgq.js.map → probe-image-size-Cxm5QtwO.js.map} +1 -1
  98. package/dist/{probe-image-size-BAwk1h6w.cjs → probe-image-size-bDuzMW0E.cjs} +2 -2
  99. package/dist/{probe-image-size-BAwk1h6w.cjs.map → probe-image-size-bDuzMW0E.cjs.map} +1 -1
  100. package/dist/{responses-CEet9y8G.js → responses-B5_syoSo.js} +5 -5
  101. package/dist/{responses-CEet9y8G.js.map → responses-B5_syoSo.js.map} +1 -1
  102. package/dist/{responses-BdOStKtX.cjs → responses-CNKJoC5a.cjs} +5 -5
  103. package/dist/{responses-BdOStKtX.cjs.map → responses-CNKJoC5a.cjs.map} +1 -1
  104. package/dist/{route-builder-BxPrwNog.js → route-builder-BKEzjw_M.js} +2 -2
  105. package/dist/{route-builder-BxPrwNog.js.map → route-builder-BKEzjw_M.js.map} +1 -1
  106. package/dist/{route-builder-CvARmqnA.cjs → route-builder-DHqDrSSy.cjs} +2 -2
  107. package/dist/{route-builder-CvARmqnA.cjs.map → route-builder-DHqDrSSy.cjs.map} +1 -1
  108. package/dist/{routes-DU_FlwJP.cjs → routes-BYQ38dFx.cjs} +32 -32
  109. package/dist/{routes-DU_FlwJP.cjs.map → routes-BYQ38dFx.cjs.map} +1 -1
  110. package/dist/{routes-5FpkkzND.js → routes-C0pgNcG-.js} +32 -32
  111. package/dist/{routes-5FpkkzND.js.map → routes-C0pgNcG-.js.map} +1 -1
  112. package/dist/{schedules-D8ShgpY3.cjs → schedules-CvWX2yKR.cjs} +3 -3
  113. package/dist/{schedules-D8ShgpY3.cjs.map → schedules-CvWX2yKR.cjs.map} +1 -1
  114. package/dist/{schedules-CGViSLZC.js → schedules-D9CKB18-.js} +3 -3
  115. package/dist/{schedules-CGViSLZC.js.map → schedules-D9CKB18-.js.map} +1 -1
  116. package/dist/{schema-Bf12g7KC-DBc4NSds.js → schema-Bf12g7KC-5EUrrnSf.js} +96 -96
  117. package/dist/{schema-Bf12g7KC-DBc4NSds.js.map → schema-Bf12g7KC-5EUrrnSf.js.map} +1 -1
  118. package/dist/{schema-Bf12g7KC-plP4Ir6h.cjs → schema-Bf12g7KC-C5XzpQxe.cjs} +96 -96
  119. package/dist/{schema-Bf12g7KC-plP4Ir6h.cjs.map → schema-Bf12g7KC-C5XzpQxe.cjs.map} +1 -1
  120. package/dist/{scores-BaDFGpmr.js → scores-B3mS6vqB.js} +4 -4
  121. package/dist/{scores-BaDFGpmr.js.map → scores-B3mS6vqB.js.map} +1 -1
  122. package/dist/{scores-Bw6Tuga5.cjs → scores-Dxa8dDfV.cjs} +4 -4
  123. package/dist/{scores-Bw6Tuga5.cjs.map → scores-Dxa8dDfV.cjs.map} +1 -1
  124. package/dist/server/auth/helpers.d.ts +20 -0
  125. package/dist/server/auth/helpers.d.ts.map +1 -1
  126. package/dist/server/auth/index.cjs +2 -1
  127. package/dist/server/auth/index.js +2 -2
  128. package/dist/server/handlers/a2a.cjs +1 -1
  129. package/dist/server/handlers/a2a.js +1 -1
  130. package/dist/server/handlers/agent-builder.cjs +1 -1
  131. package/dist/server/handlers/agent-builder.js +1 -1
  132. package/dist/server/handlers/agent-controller.cjs +4 -4
  133. package/dist/server/handlers/agent-controller.js +4 -4
  134. package/dist/server/handlers/agent-versions.cjs +4 -4
  135. package/dist/server/handlers/agent-versions.js +4 -4
  136. package/dist/server/handlers/agents.cjs +1 -1
  137. package/dist/server/handlers/agents.js +1 -1
  138. package/dist/server/handlers/auth.cjs +4 -4
  139. package/dist/server/handlers/auth.js +4 -4
  140. package/dist/server/handlers/authorship.cjs +1 -1
  141. package/dist/server/handlers/authorship.js +1 -1
  142. package/dist/server/handlers/background-tasks.cjs +1 -1
  143. package/dist/server/handlers/background-tasks.js +1 -1
  144. package/dist/server/handlers/builder-registry.cjs +1 -1
  145. package/dist/server/handlers/builder-registry.js +1 -1
  146. package/dist/server/handlers/channels.cjs +1 -1
  147. package/dist/server/handlers/channels.js +1 -1
  148. package/dist/server/handlers/conversations.cjs +1 -1
  149. package/dist/server/handlers/conversations.js +1 -1
  150. package/dist/server/handlers/datasets.cjs +3 -3
  151. package/dist/server/handlers/datasets.js +3 -3
  152. package/dist/server/handlers/dynamic-workflows.cjs +1 -1
  153. package/dist/server/handlers/dynamic-workflows.js +1 -1
  154. package/dist/server/handlers/editor-builder.cjs +1 -1
  155. package/dist/server/handlers/editor-builder.js +1 -1
  156. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  157. package/dist/server/handlers/favorites-enrichment.js +1 -1
  158. package/dist/server/handlers/gateway-memory-client.cjs +4 -1
  159. package/dist/server/handlers/gateway-memory-client.cjs.map +1 -1
  160. package/dist/server/handlers/gateway-memory-client.d.ts.map +1 -1
  161. package/dist/server/handlers/gateway-memory-client.js +4 -1
  162. package/dist/server/handlers/gateway-memory-client.js.map +1 -1
  163. package/dist/server/handlers/knowledge.cjs +1 -1
  164. package/dist/server/handlers/knowledge.js +1 -1
  165. package/dist/server/handlers/logs.cjs +1 -1
  166. package/dist/server/handlers/logs.js +1 -1
  167. package/dist/server/handlers/mcp-client-versions.cjs +3 -3
  168. package/dist/server/handlers/mcp-client-versions.js +3 -3
  169. package/dist/server/handlers/mcp.cjs +1 -1
  170. package/dist/server/handlers/mcp.js +1 -1
  171. package/dist/server/handlers/memory.cjs +1 -1
  172. package/dist/server/handlers/memory.d.ts.map +1 -1
  173. package/dist/server/handlers/memory.js +1 -1
  174. package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
  175. package/dist/server/handlers/observability-new-endpoints.d.ts +84 -8
  176. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  177. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  178. package/dist/server/handlers/observability-shared.cjs +1 -1
  179. package/dist/server/handlers/observability-shared.js +1 -1
  180. package/dist/server/handlers/observability-signal-context.cjs +4 -0
  181. package/dist/server/handlers/observability-signal-context.d.ts +42 -0
  182. package/dist/server/handlers/observability-signal-context.d.ts.map +1 -0
  183. package/dist/server/handlers/observability-signal-context.js +1 -0
  184. package/dist/server/handlers/observability.cjs +2 -2
  185. package/dist/server/handlers/observability.js +2 -2
  186. package/dist/server/handlers/plans.cjs +1 -1
  187. package/dist/server/handlers/plans.js +1 -1
  188. package/dist/server/handlers/processor-providers.cjs +2 -2
  189. package/dist/server/handlers/processor-providers.js +2 -2
  190. package/dist/server/handlers/processors.cjs +2 -2
  191. package/dist/server/handlers/processors.js +2 -2
  192. package/dist/server/handlers/prompt-block-versions.cjs +3 -3
  193. package/dist/server/handlers/prompt-block-versions.js +3 -3
  194. package/dist/server/handlers/responses.cjs +1 -1
  195. package/dist/server/handlers/responses.js +1 -1
  196. package/dist/server/handlers/responses.storage.cjs +1 -1
  197. package/dist/server/handlers/responses.storage.js +1 -1
  198. package/dist/server/handlers/schedules.cjs +1 -1
  199. package/dist/server/handlers/schedules.js +1 -1
  200. package/dist/server/handlers/scorer-versions.cjs +3 -3
  201. package/dist/server/handlers/scorer-versions.js +3 -3
  202. package/dist/server/handlers/scores.cjs +1 -1
  203. package/dist/server/handlers/scores.js +1 -1
  204. package/dist/server/handlers/stored-agent-favorites.cjs +5 -5
  205. package/dist/server/handlers/stored-agent-favorites.js +5 -5
  206. package/dist/server/handlers/stored-agents.cjs +7 -7
  207. package/dist/server/handlers/stored-agents.js +7 -7
  208. package/dist/server/handlers/stored-mcp-clients.cjs +3 -3
  209. package/dist/server/handlers/stored-mcp-clients.js +3 -3
  210. package/dist/server/handlers/stored-prompt-blocks.cjs +3 -3
  211. package/dist/server/handlers/stored-prompt-blocks.js +3 -3
  212. package/dist/server/handlers/stored-scorers.cjs +3 -3
  213. package/dist/server/handlers/stored-scorers.js +3 -3
  214. package/dist/server/handlers/stored-skill-favorites.cjs +5 -5
  215. package/dist/server/handlers/stored-skill-favorites.js +5 -5
  216. package/dist/server/handlers/stored-skills.cjs +5 -5
  217. package/dist/server/handlers/stored-skills.js +5 -5
  218. package/dist/server/handlers/stored-workspaces.cjs +3 -3
  219. package/dist/server/handlers/stored-workspaces.js +3 -3
  220. package/dist/server/handlers/system.cjs +3 -3
  221. package/dist/server/handlers/system.js +3 -3
  222. package/dist/server/handlers/tool-providers.cjs +3 -3
  223. package/dist/server/handlers/tool-providers.js +3 -3
  224. package/dist/server/handlers/tools.cjs +1 -1
  225. package/dist/server/handlers/tools.js +1 -1
  226. package/dist/server/handlers/utils.cjs +1 -1
  227. package/dist/server/handlers/utils.js +1 -1
  228. package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
  229. package/dist/server/handlers/validate-agent-instructions.js +1 -1
  230. package/dist/server/handlers/vector.cjs +1 -1
  231. package/dist/server/handlers/vector.js +1 -1
  232. package/dist/server/handlers/workflow-builder.cjs +1 -1
  233. package/dist/server/handlers/workflow-builder.js +1 -1
  234. package/dist/server/handlers/workflows.cjs +1 -1
  235. package/dist/server/handlers/workflows.d.ts.map +1 -1
  236. package/dist/server/handlers/workflows.js +1 -1
  237. package/dist/server/handlers/workspace.cjs +1 -1
  238. package/dist/server/handlers/workspace.d.ts +23 -23
  239. package/dist/server/handlers/workspace.js +1 -1
  240. package/dist/server/handlers.cjs +16 -16
  241. package/dist/server/handlers.js +16 -16
  242. package/dist/server/schemas/agents.d.ts +1 -1
  243. package/dist/server/schemas/index.cjs +20 -20
  244. package/dist/server/schemas/index.js +20 -20
  245. package/dist/server/server-adapter/index.cjs +231 -61
  246. package/dist/server/server-adapter/index.cjs.map +1 -1
  247. package/dist/server/server-adapter/index.d.ts +67 -1
  248. package/dist/server/server-adapter/index.d.ts.map +1 -1
  249. package/dist/server/server-adapter/index.js +226 -63
  250. package/dist/server/server-adapter/index.js.map +1 -1
  251. package/dist/server/server-adapter/mcp-auth.d.ts +16 -1
  252. package/dist/server/server-adapter/mcp-auth.d.ts.map +1 -1
  253. package/dist/server/server-adapter/routes/observability.d.ts +42 -4
  254. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  255. package/dist/{tools-CI5oeJWT.cjs → tools-C9W7WvyI.cjs} +7 -7
  256. package/dist/{tools-CI5oeJWT.cjs.map → tools-C9W7WvyI.cjs.map} +1 -1
  257. package/dist/{tools-BAmCNGM5.js → tools-Ce7SFoT1.js} +7 -7
  258. package/dist/{tools-BAmCNGM5.js.map → tools-Ce7SFoT1.js.map} +1 -1
  259. package/dist/{utils-9PRHHTGC.cjs → utils-BXEJ6FZC.cjs} +2 -2
  260. package/dist/{utils-9PRHHTGC.cjs.map → utils-BXEJ6FZC.cjs.map} +1 -1
  261. package/dist/{utils-BhBJHsqX.cjs → utils-CL-m2SWZ.cjs} +3 -3
  262. package/dist/{utils-BhBJHsqX.cjs.map → utils-CL-m2SWZ.cjs.map} +1 -1
  263. package/dist/{utils-B15w-1hm.js → utils-CTYtskHa.js} +2 -2
  264. package/dist/{utils-B15w-1hm.js.map → utils-CTYtskHa.js.map} +1 -1
  265. package/dist/{utils-Dy_dQTlK.js → utils-y-cW3mQU.js} +3 -3
  266. package/dist/{utils-Dy_dQTlK.js.map → utils-y-cW3mQU.js.map} +1 -1
  267. package/dist/{vector-BZ1bKtwM.cjs → vector-6k7Ft7EX.cjs} +3 -3
  268. package/dist/{vector-BZ1bKtwM.cjs.map → vector-6k7Ft7EX.cjs.map} +1 -1
  269. package/dist/{vector-BAs5o6mH.js → vector-BWFSDXvg.js} +3 -3
  270. package/dist/{vector-BAs5o6mH.js.map → vector-BWFSDXvg.js.map} +1 -1
  271. package/dist/{workflow-builder-CaSfD6oL.js → workflow-builder-BNk301jl.js} +4 -4
  272. package/dist/{workflow-builder-CaSfD6oL.js.map → workflow-builder-BNk301jl.js.map} +1 -1
  273. package/dist/{workflow-builder-tr_D_ZDN.cjs → workflow-builder-CsOEskDo.cjs} +4 -4
  274. package/dist/{workflow-builder-tr_D_ZDN.cjs.map → workflow-builder-CsOEskDo.cjs.map} +1 -1
  275. package/dist/{workflows-BxXS5AfE.js → workflows-BAFGmHCW.js} +24 -13
  276. package/dist/workflows-BAFGmHCW.js.map +1 -0
  277. package/dist/{workflows-Cdi6w8JW.cjs → workflows-CJz5Eh0B.cjs} +76 -65
  278. package/dist/workflows-CJz5Eh0B.cjs.map +1 -0
  279. package/dist/{workspace-BU6sQpbV.cjs → workspace-C7PytFzz.cjs} +3 -3
  280. package/dist/{workspace-BU6sQpbV.cjs.map → workspace-C7PytFzz.cjs.map} +1 -1
  281. package/dist/{workspace-CS-GYTve.js → workspace-CYwDvH0G.js} +3 -3
  282. package/dist/{workspace-CS-GYTve.js.map → workspace-CYwDvH0G.js.map} +1 -1
  283. package/package.json +9 -9
  284. package/dist/dist-BKNKucT9.cjs.map +0 -1
  285. package/dist/dist-CIYZuix4.js.map +0 -1
  286. package/dist/dist-mNQb9_wX.js +0 -1
  287. package/dist/helpers-BKtUXhz2.cjs.map +0 -1
  288. package/dist/helpers-DNq3LtLq.js.map +0 -1
  289. package/dist/observability-new-endpoints-Di7m_-xc.js.map +0 -1
  290. package/dist/observability-new-endpoints-jjCgXuTF.cjs.map +0 -1
  291. package/dist/workflows-BxXS5AfE.js.map +0 -1
  292. package/dist/workflows-Cdi6w8JW.cjs.map +0 -1
  293. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/request-context/index.d.ts +0 -0
  294. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/routes/index.d.ts +0 -0
  295. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/types/index.d.ts +0 -0
  296. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/checks.d.ts +0 -0
  297. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/coerce.d.ts +0 -0
  298. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/compat.d.ts +0 -0
  299. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/deep-partial.d.ts +0 -0
  300. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/errors.d.ts +0 -0
  301. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/external.d.ts +0 -0
  302. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/from-json-schema.d.ts +0 -0
  303. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/in-out.d.ts +0 -0
  304. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/index.d.ts +0 -0
  305. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/iso.d.ts +0 -0
  306. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/parse.d.ts +0 -0
  307. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/schemas.d.ts +0 -0
  308. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/api.d.ts +0 -0
  309. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/checks.d.ts +0 -0
  310. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/compile.d.ts +0 -0
  311. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/core.d.ts +0 -0
  312. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/doc.d.ts +0 -0
  313. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/errors.d.ts +0 -0
  314. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/index.d.ts +0 -0
  315. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema-generator.d.ts +0 -0
  316. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema-processors.d.ts +0 -0
  317. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema.d.ts +0 -0
  318. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/memoizer.d.ts +0 -0
  319. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/parse.d.ts +0 -0
  320. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/regexes.d.ts +0 -0
  321. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/registries.d.ts +0 -0
  322. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/schemas.d.ts +0 -0
  323. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/standard-schema.d.ts +0 -0
  324. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/to-json-schema.d.ts +0 -0
  325. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/util.d.ts +0 -0
  326. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/versions.d.ts +0 -0
  327. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/index.d.cts +0 -0
  328. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ar.d.ts +0 -0
  329. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/az.d.ts +0 -0
  330. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/be.d.ts +0 -0
  331. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/bg.d.ts +0 -0
  332. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/bn.d.ts +0 -0
  333. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ca.d.ts +0 -0
  334. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ckb.d.ts +0 -0
  335. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/cs.d.ts +0 -0
  336. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/da.d.ts +0 -0
  337. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/de.d.ts +0 -0
  338. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/el.d.ts +0 -0
  339. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/en.d.ts +0 -0
  340. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/eo.d.ts +0 -0
  341. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/es.d.ts +0 -0
  342. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fa.d.ts +0 -0
  343. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fi.d.ts +0 -0
  344. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fr-CA.d.ts +0 -0
  345. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fr.d.ts +0 -0
  346. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/gu.d.ts +0 -0
  347. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/he.d.ts +0 -0
  348. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hi.d.ts +0 -0
  349. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hr.d.ts +0 -0
  350. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hu.d.ts +0 -0
  351. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hy.d.ts +0 -0
  352. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/id.d.ts +0 -0
  353. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/index.d.ts +0 -0
  354. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/is.d.ts +0 -0
  355. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/it.d.ts +0 -0
  356. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ja.d.ts +0 -0
  357. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ka.d.ts +0 -0
  358. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/kh.d.ts +0 -0
  359. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/km.d.ts +0 -0
  360. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/kn.d.ts +0 -0
  361. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ko.d.ts +0 -0
  362. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/lt.d.ts +0 -0
  363. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/mk.d.ts +0 -0
  364. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ms.d.ts +0 -0
  365. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ne.d.ts +0 -0
  366. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/nl.d.ts +0 -0
  367. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/nn.d.ts +0 -0
  368. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/no.d.ts +0 -0
  369. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ota.d.ts +0 -0
  370. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pl.d.ts +0 -0
  371. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ps.d.ts +0 -0
  372. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pt-BR.d.ts +0 -0
  373. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pt.d.ts +0 -0
  374. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ro.d.ts +0 -0
  375. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ru.d.ts +0 -0
  376. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sk.d.ts +0 -0
  377. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sl.d.ts +0 -0
  378. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sv.d.ts +0 -0
  379. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ta.d.ts +0 -0
  380. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tg.d.ts +0 -0
  381. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/th.d.ts +0 -0
  382. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tk.d.ts +0 -0
  383. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tr.d.ts +0 -0
  384. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ua.d.ts +0 -0
  385. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/uk.d.ts +0 -0
  386. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ur.d.ts +0 -0
  387. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/uz.d.ts +0 -0
  388. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/vi.d.ts +0 -0
  389. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/yo.d.ts +0 -0
  390. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/zh-CN.d.ts +0 -0
  391. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/zh-TW.d.ts +0 -0
  392. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/routes/index.d.ts +0 -0
  393. /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/package.json +0 -0
  394. /package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-sdk-v4@0.0.94 → @internal_ai-sdk-v4@0.0.95}/dist/index.d.ts +0 -0
  395. /package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-sdk-v5@0.0.94 → @internal_ai-sdk-v5@0.0.95}/dist/index.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-new-endpoints-DHn8uKyr.js","names":["storageListFeedbackResponseSchema","obsListScoresResponseSchema"],"sources":["../src/server/schemas/feedback.ts","../src/server/handlers/observability-new-endpoints.ts"],"sourcesContent":["import {\n feedbackRecordSchema,\n listFeedbackResponseSchema as storageListFeedbackResponseSchema,\n} from '@internal/core/storage';\nimport { z } from 'zod/v4';\n\nexport const listFeedbackResponseSchema = storageListFeedbackResponseSchema.extend({\n feedback: z.array(\n feedbackRecordSchema.extend({\n author: z\n .object({\n id: z.string(),\n name: z.string().optional(),\n email: z.string().optional(),\n avatarUrl: z.string().optional(),\n })\n .optional(),\n }),\n ),\n});\n","import {\n // Metrics list\n metricsFilterSchema,\n metricsOrderBySchema,\n listMetricsResponseSchema,\n // Logs\n logsFilterSchema,\n logsOrderBySchema,\n listLogsResponseSchema,\n // Scores (observability)\n scoresFilterSchema,\n scoresOrderBySchema,\n listScoresResponseSchema as obsListScoresResponseSchema,\n createScoreBodySchema,\n createScoreResponseSchema,\n deleteScoresArgsSchema,\n deleteScoresResponseSchema,\n scoreRecordSchema,\n getScoreAggregateArgsSchema,\n getScoreAggregateResponseSchema,\n getScoreBreakdownArgsSchema,\n getScoreBreakdownResponseSchema,\n getScoreTimeSeriesArgsSchema,\n getScoreTimeSeriesResponseSchema,\n getScorePercentilesArgsSchema,\n getScorePercentilesResponseSchema,\n // Feedback\n feedbackFilterSchema,\n feedbackOrderBySchema,\n feedbackRecordSchema,\n feedbackReviewStatusSchema,\n createFeedbackBodySchema,\n createFeedbackResponseSchema,\n deleteFeedbackArgsSchema,\n deleteFeedbackResponseSchema,\n getFeedbackAggregateArgsSchema,\n getFeedbackAggregateResponseSchema,\n getFeedbackBreakdownArgsSchema,\n getFeedbackBreakdownResponseSchema,\n getFeedbackTimeSeriesArgsSchema,\n getFeedbackTimeSeriesResponseSchema,\n getFeedbackPercentilesArgsSchema,\n getFeedbackPercentilesResponseSchema,\n // Metrics OLAP\n getMetricAggregateArgsSchema,\n getMetricAggregateResponseSchema,\n getMetricBreakdownArgsSchema,\n getMetricBreakdownResponseSchema,\n getMetricTimeSeriesArgsSchema,\n getMetricTimeSeriesResponseSchema,\n getMetricPercentilesArgsSchema,\n getMetricPercentilesResponseSchema,\n // Discovery\n getMetricNamesArgsSchema,\n getMetricNamesResponseSchema,\n getMetricLabelKeysArgsSchema,\n getMetricLabelKeysResponseSchema,\n getMetricLabelValuesArgsSchema,\n getMetricLabelValuesResponseSchema,\n getEntityTypesResponseSchema,\n getEntityNamesArgsSchema,\n getEntityNamesResponseSchema,\n getServiceNamesResponseSchema,\n getEnvironmentsResponseSchema,\n getTagsArgsSchema,\n getTagsResponseSchema,\n} from '@internal/core/storage';\nimport { coreFeatures } from '@mastra/core/features';\nimport { generateSignalId } from '@mastra/core/observability';\nimport type { ValidationErrorHook } from '@mastra/core/server';\nimport * as coreStorage from '@mastra/core/storage';\nimport { z } from 'zod/v4';\nimport {\n MASTRA_AUTH_MODE_KEY,\n MASTRA_RESOURCE_ID_KEY,\n MASTRA_USER_ROLES_KEY,\n MASTRA_USER_KEY,\n MASTRA_CLIENT_TYPE_HEADER,\n isStudioClientTypeHeader,\n} from '../constants';\nimport { HTTPException } from '../http-exception';\nimport { listFeedbackResponseSchema } from '../schemas/feedback';\nimport { observabilityStorageCapabilitiesSchema } from '../schemas/system';\nimport type { InferParams, ServerContext, ServerRouteHandler } from '../server-adapter/routes';\nimport { createRoute, pickParams, wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport { prepareAuthorEnrichment } from './author-enrichment';\nimport { getCallerPermissions } from './authorship';\nimport { handleError } from './error';\nimport { paginationArgsSchema } from './observability-list-query-schemas';\nimport {\n assertObservabilityDeltaSupported,\n assertObservabilitySpanQuerySupported,\n assertObservabilitySpanQueryFieldsSupported,\n assertObservabilitySpanAggregateModelDimensionsSupported,\n assertObservabilityAggregateTimeToFirstMeasuresSupported,\n filterObservabilityAggregateMeasureDescriptors,\n assertObservabilitySpanQueryModelFieldsSupported,\n assertObservabilitySpanQueryOutcomeFieldsSupported,\n assertObservabilityTraceQueryOutcomeFieldsSupported,\n assertObservabilityThreadQuerySupported,\n assertObservabilityTraceAggregateSupported,\n assertObservabilitySpanAggregateSupported,\n assertObservabilityTraceQueryTenantScopeSupported,\n OBSERVABILITY_TRACE_QUERY_TENANT_SCOPE_CORE_FEATURE,\n OBSERVABILITY_TRACE_QUERY_TENANT_SCOPE_UPGRADE_MESSAGE,\n assertObservabilityTraceQueryDiscoverySupported,\n assertObservabilityTraceQueryContextFieldsSupported,\n assertObservabilityTraceQueryRootDurationSupported,\n assertObservabilityTraceQueryTimeToFirstChunkSupported,\n assertObservabilityTraceQueryTimeToFirstChunkSortSupported,\n assertObservabilityTraceQueryTimeToFirstTokenSupported,\n assertObservabilityTraceQueryTimeToFirstTokenSortSupported,\n assertObservabilityTraceQueryRootSpanFieldsSupported,\n assertObservabilityTraceQueryRootSpanValuesSupported,\n supportsObservabilityTraceQueryRootSpanField,\n isObservabilityOutcomeField,\n supportsObservabilityTraceQueryOutcomeFields,\n assertObservabilityTraceQuerySupported,\n createObservabilityListQuerySchema,\n getObservabilityStorageCapabilities,\n getObservabilityStore,\n NEW_ROUTE_DEFS,\n NO_OBSERVABILITY_STORAGE_CAPABILITIES,\n OBSERVABILITY_LIST_ENDPOINTS,\n supportsObservabilityTraceQueryContextField,\n supportsObservabilityTraceQueryRootDuration,\n supportsObservabilityTraceQueryTimeToFirstChunk,\n supportsObservabilityTraceQueryTimeToFirstToken,\n supportsObservabilityTraceAggregate,\n supportsSpanQueryCore,\n supportsTraceAggregateCore,\n supportsSpanAggregateCore,\n supportsTraceQueryDiscoveryCore,\n withDiscoveryFallback,\n} from './observability-shared';\nimport type { RouteDetails } from './observability-shared';\nimport { resolveSignalContext } from './observability-signal-context';\n\nfunction createNewRoute<\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>(\n def: RouteDetails,\n config: {\n pathParamSchema?: TPathSchema;\n queryParamSchema?: TQuerySchema;\n bodySchema?: TBodySchema;\n responseSchema?: TResponseSchema;\n onValidationError?: ValidationErrorHook;\n maxBodySize?: number;\n preserveHttpExceptions?: boolean;\n isCoreSupported?: () => boolean;\n onUnsupportedCore?: () => never;\n handler: ServerRouteHandler<InferParams<TPathSchema, TQuerySchema, TBodySchema>>;\n },\n) {\n const { handler, preserveHttpExceptions, isCoreSupported, onUnsupportedCore, ...schemas } = config;\n return createRoute({\n ...def,\n ...schemas,\n responseType: 'json' as const,\n tags: ['Observability'],\n requiresAuth: true,\n handler: (async (params: InferParams<TPathSchema, TQuerySchema, TBodySchema> & ServerContext) => {\n try {\n if (!coreFeatures.has('observability:v1.13.2') || (isCoreSupported && !isCoreSupported())) {\n if (onUnsupportedCore) onUnsupportedCore();\n throw new HTTPException(501, {\n message: 'New observability endpoints require @mastra/core >= 1.13.2, please upgrade.',\n });\n }\n\n return await handler(params);\n } catch (error) {\n if (preserveHttpExceptions && error instanceof HTTPException) throw error;\n return handleError(error, `Error calling: '${def.summary.toLocaleLowerCase()}'`);\n }\n }) as ServerRouteHandler<\n InferParams<TPathSchema, TQuerySchema, TBodySchema>,\n TResponseSchema extends z.ZodTypeAny ? z.infer<TResponseSchema> : unknown,\n 'json'\n >,\n });\n}\n\n// ============================================================================\n// Trace query route\n// ============================================================================\n\nconst traceQueryMalformedBodyErrorSchema = z\n .object({\n error: z.literal('Invalid request body'),\n issues: z.array(z.object({ field: z.literal('body'), message: z.string() }).strict()),\n })\n .strict();\n\nconst traceQueryBodyTooLargeErrorSchema = z\n .object({\n error: z.literal('Request body too large'),\n })\n .strict();\n\nconst traceQueryMalformedCursorErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_CURSOR_MALFORMED'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryCursorConflictErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_CURSOR_CONFLICT'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryValidationIssueSchema = z\n .object({\n code: z.string(),\n path: z.array(z.union([z.string(), z.number()])),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryValidationResponseSchema = z\n .object({\n code: z.literal('TRACE_QUERY_INVALID'),\n message: z.string(),\n issues: z.array(traceQueryValidationIssueSchema),\n })\n .strict();\n\nconst traceQueryUnsupportedErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_UNSUPPORTED'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryTimeoutErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_EXECUTION_TIMEOUT'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryResourceLimitErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_RESOURCE_LIMIT'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryDiscoveryUnsupportedErrorSchema = z\n .object({\n code: z.literal('TRACE_QUERY_DISCOVERY_UNSUPPORTED'),\n message: z.string(),\n })\n .strict();\n\nconst traceQueryValidationError: ValidationErrorHook = error => ({\n status: 422,\n body: {\n code: 'TRACE_QUERY_INVALID',\n message: 'The trace query is invalid',\n issues: error.issues.map(issue => ({\n code: 'invalid_request',\n path: issue.path.map(part => (typeof part === 'symbol' ? String(part) : part)),\n message: issue.message,\n })),\n },\n});\n\nfunction throwTraceQueryError(status: 400 | 409 | 413 | 422 | 501 | 503 | 504, body: Record<string, unknown>): never {\n const message = typeof body.message === 'string' ? body.message : 'Trace query failed';\n throw new HTTPException(status, {\n message,\n res: new Response(JSON.stringify(body), {\n status,\n headers: { 'content-type': 'application/json' },\n }),\n });\n}\n\nconst throwTraceQueryDiscoveryCoreUnsupported = () =>\n throwTraceQueryError(501, {\n code: 'TRACE_QUERY_DISCOVERY_UNSUPPORTED',\n message: 'Trace query discovery requires a newer @mastra/core. Please upgrade.',\n });\n\n/**\n * Trusted tenant scope for trace queries. `organizationId` is a reserved request-context\n * key that only server-side auth may establish (see `isReservedRequestContextKey`), so a\n * caller can't widen it through the request body. Absent key means self-hosted: no scope.\n */\nfunction resolveTraceQueryScope(\n requestContext: { get(key: string): unknown },\n unsupportedCode:\n | 'TRACE_QUERY_UNSUPPORTED'\n | 'TRACE_QUERY_DISCOVERY_UNSUPPORTED'\n | 'TRACE_AGGREGATE_UNSUPPORTED'\n | 'SPAN_QUERY_UNSUPPORTED'\n | 'SPAN_AGGREGATE_UNSUPPORTED' = 'TRACE_QUERY_UNSUPPORTED',\n): coreStorage.TraceQueryTenantScope | undefined {\n const organizationId = requestContext.get('organizationId');\n if (typeof organizationId !== 'string' || organizationId.length === 0) return undefined;\n // An older @mastra/core ignores the scope option; a scoped request must not run unscoped.\n // Each route reports its own declared 501 code so the body matches its OpenAPI schema.\n if (!coreFeatures.has(OBSERVABILITY_TRACE_QUERY_TENANT_SCOPE_CORE_FEATURE)) {\n throwTraceQueryError(501, {\n code: unsupportedCode,\n message: OBSERVABILITY_TRACE_QUERY_TENANT_SCOPE_UPGRADE_MESSAGE,\n });\n }\n return { organizationId };\n}\n\nexport const QUERY_TRACES = createNewRoute(NEW_ROUTE_DEFS.QUERY_TRACES, {\n bodySchema: coreStorage.traceQueryRequestSchema,\n responseSchema: coreStorage.traceQueryResponseSchema,\n onValidationError: traceQueryValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n handler: async ({\n mastra,\n requestContext,\n timeRange,\n where,\n group,\n orderBy,\n page,\n pagination,\n mode,\n after,\n limit,\n }) => {\n let plan;\n try {\n const user = requestContext.get(MASTRA_USER_KEY);\n const userId = user && typeof user === 'object' && 'id' in user ? user.id : undefined;\n const roles = requestContext.get(MASTRA_USER_ROLES_KEY);\n const authorizationBinding =\n mode === 'delta' || pagination !== undefined\n ? JSON.stringify({\n userId: typeof userId === 'string' || typeof userId === 'number' ? userId : null,\n resourceId: requestContext.get(MASTRA_RESOURCE_ID_KEY) ?? null,\n organizationId: requestContext.get('organizationId') ?? null,\n authMode: requestContext.get(MASTRA_AUTH_MODE_KEY) ?? null,\n permissions: [...new Set(getCallerPermissions(requestContext))].sort(),\n roles: Array.isArray(roles)\n ? [...new Set(roles.filter((role): role is string => typeof role === 'string'))].sort()\n : [],\n })\n : undefined;\n plan = coreStorage.planTraceQuery(\n { timeRange, where, group, orderBy, page, pagination, mode, after, limit },\n { authorizationBinding, scope: resolveTraceQueryScope(requestContext) },\n );\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof coreStorage.TraceQueryCursorError) {\n throwTraceQueryError(error.code === 'TRACE_QUERY_CURSOR_CONFLICT' ? 409 : 400, {\n code: error.code,\n message: error.message,\n });\n }\n throw error;\n }\n\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilityTraceQuerySupported(observabilityStore);\n assertObservabilityTraceQueryRootDurationSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryContextFieldsSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstChunkSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryRootSpanFieldsSupported(observabilityStore, plan);\n assertObservabilityTraceQueryOutcomeFieldsSupported(observabilityStore, plan);\n assertObservabilityTraceQueryTimeToFirstChunkSortSupported(observabilityStore, plan.orderBy);\n assertObservabilityTraceQueryTimeToFirstTokenSortSupported(observabilityStore, plan.orderBy);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n if (plan.paginationMode === 'delta' && !observabilityStore.getFeatures()?.includes('delta-polling')) {\n throw new HTTPException(501, { message: 'This storage provider does not support observability delta polling' });\n }\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'TRACE_QUERY_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.queryTraces(plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryCursorError) {\n throwTraceQueryError(error.code === 'TRACE_QUERY_CURSOR_CONFLICT' ? 409 : 400, {\n code: error.code,\n message: error.message,\n });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nif (QUERY_TRACES.openapi) {\n QUERY_TRACES.openapi.responses[400] = {\n description: 'Malformed JSON or malformed cursor',\n content: {\n 'application/json': {\n schema: z.union([traceQueryMalformedBodyErrorSchema, traceQueryMalformedCursorErrorSchema]),\n },\n },\n };\n QUERY_TRACES.openapi.responses[409] = {\n description: 'Cursor does not match the normalized query',\n content: { 'application/json': { schema: traceQueryCursorConflictErrorSchema } },\n };\n QUERY_TRACES.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n QUERY_TRACES.openapi.responses[422] = {\n description: 'Structurally or semantically invalid trace query',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n QUERY_TRACES.openapi.responses[501] = {\n description: 'The configured observability store does not support trace queries',\n content: { 'application/json': { schema: traceQueryUnsupportedErrorSchema } },\n };\n QUERY_TRACES.openapi.responses[504] = {\n description: 'Trace query exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\n// ============================================================================\n// Trace aggregate route\n// ============================================================================\n\nconst traceAggregateUnsupportedErrorSchema = z\n .object({\n code: z.literal('TRACE_AGGREGATE_UNSUPPORTED'),\n message: z.string(),\n })\n .strict();\n\n/** Never echoes caller input: only the predicate-complexity issue keeps its own fixed message. */\nconst traceAggregateValidationError: ValidationErrorHook = error => ({\n status: 422,\n body: {\n code: 'TRACE_QUERY_INVALID',\n message: 'The trace aggregate query is invalid',\n issues: error.issues.map(issue => {\n const predicateTooComplex =\n issue.code === 'custom' && issue.message === coreStorage.TRACE_QUERY_PREDICATE_COMPLEXITY_MESSAGE;\n return {\n code: predicateTooComplex ? 'predicate_too_complex' : 'invalid_request',\n path: issue.path.map(part => (typeof part === 'symbol' ? String(part) : part)),\n message: predicateTooComplex\n ? coreStorage.TRACE_QUERY_PREDICATE_COMPLEXITY_MESSAGE\n : 'The value does not match the trace-aggregate request contract',\n };\n }),\n },\n});\n\nexport const AGGREGATE_TRACES = createNewRoute(NEW_ROUTE_DEFS.AGGREGATE_TRACES, {\n bodySchema: coreStorage.traceAggregateRequestSchema,\n responseSchema: coreStorage.traceAggregateResponseSchema,\n onValidationError: traceAggregateValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n isCoreSupported: supportsTraceAggregateCore,\n onUnsupportedCore: () =>\n throwTraceQueryError(501, {\n code: 'TRACE_AGGREGATE_UNSUPPORTED',\n message: 'Trace aggregation requires a newer @mastra/core. Please upgrade.',\n }),\n handler: async ({\n mastra,\n requestContext,\n timeRange,\n where,\n groupBy,\n interval,\n measures,\n having,\n orderBy,\n limit,\n }) => {\n let plan;\n try {\n plan = coreStorage.planTraceAggregate(\n { timeRange, where, groupBy, interval, measures, having, orderBy, limit },\n { scope: resolveTraceQueryScope(requestContext, 'TRACE_AGGREGATE_UNSUPPORTED') },\n );\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n throw error;\n }\n\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilityTraceAggregateSupported(observabilityStore);\n assertObservabilityTraceQueryRootDurationSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryContextFieldsSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstChunkSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryRootSpanFieldsSupported(observabilityStore, plan);\n assertObservabilityTraceQueryOutcomeFieldsSupported(observabilityStore, plan);\n assertObservabilityAggregateTimeToFirstMeasuresSupported(observabilityStore, plan);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'TRACE_AGGREGATE_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.aggregateTraces(plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryResourceLimitError) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nif (AGGREGATE_TRACES.openapi) {\n AGGREGATE_TRACES.openapi.responses[400] = {\n description: 'Malformed JSON',\n content: { 'application/json': { schema: traceQueryMalformedBodyErrorSchema } },\n };\n AGGREGATE_TRACES.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n AGGREGATE_TRACES.openapi.responses[422] = {\n description: 'Structurally or semantically invalid trace aggregate query',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n AGGREGATE_TRACES.openapi.responses[501] = {\n description: 'The configured observability store does not support trace aggregation',\n content: { 'application/json': { schema: traceAggregateUnsupportedErrorSchema } },\n };\n AGGREGATE_TRACES.openapi.responses[503] = {\n description: 'Trace aggregate query exceeded a bounded execution resource limit',\n content: { 'application/json': { schema: traceQueryResourceLimitErrorSchema } },\n };\n AGGREGATE_TRACES.openapi.responses[504] = {\n description: 'Trace aggregate query exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\n// ============================================================================\n// Span aggregate route\n// ============================================================================\n\nconst spanAggregateUnsupportedErrorSchema = z\n .object({\n code: z.literal('SPAN_AGGREGATE_UNSUPPORTED'),\n message: z.string(),\n })\n .strict();\n\n/** Never echoes caller input: only the predicate-complexity issue keeps its own fixed message. */\nconst spanAggregateValidationError: ValidationErrorHook = error => ({\n status: 422,\n body: {\n code: 'TRACE_QUERY_INVALID',\n message: 'The span aggregate query is invalid',\n issues: error.issues.map(issue => {\n const predicateTooComplex =\n issue.code === 'custom' && issue.message === coreStorage.TRACE_QUERY_PREDICATE_COMPLEXITY_MESSAGE;\n return {\n code: predicateTooComplex ? 'predicate_too_complex' : 'invalid_request',\n path: issue.path.map(part => (typeof part === 'symbol' ? String(part) : part)),\n message: predicateTooComplex\n ? coreStorage.TRACE_QUERY_PREDICATE_COMPLEXITY_MESSAGE\n : 'The value does not match the span-aggregate request contract',\n };\n }),\n },\n});\n\nexport const AGGREGATE_SPANS = createNewRoute(NEW_ROUTE_DEFS.AGGREGATE_SPANS, {\n bodySchema: coreStorage.spanAggregateRequestSchema,\n responseSchema: coreStorage.spanAggregateResponseSchema,\n onValidationError: spanAggregateValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n isCoreSupported: supportsSpanAggregateCore,\n onUnsupportedCore: () =>\n throwTraceQueryError(501, {\n code: 'SPAN_AGGREGATE_UNSUPPORTED',\n message: 'Span aggregation requires a newer @mastra/core. Please upgrade.',\n }),\n handler: async ({\n mastra,\n requestContext,\n timeRange,\n where,\n groupBy,\n interval,\n measures,\n having,\n orderBy,\n limit,\n }) => {\n let plan;\n try {\n plan = coreStorage.planSpanAggregate(\n { timeRange, where, groupBy, interval, measures, having, orderBy, limit },\n { scope: resolveTraceQueryScope(requestContext, 'SPAN_AGGREGATE_UNSUPPORTED') },\n );\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n throw error;\n }\n\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n // `span-aggregate` covers every span query field that shipped before it, time to first\n // chunk included, so only time to first token and model/provider (as predicates, and as\n // dimensions or countDistinct fields) need a gate.\n assertObservabilitySpanAggregateSupported(observabilityStore);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n assertObservabilitySpanQueryModelFieldsSupported(observabilityStore, plan.where);\n assertObservabilitySpanAggregateModelDimensionsSupported(observabilityStore, plan);\n assertObservabilitySpanQueryOutcomeFieldsSupported(observabilityStore, plan);\n assertObservabilityAggregateTimeToFirstMeasuresSupported(observabilityStore, plan);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n } catch (error) {\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'SPAN_AGGREGATE_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.aggregateSpans(plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryResourceLimitError) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nif (AGGREGATE_SPANS.openapi) {\n AGGREGATE_SPANS.openapi.responses[400] = {\n description: 'Malformed JSON',\n content: { 'application/json': { schema: traceQueryMalformedBodyErrorSchema } },\n };\n AGGREGATE_SPANS.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n AGGREGATE_SPANS.openapi.responses[422] = {\n description: 'Structurally or semantically invalid span aggregate query',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n AGGREGATE_SPANS.openapi.responses[501] = {\n description: 'The configured observability store does not support span aggregation',\n content: { 'application/json': { schema: spanAggregateUnsupportedErrorSchema } },\n };\n AGGREGATE_SPANS.openapi.responses[503] = {\n description: 'Span aggregate query exceeded a bounded execution resource limit',\n content: { 'application/json': { schema: traceQueryResourceLimitErrorSchema } },\n };\n AGGREGATE_SPANS.openapi.responses[504] = {\n description: 'Span aggregate query exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\n// ============================================================================\n// Span query route\n// ============================================================================\n\nconst spanQueryUnsupportedErrorSchema = z\n .object({\n code: z.literal('SPAN_QUERY_UNSUPPORTED'),\n message: z.string(),\n })\n .strict();\n\nconst spanQueryValidationError: ValidationErrorHook = error => ({\n status: 422,\n body: {\n code: 'TRACE_QUERY_INVALID',\n message: 'The span query is invalid',\n issues: error.issues.map(issue => ({\n code: 'invalid_request',\n path: issue.path.map(part => (typeof part === 'symbol' ? String(part) : part)),\n message: issue.message,\n })),\n },\n});\n\nexport const QUERY_SPANS = createNewRoute(NEW_ROUTE_DEFS.QUERY_SPANS, {\n bodySchema: coreStorage.spanQueryRequestSchema,\n responseSchema: coreStorage.spanQueryResponseSchema,\n onValidationError: spanQueryValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n isCoreSupported: supportsSpanQueryCore,\n onUnsupportedCore: () =>\n throwTraceQueryError(501, {\n code: 'SPAN_QUERY_UNSUPPORTED',\n message: 'Span queries require a newer @mastra/core. Please upgrade.',\n }),\n handler: async ({ mastra, requestContext, timeRange, where, orderBy, page }) => {\n let plan;\n try {\n plan = coreStorage.planSpanQuery(\n { timeRange, where, orderBy, page },\n { scope: resolveTraceQueryScope(requestContext, 'SPAN_QUERY_UNSUPPORTED') },\n );\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: 'The span query is invalid', issues: error.issues });\n }\n if (error instanceof coreStorage.TraceQueryCursorError) {\n throwTraceQueryError(error.code === 'TRACE_QUERY_CURSOR_CONFLICT' ? 409 : 400, {\n code: error.code,\n message: error.message,\n });\n }\n throw error;\n }\n\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilitySpanQuerySupported(observabilityStore);\n assertObservabilitySpanQueryFieldsSupported(observabilityStore, plan.where);\n assertObservabilitySpanQueryModelFieldsSupported(observabilityStore, plan.where);\n assertObservabilitySpanQueryOutcomeFieldsSupported(observabilityStore, plan);\n assertObservabilityTraceQueryTimeToFirstChunkSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstChunkSortSupported(observabilityStore, plan.orderBy);\n assertObservabilityTraceQueryTimeToFirstTokenSortSupported(observabilityStore, plan.orderBy);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: 'The span query is invalid', issues: error.issues });\n }\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'SPAN_QUERY_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.querySpans(plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryCursorError) {\n throwTraceQueryError(error.code === 'TRACE_QUERY_CURSOR_CONFLICT' ? 409 : 400, {\n code: error.code,\n message: error.message,\n });\n }\n if (error instanceof coreStorage.TraceQueryResourceLimitError) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nif (QUERY_SPANS.openapi) {\n QUERY_SPANS.openapi.responses[400] = {\n description: 'Malformed JSON or malformed cursor',\n content: {\n 'application/json': {\n schema: z.union([traceQueryMalformedBodyErrorSchema, traceQueryMalformedCursorErrorSchema]),\n },\n },\n };\n QUERY_SPANS.openapi.responses[409] = {\n description: 'Cursor does not match the normalized query',\n content: { 'application/json': { schema: traceQueryCursorConflictErrorSchema } },\n };\n QUERY_SPANS.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n QUERY_SPANS.openapi.responses[422] = {\n description: 'Structurally or semantically invalid span query',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n QUERY_SPANS.openapi.responses[501] = {\n description: 'The configured observability store does not support span queries',\n content: { 'application/json': { schema: spanQueryUnsupportedErrorSchema } },\n };\n QUERY_SPANS.openapi.responses[503] = {\n description: 'Span query exceeded a bounded execution resource limit',\n content: { 'application/json': { schema: traceQueryResourceLimitErrorSchema } },\n };\n QUERY_SPANS.openapi.responses[504] = {\n description: 'Span query exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\nexport const GET_TRACE_QUERY_FIELDS = createNewRoute(NEW_ROUTE_DEFS.GET_TRACE_QUERY_FIELDS, {\n bodySchema: coreStorage.getTraceQueryFieldsArgsSchema,\n responseSchema: coreStorage.getTraceQueryFieldsResponseSchema,\n onValidationError: traceQueryValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n isCoreSupported: supportsTraceQueryDiscoveryCore,\n onUnsupportedCore: throwTraceQueryDiscoveryCoreUnsupported,\n handler: async ({ mastra, requestContext, timeRange, predicateScope, search, limit }) => {\n const args = { timeRange, predicateScope, search, limit };\n const plan = coreStorage.planTraceQueryObservedFields(args, {\n scope: resolveTraceQueryScope(requestContext, 'TRACE_QUERY_DISCOVERY_UNSUPPORTED'),\n });\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilityTraceQueryDiscoverySupported(observabilityStore);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n } catch (error) {\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'TRACE_QUERY_DISCOVERY_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n const observed = await observabilityStore.getTraceQueryObservedFields(plan);\n const canonicalFields = coreStorage\n .getTraceQueryCanonicalFieldDescriptors(predicateScope, search)\n .filter(\n field =>\n predicateScope !== 'trace' ||\n field.path !== 'durationMs' ||\n supportsObservabilityTraceQueryRootDuration(observabilityStore),\n )\n .filter(field => supportsObservabilityTraceQueryContextField(observabilityStore, field.path))\n .filter(\n field =>\n field.path !== 'timeToFirstChunkMs' || supportsObservabilityTraceQueryTimeToFirstChunk(observabilityStore),\n )\n .filter(\n field =>\n field.path !== 'timeToFirstTokenMs' || supportsObservabilityTraceQueryTimeToFirstToken(observabilityStore),\n )\n .filter(\n field =>\n predicateScope !== 'trace' || supportsObservabilityTraceQueryRootSpanField(observabilityStore, field.path),\n )\n .filter(\n field =>\n !isObservabilityOutcomeField(field.path) ||\n supportsObservabilityTraceQueryOutcomeFields(observabilityStore),\n );\n // Older Core's strict response schema has no `aggregate` key, so only send it when Core can describe it.\n const describesAggregate =\n predicateScope === 'trace' &&\n supportsTraceAggregateCore() &&\n coreStorage.traceAggregateDiscoverySchema !== undefined &&\n supportsObservabilityTraceAggregate(observabilityStore);\n return {\n canonicalFields,\n ...observed,\n ...(describesAggregate && {\n aggregate: {\n dimensions: coreStorage\n .getTraceAggregateDimensionDescriptors()\n .filter(dimension => supportsObservabilityTraceQueryRootSpanField(observabilityStore, dimension.path))\n .filter(\n dimension =>\n !isObservabilityOutcomeField(dimension.path) ||\n supportsObservabilityTraceQueryOutcomeFields(observabilityStore),\n ),\n measures: filterObservabilityAggregateMeasureDescriptors(\n observabilityStore,\n coreStorage.getTraceAggregateMeasureDescriptors(),\n ),\n },\n }),\n };\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryResourceLimitError) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nexport const GET_TRACE_QUERY_VALUES = createNewRoute(NEW_ROUTE_DEFS.GET_TRACE_QUERY_VALUES, {\n bodySchema: coreStorage.getTraceQueryValuesArgsSchema,\n responseSchema: coreStorage.getTraceQueryValuesResponseSchema,\n onValidationError: traceQueryValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n isCoreSupported: supportsTraceQueryDiscoveryCore,\n onUnsupportedCore: throwTraceQueryDiscoveryCoreUnsupported,\n handler: async ({ mastra, requestContext, timeRange, predicateScope, path, search, limit }) => {\n const plan = coreStorage.planTraceQueryValues(\n { timeRange, predicateScope, path, search, limit },\n { scope: resolveTraceQueryScope(requestContext, 'TRACE_QUERY_DISCOVERY_UNSUPPORTED') },\n );\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilityTraceQueryDiscoverySupported(observabilityStore);\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n assertObservabilityTraceQueryRootSpanValuesSupported(observabilityStore, plan);\n assertObservabilityTraceQueryOutcomeFieldsSupported(observabilityStore, plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'TRACE_QUERY_DISCOVERY_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.getTraceQueryValues(plan);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryResourceLimitError) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nfor (const route of [GET_TRACE_QUERY_FIELDS, GET_TRACE_QUERY_VALUES]) {\n if (!route.openapi) continue;\n route.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n route.openapi.responses[422] = {\n description: 'Structurally or semantically invalid trace-query discovery request',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n route.openapi.responses[501] = {\n description: 'The installed Core or configured observability store does not support trace-query discovery',\n content: { 'application/json': { schema: traceQueryDiscoveryUnsupportedErrorSchema } },\n };\n route.openapi.responses[503] = {\n description: 'Trace-query discovery exceeded the configured database resource limit',\n content: { 'application/json': { schema: traceQueryResourceLimitErrorSchema } },\n };\n route.openapi.responses[504] = {\n description: 'Trace-query discovery exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\nexport const QUERY_THREADS = createNewRoute(NEW_ROUTE_DEFS.QUERY_THREADS, {\n // Preserve legacy schemas/exports for old clients and independently upgraded packages.\n // On old core, recognize new requests only to return a structured capability error.\n bodySchema: z.union([\n coreStorage.threadQueryRequestSchema ?? z.object({ timeRange: z.unknown() }).passthrough(),\n coreStorage.queryThreadsInputSchema,\n ]),\n responseSchema: coreStorage.threadQueryResponseSchema\n ? z.union([coreStorage.threadQueryResponseSchema, coreStorage.queryThreadsResultSchema])\n : coreStorage.queryThreadsResultSchema,\n onValidationError: traceQueryValidationError,\n maxBodySize: 256 * 1024,\n preserveHttpExceptions: true,\n onUnsupportedCore: () =>\n throwTraceQueryError(501, {\n code: 'TRACE_QUERY_UNSUPPORTED',\n message: 'Thread queries require a newer @mastra/core with observability thread-query support. Please upgrade.',\n }),\n handler: async params => {\n const { mastra, requestContext } = params;\n const rowsRequest = 'timeRange' in params;\n if (rowsRequest && typeof coreStorage.planThreadRowsQuery !== 'function') {\n throwTraceQueryError(501, {\n code: 'TRACE_QUERY_UNSUPPORTED',\n message: 'Thread rows require a newer @mastra/core. Please upgrade.',\n });\n }\n let plan;\n try {\n const options = { scope: resolveTraceQueryScope(requestContext) };\n plan = rowsRequest\n ? coreStorage.planThreadRowsQuery(\n { timeRange: params.timeRange, where: params.where, page: params.page, orderBy: params.orderBy },\n options,\n )\n : coreStorage.planThreadQuery({ traces: params.traces, where: params.where, page: params.page }, options);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof coreStorage.TraceQueryCursorError) {\n throwTraceQueryError(error.code === 'TRACE_QUERY_CURSOR_CONFLICT' ? 409 : 400, {\n code: error.code,\n message: error.message,\n });\n }\n throw error;\n }\n\n let observabilityStore: Awaited<ReturnType<typeof getObservabilityStore>>;\n try {\n observabilityStore = await getObservabilityStore(mastra);\n assertObservabilityThreadQuerySupported(observabilityStore);\n if (plan.result === 'threadRows') {\n if (!observabilityStore.getFeatures()?.includes('thread-query-rows')) {\n throwTraceQueryError(501, {\n code: 'TRACE_QUERY_UNSUPPORTED',\n message: 'Thread rows require an updated observability storage adapter. Please upgrade.',\n });\n }\n // Thread rows shipped with time to first chunk, so only time to first token needs a gate.\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n } else {\n assertObservabilityTraceQueryRootDurationSupported(observabilityStore, plan.traces.where);\n assertObservabilityTraceQueryContextFieldsSupported(observabilityStore, plan.traces.where);\n assertObservabilityTraceQueryTimeToFirstChunkSupported(observabilityStore, plan.traces.where);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.traces.where);\n assertObservabilityTraceQueryRootDurationSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryContextFieldsSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstChunkSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryTimeToFirstTokenSupported(observabilityStore, plan.where);\n assertObservabilityTraceQueryRootSpanFieldsSupported(observabilityStore, plan.traces);\n assertObservabilityTraceQueryRootSpanFieldsSupported(observabilityStore, plan);\n assertObservabilityTraceQueryOutcomeFieldsSupported(observabilityStore, plan.traces);\n assertObservabilityTraceQueryOutcomeFieldsSupported(observabilityStore, plan);\n }\n assertObservabilityTraceQueryTenantScopeSupported(observabilityStore, plan.scope);\n } catch (error) {\n if (error instanceof coreStorage.TraceQueryValidationError) {\n throwTraceQueryError(422, { code: error.code, message: error.message, issues: error.issues });\n }\n if (error instanceof HTTPException && error.status === 501) {\n throwTraceQueryError(501, { code: 'TRACE_QUERY_UNSUPPORTED', message: error.message });\n }\n throw error;\n }\n\n try {\n return await observabilityStore.queryThreads(plan);\n } catch (error) {\n if (\n typeof coreStorage.TraceQueryResourceLimitError === 'function' &&\n error instanceof coreStorage.TraceQueryResourceLimitError\n ) {\n throwTraceQueryError(503, { code: error.code, message: error.message });\n }\n if (error instanceof coreStorage.TraceQueryExecutionError) {\n throwTraceQueryError(504, { code: error.code, message: error.message });\n }\n throw error;\n }\n },\n});\n\nif (QUERY_THREADS.openapi) {\n QUERY_THREADS.openapi.responses[400] = {\n description: 'Malformed JSON or malformed cursor',\n content: {\n 'application/json': {\n schema: z.union([traceQueryMalformedBodyErrorSchema, traceQueryMalformedCursorErrorSchema]),\n },\n },\n };\n QUERY_THREADS.openapi.responses[409] = {\n description: 'Cursor does not match the normalized query',\n content: { 'application/json': { schema: traceQueryCursorConflictErrorSchema } },\n };\n QUERY_THREADS.openapi.responses[413] = {\n description: 'Request body exceeds 256 KiB',\n content: { 'application/json': { schema: traceQueryBodyTooLargeErrorSchema } },\n };\n QUERY_THREADS.openapi.responses[422] = {\n description: 'Structurally or semantically invalid thread query',\n content: { 'application/json': { schema: traceQueryValidationResponseSchema } },\n };\n QUERY_THREADS.openapi.responses[501] = {\n description: 'The configured observability store does not support thread queries',\n content: { 'application/json': { schema: traceQueryUnsupportedErrorSchema } },\n };\n QUERY_THREADS.openapi.responses[503] = {\n description: 'Thread query exceeded the database resource limit',\n content: { 'application/json': { schema: traceQueryResourceLimitErrorSchema } },\n };\n QUERY_THREADS.openapi.responses[504] = {\n description: 'Thread query exceeded the configured database execution timeout',\n content: { 'application/json': { schema: traceQueryTimeoutErrorSchema } },\n };\n}\n\n// ============================================================================\n// Log Routes\n// ============================================================================\n\nexport const LIST_LOGS = createNewRoute(NEW_ROUTE_DEFS.LIST_LOGS, {\n queryParamSchema: createObservabilityListQuerySchema(logsFilterSchema, logsOrderBySchema),\n responseSchema: listLogsResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(logsFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.logs);\n return await observabilityStore.listLogs({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(logsOrderBySchema, params);\n return await observabilityStore.listLogs(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\n// ============================================================================\n// Score Routes\n// ============================================================================\n\nexport const LIST_SCORES = createNewRoute(NEW_ROUTE_DEFS.LIST_SCORES, {\n queryParamSchema: createObservabilityListQuerySchema(scoresFilterSchema, scoresOrderBySchema),\n responseSchema: obsListScoresResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(scoresFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.scores);\n return await observabilityStore.listScores({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(scoresOrderBySchema, params);\n return await observabilityStore.listScores(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\nexport const CREATE_SCORE = createNewRoute(NEW_ROUTE_DEFS.CREATE_SCORE, {\n bodySchema: createScoreBodySchema,\n responseSchema: createScoreResponseSchema,\n preserveHttpExceptions: true,\n handler: async ({ mastra, requestContext, score, contextMode }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n const context = await resolveSignalContext(observabilityStore, requestContext, score, contextMode);\n const scoreId = score.scoreId ?? generateSignalId();\n const timestamp = score.timestamp === undefined ? new Date() : new Date(score.timestamp);\n await observabilityStore.createScore({ score: { ...score, ...context, scoreId, timestamp } });\n return {\n success: true,\n data: { scoreId, traceId: score.traceId, spanId: score.spanId ?? null, timestamp: timestamp.toISOString() },\n };\n },\n});\n\nexport const DELETE_SCORES = createNewRoute(NEW_ROUTE_DEFS.DELETE_SCORES, {\n bodySchema: deleteScoresArgsSchema,\n responseSchema: deleteScoresResponseSchema,\n handler: async ({ mastra, ...params }) => {\n if (!coreFeatures.has('observability-signal-deletion')) {\n throw new HTTPException(501, {\n message: 'Score deletion requires a newer @mastra/core with observability signal deletion support.',\n });\n }\n const args = pickParams(deleteScoresArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n await observabilityStore.deleteScores(args);\n return { success: true };\n },\n});\n\nexport const GET_SCORE = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE, {\n pathParamSchema: z.object({ scoreId: z.string() }),\n responseSchema: z.object({ score: scoreRecordSchema.nullable() }),\n handler: async ({ mastra, scoreId }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n const score = await observabilityStore.getScoreById(scoreId);\n return { score: score ?? null };\n },\n});\n\nexport const GET_SCORE_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_AGGREGATE, {\n bodySchema: getScoreAggregateArgsSchema,\n responseSchema: getScoreAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreAggregate(args);\n },\n});\n\nexport const GET_SCORE_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_BREAKDOWN, {\n bodySchema: getScoreBreakdownArgsSchema,\n responseSchema: getScoreBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreBreakdown(args);\n },\n});\n\nexport const GET_SCORE_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_TIME_SERIES, {\n bodySchema: getScoreTimeSeriesArgsSchema,\n responseSchema: getScoreTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreTimeSeries(args);\n },\n});\n\nexport const GET_SCORE_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_PERCENTILES, {\n bodySchema: getScorePercentilesArgsSchema,\n responseSchema: getScorePercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScorePercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScorePercentiles(args);\n },\n});\n\n// ============================================================================\n// Feedback Routes\n// ============================================================================\n\nexport const LIST_FEEDBACK = createNewRoute(NEW_ROUTE_DEFS.LIST_FEEDBACK, {\n queryParamSchema: createObservabilityListQuerySchema(feedbackFilterSchema, feedbackOrderBySchema),\n responseSchema: listFeedbackResponseSchema,\n handler: async ({ mastra, requestContext, request, mode, after, limit, ...params }) => {\n const filters = pickParams(feedbackFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.feedback);\n }\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(feedbackOrderBySchema, params);\n const result = await observabilityStore.listFeedback(\n mode === 'delta'\n ? { mode, filters, after: typeof after === 'string' ? after : undefined, limit }\n : mode === 'page'\n ? { mode, filters, pagination, orderBy }\n : { filters, pagination, orderBy },\n );\n const authors = await prepareAuthorEnrichment(\n mastra,\n requestContext,\n result.feedback.map(record => record.feedbackUserId),\n isStudioClientTypeHeader(request?.headers.get(MASTRA_CLIENT_TYPE_HEADER) ?? undefined),\n );\n return {\n ...result,\n feedback: result.feedback.map(record => {\n const author = record.feedbackUserId ? authors?.get(record.feedbackUserId) : undefined;\n return author ? { ...record, author } : record;\n }),\n };\n },\n});\n\nexport const CREATE_FEEDBACK = createNewRoute(NEW_ROUTE_DEFS.CREATE_FEEDBACK, {\n bodySchema: createFeedbackBodySchema,\n responseSchema: createFeedbackResponseSchema,\n preserveHttpExceptions: true,\n handler: async ({ mastra, requestContext, feedback, contextMode }) => {\n const user = requestContext.get(MASTRA_USER_KEY);\n const authenticatedId = user && typeof user === 'object' && 'id' in user ? user.id : undefined;\n const observabilityStore = await getObservabilityStore(mastra);\n const context = await resolveSignalContext(observabilityStore, requestContext, feedback, contextMode);\n const feedbackId = feedback.feedbackId ?? generateSignalId();\n const timestamp = feedback.timestamp === undefined ? new Date() : new Date(feedback.timestamp);\n await observabilityStore.createFeedback({\n feedback: {\n ...feedback,\n ...context,\n feedbackUserId:\n typeof authenticatedId === 'string' && authenticatedId.trim().length > 0\n ? authenticatedId\n : (feedback.feedbackUserId ?? null),\n feedbackId,\n timestamp,\n reviewStatus: feedback.reviewStatus ?? 'needs-review',\n },\n });\n return {\n success: true,\n data: {\n feedbackId,\n traceId: feedback.traceId,\n spanId: feedback.spanId ?? null,\n timestamp: timestamp.toISOString(),\n },\n };\n },\n});\n\nexport const DELETE_FEEDBACK = createNewRoute(NEW_ROUTE_DEFS.DELETE_FEEDBACK, {\n bodySchema: deleteFeedbackArgsSchema,\n responseSchema: deleteFeedbackResponseSchema,\n handler: async ({ mastra, ...params }) => {\n if (!coreFeatures.has('observability-signal-deletion')) {\n throw new HTTPException(501, {\n message: 'Feedback deletion requires a newer @mastra/core with observability signal deletion support.',\n });\n }\n const args = pickParams(deleteFeedbackArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n await observabilityStore.deleteFeedback(args);\n return { success: true };\n },\n});\n\nexport const UPDATE_FEEDBACK_REVIEW_STATUS = createNewRoute(NEW_ROUTE_DEFS.UPDATE_FEEDBACK_REVIEW_STATUS, {\n pathParamSchema: z.object({ feedbackId: z.string() }),\n bodySchema: z.object({ reviewStatus: feedbackReviewStatusSchema }),\n responseSchema: feedbackRecordSchema,\n handler: async ({ mastra, feedbackId, reviewStatus }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.updateFeedbackReviewStatus({ feedbackId, reviewStatus });\n },\n});\n\nexport const GET_FEEDBACK_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_AGGREGATE, {\n bodySchema: getFeedbackAggregateArgsSchema,\n responseSchema: getFeedbackAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackAggregate(args);\n },\n});\n\nexport const GET_FEEDBACK_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_BREAKDOWN, {\n bodySchema: getFeedbackBreakdownArgsSchema,\n responseSchema: getFeedbackBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackBreakdown(args);\n },\n});\n\nexport const GET_FEEDBACK_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_TIME_SERIES, {\n bodySchema: getFeedbackTimeSeriesArgsSchema,\n responseSchema: getFeedbackTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackTimeSeries(args);\n },\n});\n\nexport const GET_FEEDBACK_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_PERCENTILES, {\n bodySchema: getFeedbackPercentilesArgsSchema,\n responseSchema: getFeedbackPercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackPercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackPercentiles(args);\n },\n});\n\n// ============================================================================\n// Metrics Routes\n// ============================================================================\n\nexport const LIST_METRICS = createNewRoute(NEW_ROUTE_DEFS.LIST_METRICS, {\n queryParamSchema: createObservabilityListQuerySchema(metricsFilterSchema, metricsOrderBySchema),\n responseSchema: listMetricsResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(metricsFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.metrics);\n return await observabilityStore.listMetrics({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(metricsOrderBySchema, params);\n return await observabilityStore.listMetrics(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\nexport const GET_METRIC_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_AGGREGATE, {\n bodySchema: getMetricAggregateArgsSchema,\n responseSchema: getMetricAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricAggregate(args);\n },\n});\n\nexport const GET_METRIC_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_BREAKDOWN, {\n bodySchema: getMetricBreakdownArgsSchema,\n responseSchema: getMetricBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricBreakdown(args);\n },\n});\n\nexport const GET_METRIC_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_TIME_SERIES, {\n bodySchema: getMetricTimeSeriesArgsSchema,\n responseSchema: getMetricTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricTimeSeries(args);\n },\n});\n\nexport const GET_METRIC_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_PERCENTILES, {\n bodySchema: getMetricPercentilesArgsSchema,\n responseSchema: getMetricPercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricPercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricPercentiles(args);\n },\n});\n\n// ============================================================================\n// Discovery Routes\n// ============================================================================\n\nexport const GET_METRIC_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_NAMES, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricNamesArgsSchema.partial()),\n responseSchema: getMetricNamesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricNamesArgsSchema.parse(pickParams(getMetricNamesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getMetricNames(args), { names: [] });\n },\n});\n\nexport const GET_METRIC_LABEL_KEYS = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_LABEL_KEYS, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricLabelKeysArgsSchema),\n responseSchema: getMetricLabelKeysResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricLabelKeysArgsSchema.parse(pickParams(getMetricLabelKeysArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getMetricLabelKeys(args), { keys: [] });\n },\n});\n\nexport const GET_METRIC_LABEL_VALUES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_LABEL_VALUES, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricLabelValuesArgsSchema),\n responseSchema: getMetricLabelValuesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricLabelValuesArgsSchema.parse(pickParams(getMetricLabelValuesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getMetricLabelValues(args), { values: [] });\n },\n});\n\nexport const GET_ENTITY_TYPES = createNewRoute(NEW_ROUTE_DEFS.GET_ENTITY_TYPES, {\n responseSchema: getEntityTypesResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getEntityTypes({}), { entityTypes: [] });\n },\n});\n\nexport const GET_ENTITY_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_ENTITY_NAMES, {\n queryParamSchema: wrapSchemaForQueryParams(getEntityNamesArgsSchema.partial()),\n responseSchema: getEntityNamesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getEntityNamesArgsSchema.parse(pickParams(getEntityNamesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getEntityNames(args), { names: [] });\n },\n});\n\nexport const GET_SERVICE_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_SERVICE_NAMES, {\n responseSchema: getServiceNamesResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getServiceNames({}), { serviceNames: [] });\n },\n});\n\nexport const GET_ENVIRONMENTS = createNewRoute(NEW_ROUTE_DEFS.GET_ENVIRONMENTS, {\n responseSchema: getEnvironmentsResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getEnvironments({}), { environments: [] });\n },\n});\n\nexport const GET_TAGS = createNewRoute(NEW_ROUTE_DEFS.GET_TAGS, {\n queryParamSchema: wrapSchemaForQueryParams(getTagsArgsSchema.partial()),\n responseSchema: getTagsResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getTagsArgsSchema.parse(pickParams(getTagsArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await withDiscoveryFallback(() => observabilityStore.getTags(args), { tags: [] });\n },\n});\n\n// ============================================================================\n// Capabilities Route\n// ============================================================================\n\nconst getObservabilityCapabilitiesResponseSchema = z.object({\n observabilityStorageType: z\n .string()\n .nullable()\n .describe('Class name of the configured observability storage, or null when none is configured'),\n capabilities: observabilityStorageCapabilitiesSchema,\n});\n\n// Uses createRoute (not createNewRoute) so clients can ask what is supported\n// even on an @mastra/core too old for the newer observability endpoints.\nexport const GET_CAPABILITIES = createRoute({\n ...NEW_ROUTE_DEFS.GET_CAPABILITIES,\n responseType: 'json',\n responseSchema: getObservabilityCapabilitiesResponseSchema,\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const observabilityStore = await mastra.getStorage()?.getStore('observability');\n if (!observabilityStore) {\n return { observabilityStorageType: null, capabilities: NO_OBSERVABILITY_STORAGE_CAPABILITIES };\n }\n return {\n observabilityStorageType: observabilityStore.constructor.name,\n capabilities: getObservabilityStorageCapabilities(observabilityStore),\n };\n } catch (error) {\n return handleError(error, \"Error calling: 'get observability capabilities'\");\n }\n },\n});\n\nexport const NEW_ROUTES = {\n QUERY_TRACES,\n QUERY_THREADS,\n QUERY_SPANS,\n LIST_LOGS,\n LIST_SCORES,\n CREATE_SCORE,\n DELETE_SCORES,\n GET_SCORE,\n GET_SCORE_AGGREGATE,\n GET_SCORE_BREAKDOWN,\n GET_SCORE_TIME_SERIES,\n GET_SCORE_PERCENTILES,\n LIST_FEEDBACK,\n CREATE_FEEDBACK,\n DELETE_FEEDBACK,\n UPDATE_FEEDBACK_REVIEW_STATUS,\n GET_FEEDBACK_AGGREGATE,\n GET_FEEDBACK_BREAKDOWN,\n GET_FEEDBACK_TIME_SERIES,\n GET_FEEDBACK_PERCENTILES,\n LIST_METRICS,\n GET_METRIC_AGGREGATE,\n GET_METRIC_BREAKDOWN,\n GET_METRIC_TIME_SERIES,\n GET_METRIC_PERCENTILES,\n GET_METRIC_NAMES,\n GET_METRIC_LABEL_KEYS,\n GET_METRIC_LABEL_VALUES,\n GET_ENTITY_TYPES,\n GET_ENTITY_NAMES,\n GET_SERVICE_NAMES,\n GET_ENVIRONMENTS,\n GET_TAGS,\n GET_CAPABILITIES,\n};\n"],"mappings":"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"}