@mastra/server 1.48.1-alpha.0 → 1.49.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 (344) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +10 -0
  3. package/dist/{api-schema-manifest-BWKCYCQ5.cjs → api-schema-manifest-JLJ5HJVI.cjs} +6 -6
  4. package/dist/{api-schema-manifest-BWKCYCQ5.cjs.map → api-schema-manifest-JLJ5HJVI.cjs.map} +1 -1
  5. package/dist/{api-schema-manifest-GOPIDVBN.js → api-schema-manifest-OWVACY6K.js} +4 -4
  6. package/dist/{api-schema-manifest-GOPIDVBN.js.map → api-schema-manifest-OWVACY6K.js.map} +1 -1
  7. package/dist/{chunk-3YQ7NWF6.cjs → chunk-22EM2GBH.cjs} +220 -133
  8. package/dist/chunk-22EM2GBH.cjs.map +1 -0
  9. package/dist/{chunk-XYARXEQO.js → chunk-2B3T4FDQ.js} +5 -5
  10. package/dist/{chunk-XYARXEQO.js.map → chunk-2B3T4FDQ.js.map} +1 -1
  11. package/dist/{chunk-GNVPX27J.js → chunk-2D3SDIRD.js} +3 -3
  12. package/dist/{chunk-GNVPX27J.js.map → chunk-2D3SDIRD.js.map} +1 -1
  13. package/dist/{chunk-ATZSN4MH.cjs → chunk-2VO3BDE5.cjs} +25 -25
  14. package/dist/{chunk-ATZSN4MH.cjs.map → chunk-2VO3BDE5.cjs.map} +1 -1
  15. package/dist/{chunk-2QR65733.js → chunk-344TOMHC.js} +4 -4
  16. package/dist/{chunk-2QR65733.js.map → chunk-344TOMHC.js.map} +1 -1
  17. package/dist/{chunk-22YWJT5H.js → chunk-3VNAOZ3S.js} +3 -3
  18. package/dist/{chunk-22YWJT5H.js.map → chunk-3VNAOZ3S.js.map} +1 -1
  19. package/dist/{chunk-OVFFGZLA.cjs → chunk-3YFDOQMM.cjs} +17 -17
  20. package/dist/{chunk-OVFFGZLA.cjs.map → chunk-3YFDOQMM.cjs.map} +1 -1
  21. package/dist/{chunk-RVD3DGBZ.cjs → chunk-42M6Y2OD.cjs} +3 -3
  22. package/dist/{chunk-RVD3DGBZ.cjs.map → chunk-42M6Y2OD.cjs.map} +1 -1
  23. package/dist/{chunk-JFKJJR3U.cjs → chunk-45SRRAK2.cjs} +41 -41
  24. package/dist/{chunk-JFKJJR3U.cjs.map → chunk-45SRRAK2.cjs.map} +1 -1
  25. package/dist/{chunk-5GQWTNAY.cjs → chunk-46D4LXPJ.cjs} +101 -101
  26. package/dist/{chunk-5GQWTNAY.cjs.map → chunk-46D4LXPJ.cjs.map} +1 -1
  27. package/dist/{chunk-4744QXJ5.cjs → chunk-4ATFZDHI.cjs} +13 -13
  28. package/dist/{chunk-4744QXJ5.cjs.map → chunk-4ATFZDHI.cjs.map} +1 -1
  29. package/dist/{chunk-7WWWWHIQ.js → chunk-4DVFBBKV.js} +3 -3
  30. package/dist/{chunk-7WWWWHIQ.js.map → chunk-4DVFBBKV.js.map} +1 -1
  31. package/dist/{chunk-LH5CRODT.js → chunk-4HSM2TU2.js} +7 -7
  32. package/dist/{chunk-LH5CRODT.js.map → chunk-4HSM2TU2.js.map} +1 -1
  33. package/dist/chunk-4HWBP3K4.cjs +753 -0
  34. package/dist/{chunk-AXCPENWP.cjs.map → chunk-4HWBP3K4.cjs.map} +1 -1
  35. package/dist/{chunk-KLV64VVH.js → chunk-4W5AVWZH.js} +2 -2
  36. package/dist/chunk-4W5AVWZH.js.map +1 -0
  37. package/dist/{chunk-FPJGLJUZ.cjs → chunk-57BKC4ZW.cjs} +37 -37
  38. package/dist/{chunk-FPJGLJUZ.cjs.map → chunk-57BKC4ZW.cjs.map} +1 -1
  39. package/dist/{chunk-ZO7HYQJT.js → chunk-5NBDNR2B.js} +10 -10
  40. package/dist/{chunk-ZO7HYQJT.js.map → chunk-5NBDNR2B.js.map} +1 -1
  41. package/dist/{chunk-M3UP3Z3G.cjs → chunk-5SY2ZQ3R.cjs} +2 -2
  42. package/dist/chunk-5SY2ZQ3R.cjs.map +1 -0
  43. package/dist/{chunk-6EDRDYGN.cjs → chunk-6KPMWM5N.cjs} +89 -89
  44. package/dist/{chunk-6EDRDYGN.cjs.map → chunk-6KPMWM5N.cjs.map} +1 -1
  45. package/dist/{chunk-6QJBHJVD.js → chunk-6ZQIEZFG.js} +5 -5
  46. package/dist/{chunk-6QJBHJVD.js.map → chunk-6ZQIEZFG.js.map} +1 -1
  47. package/dist/{chunk-UXYPH6HP.cjs → chunk-76YQAK7Q.cjs} +13 -13
  48. package/dist/{chunk-UXYPH6HP.cjs.map → chunk-76YQAK7Q.cjs.map} +1 -1
  49. package/dist/{chunk-GTMBHJLQ.js → chunk-7ICIPSVS.js} +6 -6
  50. package/dist/{chunk-GTMBHJLQ.js.map → chunk-7ICIPSVS.js.map} +1 -1
  51. package/dist/{chunk-J6XQWEEV.cjs → chunk-7XZQUQEO.cjs} +8 -8
  52. package/dist/{chunk-J6XQWEEV.cjs.map → chunk-7XZQUQEO.cjs.map} +1 -1
  53. package/dist/{chunk-VKCPJYAX.js → chunk-BALLHDVH.js} +5 -5
  54. package/dist/{chunk-VKCPJYAX.js.map → chunk-BALLHDVH.js.map} +1 -1
  55. package/dist/{chunk-QPICFOIK.cjs → chunk-BQ2JQTKA.cjs} +11 -11
  56. package/dist/{chunk-QPICFOIK.cjs.map → chunk-BQ2JQTKA.cjs.map} +1 -1
  57. package/dist/{chunk-WWPJKPP2.js → chunk-C65RFM5P.js} +12 -6
  58. package/dist/chunk-C65RFM5P.js.map +1 -0
  59. package/dist/{chunk-W4ALUSXG.js → chunk-CCT2USYM.js} +6 -6
  60. package/dist/chunk-CCT2USYM.js.map +1 -0
  61. package/dist/{chunk-63R2BIAL.cjs → chunk-CU3VFK4E.cjs} +19 -19
  62. package/dist/{chunk-63R2BIAL.cjs.map → chunk-CU3VFK4E.cjs.map} +1 -1
  63. package/dist/{chunk-R7D7QQC5.cjs → chunk-D5ANEBEI.cjs} +6 -6
  64. package/dist/{chunk-R7D7QQC5.cjs.map → chunk-D5ANEBEI.cjs.map} +1 -1
  65. package/dist/{chunk-NUQ5EITO.cjs → chunk-D6FUPRXX.cjs} +17 -17
  66. package/dist/{chunk-NUQ5EITO.cjs.map → chunk-D6FUPRXX.cjs.map} +1 -1
  67. package/dist/{chunk-JZBZ3HZR.js → chunk-DAMJJAHO.js} +10 -10
  68. package/dist/{chunk-JZBZ3HZR.js.map → chunk-DAMJJAHO.js.map} +1 -1
  69. package/dist/{chunk-HATXNJ4V.js → chunk-DHAHH4TH.js} +2 -2
  70. package/dist/chunk-DHAHH4TH.js.map +1 -0
  71. package/dist/{chunk-GZ4HWZWE.cjs → chunk-DRDVJ35H.cjs} +7 -7
  72. package/dist/{chunk-GZ4HWZWE.cjs.map → chunk-DRDVJ35H.cjs.map} +1 -1
  73. package/dist/{chunk-A5GLESMH.js → chunk-DRIJ6W3Z.js} +3 -3
  74. package/dist/{chunk-A5GLESMH.js.map → chunk-DRIJ6W3Z.js.map} +1 -1
  75. package/dist/{chunk-WBHJJ3UO.cjs → chunk-EFJCOPJ3.cjs} +129 -129
  76. package/dist/{chunk-WBHJJ3UO.cjs.map → chunk-EFJCOPJ3.cjs.map} +1 -1
  77. package/dist/{chunk-OUQGCJQS.js → chunk-ERCBJA5A.js} +6 -6
  78. package/dist/{chunk-OUQGCJQS.js.map → chunk-ERCBJA5A.js.map} +1 -1
  79. package/dist/{chunk-WXZBPFQS.js → chunk-ET6QFYJQ.js} +5 -5
  80. package/dist/{chunk-WXZBPFQS.js.map → chunk-ET6QFYJQ.js.map} +1 -1
  81. package/dist/{chunk-WRGLWN4J.js → chunk-ETVWGZSU.js} +8 -8
  82. package/dist/{chunk-WRGLWN4J.js.map → chunk-ETVWGZSU.js.map} +1 -1
  83. package/dist/{chunk-ERQWC6JO.js → chunk-EZWVRD45.js} +7 -7
  84. package/dist/{chunk-ERQWC6JO.js.map → chunk-EZWVRD45.js.map} +1 -1
  85. package/dist/{chunk-3X6LP3LD.js → chunk-GIQJF7ZM.js} +5 -5
  86. package/dist/{chunk-3X6LP3LD.js.map → chunk-GIQJF7ZM.js.map} +1 -1
  87. package/dist/{chunk-RS7ZTUH3.cjs → chunk-GJBHQJBK.cjs} +26 -26
  88. package/dist/{chunk-RS7ZTUH3.cjs.map → chunk-GJBHQJBK.cjs.map} +1 -1
  89. package/dist/{chunk-EUKL5LNM.cjs → chunk-GK23JHRL.cjs} +57 -57
  90. package/dist/{chunk-EUKL5LNM.cjs.map → chunk-GK23JHRL.cjs.map} +1 -1
  91. package/dist/{chunk-ORPTO5F2.js → chunk-H7UZ44VA.js} +6 -6
  92. package/dist/{chunk-ORPTO5F2.js.map → chunk-H7UZ44VA.js.map} +1 -1
  93. package/dist/{chunk-KGUHJRHZ.cjs → chunk-HDIYJI2Z.cjs} +3 -3
  94. package/dist/{chunk-KGUHJRHZ.cjs.map → chunk-HDIYJI2Z.cjs.map} +1 -1
  95. package/dist/{chunk-PHATOO2U.js → chunk-HK4SJHYT.js} +3 -3
  96. package/dist/{chunk-PHATOO2U.js.map → chunk-HK4SJHYT.js.map} +1 -1
  97. package/dist/{chunk-A6IFHAMY.cjs → chunk-HR4F4XZV.cjs} +19 -19
  98. package/dist/{chunk-A6IFHAMY.cjs.map → chunk-HR4F4XZV.cjs.map} +1 -1
  99. package/dist/{chunk-ODUTR3YG.cjs → chunk-IEE5MCG5.cjs} +23 -23
  100. package/dist/{chunk-ODUTR3YG.cjs.map → chunk-IEE5MCG5.cjs.map} +1 -1
  101. package/dist/{chunk-433NHSTX.cjs → chunk-IRMEODX4.cjs} +12 -12
  102. package/dist/{chunk-433NHSTX.cjs.map → chunk-IRMEODX4.cjs.map} +1 -1
  103. package/dist/{chunk-3ENQND57.js → chunk-JBSUT5XF.js} +3 -3
  104. package/dist/{chunk-3ENQND57.js.map → chunk-JBSUT5XF.js.map} +1 -1
  105. package/dist/{chunk-SIBBWIG2.cjs → chunk-JJOGTXKN.cjs} +12 -12
  106. package/dist/{chunk-SIBBWIG2.cjs.map → chunk-JJOGTXKN.cjs.map} +1 -1
  107. package/dist/{chunk-RIPB4QC6.js → chunk-JXUL45J6.js} +5 -5
  108. package/dist/{chunk-RIPB4QC6.js.map → chunk-JXUL45J6.js.map} +1 -1
  109. package/dist/{chunk-YLWKZ3VK.cjs → chunk-KIDHIRVO.cjs} +7 -7
  110. package/dist/{chunk-YLWKZ3VK.cjs.map → chunk-KIDHIRVO.cjs.map} +1 -1
  111. package/dist/{chunk-FZGSWPE7.js → chunk-KRZJLGGN.js} +6 -6
  112. package/dist/{chunk-FZGSWPE7.js.map → chunk-KRZJLGGN.js.map} +1 -1
  113. package/dist/{chunk-6XNMQBYE.cjs → chunk-KSN5CWZ7.cjs} +8 -8
  114. package/dist/{chunk-6XNMQBYE.cjs.map → chunk-KSN5CWZ7.cjs.map} +1 -1
  115. package/dist/{chunk-RY5RETAD.js → chunk-L4DD3HSB.js} +3 -3
  116. package/dist/{chunk-RY5RETAD.js.map → chunk-L4DD3HSB.js.map} +1 -1
  117. package/dist/{chunk-SMQKZ2QV.js → chunk-LBY32Z7C.js} +3 -3
  118. package/dist/{chunk-SMQKZ2QV.js.map → chunk-LBY32Z7C.js.map} +1 -1
  119. package/dist/{chunk-OR73MMQ3.js → chunk-LLVTDE4P.js} +6 -6
  120. package/dist/{chunk-OR73MMQ3.js.map → chunk-LLVTDE4P.js.map} +1 -1
  121. package/dist/{chunk-CDZIWIME.js → chunk-LZJM4JTY.js} +5 -5
  122. package/dist/{chunk-CDZIWIME.js.map → chunk-LZJM4JTY.js.map} +1 -1
  123. package/dist/{chunk-NF4PSDGQ.js → chunk-M6GURVJO.js} +4 -4
  124. package/dist/{chunk-NF4PSDGQ.js.map → chunk-M6GURVJO.js.map} +1 -1
  125. package/dist/{chunk-SQJ7VNB7.cjs → chunk-MJS4T74S.cjs} +22 -22
  126. package/dist/{chunk-SQJ7VNB7.cjs.map → chunk-MJS4T74S.cjs.map} +1 -1
  127. package/dist/{chunk-DN2NUSL2.cjs → chunk-N54Q3AQR.cjs} +5 -5
  128. package/dist/{chunk-DN2NUSL2.cjs.map → chunk-N54Q3AQR.cjs.map} +1 -1
  129. package/dist/{chunk-DWLFAZ6X.js → chunk-NUPNOKI2.js} +4 -4
  130. package/dist/{chunk-DWLFAZ6X.js.map → chunk-NUPNOKI2.js.map} +1 -1
  131. package/dist/{chunk-QHP2MCPG.js → chunk-P5NXUYGE.js} +7 -7
  132. package/dist/{chunk-QHP2MCPG.js.map → chunk-P5NXUYGE.js.map} +1 -1
  133. package/dist/{chunk-Z5MTOVTR.js → chunk-PIKPS6Q6.js} +3 -3
  134. package/dist/{chunk-Z5MTOVTR.js.map → chunk-PIKPS6Q6.js.map} +1 -1
  135. package/dist/{chunk-6BV4FKSM.js → chunk-POM4VGLJ.js} +6 -6
  136. package/dist/{chunk-6BV4FKSM.js.map → chunk-POM4VGLJ.js.map} +1 -1
  137. package/dist/{chunk-4LAKBLXV.cjs → chunk-Q56NQYUJ.cjs} +72 -72
  138. package/dist/{chunk-4LAKBLXV.cjs.map → chunk-Q56NQYUJ.cjs.map} +1 -1
  139. package/dist/{chunk-IBUJJIRW.js → chunk-QIQWHDPH.js} +4 -4
  140. package/dist/{chunk-IBUJJIRW.js.map → chunk-QIQWHDPH.js.map} +1 -1
  141. package/dist/{chunk-TQIKCVFQ.cjs → chunk-QOW24SR2.cjs} +4 -4
  142. package/dist/{chunk-TQIKCVFQ.cjs.map → chunk-QOW24SR2.cjs.map} +1 -1
  143. package/dist/{chunk-RXSZMJIR.js → chunk-RCXVCPAD.js} +3 -3
  144. package/dist/{chunk-RXSZMJIR.js.map → chunk-RCXVCPAD.js.map} +1 -1
  145. package/dist/{chunk-ILGUY62R.cjs → chunk-RDU2H7FF.cjs} +20 -20
  146. package/dist/{chunk-ILGUY62R.cjs.map → chunk-RDU2H7FF.cjs.map} +1 -1
  147. package/dist/{chunk-R4C4XFA7.js → chunk-RJCBPQZV.js} +4 -4
  148. package/dist/{chunk-R4C4XFA7.js.map → chunk-RJCBPQZV.js.map} +1 -1
  149. package/dist/{chunk-YL22BKI2.cjs → chunk-RJPRSDIS.cjs} +72 -72
  150. package/dist/{chunk-YL22BKI2.cjs.map → chunk-RJPRSDIS.cjs.map} +1 -1
  151. package/dist/{chunk-V6Z2DEIO.js → chunk-S2JGT2GI.js} +3 -3
  152. package/dist/{chunk-V6Z2DEIO.js.map → chunk-S2JGT2GI.js.map} +1 -1
  153. package/dist/{chunk-Y24N7BKC.cjs → chunk-S4NBNTAN.cjs} +29 -29
  154. package/dist/{chunk-Y24N7BKC.cjs.map → chunk-S4NBNTAN.cjs.map} +1 -1
  155. package/dist/{chunk-QFSMY2ZW.cjs → chunk-SEOGVPOT.cjs} +21 -21
  156. package/dist/{chunk-QFSMY2ZW.cjs.map → chunk-SEOGVPOT.cjs.map} +1 -1
  157. package/dist/{chunk-56AYHXOU.js → chunk-SXZS6VZ3.js} +3 -3
  158. package/dist/{chunk-56AYHXOU.js.map → chunk-SXZS6VZ3.js.map} +1 -1
  159. package/dist/{chunk-4PQR3D5Y.cjs → chunk-SYZ2NTP3.cjs} +2 -2
  160. package/dist/chunk-SYZ2NTP3.cjs.map +1 -0
  161. package/dist/{chunk-ZVDH3EUZ.cjs → chunk-TGKPSQB3.cjs} +17 -17
  162. package/dist/chunk-TGKPSQB3.cjs.map +1 -0
  163. package/dist/{chunk-CVIBRSHE.js → chunk-TQBIGT3Q.js} +7 -7
  164. package/dist/{chunk-CVIBRSHE.js.map → chunk-TQBIGT3Q.js.map} +1 -1
  165. package/dist/{chunk-YSIEX3WZ.cjs → chunk-TZZ2AOOV.cjs} +19 -19
  166. package/dist/{chunk-YSIEX3WZ.cjs.map → chunk-TZZ2AOOV.cjs.map} +1 -1
  167. package/dist/{chunk-SVOOYE4P.cjs → chunk-U52CKL4A.cjs} +72 -72
  168. package/dist/{chunk-SVOOYE4P.cjs.map → chunk-U52CKL4A.cjs.map} +1 -1
  169. package/dist/{chunk-V224FC6Y.cjs → chunk-UHKWQQBG.cjs} +20 -20
  170. package/dist/{chunk-V224FC6Y.cjs.map → chunk-UHKWQQBG.cjs.map} +1 -1
  171. package/dist/{chunk-6QZLGOUC.cjs → chunk-UIAQYIDW.cjs} +6 -6
  172. package/dist/{chunk-6QZLGOUC.cjs.map → chunk-UIAQYIDW.cjs.map} +1 -1
  173. package/dist/{chunk-4AOBPAJQ.cjs → chunk-ULYIMS6J.cjs} +6 -6
  174. package/dist/{chunk-4AOBPAJQ.cjs.map → chunk-ULYIMS6J.cjs.map} +1 -1
  175. package/dist/{chunk-55QAS25J.js → chunk-UY3PA3YA.js} +6 -6
  176. package/dist/{chunk-55QAS25J.js.map → chunk-UY3PA3YA.js.map} +1 -1
  177. package/dist/{chunk-SKYHKW2B.js → chunk-UZQ2ZJUF.js} +9 -9
  178. package/dist/{chunk-SKYHKW2B.js.map → chunk-UZQ2ZJUF.js.map} +1 -1
  179. package/dist/{chunk-FLIAPNUU.js → chunk-VB4SJ6UF.js} +4 -4
  180. package/dist/{chunk-FLIAPNUU.js.map → chunk-VB4SJ6UF.js.map} +1 -1
  181. package/dist/{chunk-JIK3WXOP.cjs → chunk-VZ7EXKEF.cjs} +19 -19
  182. package/dist/{chunk-JIK3WXOP.cjs.map → chunk-VZ7EXKEF.cjs.map} +1 -1
  183. package/dist/{chunk-HDBVD5FJ.js → chunk-W5Q374VQ.js} +7 -7
  184. package/dist/{chunk-HDBVD5FJ.js.map → chunk-W5Q374VQ.js.map} +1 -1
  185. package/dist/{chunk-M6RITLE5.cjs → chunk-WGEIHQXI.cjs} +13 -13
  186. package/dist/{chunk-M6RITLE5.cjs.map → chunk-WGEIHQXI.cjs.map} +1 -1
  187. package/dist/{chunk-2WUMO4RN.cjs → chunk-XASCEABS.cjs} +15 -9
  188. package/dist/chunk-XASCEABS.cjs.map +1 -0
  189. package/dist/{chunk-3NXV3W5N.js → chunk-XE7PBR3Y.js} +42 -42
  190. package/dist/{chunk-3NXV3W5N.js.map → chunk-XE7PBR3Y.js.map} +1 -1
  191. package/dist/{chunk-GU6MTXHR.cjs → chunk-XLIDL7QO.cjs} +12 -12
  192. package/dist/{chunk-GU6MTXHR.cjs.map → chunk-XLIDL7QO.cjs.map} +1 -1
  193. package/dist/{chunk-55BEULMJ.cjs → chunk-XTB6XXHH.cjs} +11 -11
  194. package/dist/{chunk-55BEULMJ.cjs.map → chunk-XTB6XXHH.cjs.map} +1 -1
  195. package/dist/{chunk-JYWPYMQS.cjs → chunk-XXNADDFD.cjs} +5 -5
  196. package/dist/{chunk-JYWPYMQS.cjs.map → chunk-XXNADDFD.cjs.map} +1 -1
  197. package/dist/{chunk-RYU755ZB.js → chunk-YAB4SRG2.js} +6 -6
  198. package/dist/{chunk-RYU755ZB.js.map → chunk-YAB4SRG2.js.map} +1 -1
  199. package/dist/{chunk-RUOOTVGK.js → chunk-YBVHGMK4.js} +3 -3
  200. package/dist/{chunk-RUOOTVGK.js.map → chunk-YBVHGMK4.js.map} +1 -1
  201. package/dist/{chunk-X5UGPWMB.cjs → chunk-YKY2YBJI.cjs} +20 -20
  202. package/dist/{chunk-X5UGPWMB.cjs.map → chunk-YKY2YBJI.cjs.map} +1 -1
  203. package/dist/{chunk-XPJZ72ZH.cjs → chunk-YZ6PW23L.cjs} +6 -6
  204. package/dist/{chunk-XPJZ72ZH.cjs.map → chunk-YZ6PW23L.cjs.map} +1 -1
  205. package/dist/{chunk-JIL453ER.js → chunk-YZAQOU2I.js} +220 -133
  206. package/dist/chunk-YZAQOU2I.js.map +1 -0
  207. package/dist/{chunk-755RJ4WD.cjs → chunk-YZVC4WQD.cjs} +27 -27
  208. package/dist/{chunk-755RJ4WD.cjs.map → chunk-YZVC4WQD.cjs.map} +1 -1
  209. package/dist/{chunk-7WVY3KMP.js → chunk-Z354XOPM.js} +4 -4
  210. package/dist/{chunk-7WVY3KMP.js.map → chunk-Z354XOPM.js.map} +1 -1
  211. package/dist/{chunk-DECNKSKW.js → chunk-Z5DHV2QW.js} +5 -5
  212. package/dist/{chunk-DECNKSKW.js.map → chunk-Z5DHV2QW.js.map} +1 -1
  213. package/dist/{chunk-VUEMRARE.js → chunk-Z5YBWU6K.js} +7 -7
  214. package/dist/{chunk-VUEMRARE.js.map → chunk-Z5YBWU6K.js.map} +1 -1
  215. package/dist/{dist-7DYUIL2E.js → dist-JSC2CQVL.js} +4 -4
  216. package/dist/{dist-7DYUIL2E.js.map → dist-JSC2CQVL.js.map} +1 -1
  217. package/dist/{dist-6VCCDFCW.cjs → dist-RKXUXSLD.cjs} +6 -6
  218. package/dist/{dist-6VCCDFCW.cjs.map → dist-RKXUXSLD.cjs.map} +1 -1
  219. package/dist/docs/SKILL.md +1 -1
  220. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  221. package/dist/docs/references/docs-agents-a2a.md +2 -0
  222. package/dist/docs/references/docs-server-custom-adapters.md +2 -0
  223. package/dist/docs/references/docs-server-middleware.md +2 -0
  224. package/dist/docs/references/reference-server-create-route.md +2 -0
  225. package/dist/docs/references/reference-server-mastra-server.md +2 -0
  226. package/dist/docs/references/reference-server-routes.md +2 -0
  227. package/dist/{observational-memory-PBLNZABH-2OUE5VEX.js → observational-memory-QL6BKIQX-2V7T3FLD.js} +3 -3
  228. package/dist/{observational-memory-PBLNZABH-2OUE5VEX.js.map → observational-memory-QL6BKIQX-2V7T3FLD.js.map} +1 -1
  229. package/dist/{observational-memory-PBLNZABH-MQEKJOVA.cjs → observational-memory-QL6BKIQX-QGB4L22X.cjs} +28 -28
  230. package/dist/{observational-memory-PBLNZABH-MQEKJOVA.cjs.map → observational-memory-QL6BKIQX-QGB4L22X.cjs.map} +1 -1
  231. package/dist/server/auth/helpers.d.ts +2 -2
  232. package/dist/server/auth/helpers.d.ts.map +1 -1
  233. package/dist/server/auth/index.cjs +15 -15
  234. package/dist/server/auth/index.js +1 -1
  235. package/dist/server/handlers/a2a.cjs +14 -14
  236. package/dist/server/handlers/a2a.js +1 -1
  237. package/dist/server/handlers/agent-builder.cjs +17 -17
  238. package/dist/server/handlers/agent-builder.js +1 -1
  239. package/dist/server/handlers/agent-controller.cjs +35 -35
  240. package/dist/server/handlers/agent-controller.js +1 -1
  241. package/dist/server/handlers/agent-versions.cjs +8 -8
  242. package/dist/server/handlers/agent-versions.js +1 -1
  243. package/dist/server/handlers/agents.cjs +47 -47
  244. package/dist/server/handlers/agents.js +1 -1
  245. package/dist/server/handlers/auth.cjs +13 -13
  246. package/dist/server/handlers/auth.js +1 -1
  247. package/dist/server/handlers/author-enrichment.cjs +3 -3
  248. package/dist/server/handlers/author-enrichment.js +1 -1
  249. package/dist/server/handlers/authorship.cjs +12 -12
  250. package/dist/server/handlers/authorship.js +1 -1
  251. package/dist/server/handlers/background-tasks.cjs +4 -4
  252. package/dist/server/handlers/background-tasks.js +1 -1
  253. package/dist/server/handlers/builder-registry.cjs +6 -6
  254. package/dist/server/handlers/builder-registry.js +1 -1
  255. package/dist/server/handlers/channels.cjs +5 -5
  256. package/dist/server/handlers/channels.js +1 -1
  257. package/dist/server/handlers/conversations.cjs +5 -5
  258. package/dist/server/handlers/conversations.js +1 -1
  259. package/dist/server/handlers/datasets.cjs +26 -26
  260. package/dist/server/handlers/datasets.js +1 -1
  261. package/dist/server/handlers/editor-builder.cjs +6 -6
  262. package/dist/server/handlers/editor-builder.js +1 -1
  263. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  264. package/dist/server/handlers/favorites-enrichment.js +1 -1
  265. package/dist/server/handlers/heartbeats.cjs +9 -9
  266. package/dist/server/handlers/heartbeats.js +1 -1
  267. package/dist/server/handlers/logs.cjs +4 -4
  268. package/dist/server/handlers/logs.js +1 -1
  269. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  270. package/dist/server/handlers/mcp-client-versions.js +1 -1
  271. package/dist/server/handlers/mcp.cjs +11 -11
  272. package/dist/server/handlers/mcp.js +1 -1
  273. package/dist/server/handlers/memory.cjs +27 -27
  274. package/dist/server/handlers/memory.js +1 -1
  275. package/dist/server/handlers/observability-new-endpoints.cjs +29 -29
  276. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  277. package/dist/server/handlers/observability-shared.cjs +9 -9
  278. package/dist/server/handlers/observability-shared.js +1 -1
  279. package/dist/server/handlers/observability.cjs +40 -40
  280. package/dist/server/handlers/observability.js +2 -2
  281. package/dist/server/handlers/processor-providers.cjs +3 -3
  282. package/dist/server/handlers/processor-providers.js +1 -1
  283. package/dist/server/handlers/processors.cjs +4 -4
  284. package/dist/server/handlers/processors.js +1 -1
  285. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  286. package/dist/server/handlers/prompt-block-versions.js +1 -1
  287. package/dist/server/handlers/responses.cjs +4 -4
  288. package/dist/server/handlers/responses.js +1 -1
  289. package/dist/server/handlers/responses.storage.cjs +8 -8
  290. package/dist/server/handlers/responses.storage.js +1 -1
  291. package/dist/server/handlers/schedules.cjs +6 -6
  292. package/dist/server/handlers/schedules.js +1 -1
  293. package/dist/server/handlers/scorer-versions.cjs +8 -8
  294. package/dist/server/handlers/scorer-versions.js +1 -1
  295. package/dist/server/handlers/scores.cjs +7 -7
  296. package/dist/server/handlers/scores.js +1 -1
  297. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  298. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  299. package/dist/server/handlers/stored-agents.cjs +10 -10
  300. package/dist/server/handlers/stored-agents.js +1 -1
  301. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  302. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  303. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  304. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  305. package/dist/server/handlers/stored-scorers.cjs +6 -6
  306. package/dist/server/handlers/stored-scorers.js +1 -1
  307. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  308. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  309. package/dist/server/handlers/stored-skills.cjs +7 -7
  310. package/dist/server/handlers/stored-skills.js +1 -1
  311. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  312. package/dist/server/handlers/stored-workspaces.js +1 -1
  313. package/dist/server/handlers/system.cjs +3 -3
  314. package/dist/server/handlers/system.js +1 -1
  315. package/dist/server/handlers/tool-providers.cjs +14 -14
  316. package/dist/server/handlers/tool-providers.js +1 -1
  317. package/dist/server/handlers/tools.cjs +6 -6
  318. package/dist/server/handlers/tools.js +1 -1
  319. package/dist/server/handlers/utils.cjs +10 -10
  320. package/dist/server/handlers/utils.js +1 -1
  321. package/dist/server/handlers/vector.cjs +16 -16
  322. package/dist/server/handlers/vector.js +1 -1
  323. package/dist/server/handlers/workflows.cjs +27 -27
  324. package/dist/server/handlers/workflows.js +1 -1
  325. package/dist/server/handlers/workspace.cjs +26 -26
  326. package/dist/server/handlers/workspace.js +1 -1
  327. package/dist/server/handlers.cjs +39 -39
  328. package/dist/server/handlers.js +14 -14
  329. package/dist/server/schemas/index.cjs +605 -605
  330. package/dist/server/schemas/index.js +9 -9
  331. package/dist/server/server-adapter/index.cjs +48 -48
  332. package/dist/server/server-adapter/index.js +9 -9
  333. package/package.json +6 -6
  334. package/dist/chunk-2WUMO4RN.cjs.map +0 -1
  335. package/dist/chunk-3YQ7NWF6.cjs.map +0 -1
  336. package/dist/chunk-4PQR3D5Y.cjs.map +0 -1
  337. package/dist/chunk-AXCPENWP.cjs +0 -753
  338. package/dist/chunk-HATXNJ4V.js.map +0 -1
  339. package/dist/chunk-JIL453ER.js.map +0 -1
  340. package/dist/chunk-KLV64VVH.js.map +0 -1
  341. package/dist/chunk-M3UP3Z3G.cjs.map +0 -1
  342. package/dist/chunk-W4ALUSXG.js.map +0 -1
  343. package/dist/chunk-WWPJKPP2.js.map +0 -1
  344. package/dist/chunk-ZVDH3EUZ.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkC6CCPCEC_cjs = require('./chunk-C6CCPCEC.cjs');
4
- var chunkRVD3DGBZ_cjs = require('./chunk-RVD3DGBZ.cjs');
5
- var chunkZ7LCIYK7_cjs = require('./chunk-Z7LCIYK7.cjs');
6
- var chunkDN2NUSL2_cjs = require('./chunk-DN2NUSL2.cjs');
4
+ var chunk42M6Y2OD_cjs = require('./chunk-42M6Y2OD.cjs');
7
5
  var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
6
+ var chunkZ7LCIYK7_cjs = require('./chunk-Z7LCIYK7.cjs');
7
+ var chunkN54Q3AQR_cjs = require('./chunk-N54Q3AQR.cjs');
8
8
  var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
9
9
 
10
10
  // src/server/handlers/logs.ts
@@ -14,7 +14,7 @@ chunkO7I5CWRX_cjs.__export(logs_exports, {
14
14
  LIST_LOGS_ROUTE: () => LIST_LOGS_ROUTE,
15
15
  LIST_LOG_TRANSPORTS_ROUTE: () => LIST_LOG_TRANSPORTS_ROUTE
16
16
  });
17
- var LIST_LOG_TRANSPORTS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
17
+ var LIST_LOG_TRANSPORTS_ROUTE = chunkN54Q3AQR_cjs.createRoute({
18
18
  method: "GET",
19
19
  path: "/logs/transports",
20
20
  responseType: "json",
@@ -35,7 +35,7 @@ var LIST_LOG_TRANSPORTS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
35
35
  }
36
36
  }
37
37
  });
38
- var LIST_LOGS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
38
+ var LIST_LOGS_ROUTE = chunkN54Q3AQR_cjs.createRoute({
39
39
  method: "GET",
40
40
  path: "/logs",
41
41
  responseType: "json",
@@ -48,8 +48,8 @@ var LIST_LOGS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
48
48
  handler: async ({ mastra, ...params }) => {
49
49
  try {
50
50
  const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;
51
- chunkRVD3DGBZ_cjs.validateBody({ transportId });
52
- const filters = chunkRVD3DGBZ_cjs.parseFilters(_filters);
51
+ chunk42M6Y2OD_cjs.validateBody({ transportId });
52
+ const filters = chunk42M6Y2OD_cjs.parseFilters(_filters);
53
53
  const logs = await mastra.listLogs(transportId, {
54
54
  fromDate,
55
55
  toDate,
@@ -64,7 +64,7 @@ var LIST_LOGS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
64
64
  }
65
65
  }
66
66
  });
67
- var LIST_LOGS_BY_RUN_ID_ROUTE = chunkDN2NUSL2_cjs.createRoute({
67
+ var LIST_LOGS_BY_RUN_ID_ROUTE = chunkN54Q3AQR_cjs.createRoute({
68
68
  method: "GET",
69
69
  path: "/logs/:runId",
70
70
  responseType: "json",
@@ -78,8 +78,8 @@ var LIST_LOGS_BY_RUN_ID_ROUTE = chunkDN2NUSL2_cjs.createRoute({
78
78
  handler: async ({ mastra, runId, ...params }) => {
79
79
  try {
80
80
  const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;
81
- chunkRVD3DGBZ_cjs.validateBody({ runId, transportId });
82
- const filters = chunkRVD3DGBZ_cjs.parseFilters(_filters);
81
+ chunk42M6Y2OD_cjs.validateBody({ runId, transportId });
82
+ const filters = chunk42M6Y2OD_cjs.parseFilters(_filters);
83
83
  const logs = await mastra.listLogsByRunId({
84
84
  runId,
85
85
  transportId,
@@ -101,5 +101,5 @@ exports.LIST_LOGS_BY_RUN_ID_ROUTE = LIST_LOGS_BY_RUN_ID_ROUTE;
101
101
  exports.LIST_LOGS_ROUTE = LIST_LOGS_ROUTE;
102
102
  exports.LIST_LOG_TRANSPORTS_ROUTE = LIST_LOG_TRANSPORTS_ROUTE;
103
103
  exports.logs_exports = logs_exports;
104
- //# sourceMappingURL=chunk-SIBBWIG2.cjs.map
105
- //# sourceMappingURL=chunk-SIBBWIG2.cjs.map
104
+ //# sourceMappingURL=chunk-JJOGTXKN.cjs.map
105
+ //# sourceMappingURL=chunk-JJOGTXKN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/logs.ts"],"names":["__export","createRoute","listLogTransportsResponseSchema","handleError","listLogsQuerySchema","listLogsResponseSchema","validateBody","parseFilters","runIdSchema"],"mappings":"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","file":"chunk-SIBBWIG2.cjs","sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/logs.ts"],"names":["__export","createRoute","listLogTransportsResponseSchema","handleError","listLogsQuerySchema","listLogsResponseSchema","validateBody","parseFilters","runIdSchema"],"mappings":"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","file":"chunk-JJOGTXKN.cjs","sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"]}
@@ -1,8 +1,8 @@
1
1
  import { listLogTransportsResponseSchema, listLogsResponseSchema, listLogsQuerySchema } from './chunk-MXZPGEC2.js';
2
- import { validateBody, parseFilters } from './chunk-3ENQND57.js';
3
- import { handleError } from './chunk-7ZWJX3AN.js';
4
- import { createRoute } from './chunk-Z5MTOVTR.js';
2
+ import { validateBody, parseFilters } from './chunk-JBSUT5XF.js';
5
3
  import { runIdSchema } from './chunk-2YY3EMMS.js';
4
+ import { handleError } from './chunk-7ZWJX3AN.js';
5
+ import { createRoute } from './chunk-PIKPS6Q6.js';
6
6
  import { __export } from './chunk-PR4QN5HX.js';
7
7
 
8
8
  // src/server/handlers/logs.ts
@@ -96,5 +96,5 @@ var LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({
96
96
  });
97
97
 
98
98
  export { LIST_LOGS_BY_RUN_ID_ROUTE, LIST_LOGS_ROUTE, LIST_LOG_TRANSPORTS_ROUTE, logs_exports };
99
- //# sourceMappingURL=chunk-RIPB4QC6.js.map
100
- //# sourceMappingURL=chunk-RIPB4QC6.js.map
99
+ //# sourceMappingURL=chunk-JXUL45J6.js.map
100
+ //# sourceMappingURL=chunk-JXUL45J6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/logs.ts"],"names":[],"mappings":"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","file":"chunk-RIPB4QC6.js","sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/logs.ts"],"names":[],"mappings":";;;;;;;;AAAA,IAAA,YAAA,GAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,yBAAA,EAAA,MAAA,yBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,yBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAUO,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,kBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,+BAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,gDAAA;AAAA,EACb,IAAA,EAAM,CAAC,MAAM,CAAA;AAAA,EACb,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,MAAA,MAAM,UAAA,GAAa,OAAO,aAAA,EAAc;AAExC,MAAA,OAAO;AAAA,QACL,UAAA,EAAY,aAAa,CAAC,GAAG,WAAW,IAAA,EAAM,IAAI;AAAC,OACrD;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,8BAA8B,CAAA;AAAA,IAC1D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,WAAA,CAAY;AAAA,EACzC,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,OAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,gBAAA,EAAkB,mBAAA;AAAA,EAClB,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,WAAA;AAAA,EACT,WAAA,EACE,6GAAA;AAAA,EACF,IAAA,EAAM,CAAC,MAAM,CAAA;AAAA,EACb,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,GAAG,QAAO,KAAM;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,aAAa,QAAA,EAAU,MAAA,EAAQ,UAAU,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,OAAA,EAAQ,GAAI,MAAA;AAEtF,MAAA,YAAA,CAAa,EAAE,aAAa,CAAA;AAG5B,MAAA,MAAM,OAAA,GAAU,aAAa,QAAQ,CAAA;AAErC,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,QAAA,CAAS,WAAA,EAAc;AAAA,QAC/C,QAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA,EAAM,IAAA,GAAO,MAAA,CAAO,IAAI,CAAA,GAAI,MAAA;AAAA,QAC5B,OAAA,EAAS,OAAA,GAAU,MAAA,CAAO,OAAO,CAAA,GAAI;AAAA,OACtC,CAAA;AACD,MAAA,OAAO,IAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oBAAoB,CAAA;AAAA,IAChD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,cAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,WAAA;AAAA,EACjB,gBAAA,EAAkB,mBAAA;AAAA,EAClB,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,MAAM,CAAA;AAAA,EACb,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,KAAA,EAAO,GAAG,QAAO,KAAM;AAC/C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,aAAa,QAAA,EAAU,MAAA,EAAQ,UAAU,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,OAAA,EAAQ,GAAI,MAAA;AAEtF,MAAA,YAAA,CAAa,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AAGnC,MAAA,MAAM,OAAA,GAAU,aAAa,QAAQ,CAAA;AAErC,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,eAAA,CAAgB;AAAA,QACxC,KAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA,EAAM,IAAA,GAAO,MAAA,CAAO,IAAI,CAAA,GAAI,MAAA;AAAA,QAC5B,OAAA,EAAS,OAAA,GAAU,MAAA,CAAO,OAAO,CAAA,GAAI;AAAA,OACtC,CAAA;AACD,MAAA,OAAO,IAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,8BAA8B,CAAA;AAAA,IAC1D;AAAA,EACF;AACF,CAAC","file":"chunk-JXUL45J6.js","sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkRVD3DGBZ_cjs = require('./chunk-RVD3DGBZ.cjs');
3
+ var chunk42M6Y2OD_cjs = require('./chunk-42M6Y2OD.cjs');
4
4
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
5
5
 
6
6
  // src/server/handlers/responses.storage.ts
@@ -70,7 +70,7 @@ async function findResponseTurnRecord({
70
70
  if (!memoryStore) {
71
71
  return null;
72
72
  }
73
- const effectiveResourceId = chunkRVD3DGBZ_cjs.getEffectiveResourceId(requestContext, void 0);
73
+ const effectiveResourceId = chunk42M6Y2OD_cjs.getEffectiveResourceId(requestContext, void 0);
74
74
  const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });
75
75
  const message = matchedMessages[0];
76
76
  if (!message || message.role !== "assistant") {
@@ -84,7 +84,7 @@ async function findResponseTurnRecord({
84
84
  if (!thread) {
85
85
  return null;
86
86
  }
87
- await chunkRVD3DGBZ_cjs.validateThreadOwnership(thread, effectiveResourceId);
87
+ await chunk42M6Y2OD_cjs.validateThreadOwnership(thread, effectiveResourceId);
88
88
  const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];
89
89
  const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });
90
90
  const messagesById = new Map(responseMessages.map((storedMessage) => [storedMessage.id, storedMessage]));
@@ -116,7 +116,7 @@ async function findConversationThreadAcrossAgents({
116
116
  if (!mastra) {
117
117
  return null;
118
118
  }
119
- const effectiveResourceId = chunkRVD3DGBZ_cjs.getEffectiveResourceId(requestContext, void 0);
119
+ const effectiveResourceId = chunk42M6Y2OD_cjs.getEffectiveResourceId(requestContext, void 0);
120
120
  const agents = Object.values(mastra.listAgents());
121
121
  for (const agent of agents) {
122
122
  const memoryStore = await getAgentMemoryStore({ agent, requestContext });
@@ -127,7 +127,7 @@ async function findConversationThreadAcrossAgents({
127
127
  if (!thread) {
128
128
  continue;
129
129
  }
130
- await chunkRVD3DGBZ_cjs.validateThreadOwnership(thread, effectiveResourceId);
130
+ await chunk42M6Y2OD_cjs.validateThreadOwnership(thread, effectiveResourceId);
131
131
  return { thread, memoryStore };
132
132
  }
133
133
  return null;
@@ -553,5 +553,5 @@ exports.findResponseTurnRecordAcrossAgents = findResponseTurnRecordAcrossAgents;
553
553
  exports.getAgentMemoryStore = getAgentMemoryStore;
554
554
  exports.persistResponseTurnRecord = persistResponseTurnRecord;
555
555
  exports.resolveResponseTurnMessagesForStorage = resolveResponseTurnMessagesForStorage;
556
- //# sourceMappingURL=chunk-YLWKZ3VK.cjs.map
557
- //# sourceMappingURL=chunk-YLWKZ3VK.cjs.map
556
+ //# sourceMappingURL=chunk-KIDHIRVO.cjs.map
557
+ //# sourceMappingURL=chunk-KIDHIRVO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/responses.storage.ts"],"names":["getEffectiveResourceId","validateThreadOwnership","HTTPException"],"mappings":"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","file":"chunk-YLWKZ3VK.cjs","sourcesContent":["import type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { StorageThreadType } from '@mastra/core/memory';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type {\n ResponseObject,\n ResponseOutputItem,\n ResponseTextConfig,\n ResponseTool,\n ResponseUsage,\n} from '../schemas/responses';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nexport type ThreadExecutionContext = {\n threadId: string;\n resourceId: string;\n};\n\nexport type UsageLike = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n} | null;\n\nexport type ProviderMetadataLike = Record<string, Record<string, unknown> | undefined> | undefined;\n\nexport type ResponseTurnRecordMetadata = {\n agentId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n usage: ResponseUsage | null;\n instructions?: string;\n text?: ResponseTextConfig;\n previousResponseId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messageIds: string[];\n outputItems?: ResponseOutputItem[];\n};\n\nexport type ResponseTurnRecord = {\n metadata: ResponseTurnRecordMetadata;\n message: MastraDBMessage;\n messages: MastraDBMessage[];\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\ntype ResponseResultLike = {\n response?:\n | Promise<{\n dbMessages?: MastraDBMessage[];\n }>\n | {\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype SyntheticToolResultMessage = Omit<MastraDBMessage, 'role'> & { role: 'tool' };\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Resolves the backing memory store for a specific agent.\n *\n * This follows the normal agent-memory path. `agent.getMemory()` injects Mastra\n * root storage when the memory has no own storage, so this naturally prefers\n * agent storage first and falls back to Mastra storage through the same codepath.\n */\nexport async function getAgentMemoryStore({\n agent,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n}): Promise<MemoryStorage | null> {\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n return null;\n }\n\n try {\n return (await memory.storage.getStore('memory')) ?? null;\n } catch {\n return null;\n }\n}\n\n/**\n * Reads the response-turn record metadata attached to a stored assistant message.\n */\nfunction readResponseTurnRecordMetadata(message: MastraDBMessage): ResponseTurnRecordMetadata | null {\n const mastraMetadata = isPlainObject(message.content?.metadata?.mastra) ? message.content.metadata.mastra : null;\n const responseMetadata = mastraMetadata && isPlainObject(mastraMetadata.response) ? mastraMetadata.response : null;\n\n if (\n !responseMetadata ||\n typeof responseMetadata.agentId !== 'string' ||\n typeof responseMetadata.model !== 'string' ||\n typeof responseMetadata.createdAt !== 'number' ||\n (responseMetadata.completedAt !== null && typeof responseMetadata.completedAt !== 'number') ||\n (responseMetadata.instructions !== undefined && typeof responseMetadata.instructions !== 'string') ||\n (responseMetadata.text !== undefined &&\n (!isPlainObject(responseMetadata.text) || !isPlainObject(responseMetadata.text.format))) ||\n (responseMetadata.previousResponseId !== undefined && typeof responseMetadata.previousResponseId !== 'string') ||\n !Array.isArray(responseMetadata.tools) ||\n typeof responseMetadata.store !== 'boolean' ||\n !Array.isArray(responseMetadata.messageIds) ||\n (responseMetadata.outputItems !== undefined && !Array.isArray(responseMetadata.outputItems))\n ) {\n return null;\n }\n\n return {\n agentId: responseMetadata.agentId,\n model: responseMetadata.model,\n createdAt: responseMetadata.createdAt,\n completedAt: responseMetadata.completedAt,\n status: responseMetadata.status === 'completed' ? 'completed' : 'incomplete',\n usage: responseMetadata.usage as ResponseUsage | null,\n instructions: responseMetadata.instructions,\n text: responseMetadata.text as ResponseTextConfig | undefined,\n previousResponseId: responseMetadata.previousResponseId,\n providerOptions: responseMetadata.providerOptions as ProviderMetadataLike,\n tools: responseMetadata.tools as ResponseTool[],\n store: responseMetadata.store,\n messageIds: responseMetadata.messageIds.filter((value): value is string => typeof value === 'string'),\n outputItems: responseMetadata.outputItems as ResponseOutputItem[] | undefined,\n };\n}\n\n/**\n * Writes response-turn record metadata onto a persisted assistant message.\n */\nfunction writeResponseTurnRecordMetadata(\n message: MastraDBMessage,\n metadata: ResponseTurnRecordMetadata,\n): MastraDBMessage {\n const contentMetadata = isPlainObject(message.content?.metadata) ? message.content.metadata : {};\n const mastraMetadata = isPlainObject(contentMetadata.mastra) ? contentMetadata.mastra : {};\n\n return {\n ...message,\n content: {\n ...message.content,\n metadata: {\n ...contentMetadata,\n mastra: {\n ...mastraMetadata,\n response: metadata,\n },\n },\n },\n };\n}\n\n/**\n * Looks up a stored response-turn record by response id.\n *\n * Response ids are assistant message ids, so this reconstructs the record by\n * loading that persisted assistant message, reading its response metadata, then\n * reloading the full set of stored turn messages referenced by the metadata.\n */\nexport async function findResponseTurnRecord({\n agent,\n responseId,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });\n const message = matchedMessages[0];\n if (!message || message.role !== 'assistant') {\n return null;\n }\n\n const metadata = readResponseTurnRecordMetadata(message);\n if (!metadata || metadata.agentId !== agent.id) {\n return null;\n }\n\n const thread = message.threadId ? await memoryStore.getThreadById({ threadId: message.threadId }) : null;\n if (!thread) {\n return null;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];\n const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });\n const messagesById = new Map(responseMessages.map(storedMessage => [storedMessage.id, storedMessage] as const));\n const orderedMessages = messageIds\n .map(messageId => messagesById.get(messageId))\n .filter((storedMessage): storedMessage is MastraDBMessage => Boolean(storedMessage));\n\n return { metadata, message, messages: orderedMessages, thread, memoryStore };\n}\n\nexport async function findResponseTurnRecordAcrossAgents({\n mastra,\n responseId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n for (const agent of agents) {\n const match = await findResponseTurnRecord({ agent, responseId, requestContext });\n if (match) {\n return match;\n }\n }\n\n return null;\n}\n\nexport type ConversationThreadRecord = {\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\nexport async function findConversationThreadAcrossAgents({\n mastra,\n conversationId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n conversationId: string;\n requestContext: RequestContext;\n}): Promise<ConversationThreadRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n\n for (const agent of agents) {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n continue;\n }\n\n const thread = await memoryStore.getThreadById({ threadId: conversationId });\n if (!thread) {\n continue;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n return { thread, memoryStore };\n }\n\n return null;\n}\n\n/**\n * Creates a synthetic assistant message for responses that did not emit any\n * persisted DB messages but still need a durable response-turn record.\n */\nfunction createSyntheticResponseMessage({\n createdAt,\n responseId,\n text,\n threadContext,\n}: {\n createdAt?: Date;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage {\n return {\n id: responseId,\n role: 'assistant',\n type: 'text',\n createdAt: createdAt ?? new Date(),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: text ? [{ type: 'text', text }] : [],\n },\n };\n}\n\nfunction hasTextPart(message: MastraDBMessage): boolean {\n return Boolean(\n message.content?.parts?.some(\n part => isPlainObject(part) && part.type === 'text' && typeof part.text === 'string' && part.text.length > 0,\n ),\n );\n}\n\nfunction isEmptyAssistantMessage(message: MastraDBMessage): boolean {\n return message.role === 'assistant' && Array.isArray(message.content?.parts) && message.content.parts.length === 0;\n}\n\nfunction hasToolInvocationPart(message: MastraDBMessage): boolean {\n return Boolean(\n message.content?.parts?.some(\n part => isPlainObject(part) && part.type === 'tool-invocation' && isPlainObject(part.toolInvocation),\n ),\n );\n}\n\nfunction getMessageText(message: MastraDBMessage): string {\n return (\n message.content?.parts\n ?.flatMap(part =>\n isPlainObject(part) && part.type === 'text' && typeof part.text === 'string' ? [part.text] : [],\n )\n .join('') ?? ''\n );\n}\n\nfunction getOutputMessageText(item: Extract<ResponseOutputItem, { type: 'message' }>): string {\n return item.content.map(part => part.text).join('');\n}\n\nfunction normalizeFallbackComparisonText(text: string): string {\n return text.trim();\n}\n\nfunction matchesFallbackText(messageText: string, fallbackText: string): boolean {\n return (\n messageText === fallbackText ||\n normalizeFallbackComparisonText(messageText) === normalizeFallbackComparisonText(fallbackText)\n );\n}\n\nfunction hasMatchingAssistantText(\n messages: MastraDBMessage[],\n item: Extract<ResponseOutputItem, { type: 'message' }>,\n): boolean {\n const fallbackText = getOutputMessageText(item);\n\n return messages.some(\n message =>\n message.role === 'assistant' &&\n hasTextPart(message) &&\n matchesFallbackText(getMessageText(message), fallbackText),\n );\n}\n\nfunction shouldReplaceAssistantText(messageText: string, fallbackText: string): boolean {\n const normalizedMessageText = normalizeFallbackComparisonText(messageText);\n const normalizedFallbackText = normalizeFallbackComparisonText(fallbackText);\n\n return (\n normalizedFallbackText !== normalizedMessageText &&\n (fallbackText.startsWith(messageText) || normalizedFallbackText.startsWith(normalizedMessageText))\n );\n}\n\nfunction getAssistantMessageTexts(messages: MastraDBMessage[]): string[] {\n return messages.flatMap(message =>\n message.role === 'assistant' && hasTextPart(message) ? [getMessageText(message)] : [],\n );\n}\n\nfunction shouldAddFallbackMessageText(\n messages: MastraDBMessage[],\n item: Extract<ResponseOutputItem, { type: 'message' }>,\n): boolean {\n const assistantTexts = getAssistantMessageTexts(messages);\n if (assistantTexts.length === 0) {\n return true;\n }\n\n const fallbackText = getOutputMessageText(item);\n return assistantTexts.every(messageText => shouldReplaceAssistantText(messageText, fallbackText));\n}\n\nfunction shouldReplaceAssistantTextWithFallback({\n fallbackMessageTexts,\n message,\n textOnlyFallbackMessageTexts,\n}: {\n fallbackMessageTexts: Set<string>;\n message: MastraDBMessage;\n textOnlyFallbackMessageTexts: Set<string>;\n}): boolean {\n if (message.role !== 'assistant' || !hasTextPart(message)) {\n return false;\n }\n\n const messageText = getMessageText(message);\n if (!messageText) {\n return false;\n }\n\n const comparisonTexts = hasToolInvocationPart(message) ? fallbackMessageTexts : textOnlyFallbackMessageTexts;\n\n return [...comparisonTexts].some(fallbackText => shouldReplaceAssistantText(messageText, fallbackText));\n}\n\nfunction replaceAssistantTextWithFallback({\n fallbackMessageTexts,\n message,\n textOnlyFallbackMessageTexts,\n}: {\n fallbackMessageTexts: Set<string>;\n message: MastraDBMessage;\n textOnlyFallbackMessageTexts: Set<string>;\n}): MastraDBMessage {\n if (!shouldReplaceAssistantTextWithFallback({ fallbackMessageTexts, message, textOnlyFallbackMessageTexts })) {\n return message;\n }\n\n const parts = message.content?.parts ?? [];\n const remainingParts = parts.filter(part => !(isPlainObject(part) && part.type === 'text'));\n\n return {\n ...message,\n content: {\n ...message.content,\n parts: remainingParts,\n },\n };\n}\n\nfunction parseFunctionCallArguments(value: string): unknown {\n try {\n return JSON.parse(value);\n } catch {\n return { __raw: value };\n }\n}\n\nfunction createSyntheticToolResultMessage({\n baseMessage,\n item,\n responseId,\n toolCall,\n}: {\n baseMessage: Pick<MastraDBMessage, 'createdAt' | 'threadId' | 'resourceId'>;\n item: Extract<ResponseOutputItem, { type: 'function_call_output' }>;\n responseId: string;\n toolCall?: { args: unknown; toolName: string };\n}): SyntheticToolResultMessage {\n return {\n ...baseMessage,\n id: `${responseId}:tool-result:${item.call_id}`,\n role: 'tool',\n type: 'tool-result',\n content: {\n format: 2 as const,\n parts: [\n {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'result',\n toolCallId: item.call_id,\n toolName: toolCall?.toolName ?? 'unknown',\n args: toolCall?.args ?? {},\n result: item.output,\n },\n },\n ],\n },\n };\n}\n\nfunction toMastraDBMessage(message: SyntheticToolResultMessage): MastraDBMessage {\n // MastraDBMessage does not yet type persisted v2 tool-role messages, but\n // storage and response mapping already handle them at runtime.\n return message as unknown as MastraDBMessage;\n}\n\nfunction createSyntheticMessagesFromOutputItems({\n contextOutputItems,\n outputItems,\n responseId,\n threadContext,\n}: {\n contextOutputItems?: ResponseOutputItem[];\n outputItems: ResponseOutputItem[];\n responseId: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage[] {\n const toolContextItems = contextOutputItems ?? outputItems;\n const toolCallsById = new Map(\n toolContextItems.flatMap(item =>\n item.type === 'function_call'\n ? [[item.call_id, { args: parseFunctionCallArguments(item.arguments), toolName: item.name }] as const]\n : [],\n ),\n );\n\n const baseCreatedAt = Date.now();\n\n return outputItems.map((item, index): MastraDBMessage => {\n const baseMessage = {\n createdAt: new Date(baseCreatedAt + index),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n };\n\n if (item.type === 'function_call') {\n return {\n ...baseMessage,\n id: `${responseId}:tool-call:${item.call_id}`,\n role: 'assistant',\n type: 'tool-call',\n content: {\n format: 2 as const,\n parts: [\n {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'call',\n toolCallId: item.call_id,\n toolName: item.name,\n args: parseFunctionCallArguments(item.arguments),\n },\n },\n ],\n },\n };\n }\n\n if (item.type === 'function_call_output') {\n const toolCall = toolCallsById.get(item.call_id);\n\n return toMastraDBMessage(createSyntheticToolResultMessage({ baseMessage, item, responseId, toolCall }));\n }\n\n return {\n ...baseMessage,\n id: item.id,\n role: 'assistant',\n type: 'text',\n content: {\n format: 2 as const,\n parts: item.content.map(part => ({ type: 'text' as const, text: part.text })),\n },\n };\n });\n}\n\nfunction getToolInvocationParts(message: MastraDBMessage): Array<Record<string, unknown>> {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n\n return parts.flatMap(part =>\n isPlainObject(part) && part.type === 'tool-invocation' && isPlainObject(part.toolInvocation)\n ? [part.toolInvocation]\n : [],\n );\n}\n\nfunction getMissingFallbackOutputItems({\n fallbackOutputItems = [],\n messages,\n}: {\n fallbackOutputItems?: ResponseObject['output'];\n messages: MastraDBMessage[];\n}): ResponseOutputItem[] {\n if (!fallbackOutputItems.length) {\n return [];\n }\n\n const existingCallIds = new Set<string>();\n const existingResultCallIds = new Set<string>();\n\n for (const message of messages) {\n for (const toolInvocation of getToolInvocationParts(message)) {\n const toolCallId = typeof toolInvocation.toolCallId === 'string' ? toolInvocation.toolCallId : null;\n if (!toolCallId) {\n continue;\n }\n\n if (message.role === 'assistant' && (toolInvocation.args !== undefined || toolInvocation.result === undefined)) {\n existingCallIds.add(toolCallId);\n }\n if (toolInvocation.result !== undefined) {\n existingResultCallIds.add(toolCallId);\n }\n }\n }\n\n return fallbackOutputItems.filter(item => {\n if (item.type === 'function_call') {\n return !existingCallIds.has(item.call_id);\n }\n\n if (item.type === 'function_call_output') {\n return !existingResultCallIds.has(item.call_id);\n }\n\n if (item.type === 'message') {\n if (!item.content.some(part => part.text.length > 0) || hasMatchingAssistantText(messages, item)) {\n return false;\n }\n\n return shouldAddFallbackMessageText(messages, item);\n }\n\n return false;\n });\n}\n\nfunction getFallbackOutputIdForMessage(\n message: MastraDBMessage,\n responseId: string,\n fallbackOutputIds: Set<string>,\n): string | null {\n for (const toolInvocation of getToolInvocationParts(message)) {\n const toolCallId = typeof toolInvocation.toolCallId === 'string' ? toolInvocation.toolCallId : null;\n if (!toolCallId) {\n continue;\n }\n\n if (message.role === 'assistant' && toolInvocation.args !== undefined) {\n return toolCallId;\n }\n\n if (toolInvocation.result !== undefined) {\n return `${toolCallId}:output`;\n }\n }\n\n if (message.role === 'assistant' && hasTextPart(message)) {\n return fallbackOutputIds.has(message.id) ? message.id : responseId;\n }\n\n return null;\n}\n\nfunction sortMessagesByFallbackOutputOrder({\n fallbackOutputItems = [],\n messages,\n responseId,\n}: {\n fallbackOutputItems?: ResponseObject['output'];\n messages: MastraDBMessage[];\n responseId: string;\n}): MastraDBMessage[] {\n if (!fallbackOutputItems.length) {\n return messages;\n }\n\n const outputOrder = new Map(fallbackOutputItems.map((item, index) => [item.id, index]));\n const fallbackOutputIds = new Set(outputOrder.keys());\n\n return messages\n .map((message, index) => ({\n index,\n message,\n outputIndex:\n outputOrder.get(getFallbackOutputIdForMessage(message, responseId, fallbackOutputIds) ?? '') ??\n Number.MAX_SAFE_INTEGER,\n }))\n .sort((left, right) => left.outputIndex - right.outputIndex || left.index - right.index)\n .map(({ message }) => message);\n}\n\n/**\n * Resolves the Mastra messages that belong to the response turn being stored.\n */\nexport async function resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text,\n threadContext,\n fallbackOutputItems,\n}: {\n result: ResponseResultLike;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext | null;\n fallbackOutputItems?: ResponseObject['output'];\n}): Promise<MastraDBMessage[]> {\n const response = await result.response;\n const responseMessages = response?.dbMessages?.length ? response.dbMessages : [];\n\n if (!threadContext) {\n return responseMessages;\n }\n\n if (responseMessages.length === 0) {\n if (fallbackOutputItems?.length) {\n const syntheticMessages = createSyntheticMessagesFromOutputItems({\n outputItems: fallbackOutputItems,\n responseId,\n threadContext,\n });\n\n return text && !syntheticMessages.some(message => message.role === 'assistant' && hasTextPart(message))\n ? [\n ...syntheticMessages,\n createSyntheticResponseMessage({\n createdAt: new Date(new Date(syntheticMessages.at(-1)?.createdAt ?? Date.now()).getTime() + 1),\n responseId,\n text,\n threadContext,\n }),\n ]\n : syntheticMessages;\n }\n\n return [createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n const missingFallbackItems = getMissingFallbackOutputItems({ fallbackOutputItems, messages: responseMessages });\n const missingFallbackMessageIds = new Set(\n missingFallbackItems\n .filter((item): item is Extract<ResponseOutputItem, { type: 'message' }> => item.type === 'message')\n .map(item => item.id),\n );\n const fallbackItemsWithMatchingAssistantText = (fallbackOutputItems ?? []).filter(\n (item): item is Extract<ResponseOutputItem, { type: 'message' }> =>\n item.type === 'message' && hasMatchingAssistantText(responseMessages, item),\n );\n const textOnlyFallbackMessageTexts = new Set(\n fallbackItemsWithMatchingAssistantText.map(getOutputMessageText).filter(Boolean),\n );\n const fallbackMessageTexts = new Set(\n (fallbackOutputItems ?? [])\n .filter((item): item is Extract<ResponseOutputItem, { type: 'message' }> => item.type === 'message')\n .filter(item => missingFallbackMessageIds.has(item.id) || fallbackItemsWithMatchingAssistantText.includes(item))\n .map(getOutputMessageText)\n .filter(Boolean),\n );\n const baseMessages = fallbackMessageTexts.size\n ? responseMessages.map(message =>\n replaceAssistantTextWithFallback({ fallbackMessageTexts, message, textOnlyFallbackMessageTexts }),\n )\n : responseMessages;\n const syntheticFallbackMessages = createSyntheticMessagesFromOutputItems({\n contextOutputItems: fallbackOutputItems ?? [],\n outputItems: missingFallbackItems,\n responseId,\n threadContext,\n });\n const resolvedMessages = sortMessagesByFallbackOutputOrder({\n fallbackOutputItems,\n messages: [...baseMessages, ...syntheticFallbackMessages],\n responseId,\n });\n\n if (text && !resolvedMessages.some(message => message.role === 'assistant' && hasTextPart(message))) {\n return [...resolvedMessages, createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n return resolvedMessages;\n}\n\n/**\n * Persists a response-turn record by anchoring it on the final assistant\n * message in the stored turn.\n *\n * The response id becomes that assistant message id, and the response-specific\n * metadata is written onto the assistant message so later retrieval can rebuild\n * the Responses object from thread-backed storage.\n */\nexport async function persistResponseTurnRecord({\n memoryStore,\n responseId,\n metadata,\n threadContext,\n messages,\n}: {\n memoryStore: MemoryStorage | null;\n responseId: string;\n metadata: ResponseTurnRecordMetadata;\n threadContext: ThreadExecutionContext;\n messages: MastraDBMessage[];\n}): Promise<void> {\n if (!memoryStore) {\n throw new HTTPException(500, { message: 'Memory storage was not available while storing the response' });\n }\n\n const normalizedMessages: MastraDBMessage[] = messages.map(message => ({\n ...message,\n threadId: message.threadId ?? threadContext.threadId,\n resourceId: message.resourceId ?? threadContext.resourceId,\n }));\n\n const lastAssistantIndex = [...normalizedMessages].map(message => message.role).lastIndexOf('assistant');\n const responseAnchorIndex =\n [...normalizedMessages]\n .map((message, index) => ({ index, message }))\n .reverse()\n .find(({ message }) => message.role === 'assistant' && hasTextPart(message))?.index ?? lastAssistantIndex;\n const lastAssistantMessage =\n responseAnchorIndex >= 0\n ? {\n ...normalizedMessages[responseAnchorIndex]!,\n id: responseId,\n }\n : ({\n id: responseId,\n role: 'assistant' as const,\n type: 'text' as const,\n createdAt: new Date(metadata.completedAt ? metadata.completedAt * 1000 : Date.now()),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: [],\n },\n } satisfies MastraDBMessage);\n\n if (responseAnchorIndex >= 0) {\n normalizedMessages[responseAnchorIndex] = lastAssistantMessage;\n } else {\n normalizedMessages.push(lastAssistantMessage);\n }\n const storedMessageIndex = responseAnchorIndex >= 0 ? responseAnchorIndex : normalizedMessages.length - 1;\n\n const droppedSupersededMessageIds = normalizedMessages.flatMap((message, index) =>\n index !== storedMessageIndex && isEmptyAssistantMessage(message) && messages[index]?.id\n ? [messages[index]!.id]\n : [],\n );\n const staleMessageIds =\n responseAnchorIndex >= 0 && messages[responseAnchorIndex]?.id && messages[responseAnchorIndex]?.id !== responseId\n ? [messages[responseAnchorIndex]!.id]\n : [];\n const messagesToSave = normalizedMessages.filter(\n (message, index) => index === storedMessageIndex || !isEmptyAssistantMessage(message),\n );\n\n const storedMessage = writeResponseTurnRecordMetadata(lastAssistantMessage, {\n ...metadata,\n messageIds: messagesToSave.map(message => message.id),\n });\n\n if (responseAnchorIndex >= 0) {\n normalizedMessages[responseAnchorIndex] = storedMessage;\n } else {\n normalizedMessages[normalizedMessages.length - 1] = storedMessage;\n }\n\n const savedMessages = normalizedMessages.filter(\n (message, index) => index === storedMessageIndex || !isEmptyAssistantMessage(message),\n );\n\n await memoryStore.saveMessages({ messages: savedMessages });\n\n const deleteMessageIds = [...new Set([...staleMessageIds, ...droppedSupersededMessageIds])];\n if (deleteMessageIds.length > 0) {\n await memoryStore.deleteMessages(deleteMessageIds);\n }\n}\n\n/**\n * Removes all persisted messages for a stored response-turn record.\n */\nexport async function deleteResponseTurnRecord({\n responseTurnRecord,\n}: {\n responseTurnRecord: ResponseTurnRecord;\n}): Promise<void> {\n const messageIds =\n responseTurnRecord.messages.length > 0\n ? responseTurnRecord.messages.map(message => message.id)\n : [responseTurnRecord.message.id];\n\n await responseTurnRecord.memoryStore.deleteMessages(messageIds);\n}\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/responses.storage.ts"],"names":["getEffectiveResourceId","validateThreadOwnership","HTTPException"],"mappings":"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","file":"chunk-KIDHIRVO.cjs","sourcesContent":["import type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { StorageThreadType } from '@mastra/core/memory';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type {\n ResponseObject,\n ResponseOutputItem,\n ResponseTextConfig,\n ResponseTool,\n ResponseUsage,\n} from '../schemas/responses';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nexport type ThreadExecutionContext = {\n threadId: string;\n resourceId: string;\n};\n\nexport type UsageLike = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n} | null;\n\nexport type ProviderMetadataLike = Record<string, Record<string, unknown> | undefined> | undefined;\n\nexport type ResponseTurnRecordMetadata = {\n agentId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n usage: ResponseUsage | null;\n instructions?: string;\n text?: ResponseTextConfig;\n previousResponseId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messageIds: string[];\n outputItems?: ResponseOutputItem[];\n};\n\nexport type ResponseTurnRecord = {\n metadata: ResponseTurnRecordMetadata;\n message: MastraDBMessage;\n messages: MastraDBMessage[];\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\ntype ResponseResultLike = {\n response?:\n | Promise<{\n dbMessages?: MastraDBMessage[];\n }>\n | {\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype SyntheticToolResultMessage = Omit<MastraDBMessage, 'role'> & { role: 'tool' };\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Resolves the backing memory store for a specific agent.\n *\n * This follows the normal agent-memory path. `agent.getMemory()` injects Mastra\n * root storage when the memory has no own storage, so this naturally prefers\n * agent storage first and falls back to Mastra storage through the same codepath.\n */\nexport async function getAgentMemoryStore({\n agent,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n}): Promise<MemoryStorage | null> {\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n return null;\n }\n\n try {\n return (await memory.storage.getStore('memory')) ?? null;\n } catch {\n return null;\n }\n}\n\n/**\n * Reads the response-turn record metadata attached to a stored assistant message.\n */\nfunction readResponseTurnRecordMetadata(message: MastraDBMessage): ResponseTurnRecordMetadata | null {\n const mastraMetadata = isPlainObject(message.content?.metadata?.mastra) ? message.content.metadata.mastra : null;\n const responseMetadata = mastraMetadata && isPlainObject(mastraMetadata.response) ? mastraMetadata.response : null;\n\n if (\n !responseMetadata ||\n typeof responseMetadata.agentId !== 'string' ||\n typeof responseMetadata.model !== 'string' ||\n typeof responseMetadata.createdAt !== 'number' ||\n (responseMetadata.completedAt !== null && typeof responseMetadata.completedAt !== 'number') ||\n (responseMetadata.instructions !== undefined && typeof responseMetadata.instructions !== 'string') ||\n (responseMetadata.text !== undefined &&\n (!isPlainObject(responseMetadata.text) || !isPlainObject(responseMetadata.text.format))) ||\n (responseMetadata.previousResponseId !== undefined && typeof responseMetadata.previousResponseId !== 'string') ||\n !Array.isArray(responseMetadata.tools) ||\n typeof responseMetadata.store !== 'boolean' ||\n !Array.isArray(responseMetadata.messageIds) ||\n (responseMetadata.outputItems !== undefined && !Array.isArray(responseMetadata.outputItems))\n ) {\n return null;\n }\n\n return {\n agentId: responseMetadata.agentId,\n model: responseMetadata.model,\n createdAt: responseMetadata.createdAt,\n completedAt: responseMetadata.completedAt,\n status: responseMetadata.status === 'completed' ? 'completed' : 'incomplete',\n usage: responseMetadata.usage as ResponseUsage | null,\n instructions: responseMetadata.instructions,\n text: responseMetadata.text as ResponseTextConfig | undefined,\n previousResponseId: responseMetadata.previousResponseId,\n providerOptions: responseMetadata.providerOptions as ProviderMetadataLike,\n tools: responseMetadata.tools as ResponseTool[],\n store: responseMetadata.store,\n messageIds: responseMetadata.messageIds.filter((value): value is string => typeof value === 'string'),\n outputItems: responseMetadata.outputItems as ResponseOutputItem[] | undefined,\n };\n}\n\n/**\n * Writes response-turn record metadata onto a persisted assistant message.\n */\nfunction writeResponseTurnRecordMetadata(\n message: MastraDBMessage,\n metadata: ResponseTurnRecordMetadata,\n): MastraDBMessage {\n const contentMetadata = isPlainObject(message.content?.metadata) ? message.content.metadata : {};\n const mastraMetadata = isPlainObject(contentMetadata.mastra) ? contentMetadata.mastra : {};\n\n return {\n ...message,\n content: {\n ...message.content,\n metadata: {\n ...contentMetadata,\n mastra: {\n ...mastraMetadata,\n response: metadata,\n },\n },\n },\n };\n}\n\n/**\n * Looks up a stored response-turn record by response id.\n *\n * Response ids are assistant message ids, so this reconstructs the record by\n * loading that persisted assistant message, reading its response metadata, then\n * reloading the full set of stored turn messages referenced by the metadata.\n */\nexport async function findResponseTurnRecord({\n agent,\n responseId,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });\n const message = matchedMessages[0];\n if (!message || message.role !== 'assistant') {\n return null;\n }\n\n const metadata = readResponseTurnRecordMetadata(message);\n if (!metadata || metadata.agentId !== agent.id) {\n return null;\n }\n\n const thread = message.threadId ? await memoryStore.getThreadById({ threadId: message.threadId }) : null;\n if (!thread) {\n return null;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];\n const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });\n const messagesById = new Map(responseMessages.map(storedMessage => [storedMessage.id, storedMessage] as const));\n const orderedMessages = messageIds\n .map(messageId => messagesById.get(messageId))\n .filter((storedMessage): storedMessage is MastraDBMessage => Boolean(storedMessage));\n\n return { metadata, message, messages: orderedMessages, thread, memoryStore };\n}\n\nexport async function findResponseTurnRecordAcrossAgents({\n mastra,\n responseId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n for (const agent of agents) {\n const match = await findResponseTurnRecord({ agent, responseId, requestContext });\n if (match) {\n return match;\n }\n }\n\n return null;\n}\n\nexport type ConversationThreadRecord = {\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\nexport async function findConversationThreadAcrossAgents({\n mastra,\n conversationId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n conversationId: string;\n requestContext: RequestContext;\n}): Promise<ConversationThreadRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n\n for (const agent of agents) {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n continue;\n }\n\n const thread = await memoryStore.getThreadById({ threadId: conversationId });\n if (!thread) {\n continue;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n return { thread, memoryStore };\n }\n\n return null;\n}\n\n/**\n * Creates a synthetic assistant message for responses that did not emit any\n * persisted DB messages but still need a durable response-turn record.\n */\nfunction createSyntheticResponseMessage({\n createdAt,\n responseId,\n text,\n threadContext,\n}: {\n createdAt?: Date;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage {\n return {\n id: responseId,\n role: 'assistant',\n type: 'text',\n createdAt: createdAt ?? new Date(),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: text ? [{ type: 'text', text }] : [],\n },\n };\n}\n\nfunction hasTextPart(message: MastraDBMessage): boolean {\n return Boolean(\n message.content?.parts?.some(\n part => isPlainObject(part) && part.type === 'text' && typeof part.text === 'string' && part.text.length > 0,\n ),\n );\n}\n\nfunction isEmptyAssistantMessage(message: MastraDBMessage): boolean {\n return message.role === 'assistant' && Array.isArray(message.content?.parts) && message.content.parts.length === 0;\n}\n\nfunction hasToolInvocationPart(message: MastraDBMessage): boolean {\n return Boolean(\n message.content?.parts?.some(\n part => isPlainObject(part) && part.type === 'tool-invocation' && isPlainObject(part.toolInvocation),\n ),\n );\n}\n\nfunction getMessageText(message: MastraDBMessage): string {\n return (\n message.content?.parts\n ?.flatMap(part =>\n isPlainObject(part) && part.type === 'text' && typeof part.text === 'string' ? [part.text] : [],\n )\n .join('') ?? ''\n );\n}\n\nfunction getOutputMessageText(item: Extract<ResponseOutputItem, { type: 'message' }>): string {\n return item.content.map(part => part.text).join('');\n}\n\nfunction normalizeFallbackComparisonText(text: string): string {\n return text.trim();\n}\n\nfunction matchesFallbackText(messageText: string, fallbackText: string): boolean {\n return (\n messageText === fallbackText ||\n normalizeFallbackComparisonText(messageText) === normalizeFallbackComparisonText(fallbackText)\n );\n}\n\nfunction hasMatchingAssistantText(\n messages: MastraDBMessage[],\n item: Extract<ResponseOutputItem, { type: 'message' }>,\n): boolean {\n const fallbackText = getOutputMessageText(item);\n\n return messages.some(\n message =>\n message.role === 'assistant' &&\n hasTextPart(message) &&\n matchesFallbackText(getMessageText(message), fallbackText),\n );\n}\n\nfunction shouldReplaceAssistantText(messageText: string, fallbackText: string): boolean {\n const normalizedMessageText = normalizeFallbackComparisonText(messageText);\n const normalizedFallbackText = normalizeFallbackComparisonText(fallbackText);\n\n return (\n normalizedFallbackText !== normalizedMessageText &&\n (fallbackText.startsWith(messageText) || normalizedFallbackText.startsWith(normalizedMessageText))\n );\n}\n\nfunction getAssistantMessageTexts(messages: MastraDBMessage[]): string[] {\n return messages.flatMap(message =>\n message.role === 'assistant' && hasTextPart(message) ? [getMessageText(message)] : [],\n );\n}\n\nfunction shouldAddFallbackMessageText(\n messages: MastraDBMessage[],\n item: Extract<ResponseOutputItem, { type: 'message' }>,\n): boolean {\n const assistantTexts = getAssistantMessageTexts(messages);\n if (assistantTexts.length === 0) {\n return true;\n }\n\n const fallbackText = getOutputMessageText(item);\n return assistantTexts.every(messageText => shouldReplaceAssistantText(messageText, fallbackText));\n}\n\nfunction shouldReplaceAssistantTextWithFallback({\n fallbackMessageTexts,\n message,\n textOnlyFallbackMessageTexts,\n}: {\n fallbackMessageTexts: Set<string>;\n message: MastraDBMessage;\n textOnlyFallbackMessageTexts: Set<string>;\n}): boolean {\n if (message.role !== 'assistant' || !hasTextPart(message)) {\n return false;\n }\n\n const messageText = getMessageText(message);\n if (!messageText) {\n return false;\n }\n\n const comparisonTexts = hasToolInvocationPart(message) ? fallbackMessageTexts : textOnlyFallbackMessageTexts;\n\n return [...comparisonTexts].some(fallbackText => shouldReplaceAssistantText(messageText, fallbackText));\n}\n\nfunction replaceAssistantTextWithFallback({\n fallbackMessageTexts,\n message,\n textOnlyFallbackMessageTexts,\n}: {\n fallbackMessageTexts: Set<string>;\n message: MastraDBMessage;\n textOnlyFallbackMessageTexts: Set<string>;\n}): MastraDBMessage {\n if (!shouldReplaceAssistantTextWithFallback({ fallbackMessageTexts, message, textOnlyFallbackMessageTexts })) {\n return message;\n }\n\n const parts = message.content?.parts ?? [];\n const remainingParts = parts.filter(part => !(isPlainObject(part) && part.type === 'text'));\n\n return {\n ...message,\n content: {\n ...message.content,\n parts: remainingParts,\n },\n };\n}\n\nfunction parseFunctionCallArguments(value: string): unknown {\n try {\n return JSON.parse(value);\n } catch {\n return { __raw: value };\n }\n}\n\nfunction createSyntheticToolResultMessage({\n baseMessage,\n item,\n responseId,\n toolCall,\n}: {\n baseMessage: Pick<MastraDBMessage, 'createdAt' | 'threadId' | 'resourceId'>;\n item: Extract<ResponseOutputItem, { type: 'function_call_output' }>;\n responseId: string;\n toolCall?: { args: unknown; toolName: string };\n}): SyntheticToolResultMessage {\n return {\n ...baseMessage,\n id: `${responseId}:tool-result:${item.call_id}`,\n role: 'tool',\n type: 'tool-result',\n content: {\n format: 2 as const,\n parts: [\n {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'result',\n toolCallId: item.call_id,\n toolName: toolCall?.toolName ?? 'unknown',\n args: toolCall?.args ?? {},\n result: item.output,\n },\n },\n ],\n },\n };\n}\n\nfunction toMastraDBMessage(message: SyntheticToolResultMessage): MastraDBMessage {\n // MastraDBMessage does not yet type persisted v2 tool-role messages, but\n // storage and response mapping already handle them at runtime.\n return message as unknown as MastraDBMessage;\n}\n\nfunction createSyntheticMessagesFromOutputItems({\n contextOutputItems,\n outputItems,\n responseId,\n threadContext,\n}: {\n contextOutputItems?: ResponseOutputItem[];\n outputItems: ResponseOutputItem[];\n responseId: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage[] {\n const toolContextItems = contextOutputItems ?? outputItems;\n const toolCallsById = new Map(\n toolContextItems.flatMap(item =>\n item.type === 'function_call'\n ? [[item.call_id, { args: parseFunctionCallArguments(item.arguments), toolName: item.name }] as const]\n : [],\n ),\n );\n\n const baseCreatedAt = Date.now();\n\n return outputItems.map((item, index): MastraDBMessage => {\n const baseMessage = {\n createdAt: new Date(baseCreatedAt + index),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n };\n\n if (item.type === 'function_call') {\n return {\n ...baseMessage,\n id: `${responseId}:tool-call:${item.call_id}`,\n role: 'assistant',\n type: 'tool-call',\n content: {\n format: 2 as const,\n parts: [\n {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'call',\n toolCallId: item.call_id,\n toolName: item.name,\n args: parseFunctionCallArguments(item.arguments),\n },\n },\n ],\n },\n };\n }\n\n if (item.type === 'function_call_output') {\n const toolCall = toolCallsById.get(item.call_id);\n\n return toMastraDBMessage(createSyntheticToolResultMessage({ baseMessage, item, responseId, toolCall }));\n }\n\n return {\n ...baseMessage,\n id: item.id,\n role: 'assistant',\n type: 'text',\n content: {\n format: 2 as const,\n parts: item.content.map(part => ({ type: 'text' as const, text: part.text })),\n },\n };\n });\n}\n\nfunction getToolInvocationParts(message: MastraDBMessage): Array<Record<string, unknown>> {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n\n return parts.flatMap(part =>\n isPlainObject(part) && part.type === 'tool-invocation' && isPlainObject(part.toolInvocation)\n ? [part.toolInvocation]\n : [],\n );\n}\n\nfunction getMissingFallbackOutputItems({\n fallbackOutputItems = [],\n messages,\n}: {\n fallbackOutputItems?: ResponseObject['output'];\n messages: MastraDBMessage[];\n}): ResponseOutputItem[] {\n if (!fallbackOutputItems.length) {\n return [];\n }\n\n const existingCallIds = new Set<string>();\n const existingResultCallIds = new Set<string>();\n\n for (const message of messages) {\n for (const toolInvocation of getToolInvocationParts(message)) {\n const toolCallId = typeof toolInvocation.toolCallId === 'string' ? toolInvocation.toolCallId : null;\n if (!toolCallId) {\n continue;\n }\n\n if (message.role === 'assistant' && (toolInvocation.args !== undefined || toolInvocation.result === undefined)) {\n existingCallIds.add(toolCallId);\n }\n if (toolInvocation.result !== undefined) {\n existingResultCallIds.add(toolCallId);\n }\n }\n }\n\n return fallbackOutputItems.filter(item => {\n if (item.type === 'function_call') {\n return !existingCallIds.has(item.call_id);\n }\n\n if (item.type === 'function_call_output') {\n return !existingResultCallIds.has(item.call_id);\n }\n\n if (item.type === 'message') {\n if (!item.content.some(part => part.text.length > 0) || hasMatchingAssistantText(messages, item)) {\n return false;\n }\n\n return shouldAddFallbackMessageText(messages, item);\n }\n\n return false;\n });\n}\n\nfunction getFallbackOutputIdForMessage(\n message: MastraDBMessage,\n responseId: string,\n fallbackOutputIds: Set<string>,\n): string | null {\n for (const toolInvocation of getToolInvocationParts(message)) {\n const toolCallId = typeof toolInvocation.toolCallId === 'string' ? toolInvocation.toolCallId : null;\n if (!toolCallId) {\n continue;\n }\n\n if (message.role === 'assistant' && toolInvocation.args !== undefined) {\n return toolCallId;\n }\n\n if (toolInvocation.result !== undefined) {\n return `${toolCallId}:output`;\n }\n }\n\n if (message.role === 'assistant' && hasTextPart(message)) {\n return fallbackOutputIds.has(message.id) ? message.id : responseId;\n }\n\n return null;\n}\n\nfunction sortMessagesByFallbackOutputOrder({\n fallbackOutputItems = [],\n messages,\n responseId,\n}: {\n fallbackOutputItems?: ResponseObject['output'];\n messages: MastraDBMessage[];\n responseId: string;\n}): MastraDBMessage[] {\n if (!fallbackOutputItems.length) {\n return messages;\n }\n\n const outputOrder = new Map(fallbackOutputItems.map((item, index) => [item.id, index]));\n const fallbackOutputIds = new Set(outputOrder.keys());\n\n return messages\n .map((message, index) => ({\n index,\n message,\n outputIndex:\n outputOrder.get(getFallbackOutputIdForMessage(message, responseId, fallbackOutputIds) ?? '') ??\n Number.MAX_SAFE_INTEGER,\n }))\n .sort((left, right) => left.outputIndex - right.outputIndex || left.index - right.index)\n .map(({ message }) => message);\n}\n\n/**\n * Resolves the Mastra messages that belong to the response turn being stored.\n */\nexport async function resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text,\n threadContext,\n fallbackOutputItems,\n}: {\n result: ResponseResultLike;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext | null;\n fallbackOutputItems?: ResponseObject['output'];\n}): Promise<MastraDBMessage[]> {\n const response = await result.response;\n const responseMessages = response?.dbMessages?.length ? response.dbMessages : [];\n\n if (!threadContext) {\n return responseMessages;\n }\n\n if (responseMessages.length === 0) {\n if (fallbackOutputItems?.length) {\n const syntheticMessages = createSyntheticMessagesFromOutputItems({\n outputItems: fallbackOutputItems,\n responseId,\n threadContext,\n });\n\n return text && !syntheticMessages.some(message => message.role === 'assistant' && hasTextPart(message))\n ? [\n ...syntheticMessages,\n createSyntheticResponseMessage({\n createdAt: new Date(new Date(syntheticMessages.at(-1)?.createdAt ?? Date.now()).getTime() + 1),\n responseId,\n text,\n threadContext,\n }),\n ]\n : syntheticMessages;\n }\n\n return [createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n const missingFallbackItems = getMissingFallbackOutputItems({ fallbackOutputItems, messages: responseMessages });\n const missingFallbackMessageIds = new Set(\n missingFallbackItems\n .filter((item): item is Extract<ResponseOutputItem, { type: 'message' }> => item.type === 'message')\n .map(item => item.id),\n );\n const fallbackItemsWithMatchingAssistantText = (fallbackOutputItems ?? []).filter(\n (item): item is Extract<ResponseOutputItem, { type: 'message' }> =>\n item.type === 'message' && hasMatchingAssistantText(responseMessages, item),\n );\n const textOnlyFallbackMessageTexts = new Set(\n fallbackItemsWithMatchingAssistantText.map(getOutputMessageText).filter(Boolean),\n );\n const fallbackMessageTexts = new Set(\n (fallbackOutputItems ?? [])\n .filter((item): item is Extract<ResponseOutputItem, { type: 'message' }> => item.type === 'message')\n .filter(item => missingFallbackMessageIds.has(item.id) || fallbackItemsWithMatchingAssistantText.includes(item))\n .map(getOutputMessageText)\n .filter(Boolean),\n );\n const baseMessages = fallbackMessageTexts.size\n ? responseMessages.map(message =>\n replaceAssistantTextWithFallback({ fallbackMessageTexts, message, textOnlyFallbackMessageTexts }),\n )\n : responseMessages;\n const syntheticFallbackMessages = createSyntheticMessagesFromOutputItems({\n contextOutputItems: fallbackOutputItems ?? [],\n outputItems: missingFallbackItems,\n responseId,\n threadContext,\n });\n const resolvedMessages = sortMessagesByFallbackOutputOrder({\n fallbackOutputItems,\n messages: [...baseMessages, ...syntheticFallbackMessages],\n responseId,\n });\n\n if (text && !resolvedMessages.some(message => message.role === 'assistant' && hasTextPart(message))) {\n return [...resolvedMessages, createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n return resolvedMessages;\n}\n\n/**\n * Persists a response-turn record by anchoring it on the final assistant\n * message in the stored turn.\n *\n * The response id becomes that assistant message id, and the response-specific\n * metadata is written onto the assistant message so later retrieval can rebuild\n * the Responses object from thread-backed storage.\n */\nexport async function persistResponseTurnRecord({\n memoryStore,\n responseId,\n metadata,\n threadContext,\n messages,\n}: {\n memoryStore: MemoryStorage | null;\n responseId: string;\n metadata: ResponseTurnRecordMetadata;\n threadContext: ThreadExecutionContext;\n messages: MastraDBMessage[];\n}): Promise<void> {\n if (!memoryStore) {\n throw new HTTPException(500, { message: 'Memory storage was not available while storing the response' });\n }\n\n const normalizedMessages: MastraDBMessage[] = messages.map(message => ({\n ...message,\n threadId: message.threadId ?? threadContext.threadId,\n resourceId: message.resourceId ?? threadContext.resourceId,\n }));\n\n const lastAssistantIndex = [...normalizedMessages].map(message => message.role).lastIndexOf('assistant');\n const responseAnchorIndex =\n [...normalizedMessages]\n .map((message, index) => ({ index, message }))\n .reverse()\n .find(({ message }) => message.role === 'assistant' && hasTextPart(message))?.index ?? lastAssistantIndex;\n const lastAssistantMessage =\n responseAnchorIndex >= 0\n ? {\n ...normalizedMessages[responseAnchorIndex]!,\n id: responseId,\n }\n : ({\n id: responseId,\n role: 'assistant' as const,\n type: 'text' as const,\n createdAt: new Date(metadata.completedAt ? metadata.completedAt * 1000 : Date.now()),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: [],\n },\n } satisfies MastraDBMessage);\n\n if (responseAnchorIndex >= 0) {\n normalizedMessages[responseAnchorIndex] = lastAssistantMessage;\n } else {\n normalizedMessages.push(lastAssistantMessage);\n }\n const storedMessageIndex = responseAnchorIndex >= 0 ? responseAnchorIndex : normalizedMessages.length - 1;\n\n const droppedSupersededMessageIds = normalizedMessages.flatMap((message, index) =>\n index !== storedMessageIndex && isEmptyAssistantMessage(message) && messages[index]?.id\n ? [messages[index]!.id]\n : [],\n );\n const staleMessageIds =\n responseAnchorIndex >= 0 && messages[responseAnchorIndex]?.id && messages[responseAnchorIndex]?.id !== responseId\n ? [messages[responseAnchorIndex]!.id]\n : [];\n const messagesToSave = normalizedMessages.filter(\n (message, index) => index === storedMessageIndex || !isEmptyAssistantMessage(message),\n );\n\n const storedMessage = writeResponseTurnRecordMetadata(lastAssistantMessage, {\n ...metadata,\n messageIds: messagesToSave.map(message => message.id),\n });\n\n if (responseAnchorIndex >= 0) {\n normalizedMessages[responseAnchorIndex] = storedMessage;\n } else {\n normalizedMessages[normalizedMessages.length - 1] = storedMessage;\n }\n\n const savedMessages = normalizedMessages.filter(\n (message, index) => index === storedMessageIndex || !isEmptyAssistantMessage(message),\n );\n\n await memoryStore.saveMessages({ messages: savedMessages });\n\n const deleteMessageIds = [...new Set([...staleMessageIds, ...droppedSupersededMessageIds])];\n if (deleteMessageIds.length > 0) {\n await memoryStore.deleteMessages(deleteMessageIds);\n }\n}\n\n/**\n * Removes all persisted messages for a stored response-turn record.\n */\nexport async function deleteResponseTurnRecord({\n responseTurnRecord,\n}: {\n responseTurnRecord: ResponseTurnRecord;\n}): Promise<void> {\n const messageIds =\n responseTurnRecord.messages.length > 0\n ? responseTurnRecord.messages.map(message => message.id)\n : [responseTurnRecord.message.id];\n\n await responseTurnRecord.memoryStore.deleteMessages(messageIds);\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { handleAutoVersioning } from './chunk-33QPJPK4.js';
2
1
  import { listStoredPromptBlocksResponseSchema, listStoredPromptBlocksQuerySchema, getStoredPromptBlockResponseSchema, storedPromptBlockIdPathParams, createStoredPromptBlockResponseSchema, createStoredPromptBlockBodySchema, updateStoredPromptBlockResponseSchema, updateStoredPromptBlockBodySchema, deleteStoredPromptBlockResponseSchema } from './chunk-BUFXUC67.js';
3
- import { getStoredResourceScope, scopeStoredResourceMetadata, assertStoredResourceScope, toSlug } from './chunk-IBUJJIRW.js';
2
+ import { handleAutoVersioning } from './chunk-33QPJPK4.js';
3
+ import { statusQuerySchema } from './chunk-2YY3EMMS.js';
4
+ import { getStoredResourceScope, scopeStoredResourceMetadata, assertStoredResourceScope, toSlug } from './chunk-QIQWHDPH.js';
4
5
  import { handleError } from './chunk-7ZWJX3AN.js';
5
- import { createRoute } from './chunk-Z5MTOVTR.js';
6
+ import { createRoute } from './chunk-PIKPS6Q6.js';
6
7
  import { HTTPException } from './chunk-6QWQZI4Q.js';
7
- import { statusQuerySchema } from './chunk-2YY3EMMS.js';
8
8
 
9
9
  // src/server/handlers/stored-prompt-blocks.ts
10
10
  var PROMPT_BLOCK_SNAPSHOT_CONFIG_FIELDS = [
@@ -267,5 +267,5 @@ var DELETE_STORED_PROMPT_BLOCK_ROUTE = createRoute({
267
267
  });
268
268
 
269
269
  export { CREATE_STORED_PROMPT_BLOCK_ROUTE, DELETE_STORED_PROMPT_BLOCK_ROUTE, GET_STORED_PROMPT_BLOCK_ROUTE, LIST_STORED_PROMPT_BLOCKS_ROUTE, UPDATE_STORED_PROMPT_BLOCK_ROUTE };
270
- //# sourceMappingURL=chunk-FZGSWPE7.js.map
271
- //# sourceMappingURL=chunk-FZGSWPE7.js.map
270
+ //# sourceMappingURL=chunk-KRZJLGGN.js.map
271
+ //# sourceMappingURL=chunk-KRZJLGGN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/stored-prompt-blocks.ts"],"names":[],"mappings":"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","file":"chunk-FZGSWPE7.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedPromptBlockIdPathParams,\n statusQuerySchema,\n listStoredPromptBlocksQuerySchema,\n createStoredPromptBlockBodySchema,\n updateStoredPromptBlockBodySchema,\n listStoredPromptBlocksResponseSchema,\n getStoredPromptBlockResponseSchema,\n createStoredPromptBlockResponseSchema,\n updateStoredPromptBlockResponseSchema,\n deleteStoredPromptBlockResponseSchema,\n} from '../schemas/stored-prompt-blocks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst PROMPT_BLOCK_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'content',\n 'rules',\n 'requestContextSchema',\n] as const;\n\n/** Computes whether a prompt block has an unpublished draft version. */\nfunction computeHasDraft(\n latestVersion: { id: string } | null | undefined,\n activeVersionId: string | null | undefined,\n): boolean {\n return !!(latestVersion && (!activeVersionId || latestVersion.id !== activeVersionId));\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/prompt-blocks - List all stored prompt blocks\n */\nexport const LIST_STORED_PROMPT_BLOCKS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/prompt-blocks',\n responseType: 'json',\n queryParamSchema: listStoredPromptBlocksQuerySchema,\n responseSchema: listStoredPromptBlocksResponseSchema,\n summary: 'List stored prompt blocks',\n description: 'Returns a paginated list of all prompt blocks stored in the database',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await promptBlockStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n // For each block, fetch the latest version to compute hasDraft.\n // resolvedVersionId from listResolved defaults to 'published' resolution,\n // so we need the actual latest version to detect unpublished drafts.\n const promptBlocks = await Promise.all(\n result.promptBlocks.map(async (block: (typeof result.promptBlocks)[number]) => {\n const latestVersion = await promptBlockStore.getLatestVersion(block.id);\n return { ...block, hasDraft: computeHasDraft(latestVersion, block.activeVersionId) };\n }),\n );\n\n return { ...result, promptBlocks };\n } catch (error) {\n return handleError(error, 'Error listing stored prompt blocks');\n }\n },\n});\n\n/**\n * GET /stored/prompt-blocks/:storedPromptBlockId - Get a stored prompt block by ID\n */\nexport const GET_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredPromptBlockResponseSchema,\n summary: 'Get stored prompt block by ID',\n description:\n 'Returns a specific prompt block from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, storedPromptBlockId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n const promptBlock = await promptBlockStore.getByIdResolved(storedPromptBlockId, { status });\n\n if (!promptBlock) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n assertStoredResourceScope(promptBlock, await getStoredResourceScope(mastra, requestContext));\n\n const latestVersion = await promptBlockStore.getLatestVersion(storedPromptBlockId);\n\n return { ...promptBlock, hasDraft: computeHasDraft(latestVersion, promptBlock.activeVersionId) };\n } catch (error) {\n return handleError(error, 'Error getting stored prompt block');\n }\n },\n});\n\n/**\n * POST /stored/prompt-blocks - Create a new stored prompt block\n */\nexport const CREATE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/prompt-blocks',\n responseType: 'json',\n bodySchema: createStoredPromptBlockBodySchema,\n responseSchema: createStoredPromptBlockResponseSchema,\n summary: 'Create stored prompt block',\n description: 'Creates a new prompt block in storage with the provided configuration',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n content,\n rules,\n requestContextSchema,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive prompt block ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if prompt block with this ID already exists\n const existing = await promptBlockStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Prompt block with id ${id} already exists` });\n }\n\n await promptBlockStore.create({\n promptBlock: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n content,\n rules,\n requestContextSchema,\n },\n });\n\n // Return the resolved prompt block (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await promptBlockStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created prompt block' });\n }\n\n const latestVersion = await promptBlockStore.getLatestVersion(id);\n const hasDraft = !!(\n latestVersion &&\n (!resolved.activeVersionId || latestVersion.id !== resolved.activeVersionId)\n );\n\n return { ...resolved, hasDraft };\n } catch (error) {\n return handleError(error, 'Error creating stored prompt block');\n }\n },\n});\n\n/**\n * PATCH /stored/prompt-blocks/:storedPromptBlockId - Update a stored prompt block\n */\nexport const UPDATE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n bodySchema: updateStoredPromptBlockBodySchema,\n responseSchema: updateStoredPromptBlockResponseSchema,\n summary: 'Update stored prompt block',\n description: 'Updates an existing prompt block in storage with the provided fields',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedPromptBlockId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n content,\n rules,\n requestContextSchema,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Check if prompt block exists\n const existing = await promptBlockStore.getById(storedPromptBlockId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the prompt block with both metadata-level and config-level fields\n const updatedPromptBlock = await promptBlockStore.update({\n id: storedPromptBlockId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n content,\n rules,\n requestContextSchema,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = { name, description, content, rules, requestContextSchema };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n promptBlockStore as unknown as VersionedStoreInterface,\n storedPromptBlockId,\n 'blockId',\n PROMPT_BLOCK_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedPromptBlock,\n providedConfigFields,\n );\n\n // Return the resolved prompt block with the latest (draft) version so the UI sees its edits\n const resolved = await promptBlockStore.getByIdResolved(storedPromptBlockId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated prompt block' });\n }\n\n const latestVersion = await promptBlockStore.getLatestVersion(storedPromptBlockId);\n const hasDraft = !!(\n latestVersion &&\n (!resolved.activeVersionId || latestVersion.id !== resolved.activeVersionId)\n );\n\n return { ...resolved, hasDraft };\n } catch (error) {\n return handleError(error, 'Error updating stored prompt block');\n }\n },\n});\n\n/**\n * DELETE /stored/prompt-blocks/:storedPromptBlockId - Delete a stored prompt block\n */\nexport const DELETE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n responseSchema: deleteStoredPromptBlockResponseSchema,\n summary: 'Delete stored prompt block',\n description: 'Deletes a prompt block from storage by its unique identifier',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, storedPromptBlockId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Check if prompt block exists\n const existing = await promptBlockStore.getById(storedPromptBlockId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await promptBlockStore.delete(storedPromptBlockId);\n\n return {\n success: true,\n message: `Prompt block ${storedPromptBlockId} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting stored prompt block');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/stored-prompt-blocks.ts"],"names":[],"mappings":"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","file":"chunk-KRZJLGGN.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedPromptBlockIdPathParams,\n statusQuerySchema,\n listStoredPromptBlocksQuerySchema,\n createStoredPromptBlockBodySchema,\n updateStoredPromptBlockBodySchema,\n listStoredPromptBlocksResponseSchema,\n getStoredPromptBlockResponseSchema,\n createStoredPromptBlockResponseSchema,\n updateStoredPromptBlockResponseSchema,\n deleteStoredPromptBlockResponseSchema,\n} from '../schemas/stored-prompt-blocks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst PROMPT_BLOCK_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'content',\n 'rules',\n 'requestContextSchema',\n] as const;\n\n/** Computes whether a prompt block has an unpublished draft version. */\nfunction computeHasDraft(\n latestVersion: { id: string } | null | undefined,\n activeVersionId: string | null | undefined,\n): boolean {\n return !!(latestVersion && (!activeVersionId || latestVersion.id !== activeVersionId));\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/prompt-blocks - List all stored prompt blocks\n */\nexport const LIST_STORED_PROMPT_BLOCKS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/prompt-blocks',\n responseType: 'json',\n queryParamSchema: listStoredPromptBlocksQuerySchema,\n responseSchema: listStoredPromptBlocksResponseSchema,\n summary: 'List stored prompt blocks',\n description: 'Returns a paginated list of all prompt blocks stored in the database',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await promptBlockStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n // For each block, fetch the latest version to compute hasDraft.\n // resolvedVersionId from listResolved defaults to 'published' resolution,\n // so we need the actual latest version to detect unpublished drafts.\n const promptBlocks = await Promise.all(\n result.promptBlocks.map(async (block: (typeof result.promptBlocks)[number]) => {\n const latestVersion = await promptBlockStore.getLatestVersion(block.id);\n return { ...block, hasDraft: computeHasDraft(latestVersion, block.activeVersionId) };\n }),\n );\n\n return { ...result, promptBlocks };\n } catch (error) {\n return handleError(error, 'Error listing stored prompt blocks');\n }\n },\n});\n\n/**\n * GET /stored/prompt-blocks/:storedPromptBlockId - Get a stored prompt block by ID\n */\nexport const GET_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredPromptBlockResponseSchema,\n summary: 'Get stored prompt block by ID',\n description:\n 'Returns a specific prompt block from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, storedPromptBlockId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n const promptBlock = await promptBlockStore.getByIdResolved(storedPromptBlockId, { status });\n\n if (!promptBlock) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n assertStoredResourceScope(promptBlock, await getStoredResourceScope(mastra, requestContext));\n\n const latestVersion = await promptBlockStore.getLatestVersion(storedPromptBlockId);\n\n return { ...promptBlock, hasDraft: computeHasDraft(latestVersion, promptBlock.activeVersionId) };\n } catch (error) {\n return handleError(error, 'Error getting stored prompt block');\n }\n },\n});\n\n/**\n * POST /stored/prompt-blocks - Create a new stored prompt block\n */\nexport const CREATE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/prompt-blocks',\n responseType: 'json',\n bodySchema: createStoredPromptBlockBodySchema,\n responseSchema: createStoredPromptBlockResponseSchema,\n summary: 'Create stored prompt block',\n description: 'Creates a new prompt block in storage with the provided configuration',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n content,\n rules,\n requestContextSchema,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive prompt block ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if prompt block with this ID already exists\n const existing = await promptBlockStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Prompt block with id ${id} already exists` });\n }\n\n await promptBlockStore.create({\n promptBlock: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n content,\n rules,\n requestContextSchema,\n },\n });\n\n // Return the resolved prompt block (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await promptBlockStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created prompt block' });\n }\n\n const latestVersion = await promptBlockStore.getLatestVersion(id);\n const hasDraft = !!(\n latestVersion &&\n (!resolved.activeVersionId || latestVersion.id !== resolved.activeVersionId)\n );\n\n return { ...resolved, hasDraft };\n } catch (error) {\n return handleError(error, 'Error creating stored prompt block');\n }\n },\n});\n\n/**\n * PATCH /stored/prompt-blocks/:storedPromptBlockId - Update a stored prompt block\n */\nexport const UPDATE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n bodySchema: updateStoredPromptBlockBodySchema,\n responseSchema: updateStoredPromptBlockResponseSchema,\n summary: 'Update stored prompt block',\n description: 'Updates an existing prompt block in storage with the provided fields',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedPromptBlockId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n content,\n rules,\n requestContextSchema,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Check if prompt block exists\n const existing = await promptBlockStore.getById(storedPromptBlockId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the prompt block with both metadata-level and config-level fields\n const updatedPromptBlock = await promptBlockStore.update({\n id: storedPromptBlockId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n content,\n rules,\n requestContextSchema,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = { name, description, content, rules, requestContextSchema };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n promptBlockStore as unknown as VersionedStoreInterface,\n storedPromptBlockId,\n 'blockId',\n PROMPT_BLOCK_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedPromptBlock,\n providedConfigFields,\n );\n\n // Return the resolved prompt block with the latest (draft) version so the UI sees its edits\n const resolved = await promptBlockStore.getByIdResolved(storedPromptBlockId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated prompt block' });\n }\n\n const latestVersion = await promptBlockStore.getLatestVersion(storedPromptBlockId);\n const hasDraft = !!(\n latestVersion &&\n (!resolved.activeVersionId || latestVersion.id !== resolved.activeVersionId)\n );\n\n return { ...resolved, hasDraft };\n } catch (error) {\n return handleError(error, 'Error updating stored prompt block');\n }\n },\n});\n\n/**\n * DELETE /stored/prompt-blocks/:storedPromptBlockId - Delete a stored prompt block\n */\nexport const DELETE_STORED_PROMPT_BLOCK_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/prompt-blocks/:storedPromptBlockId',\n responseType: 'json',\n pathParamSchema: storedPromptBlockIdPathParams,\n responseSchema: deleteStoredPromptBlockResponseSchema,\n summary: 'Delete stored prompt block',\n description: 'Deletes a prompt block from storage by its unique identifier',\n tags: ['Stored Prompt Blocks'],\n requiresAuth: true,\n handler: async ({ mastra, storedPromptBlockId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const promptBlockStore = await storage.getStore('promptBlocks');\n if (!promptBlockStore) {\n throw new HTTPException(500, { message: 'Prompt blocks storage domain is not available' });\n }\n\n // Check if prompt block exists\n const existing = await promptBlockStore.getById(storedPromptBlockId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored prompt block with id ${storedPromptBlockId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await promptBlockStore.delete(storedPromptBlockId);\n\n return {\n success: true,\n message: `Prompt block ${storedPromptBlockId} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting stored prompt block');\n }\n },\n});\n"]}