@mastra/server 1.32.0-alpha.2 → 1.32.0-alpha.3

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 (238) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{chunk-OJ7SK6PH.js → chunk-2OGDU5U7.js} +5 -5
  3. package/dist/{chunk-OJ7SK6PH.js.map → chunk-2OGDU5U7.js.map} +1 -1
  4. package/dist/{chunk-4JWF4VAL.js → chunk-4H5DNMAO.js} +3 -3
  5. package/dist/{chunk-4JWF4VAL.js.map → chunk-4H5DNMAO.js.map} +1 -1
  6. package/dist/{chunk-NRKGN3C5.js → chunk-4QGPES7N.js} +4 -4
  7. package/dist/{chunk-NRKGN3C5.js.map → chunk-4QGPES7N.js.map} +1 -1
  8. package/dist/{chunk-33USMBWV.js → chunk-4Y77CVSI.js} +34 -10
  9. package/dist/chunk-4Y77CVSI.js.map +1 -0
  10. package/dist/{chunk-XUFQVLBC.cjs → chunk-5APP5R3R.cjs} +3 -3
  11. package/dist/{chunk-XUFQVLBC.cjs.map → chunk-5APP5R3R.cjs.map} +1 -1
  12. package/dist/{chunk-RL34ZMLF.cjs → chunk-5UK4WOHD.cjs} +46 -46
  13. package/dist/{chunk-RL34ZMLF.cjs.map → chunk-5UK4WOHD.cjs.map} +1 -1
  14. package/dist/{chunk-XEERRXWL.cjs → chunk-6V7NAUV4.cjs} +3 -3
  15. package/dist/{chunk-XEERRXWL.cjs.map → chunk-6V7NAUV4.cjs.map} +1 -1
  16. package/dist/{chunk-OPBMOOBR.js → chunk-6XEWLKEU.js} +5 -5
  17. package/dist/{chunk-OPBMOOBR.js.map → chunk-6XEWLKEU.js.map} +1 -1
  18. package/dist/{chunk-AF6AYXRW.cjs → chunk-6XN2MNYW.cjs} +22 -22
  19. package/dist/{chunk-AF6AYXRW.cjs.map → chunk-6XN2MNYW.cjs.map} +1 -1
  20. package/dist/{chunk-AOKUS5NX.js → chunk-ABCXNCRJ.js} +3 -3
  21. package/dist/{chunk-AOKUS5NX.js.map → chunk-ABCXNCRJ.js.map} +1 -1
  22. package/dist/{chunk-64M357LE.js → chunk-ALVHNIDP.js} +5 -5
  23. package/dist/{chunk-64M357LE.js.map → chunk-ALVHNIDP.js.map} +1 -1
  24. package/dist/{chunk-KQU6VKAO.cjs → chunk-APVIDF5T.cjs} +3 -3
  25. package/dist/{chunk-KQU6VKAO.cjs.map → chunk-APVIDF5T.cjs.map} +1 -1
  26. package/dist/{chunk-EAJSW5GK.js → chunk-BSGOXMAI.js} +3 -3
  27. package/dist/{chunk-EAJSW5GK.js.map → chunk-BSGOXMAI.js.map} +1 -1
  28. package/dist/{chunk-CBSIIPHQ.js → chunk-COAE7JJY.js} +6 -6
  29. package/dist/{chunk-CBSIIPHQ.js.map → chunk-COAE7JJY.js.map} +1 -1
  30. package/dist/{chunk-72RVQAAZ.js → chunk-DK46ZSF7.js} +4 -4
  31. package/dist/{chunk-72RVQAAZ.js.map → chunk-DK46ZSF7.js.map} +1 -1
  32. package/dist/{chunk-HKXIZNJC.js → chunk-EPYO4OC5.js} +4 -4
  33. package/dist/{chunk-HKXIZNJC.js.map → chunk-EPYO4OC5.js.map} +1 -1
  34. package/dist/{chunk-YMBKVVDF.cjs → chunk-ETWIAKQ7.cjs} +13 -13
  35. package/dist/{chunk-YMBKVVDF.cjs.map → chunk-ETWIAKQ7.cjs.map} +1 -1
  36. package/dist/{chunk-CEZZQMPM.cjs → chunk-EUJHJEM6.cjs} +4 -4
  37. package/dist/{chunk-CEZZQMPM.cjs.map → chunk-EUJHJEM6.cjs.map} +1 -1
  38. package/dist/{chunk-EWNTXTFB.cjs → chunk-EXVKDDKD.cjs} +4 -4
  39. package/dist/{chunk-EWNTXTFB.cjs.map → chunk-EXVKDDKD.cjs.map} +1 -1
  40. package/dist/{chunk-K745HNW2.cjs → chunk-F22H7Z7L.cjs} +4 -4
  41. package/dist/{chunk-K745HNW2.cjs.map → chunk-F22H7Z7L.cjs.map} +1 -1
  42. package/dist/{chunk-F23SQINQ.js → chunk-FFNKVUBU.js} +6 -6
  43. package/dist/{chunk-F23SQINQ.js.map → chunk-FFNKVUBU.js.map} +1 -1
  44. package/dist/{chunk-OQHTG2JK.cjs → chunk-FZSDG2KA.cjs} +4 -4
  45. package/dist/{chunk-OQHTG2JK.cjs.map → chunk-FZSDG2KA.cjs.map} +1 -1
  46. package/dist/{chunk-HBWNPGIL.js → chunk-GSURMQA2.js} +4 -4
  47. package/dist/{chunk-HBWNPGIL.js.map → chunk-GSURMQA2.js.map} +1 -1
  48. package/dist/{chunk-XOHBH6NQ.js → chunk-GTERDDNK.js} +4 -4
  49. package/dist/{chunk-XOHBH6NQ.js.map → chunk-GTERDDNK.js.map} +1 -1
  50. package/dist/{chunk-M7L5EVQE.cjs → chunk-GVLAYCDU.cjs} +6 -6
  51. package/dist/{chunk-M7L5EVQE.cjs.map → chunk-GVLAYCDU.cjs.map} +1 -1
  52. package/dist/{chunk-OUS6FNA7.js → chunk-GXSML4LI.js} +5 -5
  53. package/dist/{chunk-OUS6FNA7.js.map → chunk-GXSML4LI.js.map} +1 -1
  54. package/dist/{chunk-NIRJGDC6.cjs → chunk-HTSSEM5Z.cjs} +3 -3
  55. package/dist/{chunk-NIRJGDC6.cjs.map → chunk-HTSSEM5Z.cjs.map} +1 -1
  56. package/dist/{chunk-DCMRHRHR.js → chunk-I34RGOPQ.js} +3 -3
  57. package/dist/{chunk-DCMRHRHR.js.map → chunk-I34RGOPQ.js.map} +1 -1
  58. package/dist/{chunk-WYSQECWW.js → chunk-I7EPR6KM.js} +7 -7
  59. package/dist/{chunk-WYSQECWW.js.map → chunk-I7EPR6KM.js.map} +1 -1
  60. package/dist/{chunk-F5RU45N6.cjs → chunk-IYQS5YRY.cjs} +7 -7
  61. package/dist/{chunk-F5RU45N6.cjs.map → chunk-IYQS5YRY.cjs.map} +1 -1
  62. package/dist/{chunk-OZC7GEO5.cjs → chunk-JHUXQK47.cjs} +3 -3
  63. package/dist/{chunk-OZC7GEO5.cjs.map → chunk-JHUXQK47.cjs.map} +1 -1
  64. package/dist/{chunk-OBRYBTX6.cjs → chunk-JLRBUMQA.cjs} +5 -5
  65. package/dist/{chunk-OBRYBTX6.cjs.map → chunk-JLRBUMQA.cjs.map} +1 -1
  66. package/dist/{chunk-OCBL7S62.js → chunk-JU54MAJE.js} +5 -5
  67. package/dist/{chunk-OCBL7S62.js.map → chunk-JU54MAJE.js.map} +1 -1
  68. package/dist/{chunk-67TYG7WH.js → chunk-KUEMDK4R.js} +3 -3
  69. package/dist/{chunk-67TYG7WH.js.map → chunk-KUEMDK4R.js.map} +1 -1
  70. package/dist/{chunk-X3RINDH6.js → chunk-L3LU2FSK.js} +56 -6
  71. package/dist/chunk-L3LU2FSK.js.map +1 -0
  72. package/dist/{chunk-T6MMZWHW.cjs → chunk-L5GHLBMN.cjs} +53 -53
  73. package/dist/{chunk-T6MMZWHW.cjs.map → chunk-L5GHLBMN.cjs.map} +1 -1
  74. package/dist/{chunk-VRPAOMXW.js → chunk-LVJUHHZY.js} +7 -7
  75. package/dist/{chunk-VRPAOMXW.js.map → chunk-LVJUHHZY.js.map} +1 -1
  76. package/dist/{chunk-ZHEQYOTL.cjs → chunk-LX3ESTTN.cjs} +83 -31
  77. package/dist/chunk-LX3ESTTN.cjs.map +1 -0
  78. package/dist/{chunk-DIBOFJUK.cjs → chunk-MG4EE3KA.cjs} +3 -3
  79. package/dist/{chunk-DIBOFJUK.cjs.map → chunk-MG4EE3KA.cjs.map} +1 -1
  80. package/dist/{chunk-X47OINMY.cjs → chunk-MIK6X2SR.cjs} +10 -10
  81. package/dist/{chunk-X47OINMY.cjs.map → chunk-MIK6X2SR.cjs.map} +1 -1
  82. package/dist/{chunk-CR7RGILH.js → chunk-MJXZZQ5O.js} +3 -3
  83. package/dist/{chunk-CR7RGILH.js.map → chunk-MJXZZQ5O.js.map} +1 -1
  84. package/dist/{chunk-4UMO2IGR.cjs → chunk-MMHEXUTF.cjs} +3 -3
  85. package/dist/{chunk-4UMO2IGR.cjs.map → chunk-MMHEXUTF.cjs.map} +1 -1
  86. package/dist/{chunk-ZCCXXT7V.cjs → chunk-N4IQKTJO.cjs} +90 -20
  87. package/dist/chunk-N4IQKTJO.cjs.map +1 -0
  88. package/dist/{chunk-RPEPKUZQ.js → chunk-NP5C5PIL.js} +7 -7
  89. package/dist/{chunk-RPEPKUZQ.js.map → chunk-NP5C5PIL.js.map} +1 -1
  90. package/dist/{chunk-VG6A54JE.js → chunk-OGFJRI4R.js} +3 -3
  91. package/dist/{chunk-VG6A54JE.js.map → chunk-OGFJRI4R.js.map} +1 -1
  92. package/dist/{chunk-KTTHNIBJ.js → chunk-OTRCNZO4.js} +8 -8
  93. package/dist/{chunk-KTTHNIBJ.js.map → chunk-OTRCNZO4.js.map} +1 -1
  94. package/dist/{chunk-K2KWDOYR.js → chunk-OYVLXYUL.js} +3 -3
  95. package/dist/{chunk-K2KWDOYR.js.map → chunk-OYVLXYUL.js.map} +1 -1
  96. package/dist/{chunk-ODCWNXTX.cjs → chunk-P2PZPH24.cjs} +34 -10
  97. package/dist/chunk-P2PZPH24.cjs.map +1 -0
  98. package/dist/{chunk-FFDMYX2V.cjs → chunk-P6DRWWFU.cjs} +4 -4
  99. package/dist/{chunk-FFDMYX2V.cjs.map → chunk-P6DRWWFU.cjs.map} +1 -1
  100. package/dist/{chunk-ASVWXKET.cjs → chunk-QCSBOQGP.cjs} +5 -5
  101. package/dist/{chunk-ASVWXKET.cjs.map → chunk-QCSBOQGP.cjs.map} +1 -1
  102. package/dist/{chunk-IRKGFNRR.js → chunk-QNTYBN3J.js} +7 -7
  103. package/dist/{chunk-IRKGFNRR.js.map → chunk-QNTYBN3J.js.map} +1 -1
  104. package/dist/{chunk-CZU262RD.cjs → chunk-QXG537D5.cjs} +5 -5
  105. package/dist/{chunk-CZU262RD.cjs.map → chunk-QXG537D5.cjs.map} +1 -1
  106. package/dist/{chunk-RF5ZDERV.js → chunk-RFKNM47Y.js} +4 -4
  107. package/dist/{chunk-RF5ZDERV.js.map → chunk-RFKNM47Y.js.map} +1 -1
  108. package/dist/{chunk-ANEBYNP6.cjs → chunk-RHA7MWOI.cjs} +39 -39
  109. package/dist/{chunk-ANEBYNP6.cjs.map → chunk-RHA7MWOI.cjs.map} +1 -1
  110. package/dist/{chunk-Q2T2Q4S5.cjs → chunk-RRS33WBW.cjs} +3 -3
  111. package/dist/{chunk-Q2T2Q4S5.cjs.map → chunk-RRS33WBW.cjs.map} +1 -1
  112. package/dist/{chunk-TLOT3CIB.js → chunk-S65F3MGF.js} +87 -17
  113. package/dist/chunk-S65F3MGF.js.map +1 -0
  114. package/dist/{chunk-2REMDR2Q.cjs → chunk-SMAUVMWQ.cjs} +5 -5
  115. package/dist/{chunk-2REMDR2Q.cjs.map → chunk-SMAUVMWQ.cjs.map} +1 -1
  116. package/dist/{chunk-XCXPPGJ3.cjs → chunk-SRJJBXTO.cjs} +6 -6
  117. package/dist/{chunk-XCXPPGJ3.cjs.map → chunk-SRJJBXTO.cjs.map} +1 -1
  118. package/dist/{chunk-FICILXAQ.js → chunk-SXARBGNQ.js} +3 -3
  119. package/dist/{chunk-FICILXAQ.js.map → chunk-SXARBGNQ.js.map} +1 -1
  120. package/dist/{chunk-NKD5XK43.js → chunk-TEVHVRZI.js} +5 -5
  121. package/dist/{chunk-NKD5XK43.js.map → chunk-TEVHVRZI.js.map} +1 -1
  122. package/dist/{chunk-LO7CBY5Q.js → chunk-VF2DSR6J.js} +5 -5
  123. package/dist/{chunk-LO7CBY5Q.js.map → chunk-VF2DSR6J.js.map} +1 -1
  124. package/dist/{chunk-WMFH3SH2.cjs → chunk-VIX5OA2V.cjs} +3 -3
  125. package/dist/{chunk-WMFH3SH2.cjs.map → chunk-VIX5OA2V.cjs.map} +1 -1
  126. package/dist/{chunk-HN3V6UA4.cjs → chunk-WYHOHNYZ.cjs} +9 -9
  127. package/dist/{chunk-HN3V6UA4.cjs.map → chunk-WYHOHNYZ.cjs.map} +1 -1
  128. package/dist/{chunk-5VMRQT5S.cjs → chunk-X37VNBBB.cjs} +4 -4
  129. package/dist/{chunk-5VMRQT5S.cjs.map → chunk-X37VNBBB.cjs.map} +1 -1
  130. package/dist/{chunk-6M7OOHNA.js → chunk-XBT4ZT22.js} +6 -6
  131. package/dist/{chunk-6M7OOHNA.js.map → chunk-XBT4ZT22.js.map} +1 -1
  132. package/dist/{chunk-DOTOVTE2.js → chunk-YH452QGH.js} +4 -4
  133. package/dist/{chunk-DOTOVTE2.js.map → chunk-YH452QGH.js.map} +1 -1
  134. package/dist/{chunk-R7X4YOSH.js → chunk-YWORLTQM.js} +3 -3
  135. package/dist/{chunk-R7X4YOSH.js.map → chunk-YWORLTQM.js.map} +1 -1
  136. package/dist/{chunk-CTYPGLJG.cjs → chunk-ZATCZFSW.cjs} +10 -10
  137. package/dist/{chunk-CTYPGLJG.cjs.map → chunk-ZATCZFSW.cjs.map} +1 -1
  138. package/dist/{chunk-LGR7SFQ5.cjs → chunk-ZSEAPJ73.cjs} +19 -19
  139. package/dist/{chunk-LGR7SFQ5.cjs.map → chunk-ZSEAPJ73.cjs.map} +1 -1
  140. package/dist/{chunk-GME2ZNSG.cjs → chunk-ZV7XANBD.cjs} +4 -4
  141. package/dist/{chunk-GME2ZNSG.cjs.map → chunk-ZV7XANBD.cjs.map} +1 -1
  142. package/dist/docs/SKILL.md +1 -1
  143. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  144. package/dist/server/handlers/a2a.cjs +10 -10
  145. package/dist/server/handlers/a2a.d.ts +12 -6
  146. package/dist/server/handlers/a2a.d.ts.map +1 -1
  147. package/dist/server/handlers/a2a.js +1 -1
  148. package/dist/server/handlers/agent-builder.cjs +16 -16
  149. package/dist/server/handlers/agent-builder.js +1 -1
  150. package/dist/server/handlers/agent-versions.cjs +8 -8
  151. package/dist/server/handlers/agent-versions.js +1 -1
  152. package/dist/server/handlers/agents.cjs +38 -38
  153. package/dist/server/handlers/agents.js +1 -1
  154. package/dist/server/handlers/auth.cjs +11 -11
  155. package/dist/server/handlers/auth.js +1 -1
  156. package/dist/server/handlers/channels.cjs +5 -5
  157. package/dist/server/handlers/channels.js +1 -1
  158. package/dist/server/handlers/conversations.cjs +5 -5
  159. package/dist/server/handlers/conversations.js +1 -1
  160. package/dist/server/handlers/datasets.cjs +26 -26
  161. package/dist/server/handlers/datasets.js +1 -1
  162. package/dist/server/handlers/logs.cjs +4 -4
  163. package/dist/server/handlers/logs.js +1 -1
  164. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  165. package/dist/server/handlers/mcp-client-versions.js +1 -1
  166. package/dist/server/handlers/memory.cjs +27 -27
  167. package/dist/server/handlers/memory.js +1 -1
  168. package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
  169. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  170. package/dist/server/handlers/observability.cjs +44 -36
  171. package/dist/server/handlers/observability.d.ts +212 -0
  172. package/dist/server/handlers/observability.d.ts.map +1 -1
  173. package/dist/server/handlers/observability.js +2 -2
  174. package/dist/server/handlers/processor-providers.cjs +3 -3
  175. package/dist/server/handlers/processor-providers.js +1 -1
  176. package/dist/server/handlers/processors.cjs +4 -4
  177. package/dist/server/handlers/processors.js +1 -1
  178. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  179. package/dist/server/handlers/prompt-block-versions.js +1 -1
  180. package/dist/server/handlers/responses.cjs +4 -4
  181. package/dist/server/handlers/responses.js +1 -1
  182. package/dist/server/handlers/responses.storage.cjs +8 -8
  183. package/dist/server/handlers/responses.storage.js +1 -1
  184. package/dist/server/handlers/schedules.cjs +6 -6
  185. package/dist/server/handlers/schedules.d.ts +43 -4
  186. package/dist/server/handlers/schedules.d.ts.map +1 -1
  187. package/dist/server/handlers/schedules.js +1 -1
  188. package/dist/server/handlers/scorer-versions.cjs +8 -8
  189. package/dist/server/handlers/scorer-versions.js +1 -1
  190. package/dist/server/handlers/scores.cjs +7 -7
  191. package/dist/server/handlers/scores.js +1 -1
  192. package/dist/server/handlers/stored-agents.cjs +7 -7
  193. package/dist/server/handlers/stored-agents.js +1 -1
  194. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  195. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  196. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  197. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  198. package/dist/server/handlers/stored-scorers.cjs +6 -6
  199. package/dist/server/handlers/stored-scorers.js +1 -1
  200. package/dist/server/handlers/stored-skills.cjs +7 -7
  201. package/dist/server/handlers/stored-skills.js +1 -1
  202. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  203. package/dist/server/handlers/stored-workspaces.js +1 -1
  204. package/dist/server/handlers/system.cjs +2 -2
  205. package/dist/server/handlers/system.js +1 -1
  206. package/dist/server/handlers/tool-providers.cjs +5 -5
  207. package/dist/server/handlers/tool-providers.js +1 -1
  208. package/dist/server/handlers/tools.cjs +6 -6
  209. package/dist/server/handlers/tools.js +1 -1
  210. package/dist/server/handlers/utils.cjs +10 -10
  211. package/dist/server/handlers/utils.js +1 -1
  212. package/dist/server/handlers/vector.cjs +16 -16
  213. package/dist/server/handlers/vector.js +1 -1
  214. package/dist/server/handlers/voice.cjs +8 -8
  215. package/dist/server/handlers/voice.js +1 -1
  216. package/dist/server/handlers/workflows.cjs +24 -24
  217. package/dist/server/handlers/workflows.js +1 -1
  218. package/dist/server/handlers/workspace.cjs +26 -26
  219. package/dist/server/handlers/workspace.js +1 -1
  220. package/dist/server/handlers.cjs +38 -38
  221. package/dist/server/handlers.js +14 -14
  222. package/dist/server/schemas/index.cjs +203 -203
  223. package/dist/server/schemas/index.js +7 -7
  224. package/dist/server/schemas/schedules.d.ts +53 -5
  225. package/dist/server/schemas/schedules.d.ts.map +1 -1
  226. package/dist/server/server-adapter/index.cjs +302 -300
  227. package/dist/server/server-adapter/index.cjs.map +1 -1
  228. package/dist/server/server-adapter/index.js +38 -36
  229. package/dist/server/server-adapter/index.js.map +1 -1
  230. package/dist/server/server-adapter/routes/observability.d.ts +209 -1
  231. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  232. package/package.json +5 -5
  233. package/dist/chunk-33USMBWV.js.map +0 -1
  234. package/dist/chunk-ODCWNXTX.cjs.map +0 -1
  235. package/dist/chunk-TLOT3CIB.js.map +0 -1
  236. package/dist/chunk-X3RINDH6.js.map +0 -1
  237. package/dist/chunk-ZCCXXT7V.cjs.map +0 -1
  238. package/dist/chunk-ZHEQYOTL.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"names":[],"mappings":"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","file":"chunk-67TYG7WH.js","sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import { coreFeatures } from '@mastra/core/features';\n\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: any, platform: string) {\n const channels = mastra.channels ?? {};\n const channel = Object.values(channels).find((c: any) => c.id === platform) as any;\n if (!channel) {\n const available = Object.values(channels)\n .map((c: any) => c.id)\n .join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\nfunction assertAgentExists(mastra: any, agentId: string) {\n const agent = mastra.getAgentById?.(agentId);\n if (!agent) {\n throw new HTTPException(404, {\n message: `Agent \"${agentId}\" not found`,\n });\n }\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = (mastra as any).channels ?? {};\n return Object.values(channels).map((channel: any) => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n assertAgentExists(mastra, agentId);\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"names":[],"mappings":"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","file":"chunk-KUEMDK4R.js","sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import { coreFeatures } from '@mastra/core/features';\n\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: any, platform: string) {\n const channels = mastra.channels ?? {};\n const channel = Object.values(channels).find((c: any) => c.id === platform) as any;\n if (!channel) {\n const available = Object.values(channels)\n .map((c: any) => c.id)\n .join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\nfunction assertAgentExists(mastra: any, agentId: string) {\n const agent = mastra.getAgentById?.(agentId);\n if (!agent) {\n throw new HTTPException(404, {\n message: `Agent \"${agentId}\" not found`,\n });\n }\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = (mastra as any).channels ?? {};\n return Object.values(channels).map((channel: any) => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n assertAgentExists(mastra, agentId);\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"]}
@@ -1,12 +1,12 @@
1
- import { NEW_ROUTES, LIST_SCORES, LIST_LOGS, LIST_FEEDBACK, GET_TAGS, GET_SERVICE_NAMES, GET_SCORE_TIME_SERIES, GET_SCORE_PERCENTILES, GET_SCORE_BREAKDOWN, GET_SCORE_AGGREGATE, GET_SCORE, GET_METRIC_TIME_SERIES, GET_METRIC_PERCENTILES, GET_METRIC_NAMES, GET_METRIC_LABEL_VALUES, GET_METRIC_LABEL_KEYS, GET_METRIC_BREAKDOWN, GET_METRIC_AGGREGATE, GET_FEEDBACK_TIME_SERIES, GET_FEEDBACK_PERCENTILES, GET_FEEDBACK_BREAKDOWN, GET_FEEDBACK_AGGREGATE, GET_ENVIRONMENTS, GET_ENTITY_TYPES, GET_ENTITY_NAMES, CREATE_SCORE, CREATE_FEEDBACK } from './chunk-R7X4YOSH.js';
1
+ import { NEW_ROUTES, LIST_SCORES, LIST_LOGS, LIST_FEEDBACK, GET_TAGS, GET_SERVICE_NAMES, GET_SCORE_TIME_SERIES, GET_SCORE_PERCENTILES, GET_SCORE_BREAKDOWN, GET_SCORE_AGGREGATE, GET_SCORE, GET_METRIC_TIME_SERIES, GET_METRIC_PERCENTILES, GET_METRIC_NAMES, GET_METRIC_LABEL_VALUES, GET_METRIC_LABEL_KEYS, GET_METRIC_BREAKDOWN, GET_METRIC_AGGREGATE, GET_FEEDBACK_TIME_SERIES, GET_FEEDBACK_PERCENTILES, GET_FEEDBACK_BREAKDOWN, GET_FEEDBACK_AGGREGATE, GET_ENVIRONMENTS, GET_ENTITY_TYPES, GET_ENTITY_NAMES, CREATE_SCORE, CREATE_FEEDBACK } from './chunk-YWORLTQM.js';
2
2
  import { getObservabilityStore, getStorage } from './chunk-4L2UVFJO.js';
3
- import { handleError } from './chunk-P23KBWKB.js';
4
3
  import { createRoute, pickParams, wrapSchemaForQueryParams } from './chunk-KDUX3YN3.js';
4
+ import { handleError } from './chunk-P23KBWKB.js';
5
5
  import { HTTPException } from './chunk-6QWQZI4Q.js';
6
6
  import { __export } from './chunk-PR4QN5HX.js';
7
7
  import { extractTrajectoryFromTrace, listScoresResponseSchema } from '@mastra/core/evals';
8
8
  import { scoreTraces } from '@mastra/core/evals/scoreTraces';
9
- import { dateRangeSchema, listTracesResponseSchema, tracesFilterSchema, paginationArgsSchema, tracesOrderBySchema, getTraceResponseSchema, getTraceArgsSchema, getTraceLightResponseSchema, getSpanResponseSchema, getSpanArgsSchema, scoreTracesResponseSchema, scoreTracesRequestSchema, spanIdsSchema } from '@mastra/core/storage';
9
+ import { dateRangeSchema, listTracesResponseSchema, tracesFilterSchema, paginationArgsSchema, tracesOrderBySchema, listBranchesResponseSchema, branchesFilterSchema, branchesOrderBySchema, getBranchResponseSchema, getBranchArgsSchema, getTraceResponseSchema, getTraceArgsSchema, getTraceLightResponseSchema, getSpanResponseSchema, getSpanArgsSchema, scoreTracesResponseSchema, scoreTracesRequestSchema, spanIdsSchema } from '@mastra/core/storage';
10
10
  import { z } from 'zod/v4';
11
11
 
12
12
  // src/server/handlers/observability.ts
@@ -14,6 +14,7 @@ var observability_exports = {};
14
14
  __export(observability_exports, {
15
15
  CREATE_FEEDBACK: () => CREATE_FEEDBACK,
16
16
  CREATE_SCORE: () => CREATE_SCORE,
17
+ GET_BRANCH_ROUTE: () => GET_BRANCH_ROUTE,
17
18
  GET_ENTITY_NAMES: () => GET_ENTITY_NAMES,
18
19
  GET_ENTITY_TYPES: () => GET_ENTITY_TYPES,
19
20
  GET_ENVIRONMENTS: () => GET_ENVIRONMENTS,
@@ -39,6 +40,7 @@ __export(observability_exports, {
39
40
  GET_TRACE_LIGHT_ROUTE: () => GET_TRACE_LIGHT_ROUTE,
40
41
  GET_TRACE_ROUTE: () => GET_TRACE_ROUTE,
41
42
  GET_TRACE_TRAJECTORY_ROUTE: () => GET_TRACE_TRAJECTORY_ROUTE,
43
+ LIST_BRANCHES_ROUTE: () => LIST_BRANCHES_ROUTE,
42
44
  LIST_FEEDBACK: () => LIST_FEEDBACK,
43
45
  LIST_LOGS: () => LIST_LOGS,
44
46
  LIST_SCORES: () => LIST_SCORES,
@@ -111,6 +113,54 @@ var LIST_TRACES_ROUTE = createRoute({
111
113
  }
112
114
  }
113
115
  });
116
+ var LIST_BRANCHES_ROUTE = createRoute({
117
+ method: "GET",
118
+ path: "/observability/branches",
119
+ responseType: "json",
120
+ queryParamSchema: wrapSchemaForQueryParams(
121
+ branchesFilterSchema.extend(paginationArgsSchema.shape).extend(branchesOrderBySchema.shape).partial()
122
+ ),
123
+ responseSchema: listBranchesResponseSchema,
124
+ summary: "List trace branches",
125
+ description: "Returns a paginated list of branch-anchor spans (e.g., AGENT_RUN, WORKFLOW_RUN, TOOL_CALL) across all traces. Unlike listTraces (one row per root-rooted trace), each row here is a single anchor span -- including ones nested under a different root entity.",
126
+ tags: ["Observability"],
127
+ requiresAuth: true,
128
+ handler: async ({ mastra, ...params }) => {
129
+ try {
130
+ const filters = pickParams(branchesFilterSchema, params);
131
+ const pagination = pickParams(paginationArgsSchema, params);
132
+ const orderBy = pickParams(branchesOrderBySchema, params);
133
+ const observabilityStore = await getObservabilityStore(mastra);
134
+ return await observabilityStore.listBranches({ filters, pagination, orderBy });
135
+ } catch (error) {
136
+ return handleError(error, "Error listing branches");
137
+ }
138
+ }
139
+ });
140
+ var GET_BRANCH_ROUTE = createRoute({
141
+ method: "GET",
142
+ path: "/observability/traces/:traceId/branches/:spanId",
143
+ responseType: "json",
144
+ pathParamSchema: getBranchArgsSchema.pick({ traceId: true, spanId: true }),
145
+ queryParamSchema: wrapSchemaForQueryParams(getBranchArgsSchema.pick({ depth: true })),
146
+ responseSchema: getBranchResponseSchema,
147
+ summary: "Get trace branch by span ID",
148
+ description: "Returns the subtree of spans rooted at the given span. The optional `depth` query param bounds descendant levels below the anchor (0 = anchor only; omitted = full subtree).",
149
+ tags: ["Observability"],
150
+ requiresAuth: true,
151
+ handler: async ({ mastra, traceId, spanId, depth }) => {
152
+ try {
153
+ const observabilityStore = await getObservabilityStore(mastra);
154
+ const branch = await observabilityStore.getBranch({ traceId, spanId, depth });
155
+ if (!branch) {
156
+ throw new HTTPException(404, { message: `Branch not found for span '${spanId}' in trace '${traceId}'` });
157
+ }
158
+ return branch;
159
+ } catch (error) {
160
+ return handleError(error, "Error getting branch");
161
+ }
162
+ }
163
+ });
114
164
  var GET_TRACE_ROUTE = createRoute({
115
165
  method: "GET",
116
166
  path: "/observability/traces/:traceId",
@@ -272,6 +322,6 @@ var LIST_SCORES_BY_SPAN_ROUTE = createRoute({
272
322
  }
273
323
  });
274
324
 
275
- export { GET_SPAN_ROUTE, GET_TRACE_LIGHT_ROUTE, GET_TRACE_ROUTE, GET_TRACE_TRAJECTORY_ROUTE, LIST_SCORES_BY_SPAN_ROUTE, LIST_TRACES_ROUTE, SCORE_TRACES_ROUTE, observability_exports };
276
- //# sourceMappingURL=chunk-X3RINDH6.js.map
277
- //# sourceMappingURL=chunk-X3RINDH6.js.map
325
+ export { GET_BRANCH_ROUTE, GET_SPAN_ROUTE, GET_TRACE_LIGHT_ROUTE, GET_TRACE_ROUTE, GET_TRACE_TRAJECTORY_ROUTE, LIST_BRANCHES_ROUTE, LIST_SCORES_BY_SPAN_ROUTE, LIST_TRACES_ROUTE, SCORE_TRACES_ROUTE, observability_exports };
326
+ //# sourceMappingURL=chunk-L3LU2FSK.js.map
327
+ //# sourceMappingURL=chunk-L3LU2FSK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/observability.ts"],"names":[],"mappings":"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","file":"chunk-L3LU2FSK.js","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport { extractTrajectoryFromTrace, listScoresResponseSchema } from '@mastra/core/evals';\nimport { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { ScoresStorage } from '@mastra/core/storage';\nimport {\n tracesFilterSchema,\n tracesOrderBySchema,\n paginationArgsSchema,\n spanIdsSchema,\n listTracesResponseSchema,\n scoreTracesRequestSchema,\n scoreTracesResponseSchema,\n getTraceArgsSchema,\n getTraceResponseSchema,\n getTraceLightResponseSchema,\n getSpanArgsSchema,\n getSpanResponseSchema,\n dateRangeSchema,\n branchesFilterSchema,\n branchesOrderBySchema,\n listBranchesResponseSchema,\n getBranchArgsSchema,\n getBranchResponseSchema,\n} from '@mastra/core/storage';\nimport { z } from 'zod/v4';\nimport { HTTPException } from '../http-exception';\nimport { createRoute, pickParams, wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { getObservabilityStore, getStorage } from './observability-shared';\n\nexport * from './observability-new-endpoints';\n\n// ============================================================================\n// Legacy Parameter Support (backward compatibility with main branch API)\n// ============================================================================\n\n/**\n * Legacy query parameters from the old API (main branch).\n * These are accepted for backward compatibility and transformed to new format.\n */\nconst legacyQueryParamsSchema = z.object({\n // Old: dateRange was in pagination, now it's startedAt in filters\n dateRange: dateRangeSchema.optional(),\n // Old: name matched span names like \"agent run: 'myAgent'\"\n name: z.string().optional(),\n // entityType needs preprocessing to handle legacy 'workflow' value\n entityType: z.preprocess(val => (val === 'workflow' ? 'workflow_run' : val), z.string().optional()),\n});\n\n/**\n * Transforms legacy query parameters to the new format.\n * - dateRange -> startedAt (if startedAt not already set)\n * - name=\"agent run: 'x'\" -> entityId='x', entityType='agent'\n * - name=\"workflow run: 'x'\" -> entityId='x', entityType='workflow_run'\n * - entityType='workflow' -> entityType='workflow_run' (enum value fix)\n */\nfunction transformLegacyParams(params: Record<string, unknown>): Record<string, unknown> {\n const result = { ...params };\n\n // Transform old entityType='workflow' -> 'workflow_run' to support direct handler usage in tests\n if (result.entityType === 'workflow') {\n result.entityType = 'workflow_run';\n }\n\n // Transform old dateRange -> new startedAt\n if (params.dateRange && !params.startedAt) {\n result.startedAt = params.dateRange;\n delete result.dateRange;\n }\n\n // Transform old name -> entityId + entityType\n // Old format: name matched span names like \"agent run: 'myAgent'\" or \"workflow run: 'myWorkflow'\"\n if (typeof params.name === 'string' && !params.entityId) {\n const agentMatch = params.name.match(/^agent run: '([^']+)'$/);\n const workflowMatch = params.name.match(/^workflow run: '([^']+)'$/);\n\n if (agentMatch) {\n result.entityId = agentMatch[1];\n result.entityType = 'agent';\n } else if (workflowMatch) {\n result.entityId = workflowMatch[1];\n result.entityType = 'workflow_run';\n }\n delete result.name;\n }\n\n return result;\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nasync function getScoresStore(mastra: Mastra): Promise<ScoresStorage> {\n const storage = getStorage(mastra);\n const scores = await storage.getStore('scores');\n if (!scores) {\n throw new HTTPException(500, { message: 'Scores storage domain is not available' });\n }\n return scores;\n}\n\n/** Route: GET /observability/traces - paginated trace listing with filtering and sorting. */\nexport const LIST_TRACES_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces',\n responseType: 'json',\n queryParamSchema: wrapSchemaForQueryParams(\n tracesFilterSchema\n .extend(paginationArgsSchema.shape)\n .extend(tracesOrderBySchema.shape)\n .extend(legacyQueryParamsSchema.shape) // Accept legacy params for backward compatibility\n .partial(),\n ),\n responseSchema: listTracesResponseSchema,\n summary: 'List traces',\n description: 'Returns a paginated list of traces with optional filtering and sorting',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Transform legacy params to new format before processing\n const transformedParams = transformLegacyParams(params);\n\n const filters = pickParams(tracesFilterSchema, transformedParams);\n const pagination = pickParams(paginationArgsSchema, transformedParams);\n const orderBy = pickParams(tracesOrderBySchema, transformedParams);\n\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.listTraces({ filters, pagination, orderBy });\n } catch (error) {\n return handleError(error, 'Error listing traces');\n }\n },\n});\n\n/** Route: GET /observability/branches - paginated branch-anchor span listing across all traces. */\nexport const LIST_BRANCHES_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/branches',\n responseType: 'json',\n queryParamSchema: wrapSchemaForQueryParams(\n branchesFilterSchema.extend(paginationArgsSchema.shape).extend(branchesOrderBySchema.shape).partial(),\n ),\n responseSchema: listBranchesResponseSchema,\n summary: 'List trace branches',\n description:\n 'Returns a paginated list of branch-anchor spans (e.g., AGENT_RUN, WORKFLOW_RUN, TOOL_CALL) across all traces. Unlike listTraces (one row per root-rooted trace), each row here is a single anchor span -- including ones nested under a different root entity.',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const filters = pickParams(branchesFilterSchema, params);\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(branchesOrderBySchema, params);\n\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.listBranches({ filters, pagination, orderBy });\n } catch (error) {\n return handleError(error, 'Error listing branches');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId/branches/:spanId - retrieve the subtree rooted at a span. */\nexport const GET_BRANCH_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/branches/:spanId',\n responseType: 'json',\n pathParamSchema: getBranchArgsSchema.pick({ traceId: true, spanId: true }),\n queryParamSchema: wrapSchemaForQueryParams(getBranchArgsSchema.pick({ depth: true })),\n responseSchema: getBranchResponseSchema,\n summary: 'Get trace branch by span ID',\n description:\n 'Returns the subtree of spans rooted at the given span. The optional `depth` query param bounds descendant levels below the anchor (0 = anchor only; omitted = full subtree).',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId, spanId, depth }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const branch = await observabilityStore.getBranch({ traceId, spanId, depth });\n\n if (!branch) {\n throw new HTTPException(404, { message: `Branch not found for span '${spanId}' in trace '${traceId}'` });\n }\n\n return branch;\n } catch (error) {\n return handleError(error, 'Error getting branch');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId - retrieve a single trace with all spans. */\nexport const GET_TRACE_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId',\n responseType: 'json',\n pathParamSchema: getTraceArgsSchema,\n responseSchema: getTraceResponseSchema,\n summary: 'Get AI trace by ID',\n description: 'Returns a complete AI trace with all spans by trace ID',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const trace = await observabilityStore.getTrace({ traceId });\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n return handleError(error, 'Error getting trace');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId/light - lightweight trace for timeline rendering. */\nexport const GET_TRACE_LIGHT_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/light',\n responseType: 'json',\n pathParamSchema: getTraceArgsSchema,\n responseSchema: getTraceLightResponseSchema,\n summary: 'Get lightweight AI trace by ID',\n description:\n 'Returns a trace with lightweight span data (timeline fields only, excludes input/output/attributes/metadata/tags/links)',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const trace = await observabilityStore.getTraceLight({ traceId });\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n return handleError(error, 'Error getting lightweight trace');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId/spans/:spanId - get a single span with full details. */\nexport const GET_SPAN_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/spans/:spanId',\n responseType: 'json',\n pathParamSchema: getSpanArgsSchema,\n responseSchema: getSpanResponseSchema,\n summary: 'Get a single span by ID',\n description: 'Returns a complete span record with all details by trace ID and span ID',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId, spanId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const span = await observabilityStore.getSpan({ traceId, spanId });\n\n if (!span) {\n throw new HTTPException(404, { message: `Span not found` });\n }\n\n return span;\n } catch (error) {\n return handleError(error, 'Error getting span');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId/trajectory - extract trajectory from a trace. */\nexport const GET_TRACE_TRAJECTORY_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/trajectory',\n responseType: 'json',\n pathParamSchema: getTraceArgsSchema,\n responseSchema: z.object({\n steps: z.array(z.unknown()),\n totalDurationMs: z.number().optional(),\n rawOutput: z.unknown().optional(),\n rawWorkflowResult: z.unknown().optional(),\n }),\n summary: 'Extract trajectory from trace',\n description: 'Extracts a structured trajectory (ordered steps) from a trace by analyzing its spans',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const trace = await observabilityStore.getTrace({ traceId });\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n const trajectory = extractTrajectoryFromTrace(trace.spans);\n return trajectory;\n } catch (error) {\n return handleError(error, 'Error extracting trajectory from trace');\n }\n },\n});\n\n/** Route: POST /observability/traces/score - score traces using a specified scorer (fire-and-forget). */\nexport const SCORE_TRACES_ROUTE = createRoute({\n method: 'POST',\n path: '/observability/traces/score',\n responseType: 'json',\n bodySchema: scoreTracesRequestSchema,\n responseSchema: scoreTracesResponseSchema,\n summary: 'Score traces',\n description: 'Scores one or more traces using a specified scorer (fire-and-forget)',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Validate storage exists before starting background task\n getStorage(mastra);\n\n const { scorerName, targets } = params;\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n const logger = mastra.getLogger();\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n return handleError(error, 'Error processing trace scoring');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SPAN_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/:spanId/scores',\n responseType: 'json',\n pathParamSchema: spanIdsSchema,\n // List endpoints accept optional query params; use partial() to allow empty queries.\n queryParamSchema: wrapSchemaForQueryParams(paginationArgsSchema.partial()),\n responseSchema: listScoresResponseSchema,\n summary: 'List scores by span',\n description: 'Returns all scores for a specific span within a trace',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const pagination = pickParams(paginationArgsSchema, params);\n const spanIds = pickParams(spanIdsSchema, params);\n\n const scoresStore = await getScoresStore(mastra);\n\n return await scoresStore.listScoresBySpan({\n ...spanIds,\n pagination,\n });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n },\n});\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkLFZO2LHV_cjs = require('./chunk-LFZO2LHV.cjs');
4
3
  var chunkBYX5LHPW_cjs = require('./chunk-BYX5LHPW.cjs');
5
- var chunkXEERRXWL_cjs = require('./chunk-XEERRXWL.cjs');
6
- var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
4
+ var chunkLFZO2LHV_cjs = require('./chunk-LFZO2LHV.cjs');
5
+ var chunk6V7NAUV4_cjs = require('./chunk-6V7NAUV4.cjs');
7
6
  var chunk7LAFXMXB_cjs = require('./chunk-7LAFXMXB.cjs');
7
+ var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
8
8
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
9
9
  var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
10
10
  var ee = require('@mastra/core/auth/ee');
@@ -106,7 +106,7 @@ async function enforceDeleteMessagesThreadAccess({
106
106
  if (!thread) {
107
107
  throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "Access denied: unable to verify message thread access" });
108
108
  }
109
- await chunkXEERRXWL_cjs.enforceThreadAccess({
109
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
110
110
  mastra,
111
111
  requestContext,
112
112
  threadId,
@@ -570,7 +570,7 @@ var LIST_THREADS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
570
570
  requiresAuth: true,
571
571
  handler: async ({ mastra, agentId, resourceId, metadata, requestContext, page, perPage, orderBy }) => {
572
572
  try {
573
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
573
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
574
574
  const agent = await getAgentFromContext({ mastra, agentId, requestContext });
575
575
  const isGateway = agent ? await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) : false;
576
576
  if (agent && isGateway) {
@@ -700,9 +700,9 @@ var GET_THREAD_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
700
700
  requiresAuth: true,
701
701
  handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
702
702
  try {
703
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
704
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
705
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
703
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
704
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
705
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
706
706
  const agent = await getAgentFromContext({ mastra, agentId, requestContext });
707
707
  const isGateway = agent ? await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) : false;
708
708
  if (agent && isGateway) {
@@ -720,7 +720,7 @@ var GET_THREAD_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
720
720
  };
721
721
  }
722
722
  const thread = chunkLFZO2LHV_cjs.toLocalThread(result.thread);
723
- await chunkXEERRXWL_cjs.enforceThreadAccess({
723
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
724
724
  mastra,
725
725
  requestContext,
726
726
  threadId: effectiveThreadId,
@@ -736,7 +736,7 @@ var GET_THREAD_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
736
736
  if (!thread) {
737
737
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
738
738
  }
739
- await chunkXEERRXWL_cjs.enforceThreadAccess({
739
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
740
740
  mastra,
741
741
  requestContext,
742
742
  threadId: effectiveThreadId,
@@ -753,7 +753,7 @@ var GET_THREAD_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
753
753
  if (!thread) {
754
754
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
755
755
  }
756
- await chunkXEERRXWL_cjs.enforceThreadAccess({
756
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
757
757
  mastra,
758
758
  requestContext,
759
759
  threadId: effectiveThreadId,
@@ -794,9 +794,9 @@ var LIST_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
794
794
  requestContext
795
795
  }) => {
796
796
  try {
797
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
798
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
799
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
797
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
798
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
799
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
800
800
  if (!effectiveThreadId) {
801
801
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "No threadId found" });
802
802
  }
@@ -806,7 +806,7 @@ var LIST_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
806
806
  if (gwClient) {
807
807
  const threadResult = await gwClient.getThread(effectiveThreadId);
808
808
  if (threadResult) {
809
- await chunkXEERRXWL_cjs.enforceThreadAccess({
809
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
810
810
  mastra,
811
811
  requestContext,
812
812
  threadId: effectiveThreadId,
@@ -837,7 +837,7 @@ var LIST_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
837
837
  if (!thread) {
838
838
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
839
839
  }
840
- await chunkXEERRXWL_cjs.enforceThreadAccess({
840
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
841
841
  mastra,
842
842
  requestContext,
843
843
  threadId: effectiveThreadId,
@@ -864,7 +864,7 @@ var LIST_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
864
864
  if (!thread) {
865
865
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
866
866
  }
867
- await chunkXEERRXWL_cjs.enforceThreadAccess({
867
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
868
868
  mastra,
869
869
  requestContext,
870
870
  threadId: effectiveThreadId,
@@ -902,9 +902,9 @@ var GET_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
902
902
  requiresAuth: true,
903
903
  handler: async ({ mastra, agentId, threadId, resourceId, requestContext, memoryConfig }) => {
904
904
  try {
905
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
906
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
907
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
905
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
906
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
907
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
908
908
  const gwAgent = await getAgentFromContext({ mastra, agentId, requestContext });
909
909
  if (gwAgent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(gwAgent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
910
910
  return { workingMemory: null, source: "thread", workingMemoryTemplate: null, threadExists: true };
@@ -917,7 +917,7 @@ var GET_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
917
917
  const config = memory.getMergedThreadConfig(memoryConfig || {});
918
918
  const source = config.workingMemory?.scope !== "thread" && effectiveResourceId ? "resource" : "thread";
919
919
  if (thread || source === "resource") {
920
- await chunkXEERRXWL_cjs.enforceThreadAccess({
920
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
921
921
  mastra,
922
922
  requestContext,
923
923
  threadId: effectiveThreadId,
@@ -952,7 +952,7 @@ var SAVE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
952
952
  requiresAuth: true,
953
953
  handler: async ({ mastra, agentId, messages, requestContext }) => {
954
954
  try {
955
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, void 0);
955
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, void 0);
956
956
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
957
957
  if (!memory) {
958
958
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
@@ -993,7 +993,7 @@ var SAVE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
993
993
  const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
994
994
  for (const threadId of threadIds) {
995
995
  const thread = await memory.getThreadById({ threadId });
996
- await chunkXEERRXWL_cjs.enforceThreadAccess({
996
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
997
997
  mastra,
998
998
  requestContext,
999
999
  threadId,
@@ -1006,7 +1006,7 @@ var SAVE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1006
1006
  const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
1007
1007
  for (const threadId of threadIds) {
1008
1008
  const thread = await memory.getThreadById({ threadId });
1009
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1009
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1010
1010
  mastra,
1011
1011
  requestContext,
1012
1012
  threadId,
@@ -1041,10 +1041,10 @@ var CREATE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1041
1041
  requiresAuth: true,
1042
1042
  handler: async ({ mastra, agentId, resourceId, title, metadata, threadId, requestContext }) => {
1043
1043
  try {
1044
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1044
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1045
1045
  const effectiveThreadId = threadId ?? mastra.generateId();
1046
- chunkXEERRXWL_cjs.validateBody({ resourceId: effectiveResourceId });
1047
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1046
+ chunk6V7NAUV4_cjs.validateBody({ resourceId: effectiveResourceId });
1047
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1048
1048
  mastra,
1049
1049
  requestContext,
1050
1050
  threadId: effectiveThreadId,
@@ -1094,16 +1094,16 @@ var UPDATE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1094
1094
  requiresAuth: true,
1095
1095
  handler: async ({ mastra, agentId, threadId, title, metadata, resourceId, requestContext }) => {
1096
1096
  try {
1097
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
1098
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1099
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
1097
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
1098
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1099
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
1100
1100
  const agent = await getAgentFromContext({ mastra, agentId, requestContext });
1101
1101
  if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent)) {
1102
1102
  const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
1103
1103
  if (gwClient) {
1104
1104
  const existing = await gwClient.getThread(effectiveThreadId);
1105
1105
  if (existing) {
1106
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1106
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1107
1107
  mastra,
1108
1108
  requestContext,
1109
1109
  threadId: effectiveThreadId,
@@ -1128,7 +1128,7 @@ var UPDATE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1128
1128
  if (!thread) {
1129
1129
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
1130
1130
  }
1131
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1131
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1132
1132
  mastra,
1133
1133
  requestContext,
1134
1134
  threadId: effectiveThreadId,
@@ -1168,16 +1168,16 @@ var DELETE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1168
1168
  requiresAuth: true,
1169
1169
  handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
1170
1170
  try {
1171
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
1172
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1173
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
1171
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
1172
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1173
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
1174
1174
  const agent = await getAgentFromContext({ mastra, agentId, requestContext });
1175
1175
  if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent)) {
1176
1176
  const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
1177
1177
  if (gwClient) {
1178
1178
  const existing = await gwClient.getThread(effectiveThreadId);
1179
1179
  if (existing) {
1180
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1180
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1181
1181
  mastra,
1182
1182
  requestContext,
1183
1183
  threadId: effectiveThreadId,
@@ -1201,7 +1201,7 @@ var DELETE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1201
1201
  if (!thread) {
1202
1202
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
1203
1203
  }
1204
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1204
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1205
1205
  mastra,
1206
1206
  requestContext,
1207
1207
  threadId: effectiveThreadId,
@@ -1230,10 +1230,10 @@ var CLONE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1230
1230
  requiresAuth: true,
1231
1231
  handler: async ({ mastra, agentId, threadId, newThreadId, resourceId, title, metadata, options, requestContext }) => {
1232
1232
  try {
1233
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
1234
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1233
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
1234
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1235
1235
  const effectiveNewThreadId = newThreadId ?? mastra.generateId();
1236
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
1236
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId });
1237
1237
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
1238
1238
  if (!memory) {
1239
1239
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
@@ -1243,14 +1243,14 @@ var CLONE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1243
1243
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Source thread not found" });
1244
1244
  }
1245
1245
  const cloneResourceId = effectiveResourceId ?? sourceThread.resourceId ?? void 0;
1246
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1246
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1247
1247
  mastra,
1248
1248
  requestContext,
1249
1249
  threadId: effectiveThreadId,
1250
1250
  thread: sourceThread,
1251
1251
  effectiveResourceId
1252
1252
  });
1253
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1253
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1254
1254
  mastra,
1255
1255
  requestContext,
1256
1256
  threadId: effectiveNewThreadId,
@@ -1285,9 +1285,9 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1285
1285
  requiresAuth: true,
1286
1286
  handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, requestContext }) => {
1287
1287
  try {
1288
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
1289
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1290
- chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId, workingMemory });
1288
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
1289
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1290
+ chunk6V7NAUV4_cjs.validateBody({ threadId: effectiveThreadId, workingMemory });
1291
1291
  const gwAgent = await getAgentFromContext({ mastra, agentId, requestContext });
1292
1292
  if (gwAgent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(gwAgent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
1293
1293
  return { success: true };
@@ -1300,7 +1300,7 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1300
1300
  if (!thread) {
1301
1301
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
1302
1302
  }
1303
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1303
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1304
1304
  mastra,
1305
1305
  requestContext,
1306
1306
  threadId: effectiveThreadId,
@@ -1333,7 +1333,7 @@ var DELETE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1333
1333
  requiresAuth: true,
1334
1334
  handler: async ({ mastra, agentId, resourceId, messageIds, requestContext }) => {
1335
1335
  try {
1336
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1336
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1337
1337
  if (messageIds === void 0 || messageIds === null) {
1338
1338
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "messageIds is required" });
1339
1339
  }
@@ -1413,9 +1413,9 @@ var SEARCH_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1413
1413
  requiresAuth: true,
1414
1414
  handler: async ({ mastra, agentId, searchQuery, resourceId, threadId, limit = 20, requestContext, memoryConfig }) => {
1415
1415
  try {
1416
- const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
1417
- const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
1418
- chunkXEERRXWL_cjs.validateBody({ searchQuery, resourceId: effectiveResourceId });
1416
+ const effectiveResourceId = chunk6V7NAUV4_cjs.getEffectiveResourceId(requestContext, resourceId);
1417
+ const effectiveThreadId = chunk6V7NAUV4_cjs.getEffectiveThreadId(requestContext, threadId);
1418
+ chunk6V7NAUV4_cjs.validateBody({ searchQuery, resourceId: effectiveResourceId });
1419
1419
  const agent = await getAgentFromContext({ mastra, agentId, requestContext });
1420
1420
  if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
1421
1421
  return {
@@ -1469,7 +1469,7 @@ var SEARCH_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
1469
1469
  searchType: hasSemanticRecall ? "semantic" : "text"
1470
1470
  };
1471
1471
  }
1472
- await chunkXEERRXWL_cjs.enforceThreadAccess({
1472
+ await chunk6V7NAUV4_cjs.enforceThreadAccess({
1473
1473
  mastra,
1474
1474
  requestContext,
1475
1475
  threadId: effectiveThreadId,
@@ -1722,5 +1722,5 @@ exports.UPDATE_THREAD_ROUTE = UPDATE_THREAD_ROUTE;
1722
1722
  exports.UPDATE_WORKING_MEMORY_ROUTE = UPDATE_WORKING_MEMORY_ROUTE;
1723
1723
  exports.getTextContent = getTextContent;
1724
1724
  exports.memory_exports = memory_exports;
1725
- //# sourceMappingURL=chunk-T6MMZWHW.cjs.map
1726
- //# sourceMappingURL=chunk-T6MMZWHW.cjs.map
1725
+ //# sourceMappingURL=chunk-L5GHLBMN.cjs.map
1726
+ //# sourceMappingURL=chunk-L5GHLBMN.cjs.map