@mastra/server 1.51.0-alpha.11 → 1.51.0-alpha.13

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 (339) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{api-schema-manifest-G2SC5CFQ.cjs → api-schema-manifest-4TI7FSNK.cjs} +6 -6
  3. package/dist/{api-schema-manifest-G2SC5CFQ.cjs.map → api-schema-manifest-4TI7FSNK.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-UXI5JTRL.js → api-schema-manifest-AJIZCNSL.js} +4 -4
  5. package/dist/{api-schema-manifest-UXI5JTRL.js.map → api-schema-manifest-AJIZCNSL.js.map} +1 -1
  6. package/dist/{chunk-MCWL6335.cjs → chunk-27F2AJU2.cjs} +6 -6
  7. package/dist/{chunk-MCWL6335.cjs.map → chunk-27F2AJU2.cjs.map} +1 -1
  8. package/dist/{chunk-BWTM7QBG.js → chunk-2H2SGSP4.js} +3 -3
  9. package/dist/{chunk-BWTM7QBG.js.map → chunk-2H2SGSP4.js.map} +1 -1
  10. package/dist/{chunk-O7HH6SBJ.cjs → chunk-2S4SNS5D.cjs} +10 -10
  11. package/dist/{chunk-O7HH6SBJ.cjs.map → chunk-2S4SNS5D.cjs.map} +1 -1
  12. package/dist/{chunk-CDVWZOPU.js → chunk-3F5MV2ED.js} +3 -3
  13. package/dist/{chunk-CDVWZOPU.js.map → chunk-3F5MV2ED.js.map} +1 -1
  14. package/dist/{chunk-VL23G2YJ.js → chunk-44G63V6E.js} +5 -5
  15. package/dist/{chunk-VL23G2YJ.js.map → chunk-44G63V6E.js.map} +1 -1
  16. package/dist/{chunk-FEUXFWF5.cjs → chunk-4VDJYNCU.cjs} +4 -4
  17. package/dist/{chunk-FEUXFWF5.cjs.map → chunk-4VDJYNCU.cjs.map} +1 -1
  18. package/dist/{chunk-HNOAHMN4.cjs → chunk-52LEKN7E.cjs} +6 -6
  19. package/dist/{chunk-HNOAHMN4.cjs.map → chunk-52LEKN7E.cjs.map} +1 -1
  20. package/dist/{chunk-XYWMMHEC.js → chunk-5535L5CG.js} +3 -3
  21. package/dist/{chunk-XYWMMHEC.js.map → chunk-5535L5CG.js.map} +1 -1
  22. package/dist/{chunk-PJPR5YFS.js → chunk-5VEVLTZC.js} +5 -5
  23. package/dist/{chunk-PJPR5YFS.js.map → chunk-5VEVLTZC.js.map} +1 -1
  24. package/dist/{chunk-MSTNHQU2.cjs → chunk-6LFFIOT4.cjs} +9 -9
  25. package/dist/{chunk-MSTNHQU2.cjs.map → chunk-6LFFIOT4.cjs.map} +1 -1
  26. package/dist/{chunk-PVPXK52S.cjs → chunk-6NNCDLZC.cjs} +29 -29
  27. package/dist/{chunk-PVPXK52S.cjs.map → chunk-6NNCDLZC.cjs.map} +1 -1
  28. package/dist/{chunk-BT4DGQFS.js → chunk-6QIJVEVN.js} +3 -3
  29. package/dist/{chunk-BT4DGQFS.js.map → chunk-6QIJVEVN.js.map} +1 -1
  30. package/dist/{chunk-3R4HNV6B.js → chunk-7NBIALK4.js} +3 -3
  31. package/dist/{chunk-3R4HNV6B.js.map → chunk-7NBIALK4.js.map} +1 -1
  32. package/dist/{chunk-DMFYLU2A.js → chunk-7PXSB34V.js} +39 -7
  33. package/dist/chunk-7PXSB34V.js.map +1 -0
  34. package/dist/{chunk-LQSQWD2F.cjs → chunk-A2NBGGMX.cjs} +8 -8
  35. package/dist/{chunk-LQSQWD2F.cjs.map → chunk-A2NBGGMX.cjs.map} +1 -1
  36. package/dist/{chunk-W2ATM2RI.cjs → chunk-APMXFPSU.cjs} +13 -13
  37. package/dist/{chunk-W2ATM2RI.cjs.map → chunk-APMXFPSU.cjs.map} +1 -1
  38. package/dist/{chunk-3RQNJCTP.cjs → chunk-AX3JNQ27.cjs} +19 -19
  39. package/dist/{chunk-3RQNJCTP.cjs.map → chunk-AX3JNQ27.cjs.map} +1 -1
  40. package/dist/{chunk-TDSDLPLC.js → chunk-BH354CYO.js} +3 -3
  41. package/dist/{chunk-TDSDLPLC.js.map → chunk-BH354CYO.js.map} +1 -1
  42. package/dist/{chunk-536ERKFJ.js → chunk-BMGJWPCE.js} +3 -3
  43. package/dist/{chunk-536ERKFJ.js.map → chunk-BMGJWPCE.js.map} +1 -1
  44. package/dist/{chunk-Q6D6YN36.js → chunk-CH5VUESZ.js} +4 -4
  45. package/dist/{chunk-Q6D6YN36.js.map → chunk-CH5VUESZ.js.map} +1 -1
  46. package/dist/{chunk-BHOFB3CF.cjs → chunk-CTYOUJ2J.cjs} +11 -11
  47. package/dist/{chunk-BHOFB3CF.cjs.map → chunk-CTYOUJ2J.cjs.map} +1 -1
  48. package/dist/{chunk-NE5VRVVK.cjs → chunk-DJGKM4TB.cjs} +4 -4
  49. package/dist/{chunk-NE5VRVVK.cjs.map → chunk-DJGKM4TB.cjs.map} +1 -1
  50. package/dist/{chunk-RRQZAJDZ.js → chunk-E43WB5QM.js} +5 -2
  51. package/dist/chunk-E43WB5QM.js.map +1 -0
  52. package/dist/{chunk-VXZGDPW2.cjs → chunk-EJFYAD2W.cjs} +8 -8
  53. package/dist/{chunk-VXZGDPW2.cjs.map → chunk-EJFYAD2W.cjs.map} +1 -1
  54. package/dist/{chunk-26WG2OUY.cjs → chunk-ELVO5SFM.cjs} +8 -8
  55. package/dist/{chunk-26WG2OUY.cjs.map → chunk-ELVO5SFM.cjs.map} +1 -1
  56. package/dist/{chunk-OI3USMND.cjs → chunk-G7RPSZUK.cjs} +71 -71
  57. package/dist/{chunk-OI3USMND.cjs.map → chunk-G7RPSZUK.cjs.map} +1 -1
  58. package/dist/{chunk-CAHPP34Z.cjs → chunk-GGPRZBVJ.cjs} +11 -11
  59. package/dist/{chunk-CAHPP34Z.cjs.map → chunk-GGPRZBVJ.cjs.map} +1 -1
  60. package/dist/{chunk-JNFYIWNB.cjs → chunk-GO6Y47XC.cjs} +101 -101
  61. package/dist/{chunk-JNFYIWNB.cjs.map → chunk-GO6Y47XC.cjs.map} +1 -1
  62. package/dist/{chunk-CP5LPQIZ.cjs → chunk-GULBOJRY.cjs} +6 -6
  63. package/dist/{chunk-CP5LPQIZ.cjs.map → chunk-GULBOJRY.cjs.map} +1 -1
  64. package/dist/{chunk-UY5FTPBZ.cjs → chunk-H32FN255.cjs} +5 -2
  65. package/dist/chunk-H32FN255.cjs.map +1 -0
  66. package/dist/{chunk-7Z7JQRMK.js → chunk-HI4E75YH.js} +3 -3
  67. package/dist/{chunk-7Z7JQRMK.js.map → chunk-HI4E75YH.js.map} +1 -1
  68. package/dist/{chunk-BJESJLXW.cjs → chunk-I5K3Z37P.cjs} +293 -287
  69. package/dist/chunk-I5K3Z37P.cjs.map +1 -0
  70. package/dist/{chunk-UUMG5HMP.cjs → chunk-IEEP4JWJ.cjs} +12 -12
  71. package/dist/{chunk-UUMG5HMP.cjs.map → chunk-IEEP4JWJ.cjs.map} +1 -1
  72. package/dist/{chunk-Y5DUPEQF.cjs → chunk-IKIMKEA3.cjs} +8 -8
  73. package/dist/{chunk-Y5DUPEQF.cjs.map → chunk-IKIMKEA3.cjs.map} +1 -1
  74. package/dist/{chunk-ZSMQDHMV.cjs → chunk-IRIBLEBI.cjs} +10 -10
  75. package/dist/{chunk-ZSMQDHMV.cjs.map → chunk-IRIBLEBI.cjs.map} +1 -1
  76. package/dist/{chunk-PWW7XZFS.js → chunk-IWIWEX2Y.js} +5 -5
  77. package/dist/{chunk-PWW7XZFS.js.map → chunk-IWIWEX2Y.js.map} +1 -1
  78. package/dist/{chunk-7RAQVA42.cjs → chunk-J6TRVKBB.cjs} +11 -11
  79. package/dist/{chunk-7RAQVA42.cjs.map → chunk-J6TRVKBB.cjs.map} +1 -1
  80. package/dist/{chunk-WRAFGZ43.js → chunk-JGEOOOSP.js} +3 -3
  81. package/dist/{chunk-WRAFGZ43.js.map → chunk-JGEOOOSP.js.map} +1 -1
  82. package/dist/{chunk-KGZYP6YS.js → chunk-JQWULXKN.js} +5 -5
  83. package/dist/{chunk-KGZYP6YS.js.map → chunk-JQWULXKN.js.map} +1 -1
  84. package/dist/{chunk-KLD4KYXH.cjs → chunk-K6WZK5RX.cjs} +21 -21
  85. package/dist/{chunk-KLD4KYXH.cjs.map → chunk-K6WZK5RX.cjs.map} +1 -1
  86. package/dist/{chunk-MRD47GBP.cjs → chunk-K7KLUGGM.cjs} +74 -74
  87. package/dist/{chunk-MRD47GBP.cjs.map → chunk-K7KLUGGM.cjs.map} +1 -1
  88. package/dist/{chunk-6ZXLYXPA.js → chunk-KN6HJVZK.js} +4 -4
  89. package/dist/{chunk-6ZXLYXPA.js.map → chunk-KN6HJVZK.js.map} +1 -1
  90. package/dist/{chunk-OGYVHIJQ.cjs → chunk-KOMWGC24.cjs} +7 -7
  91. package/dist/{chunk-OGYVHIJQ.cjs.map → chunk-KOMWGC24.cjs.map} +1 -1
  92. package/dist/{chunk-RK2FLBQ5.js → chunk-LTKBD2RQ.js} +3 -3
  93. package/dist/{chunk-RK2FLBQ5.js.map → chunk-LTKBD2RQ.js.map} +1 -1
  94. package/dist/{chunk-5QB32PNO.cjs → chunk-LXP7DQAP.cjs} +37 -37
  95. package/dist/{chunk-5QB32PNO.cjs.map → chunk-LXP7DQAP.cjs.map} +1 -1
  96. package/dist/{chunk-GCGJKH4A.cjs → chunk-LYOM6EQP.cjs} +8 -8
  97. package/dist/{chunk-GCGJKH4A.cjs.map → chunk-LYOM6EQP.cjs.map} +1 -1
  98. package/dist/{chunk-F7KRU6ZU.js → chunk-M7OJEIOD.js} +3 -3
  99. package/dist/{chunk-F7KRU6ZU.js.map → chunk-M7OJEIOD.js.map} +1 -1
  100. package/dist/{chunk-MASP4GYH.js → chunk-MCRQRKRI.js} +3 -3
  101. package/dist/{chunk-MASP4GYH.js.map → chunk-MCRQRKRI.js.map} +1 -1
  102. package/dist/{chunk-SS7P2THJ.js → chunk-MG2QPYJD.js} +41 -41
  103. package/dist/{chunk-SS7P2THJ.js.map → chunk-MG2QPYJD.js.map} +1 -1
  104. package/dist/{chunk-FPFSXIHI.js → chunk-NMIBDLQD.js} +4 -4
  105. package/dist/{chunk-FPFSXIHI.js.map → chunk-NMIBDLQD.js.map} +1 -1
  106. package/dist/{chunk-2E3UBZ6Z.js → chunk-OMNQYWK3.js} +2 -2
  107. package/dist/chunk-OMNQYWK3.js.map +1 -0
  108. package/dist/{chunk-TPM6PMWU.js → chunk-ONEOOPSN.js} +3 -3
  109. package/dist/{chunk-TPM6PMWU.js.map → chunk-ONEOOPSN.js.map} +1 -1
  110. package/dist/{chunk-BXMGLJWL.js → chunk-OSTYHNSM.js} +3 -3
  111. package/dist/{chunk-BXMGLJWL.js.map → chunk-OSTYHNSM.js.map} +1 -1
  112. package/dist/{chunk-XEHXAE6M.cjs → chunk-OU7J7PA7.cjs} +4 -4
  113. package/dist/{chunk-XEHXAE6M.cjs.map → chunk-OU7J7PA7.cjs.map} +1 -1
  114. package/dist/{chunk-H3CPBOE4.js → chunk-P6EQTV2Y.js} +3 -3
  115. package/dist/{chunk-H3CPBOE4.js.map → chunk-P6EQTV2Y.js.map} +1 -1
  116. package/dist/{chunk-2NGKAQQE.cjs → chunk-QAKI6K3C.cjs} +5 -5
  117. package/dist/{chunk-2NGKAQQE.cjs.map → chunk-QAKI6K3C.cjs.map} +1 -1
  118. package/dist/{chunk-YN4RDOPA.js → chunk-QDVO3DAW.js} +3 -3
  119. package/dist/{chunk-YN4RDOPA.js.map → chunk-QDVO3DAW.js.map} +1 -1
  120. package/dist/{chunk-ORQHCHAU.js → chunk-QJEXUABN.js} +4 -4
  121. package/dist/{chunk-ORQHCHAU.js.map → chunk-QJEXUABN.js.map} +1 -1
  122. package/dist/{chunk-K3XMNUQT.js → chunk-QJHZIGQG.js} +3 -3
  123. package/dist/{chunk-K3XMNUQT.js.map → chunk-QJHZIGQG.js.map} +1 -1
  124. package/dist/{chunk-ZMMHUTQG.cjs → chunk-QOGEYWQA.cjs} +24 -24
  125. package/dist/{chunk-ZMMHUTQG.cjs.map → chunk-QOGEYWQA.cjs.map} +1 -1
  126. package/dist/{chunk-GG7J3ITE.cjs → chunk-RKGCJXZO.cjs} +6 -6
  127. package/dist/{chunk-GG7J3ITE.cjs.map → chunk-RKGCJXZO.cjs.map} +1 -1
  128. package/dist/{chunk-U3AC2DM6.js → chunk-RKUFUE6P.js} +3 -3
  129. package/dist/{chunk-U3AC2DM6.js.map → chunk-RKUFUE6P.js.map} +1 -1
  130. package/dist/{chunk-FTXUZBZI.cjs → chunk-RSCLEVN3.cjs} +28 -28
  131. package/dist/{chunk-FTXUZBZI.cjs.map → chunk-RSCLEVN3.cjs.map} +1 -1
  132. package/dist/{chunk-CCVV75AI.js → chunk-SB4CG73V.js} +3 -3
  133. package/dist/{chunk-CCVV75AI.js.map → chunk-SB4CG73V.js.map} +1 -1
  134. package/dist/{chunk-2ONW75MN.cjs → chunk-SCCERKQS.cjs} +5 -5
  135. package/dist/{chunk-2ONW75MN.cjs.map → chunk-SCCERKQS.cjs.map} +1 -1
  136. package/dist/{chunk-SMQOFEYY.js → chunk-SEV4GJWB.js} +4 -4
  137. package/dist/{chunk-SMQOFEYY.js.map → chunk-SEV4GJWB.js.map} +1 -1
  138. package/dist/{chunk-NQLS4Z3W.js → chunk-SH7XKBWN.js} +5 -5
  139. package/dist/{chunk-NQLS4Z3W.js.map → chunk-SH7XKBWN.js.map} +1 -1
  140. package/dist/{chunk-3YBCWOF6.js → chunk-SIBCVLYV.js} +3 -3
  141. package/dist/{chunk-3YBCWOF6.js.map → chunk-SIBCVLYV.js.map} +1 -1
  142. package/dist/{chunk-C364W23O.js → chunk-SLHJWJR3.js} +4 -4
  143. package/dist/{chunk-C364W23O.js.map → chunk-SLHJWJR3.js.map} +1 -1
  144. package/dist/{chunk-2TKEZ5UE.js → chunk-SLWYNPH6.js} +3 -3
  145. package/dist/{chunk-2TKEZ5UE.js.map → chunk-SLWYNPH6.js.map} +1 -1
  146. package/dist/{chunk-ZMETLXPM.js → chunk-SU4ZAHUZ.js} +3 -3
  147. package/dist/{chunk-ZMETLXPM.js.map → chunk-SU4ZAHUZ.js.map} +1 -1
  148. package/dist/{chunk-TR2X57M3.cjs → chunk-SX2AJUSP.cjs} +2 -2
  149. package/dist/chunk-SX2AJUSP.cjs.map +1 -0
  150. package/dist/{chunk-AYHL7EEE.cjs → chunk-SXOMGGNC.cjs} +8 -8
  151. package/dist/{chunk-AYHL7EEE.cjs.map → chunk-SXOMGGNC.cjs.map} +1 -1
  152. package/dist/{chunk-OUHXNZBK.cjs → chunk-T7JR2CZV.cjs} +16 -16
  153. package/dist/{chunk-OUHXNZBK.cjs.map → chunk-T7JR2CZV.cjs.map} +1 -1
  154. package/dist/{chunk-GME4WQE6.js → chunk-TEIKCIX2.js} +5 -5
  155. package/dist/{chunk-GME4WQE6.js.map → chunk-TEIKCIX2.js.map} +1 -1
  156. package/dist/{chunk-7BZUW6TQ.cjs → chunk-TLBW3NWJ.cjs} +8 -8
  157. package/dist/{chunk-7BZUW6TQ.cjs.map → chunk-TLBW3NWJ.cjs.map} +1 -1
  158. package/dist/{chunk-MELQ2AU3.cjs → chunk-TPB44HAO.cjs} +10 -10
  159. package/dist/{chunk-MELQ2AU3.cjs.map → chunk-TPB44HAO.cjs.map} +1 -1
  160. package/dist/{chunk-PRDZRNPQ.cjs → chunk-TS2WBQFI.cjs} +13 -13
  161. package/dist/{chunk-PRDZRNPQ.cjs.map → chunk-TS2WBQFI.cjs.map} +1 -1
  162. package/dist/{chunk-6RHPKT2B.js → chunk-U5AYX5QW.js} +4 -4
  163. package/dist/{chunk-6RHPKT2B.js.map → chunk-U5AYX5QW.js.map} +1 -1
  164. package/dist/{chunk-HIGUQ2H3.js → chunk-UO4HGWYR.js} +3 -3
  165. package/dist/{chunk-HIGUQ2H3.js.map → chunk-UO4HGWYR.js.map} +1 -1
  166. package/dist/{chunk-H4LV3HUC.js → chunk-UWJ25WPB.js} +293 -287
  167. package/dist/chunk-UWJ25WPB.js.map +1 -0
  168. package/dist/{chunk-RNDEJYFW.cjs → chunk-W4XN6DDQ.cjs} +10 -10
  169. package/dist/{chunk-RNDEJYFW.cjs.map → chunk-W4XN6DDQ.cjs.map} +1 -1
  170. package/dist/{chunk-2WRJFEJK.js → chunk-WBPOFUFH.js} +3 -3
  171. package/dist/{chunk-2WRJFEJK.js.map → chunk-WBPOFUFH.js.map} +1 -1
  172. package/dist/chunk-WDLTCIDV.cjs +744 -0
  173. package/dist/{chunk-ZIFVFLJK.cjs.map → chunk-WDLTCIDV.cjs.map} +1 -1
  174. package/dist/{chunk-AKJHICI7.js → chunk-WJAV35G4.js} +4 -4
  175. package/dist/{chunk-AKJHICI7.js.map → chunk-WJAV35G4.js.map} +1 -1
  176. package/dist/{chunk-VHW5GZRA.js → chunk-WW37XHKJ.js} +4 -4
  177. package/dist/{chunk-VHW5GZRA.js.map → chunk-WW37XHKJ.js.map} +1 -1
  178. package/dist/{chunk-VMJ6UWBH.js → chunk-XFHXVKUV.js} +3 -3
  179. package/dist/{chunk-VMJ6UWBH.js.map → chunk-XFHXVKUV.js.map} +1 -1
  180. package/dist/{chunk-44HRN3OK.cjs → chunk-XNL6KN4F.cjs} +10 -10
  181. package/dist/{chunk-44HRN3OK.cjs.map → chunk-XNL6KN4F.cjs.map} +1 -1
  182. package/dist/{chunk-YS3A5BZH.cjs → chunk-XUKT5XLE.cjs} +37 -37
  183. package/dist/{chunk-YS3A5BZH.cjs.map → chunk-XUKT5XLE.cjs.map} +1 -1
  184. package/dist/{chunk-RQDW42XU.cjs → chunk-Y6BBB5S7.cjs} +8 -8
  185. package/dist/{chunk-RQDW42XU.cjs.map → chunk-Y6BBB5S7.cjs.map} +1 -1
  186. package/dist/{chunk-AD4P2UCI.cjs → chunk-YH4H2AJO.cjs} +8 -8
  187. package/dist/{chunk-AD4P2UCI.cjs.map → chunk-YH4H2AJO.cjs.map} +1 -1
  188. package/dist/{chunk-UVGAYAEV.js → chunk-Z2QGIB47.js} +4 -4
  189. package/dist/{chunk-UVGAYAEV.js.map → chunk-Z2QGIB47.js.map} +1 -1
  190. package/dist/{chunk-FYQHPT2E.js → chunk-Z5OBB3DJ.js} +3 -3
  191. package/dist/{chunk-FYQHPT2E.js.map → chunk-Z5OBB3DJ.js.map} +1 -1
  192. package/dist/{chunk-JCJIGPVP.cjs → chunk-ZG6ZAG5V.cjs} +41 -41
  193. package/dist/{chunk-JCJIGPVP.cjs.map → chunk-ZG6ZAG5V.cjs.map} +1 -1
  194. package/dist/{chunk-X6ZXQ3MZ.cjs → chunk-ZIBI62YT.cjs} +127 -95
  195. package/dist/chunk-ZIBI62YT.cjs.map +1 -0
  196. package/dist/{chunk-ZQLMTK5J.js → chunk-ZNGJHQKB.js} +3 -3
  197. package/dist/{chunk-ZQLMTK5J.js.map → chunk-ZNGJHQKB.js.map} +1 -1
  198. package/dist/{dist-2YFKAQMY.js → dist-3IOY4UDH.js} +3 -3
  199. package/dist/{dist-2YFKAQMY.js.map → dist-3IOY4UDH.js.map} +1 -1
  200. package/dist/{dist-JWLVQJFQ.js → dist-5PUBSY65.js} +3 -3
  201. package/dist/{dist-JWLVQJFQ.js.map → dist-5PUBSY65.js.map} +1 -1
  202. package/dist/{dist-MR5IMYFM.js → dist-5RUREC34.js} +9 -9
  203. package/dist/{dist-MR5IMYFM.js.map → dist-5RUREC34.js.map} +1 -1
  204. package/dist/{dist-WBYMZPKB.cjs → dist-7ROGUSJI.cjs} +26 -26
  205. package/dist/{dist-WBYMZPKB.cjs.map → dist-7ROGUSJI.cjs.map} +1 -1
  206. package/dist/dist-BJSMOQXN.cjs +16 -0
  207. package/dist/{dist-NYM3IQLY.cjs.map → dist-BJSMOQXN.cjs.map} +1 -1
  208. package/dist/{dist-6VCC76Q3.cjs → dist-I2O6YPDX.cjs} +30 -30
  209. package/dist/{dist-6VCC76Q3.cjs.map → dist-I2O6YPDX.cjs.map} +1 -1
  210. package/dist/{dist-M3P3YMJP.cjs → dist-I5TS34XK.cjs} +28 -28
  211. package/dist/{dist-M3P3YMJP.cjs.map → dist-I5TS34XK.cjs.map} +1 -1
  212. package/dist/{dist-J4UWKVDM.js → dist-IB5HRZQW.js} +3 -3
  213. package/dist/{dist-J4UWKVDM.js.map → dist-IB5HRZQW.js.map} +1 -1
  214. package/dist/{dist-QOH7MNRH.cjs → dist-RW46FX3B.cjs} +13 -13
  215. package/dist/{dist-QOH7MNRH.cjs.map → dist-RW46FX3B.cjs.map} +1 -1
  216. package/dist/dist-SOVT5P5X.js +3 -0
  217. package/dist/{dist-CB67HEFG.js.map → dist-SOVT5P5X.js.map} +1 -1
  218. package/dist/{dist-CIZY7VDE.cjs → dist-YPPUCXOD.cjs} +20 -20
  219. package/dist/{dist-CIZY7VDE.cjs.map → dist-YPPUCXOD.cjs.map} +1 -1
  220. package/dist/{dist-IPZQFQMB.js → dist-Z62354D3.js} +3 -3
  221. package/dist/{dist-IPZQFQMB.js.map → dist-Z62354D3.js.map} +1 -1
  222. package/dist/docs/SKILL.md +1 -1
  223. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  224. package/dist/{observational-memory-SF36C4XR-VIMLDSHT.cjs → observational-memory-OJN26RQ4-DTEVO3PP.cjs} +29 -29
  225. package/dist/{observational-memory-SF36C4XR-VIMLDSHT.cjs.map → observational-memory-OJN26RQ4-DTEVO3PP.cjs.map} +1 -1
  226. package/dist/{observational-memory-SF36C4XR-2DQQF4XZ.js → observational-memory-OJN26RQ4-QC5U3UMA.js} +3 -3
  227. package/dist/{observational-memory-SF36C4XR-2DQQF4XZ.js.map → observational-memory-OJN26RQ4-QC5U3UMA.js.map} +1 -1
  228. package/dist/server/handlers/a2a.cjs +14 -14
  229. package/dist/server/handlers/a2a.js +1 -1
  230. package/dist/server/handlers/agent-builder.cjs +17 -17
  231. package/dist/server/handlers/agent-builder.js +1 -1
  232. package/dist/server/handlers/agent-controller.cjs +35 -35
  233. package/dist/server/handlers/agent-controller.js +1 -1
  234. package/dist/server/handlers/agent-versions.cjs +8 -8
  235. package/dist/server/handlers/agent-versions.js +1 -1
  236. package/dist/server/handlers/agents.cjs +48 -48
  237. package/dist/server/handlers/agents.js +1 -1
  238. package/dist/server/handlers/auth.cjs +13 -13
  239. package/dist/server/handlers/auth.js +1 -1
  240. package/dist/server/handlers/background-tasks.cjs +4 -4
  241. package/dist/server/handlers/background-tasks.js +1 -1
  242. package/dist/server/handlers/builder-registry.cjs +6 -6
  243. package/dist/server/handlers/builder-registry.js +1 -1
  244. package/dist/server/handlers/channels.cjs +5 -5
  245. package/dist/server/handlers/channels.js +1 -1
  246. package/dist/server/handlers/conversations.cjs +5 -5
  247. package/dist/server/handlers/conversations.js +1 -1
  248. package/dist/server/handlers/datasets.cjs +26 -26
  249. package/dist/server/handlers/datasets.d.ts +16 -0
  250. package/dist/server/handlers/datasets.d.ts.map +1 -1
  251. package/dist/server/handlers/datasets.js +1 -1
  252. package/dist/server/handlers/editor-builder.cjs +6 -6
  253. package/dist/server/handlers/editor-builder.js +1 -1
  254. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  255. package/dist/server/handlers/favorites-enrichment.js +1 -1
  256. package/dist/server/handlers/logs.cjs +4 -4
  257. package/dist/server/handlers/logs.js +1 -1
  258. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  259. package/dist/server/handlers/mcp-client-versions.js +1 -1
  260. package/dist/server/handlers/mcp.cjs +11 -11
  261. package/dist/server/handlers/mcp.js +1 -1
  262. package/dist/server/handlers/memory.cjs +27 -27
  263. package/dist/server/handlers/memory.js +1 -1
  264. package/dist/server/handlers/observability-new-endpoints.cjs +29 -29
  265. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  266. package/dist/server/handlers/observability-shared.cjs +9 -9
  267. package/dist/server/handlers/observability-shared.js +1 -1
  268. package/dist/server/handlers/observability.cjs +40 -40
  269. package/dist/server/handlers/observability.js +2 -2
  270. package/dist/server/handlers/processor-providers.cjs +3 -3
  271. package/dist/server/handlers/processor-providers.js +1 -1
  272. package/dist/server/handlers/processors.cjs +4 -4
  273. package/dist/server/handlers/processors.js +1 -1
  274. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  275. package/dist/server/handlers/prompt-block-versions.js +1 -1
  276. package/dist/server/handlers/responses.cjs +4 -4
  277. package/dist/server/handlers/responses.js +1 -1
  278. package/dist/server/handlers/schedules.cjs +10 -10
  279. package/dist/server/handlers/schedules.js +1 -1
  280. package/dist/server/handlers/scorer-versions.cjs +8 -8
  281. package/dist/server/handlers/scorer-versions.js +1 -1
  282. package/dist/server/handlers/scores.cjs +7 -7
  283. package/dist/server/handlers/scores.js +1 -1
  284. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  285. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  286. package/dist/server/handlers/stored-agents.cjs +10 -10
  287. package/dist/server/handlers/stored-agents.js +1 -1
  288. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  289. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  290. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  291. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  292. package/dist/server/handlers/stored-scorers.cjs +6 -6
  293. package/dist/server/handlers/stored-scorers.js +1 -1
  294. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  295. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  296. package/dist/server/handlers/stored-skills.cjs +7 -7
  297. package/dist/server/handlers/stored-skills.js +1 -1
  298. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  299. package/dist/server/handlers/stored-workspaces.js +1 -1
  300. package/dist/server/handlers/system.cjs +3 -3
  301. package/dist/server/handlers/system.js +1 -1
  302. package/dist/server/handlers/tool-providers.cjs +14 -14
  303. package/dist/server/handlers/tool-providers.js +1 -1
  304. package/dist/server/handlers/tools.cjs +6 -6
  305. package/dist/server/handlers/tools.js +1 -1
  306. package/dist/server/handlers/vector.cjs +16 -16
  307. package/dist/server/handlers/vector.js +1 -1
  308. package/dist/server/handlers/workflows.cjs +27 -27
  309. package/dist/server/handlers/workflows.js +1 -1
  310. package/dist/server/handlers/workspace.cjs +26 -26
  311. package/dist/server/handlers/workspace.js +1 -1
  312. package/dist/server/handlers.cjs +28 -28
  313. package/dist/server/handlers.js +14 -14
  314. package/dist/server/schemas/datasets.d.ts +5 -0
  315. package/dist/server/schemas/datasets.d.ts.map +1 -1
  316. package/dist/server/schemas/index.cjs +43 -43
  317. package/dist/server/schemas/index.js +1 -1
  318. package/dist/server/server-adapter/index.cjs +21 -21
  319. package/dist/server/server-adapter/index.js +4 -4
  320. package/dist/server/server-adapter/routes/datasets.d.ts +16 -0
  321. package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
  322. package/dist/working-memory-state-OMSMSYAW-6OXJFZFI.js +3 -0
  323. package/dist/{working-memory-state-OMSMSYAW-NEULPFZX.js.map → working-memory-state-OMSMSYAW-6OXJFZFI.js.map} +1 -1
  324. package/dist/working-memory-state-OMSMSYAW-GCNI4HPX.cjs +24 -0
  325. package/dist/{working-memory-state-OMSMSYAW-4THWAGFK.cjs.map → working-memory-state-OMSMSYAW-GCNI4HPX.cjs.map} +1 -1
  326. package/package.json +6 -6
  327. package/dist/chunk-2E3UBZ6Z.js.map +0 -1
  328. package/dist/chunk-BJESJLXW.cjs.map +0 -1
  329. package/dist/chunk-DMFYLU2A.js.map +0 -1
  330. package/dist/chunk-H4LV3HUC.js.map +0 -1
  331. package/dist/chunk-RRQZAJDZ.js.map +0 -1
  332. package/dist/chunk-TR2X57M3.cjs.map +0 -1
  333. package/dist/chunk-UY5FTPBZ.cjs.map +0 -1
  334. package/dist/chunk-X6ZXQ3MZ.cjs.map +0 -1
  335. package/dist/chunk-ZIFVFLJK.cjs +0 -744
  336. package/dist/dist-CB67HEFG.js +0 -3
  337. package/dist/dist-NYM3IQLY.cjs +0 -16
  338. package/dist/working-memory-state-OMSMSYAW-4THWAGFK.cjs +0 -24
  339. package/dist/working-memory-state-OMSMSYAW-NEULPFZX.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.3/c2a1d77e3f595587fc71d833e2045f3b897998b15167d647e8b9eeaae17f7bb2/node_modules/diff/libesm/diff/base.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.3/c2a1d77e3f595587fc71d833e2045f3b897998b15167d647e8b9eeaae17f7bb2/node_modules/diff/libesm/diff/line.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.3/c2a1d77e3f595587fc71d833e2045f3b897998b15167d647e8b9eeaae17f7bb2/node_modules/diff/libesm/patch/create.js","../../memory/src/processors/working-memory-state/processor.ts"],"names":["value"],"mappings":"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","file":"chunk-NQLS4Z3W.js","sourcesContent":["export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n","import Diff from './base.js';\nimport { generateOptions } from '../util/params.js';\nclass LineDiff extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n equals(left, right, options) {\n // If we're ignoring whitespace, we need to normalise lines by stripping\n // whitespace before checking equality. (This has an annoying interaction\n // with newlineIsToken that requires special handling: if newlines get their\n // own token, then we DON'T want to trim the *newline* tokens down to empty\n // strings, since this would cause us to treat whitespace-only line content\n // as equal to a separator between lines, which would be weird and\n // inconsistent with the documented behavior of the options.)\n if (options.ignoreWhitespace) {\n if (!options.newlineIsToken || !left.includes('\\n')) {\n left = left.trim();\n }\n if (!options.newlineIsToken || !right.includes('\\n')) {\n right = right.trim();\n }\n }\n else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n if (left.endsWith('\\n')) {\n left = left.slice(0, -1);\n }\n if (right.endsWith('\\n')) {\n right = right.slice(0, -1);\n }\n }\n return super.equals(left, right, options);\n }\n}\nexport const lineDiff = new LineDiff();\nexport function diffLines(oldStr, newStr, options) {\n return lineDiff.diff(oldStr, newStr, options);\n}\nexport function diffTrimmedLines(oldStr, newStr, options) {\n options = generateOptions(options, { ignoreWhitespace: true });\n return lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nexport function tokenize(value, options) {\n if (options.stripTrailingCr) {\n // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n value = value.replace(/\\r\\n/g, '\\n');\n }\n const retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n // Ignore the final empty token that occurs if the string ends with a new line\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n // Merge the content and line separators into single tokens\n for (let i = 0; i < linesAndNewlines.length; i++) {\n const line = linesAndNewlines[i];\n if (i % 2 && !options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n }\n else {\n retLines.push(line);\n }\n }\n return retLines;\n}\n","import { diffLines } from '../diff/line.js';\nexport const INCLUDE_HEADERS = {\n includeIndex: true,\n includeUnderline: true,\n includeFileHeaders: true\n};\nexport const FILE_HEADERS_ONLY = {\n includeIndex: false,\n includeUnderline: false,\n includeFileHeaders: true\n};\nexport const OMIT_HEADERS = {\n includeIndex: false,\n includeUnderline: false,\n includeFileHeaders: false\n};\nexport function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n let optionsObj;\n if (!options) {\n optionsObj = {};\n }\n else if (typeof options === 'function') {\n optionsObj = { callback: options };\n }\n else {\n optionsObj = options;\n }\n if (typeof optionsObj.context === 'undefined') {\n optionsObj.context = 4;\n }\n // We copy this into its own variable to placate TypeScript, which thinks\n // optionsObj.context might be undefined in the callbacks below.\n const context = optionsObj.context;\n // @ts-expect-error (runtime check for something that is correctly a static type error)\n if (optionsObj.newlineIsToken) {\n throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n }\n if (!optionsObj.callback) {\n return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));\n }\n else {\n const { callback } = optionsObj;\n diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {\n const patch = diffLinesResultToPatch(diff);\n // TypeScript is unhappy without the cast because it does not understand that `patch` may\n // be undefined here only if `callback` is StructuredPatchCallbackAbortable:\n callback(patch);\n } }));\n }\n function diffLinesResultToPatch(diff) {\n // STEP 1: Build up the patch with no \"\\" lines and with the arrays\n // of lines containing trailing newline characters. We'll tidy up later...\n if (!diff) {\n return;\n }\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n function contextLines(lines) {\n return lines.map(function (entry) { return ' ' + entry; });\n }\n const hunks = [];\n let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n for (let i = 0; i < diff.length; i++) {\n const current = diff[i], lines = current.lines || splitLines(current.value);\n current.lines = lines;\n if (current.added || current.removed) {\n // If we have previous context, start with that\n if (!oldRangeStart) {\n const prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n if (prev) {\n curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n // Output our changes\n for (const line of lines) {\n curRange.push((current.added ? '+' : '-') + line);\n }\n // Track the updated file position\n if (current.added) {\n newLine += lines.length;\n }\n else {\n oldLine += lines.length;\n }\n }\n else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= context * 2 && i < diff.length - 2) {\n // Overlapping\n for (const line of contextLines(lines)) {\n curRange.push(line);\n }\n }\n else {\n // end the range and output\n const contextSize = Math.min(lines.length, context);\n for (const line of contextLines(lines.slice(0, contextSize))) {\n curRange.push(line);\n }\n const hunk = {\n oldStart: oldRangeStart,\n oldLines: (oldLine - oldRangeStart + contextSize),\n newStart: newRangeStart,\n newLines: (newLine - newRangeStart + contextSize),\n lines: curRange\n };\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n }\n // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n // \"\\".\n for (const hunk of hunks) {\n for (let i = 0; i < hunk.lines.length; i++) {\n if (hunk.lines[i].endsWith('\\n')) {\n hunk.lines[i] = hunk.lines[i].slice(0, -1);\n }\n else {\n hunk.lines.splice(i + 1, 0, '\\\');\n i++; // Skip the line we just added, then continue iterating\n }\n }\n }\n return {\n oldFileName: oldFileName, newFileName: newFileName,\n oldHeader: oldHeader, newHeader: newHeader,\n hunks: hunks\n };\n }\n}\n/**\n * creates a unified diff patch.\n * @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)\n */\nexport function formatPatch(patch, headerOptions) {\n if (!headerOptions) {\n headerOptions = INCLUDE_HEADERS;\n }\n if (Array.isArray(patch)) {\n if (patch.length > 1 && !headerOptions.includeFileHeaders) {\n throw new Error('Cannot omit file headers on a multi-file patch. '\n + '(The result would be unparseable; how would a tool trying to apply '\n + 'the patch know which changes are to which file?)');\n }\n return patch.map(p => formatPatch(p, headerOptions)).join('\\n');\n }\n const ret = [];\n if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName) {\n ret.push('Index: ' + patch.oldFileName);\n }\n if (headerOptions.includeUnderline) {\n ret.push('===================================================================');\n }\n if (headerOptions.includeFileHeaders) {\n ret.push('--- ' + patch.oldFileName + (typeof patch.oldHeader === 'undefined' ? '' : '\\t' + patch.oldHeader));\n ret.push('+++ ' + patch.newFileName + (typeof patch.newHeader === 'undefined' ? '' : '\\t' + patch.newHeader));\n }\n for (let i = 0; i < patch.hunks.length; i++) {\n const hunk = patch.hunks[i];\n // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines\n + ' +' + hunk.newStart + ',' + hunk.newLines\n + ' @@');\n for (const line of hunk.lines) {\n ret.push(line);\n }\n }\n return ret.join('\\n') + '\\n';\n}\nexport function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (typeof options === 'function') {\n options = { callback: options };\n }\n if (!(options === null || options === void 0 ? void 0 : options.callback)) {\n const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n if (!patchObj) {\n return;\n }\n return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);\n }\n else {\n const { callback } = options;\n structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: patchObj => {\n if (!patchObj) {\n callback(undefined);\n }\n else {\n callback(formatPatch(patchObj, options.headerOptions));\n }\n } }));\n }\n}\nexport function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n const hasTrailingNl = text.endsWith('\\n');\n const result = text.split('\\n').map(line => line + '\\n');\n if (hasTrailingNl) {\n result.pop();\n }\n else {\n result.push(result.pop().slice(0, -1));\n }\n return result;\n}\n","/**\n * WorkingMemoryStateProcessor\n *\n * Experimental: delivers working memory to the model as a state signal instead\n * of folding it into the system message. Storage and the `setWorkingMemory`\n * tool are unchanged — this processor only changes the delivery path.\n *\n * Pattern matches `BrowserContextProcessor` in `@mastra/core/browser`:\n * - `stateId` namespaces the state lane on the thread.\n * - `cacheKey` is derived from the rendered payload so dedup is automatic.\n * - `contextWindow.hasSnapshot` re-injection ensures the model still sees the\n * current snapshot after older messages drop out of the window.\n *\n * Delta emission (markdown mode only): when a prior snapshot exists in the\n * context window, the processor emits a unified-diff delta against that\n * snapshot's contents. Schema mode and the snapshot fallback always emit a\n * full snapshot.\n *\n * @example\n * ```ts\n * new Memory({\n * options: {\n * workingMemory: {\n * enabled: true,\n * template: '...',\n * useStateSignals: true, // auto-attaches this processor\n * },\n * },\n * });\n * ```\n */\n\nimport { createHash } from 'node:crypto';\n\nimport type { MastraMemory, MemoryConfigInternal, WorkingMemoryTemplate } from '@mastra/core/memory';\nimport type {\n ComputeStateSignalArgs,\n ComputeStateSignalResult,\n Processor,\n ProcessorActiveStateSignal,\n} from '@mastra/core/processors';\nimport { structuredPatch } from 'diff';\n\nexport const WORKING_MEMORY_STATE_ID = 'working-memory';\nexport const WORKING_MEMORY_STATE_PROCESSOR_ID = 'working-memory-state';\n\nexport class WorkingMemoryStateProcessor implements Processor<typeof WORKING_MEMORY_STATE_PROCESSOR_ID> {\n readonly id = WORKING_MEMORY_STATE_PROCESSOR_ID;\n readonly stateId = WORKING_MEMORY_STATE_ID;\n\n constructor(\n private readonly memory: MastraMemory,\n private readonly memoryConfig?: MemoryConfigInternal,\n ) {}\n\n async computeStateSignal(args: ComputeStateSignalArgs): Promise<ComputeStateSignalResult> {\n const template = await this.memory.getWorkingMemoryTemplate({ memoryConfig: this.memoryConfig });\n if (!template) return;\n\n const data = await this.memory.getWorkingMemory({\n threadId: args.threadId,\n resourceId: args.resourceId,\n memoryConfig: this.memoryConfig,\n });\n\n // Nothing stored yet — no state to broadcast. The setWorkingMemory tool\n // description tells the model the expected shape; the signal carries state.\n const contents = data?.trim();\n if (!contents) return;\n\n const cacheKey = stableWorkingMemoryCacheKey({ format: template.format, data: contents });\n const shouldMakeSnapshot = !args.contextWindow.hasSnapshot;\n if (args.tracking?.currentCacheKey === cacheKey && !shouldMakeSnapshot) return;\n\n const mergedConfig = this.memory.getMergedThreadConfig(this.memoryConfig);\n const scope = mergedConfig.workingMemory?.scope ?? 'resource';\n\n const deltaCandidate =\n template.format === 'markdown' && !shouldMakeSnapshot\n ? buildMarkdownDelta({\n lastSnapshot: args.lastSnapshot,\n deltasSinceSnapshot: args.deltasSinceSnapshot,\n nextContents: contents,\n })\n : undefined;\n\n if (deltaCandidate) {\n return {\n id: WORKING_MEMORY_STATE_ID,\n mode: 'delta',\n cacheKey,\n tagName: 'working-memory',\n contents: deltaCandidate.contents,\n delta: deltaCandidate.contents,\n // Stash the full post-edit text on the signal so the next turn can\n // diff against the most recently emitted state instead of the older\n // snapshot. Invisible to the model.\n value: contents,\n attributes: {\n format: template.format,\n scope,\n patch: 'unified-diff',\n },\n };\n }\n\n return {\n id: WORKING_MEMORY_STATE_ID,\n mode: 'snapshot',\n cacheKey,\n tagName: 'working-memory',\n contents,\n // Mirror contents in value so the first delta after a snapshot has a\n // typed prior-state to diff against without falling back to contents.\n value: contents,\n attributes: {\n format: template.format,\n scope,\n },\n };\n }\n}\n\n/**\n * Stable cache key for the rendered working memory payload. Returns a SHA-256\n * digest so dedup metadata stays compact regardless of payload size (working\n * memory blobs can grow arbitrarily long).\n */\nexport function stableWorkingMemoryCacheKey(input: {\n format: WorkingMemoryTemplate['format'];\n data: string | null;\n}): string {\n const hash = createHash('sha256');\n hash.update(input.format);\n hash.update('\\0');\n hash.update(input.data ?? '');\n return `sha256:${hash.digest('hex')}`;\n}\n\n/**\n * Build a unified-diff delta against the most recently emitted state. Prefers\n * the latest delta's `value` (the post-edit full text) when available, falling\n * back to the snapshot's `value` and finally the snapshot's `contents`. This\n * keeps deltas incremental (B→C) instead of cumulative against a stale\n * snapshot (A→C), which matters when many small edits land between snapshots.\n *\n * Returns undefined when:\n * - there's no prior state to diff against\n * - the prior state isn't a plain string (multimodal signal)\n *\n * In either case the caller falls back to emitting a full snapshot.\n */\nfunction buildMarkdownDelta(args: {\n lastSnapshot?: ProcessorActiveStateSignal;\n deltasSinceSnapshot: ProcessorActiveStateSignal[];\n nextContents: string;\n}): { contents: string } | undefined {\n const { lastSnapshot, deltasSinceSnapshot, nextContents } = args;\n\n // `value` is stored on the persisted signal's metadata (see applyStateSignal\n // in @mastra/core/agent/state-signals). Read from there to recover the\n // post-edit full text from the most recently emitted state.\n const latestDelta = deltasSinceSnapshot.at(-1);\n const prior =\n pickStringValue(readSignalValue(latestDelta)) ??\n pickStringValue(readSignalValue(lastSnapshot)) ??\n (typeof lastSnapshot?.contents === 'string' ? lastSnapshot.contents : undefined);\n ('');\n if (!prior) return;\n\n const patch = renderHunksOnly(prior, nextContents);\n\n return { contents: patch };\n}\n\nfunction pickStringValue(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction readSignalValue(signal: ProcessorActiveStateSignal | undefined): unknown {\n return (signal?.metadata as { value?: unknown } | undefined)?.value;\n}\n\n/**\n * Render a unified-diff-style patch body containing only `@@` hunks and their\n * lines — dropping the filename preamble (`Index:` / `===` / `---` / `+++`)\n * that `createPatch` emits and the `\` trailer.\n * The preamble exists for tooling like `patch -p1` to know which file to\n * apply to; we only ever diff a single working-memory blob. The newline\n * trailer is semantically meaningless to the model and adds noise to the\n * state signal.\n */\nfunction renderHunksOnly(prior: string, next: string): string {\n const { hunks } = structuredPatch('', '', prior, next, '', '', { context: 0 });\n return hunks\n .map(hunk => {\n const header = `@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`;\n const lines = hunk.lines.filter(line => !line.startsWith('\\\'));\n return [header, ...lines].join('\\n');\n })\n .join('\\n');\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.4/6781cdda9837821c30a1f4c4db1d9286b838fe139b78d9658b2471e961b45953/node_modules/diff/libesm/diff/base.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.4/6781cdda9837821c30a1f4c4db1d9286b838fe139b78d9658b2471e961b45953/node_modules/diff/libesm/diff/line.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.4/6781cdda9837821c30a1f4c4db1d9286b838fe139b78d9658b2471e961b45953/node_modules/diff/libesm/patch/create.js","../../memory/src/processors/working-memory-state/processor.ts"],"names":["value"],"mappings":"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","file":"chunk-SH7XKBWN.js","sourcesContent":["export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n","import Diff from './base.js';\nimport { generateOptions } from '../util/params.js';\nclass LineDiff extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n equals(left, right, options) {\n // If we're ignoring whitespace, we need to normalise lines by stripping\n // whitespace before checking equality. (This has an annoying interaction\n // with newlineIsToken that requires special handling: if newlines get their\n // own token, then we DON'T want to trim the *newline* tokens down to empty\n // strings, since this would cause us to treat whitespace-only line content\n // as equal to a separator between lines, which would be weird and\n // inconsistent with the documented behavior of the options.)\n if (options.ignoreWhitespace) {\n if (!options.newlineIsToken || !left.includes('\\n')) {\n left = left.trim();\n }\n if (!options.newlineIsToken || !right.includes('\\n')) {\n right = right.trim();\n }\n }\n else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n if (left.endsWith('\\n')) {\n left = left.slice(0, -1);\n }\n if (right.endsWith('\\n')) {\n right = right.slice(0, -1);\n }\n }\n return super.equals(left, right, options);\n }\n}\nexport const lineDiff = new LineDiff();\nexport function diffLines(oldStr, newStr, options) {\n return lineDiff.diff(oldStr, newStr, options);\n}\nexport function diffTrimmedLines(oldStr, newStr, options) {\n options = generateOptions(options, { ignoreWhitespace: true });\n return lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nexport function tokenize(value, options) {\n if (options.stripTrailingCr) {\n // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n value = value.replace(/\\r\\n/g, '\\n');\n }\n const retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n // Ignore the final empty token that occurs if the string ends with a new line\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n // Merge the content and line separators into single tokens\n for (let i = 0; i < linesAndNewlines.length; i++) {\n const line = linesAndNewlines[i];\n if (i % 2 && !options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n }\n else {\n retLines.push(line);\n }\n }\n return retLines;\n}\n","import { diffLines } from '../diff/line.js';\nexport const INCLUDE_HEADERS = {\n includeIndex: true,\n includeUnderline: true,\n includeFileHeaders: true\n};\nexport const FILE_HEADERS_ONLY = {\n includeIndex: false,\n includeUnderline: false,\n includeFileHeaders: true\n};\nexport const OMIT_HEADERS = {\n includeIndex: false,\n includeUnderline: false,\n includeFileHeaders: false\n};\nexport function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n let optionsObj;\n if (!options) {\n optionsObj = {};\n }\n else if (typeof options === 'function') {\n optionsObj = { callback: options };\n }\n else {\n optionsObj = options;\n }\n if (typeof optionsObj.context === 'undefined') {\n optionsObj.context = 4;\n }\n // We copy this into its own variable to placate TypeScript, which thinks\n // optionsObj.context might be undefined in the callbacks below.\n const context = optionsObj.context;\n // @ts-expect-error (runtime check for something that is correctly a static type error)\n if (optionsObj.newlineIsToken) {\n throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n }\n if (!optionsObj.callback) {\n return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));\n }\n else {\n const { callback } = optionsObj;\n diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {\n const patch = diffLinesResultToPatch(diff);\n // TypeScript is unhappy without the cast because it does not understand that `patch` may\n // be undefined here only if `callback` is StructuredPatchCallbackAbortable:\n callback(patch);\n } }));\n }\n function diffLinesResultToPatch(diff) {\n // STEP 1: Build up the patch with no \"\\" lines and with the arrays\n // of lines containing trailing newline characters. We'll tidy up later...\n if (!diff) {\n return;\n }\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n function contextLines(lines) {\n return lines.map(function (entry) { return ' ' + entry; });\n }\n const hunks = [];\n let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n for (let i = 0; i < diff.length; i++) {\n const current = diff[i], lines = current.lines || splitLines(current.value);\n current.lines = lines;\n if (current.added || current.removed) {\n // If we have previous context, start with that\n if (!oldRangeStart) {\n const prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n if (prev) {\n curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n // Output our changes\n for (const line of lines) {\n curRange.push((current.added ? '+' : '-') + line);\n }\n // Track the updated file position\n if (current.added) {\n newLine += lines.length;\n }\n else {\n oldLine += lines.length;\n }\n }\n else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= context * 2 && i < diff.length - 2) {\n // Overlapping\n for (const line of contextLines(lines)) {\n curRange.push(line);\n }\n }\n else {\n // end the range and output\n const contextSize = Math.min(lines.length, context);\n for (const line of contextLines(lines.slice(0, contextSize))) {\n curRange.push(line);\n }\n const hunk = {\n oldStart: oldRangeStart,\n oldLines: (oldLine - oldRangeStart + contextSize),\n newStart: newRangeStart,\n newLines: (newLine - newRangeStart + contextSize),\n lines: curRange\n };\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n }\n // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n // \"\\".\n for (const hunk of hunks) {\n for (let i = 0; i < hunk.lines.length; i++) {\n if (hunk.lines[i].endsWith('\\n')) {\n hunk.lines[i] = hunk.lines[i].slice(0, -1);\n }\n else {\n hunk.lines.splice(i + 1, 0, '\\\');\n i++; // Skip the line we just added, then continue iterating\n }\n }\n }\n return {\n oldFileName: oldFileName, newFileName: newFileName,\n oldHeader: oldHeader, newHeader: newHeader,\n hunks: hunks\n };\n }\n}\n/**\n * creates a unified diff patch.\n * @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)\n */\nexport function formatPatch(patch, headerOptions) {\n if (!headerOptions) {\n headerOptions = INCLUDE_HEADERS;\n }\n if (Array.isArray(patch)) {\n if (patch.length > 1 && !headerOptions.includeFileHeaders) {\n throw new Error('Cannot omit file headers on a multi-file patch. '\n + '(The result would be unparseable; how would a tool trying to apply '\n + 'the patch know which changes are to which file?)');\n }\n return patch.map(p => formatPatch(p, headerOptions)).join('\\n');\n }\n const ret = [];\n if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName) {\n ret.push('Index: ' + patch.oldFileName);\n }\n if (headerOptions.includeUnderline) {\n ret.push('===================================================================');\n }\n if (headerOptions.includeFileHeaders) {\n ret.push('--- ' + patch.oldFileName + (typeof patch.oldHeader === 'undefined' ? '' : '\\t' + patch.oldHeader));\n ret.push('+++ ' + patch.newFileName + (typeof patch.newHeader === 'undefined' ? '' : '\\t' + patch.newHeader));\n }\n for (let i = 0; i < patch.hunks.length; i++) {\n const hunk = patch.hunks[i];\n // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines\n + ' +' + hunk.newStart + ',' + hunk.newLines\n + ' @@');\n for (const line of hunk.lines) {\n ret.push(line);\n }\n }\n return ret.join('\\n') + '\\n';\n}\nexport function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (typeof options === 'function') {\n options = { callback: options };\n }\n if (!(options === null || options === void 0 ? void 0 : options.callback)) {\n const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n if (!patchObj) {\n return;\n }\n return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);\n }\n else {\n const { callback } = options;\n structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: patchObj => {\n if (!patchObj) {\n callback(undefined);\n }\n else {\n callback(formatPatch(patchObj, options.headerOptions));\n }\n } }));\n }\n}\nexport function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n const hasTrailingNl = text.endsWith('\\n');\n const result = text.split('\\n').map(line => line + '\\n');\n if (hasTrailingNl) {\n result.pop();\n }\n else {\n result.push(result.pop().slice(0, -1));\n }\n return result;\n}\n","/**\n * WorkingMemoryStateProcessor\n *\n * Experimental: delivers working memory to the model as a state signal instead\n * of folding it into the system message. Storage and the `setWorkingMemory`\n * tool are unchanged — this processor only changes the delivery path.\n *\n * Pattern matches `BrowserContextProcessor` in `@mastra/core/browser`:\n * - `stateId` namespaces the state lane on the thread.\n * - `cacheKey` is derived from the rendered payload so dedup is automatic.\n * - `contextWindow.hasSnapshot` re-injection ensures the model still sees the\n * current snapshot after older messages drop out of the window.\n *\n * Delta emission (markdown mode only): when a prior snapshot exists in the\n * context window, the processor emits a unified-diff delta against that\n * snapshot's contents. Schema mode and the snapshot fallback always emit a\n * full snapshot.\n *\n * @example\n * ```ts\n * new Memory({\n * options: {\n * workingMemory: {\n * enabled: true,\n * template: '...',\n * useStateSignals: true, // auto-attaches this processor\n * },\n * },\n * });\n * ```\n */\n\nimport { createHash } from 'node:crypto';\n\nimport type { MastraMemory, MemoryConfigInternal, WorkingMemoryTemplate } from '@mastra/core/memory';\nimport type {\n ComputeStateSignalArgs,\n ComputeStateSignalResult,\n Processor,\n ProcessorActiveStateSignal,\n} from '@mastra/core/processors';\nimport { structuredPatch } from 'diff';\n\nexport const WORKING_MEMORY_STATE_ID = 'working-memory';\nexport const WORKING_MEMORY_STATE_PROCESSOR_ID = 'working-memory-state';\n\nexport class WorkingMemoryStateProcessor implements Processor<typeof WORKING_MEMORY_STATE_PROCESSOR_ID> {\n readonly id = WORKING_MEMORY_STATE_PROCESSOR_ID;\n readonly stateId = WORKING_MEMORY_STATE_ID;\n\n constructor(\n private readonly memory: MastraMemory,\n private readonly memoryConfig?: MemoryConfigInternal,\n ) {}\n\n async computeStateSignal(args: ComputeStateSignalArgs): Promise<ComputeStateSignalResult> {\n const template = await this.memory.getWorkingMemoryTemplate({ memoryConfig: this.memoryConfig });\n if (!template) return;\n\n const data = await this.memory.getWorkingMemory({\n threadId: args.threadId,\n resourceId: args.resourceId,\n memoryConfig: this.memoryConfig,\n });\n\n // Nothing stored yet — no state to broadcast. The setWorkingMemory tool\n // description tells the model the expected shape; the signal carries state.\n const contents = data?.trim();\n if (!contents) return;\n\n const cacheKey = stableWorkingMemoryCacheKey({ format: template.format, data: contents });\n const shouldMakeSnapshot = !args.contextWindow.hasSnapshot;\n if (args.tracking?.currentCacheKey === cacheKey && !shouldMakeSnapshot) return;\n\n const mergedConfig = this.memory.getMergedThreadConfig(this.memoryConfig);\n const scope = mergedConfig.workingMemory?.scope ?? 'resource';\n\n const deltaCandidate =\n template.format === 'markdown' && !shouldMakeSnapshot\n ? buildMarkdownDelta({\n lastSnapshot: args.lastSnapshot,\n deltasSinceSnapshot: args.deltasSinceSnapshot,\n nextContents: contents,\n })\n : undefined;\n\n if (deltaCandidate) {\n return {\n id: WORKING_MEMORY_STATE_ID,\n mode: 'delta',\n cacheKey,\n tagName: 'working-memory',\n contents: deltaCandidate.contents,\n delta: deltaCandidate.contents,\n // Stash the full post-edit text on the signal so the next turn can\n // diff against the most recently emitted state instead of the older\n // snapshot. Invisible to the model.\n value: contents,\n attributes: {\n format: template.format,\n scope,\n patch: 'unified-diff',\n },\n };\n }\n\n return {\n id: WORKING_MEMORY_STATE_ID,\n mode: 'snapshot',\n cacheKey,\n tagName: 'working-memory',\n contents,\n // Mirror contents in value so the first delta after a snapshot has a\n // typed prior-state to diff against without falling back to contents.\n value: contents,\n attributes: {\n format: template.format,\n scope,\n },\n };\n }\n}\n\n/**\n * Stable cache key for the rendered working memory payload. Returns a SHA-256\n * digest so dedup metadata stays compact regardless of payload size (working\n * memory blobs can grow arbitrarily long).\n */\nexport function stableWorkingMemoryCacheKey(input: {\n format: WorkingMemoryTemplate['format'];\n data: string | null;\n}): string {\n const hash = createHash('sha256');\n hash.update(input.format);\n hash.update('\\0');\n hash.update(input.data ?? '');\n return `sha256:${hash.digest('hex')}`;\n}\n\n/**\n * Build a unified-diff delta against the most recently emitted state. Prefers\n * the latest delta's `value` (the post-edit full text) when available, falling\n * back to the snapshot's `value` and finally the snapshot's `contents`. This\n * keeps deltas incremental (B→C) instead of cumulative against a stale\n * snapshot (A→C), which matters when many small edits land between snapshots.\n *\n * Returns undefined when:\n * - there's no prior state to diff against\n * - the prior state isn't a plain string (multimodal signal)\n *\n * In either case the caller falls back to emitting a full snapshot.\n */\nfunction buildMarkdownDelta(args: {\n lastSnapshot?: ProcessorActiveStateSignal;\n deltasSinceSnapshot: ProcessorActiveStateSignal[];\n nextContents: string;\n}): { contents: string } | undefined {\n const { lastSnapshot, deltasSinceSnapshot, nextContents } = args;\n\n // `value` is stored on the persisted signal's metadata (see applyStateSignal\n // in @mastra/core/agent/state-signals). Read from there to recover the\n // post-edit full text from the most recently emitted state.\n const latestDelta = deltasSinceSnapshot.at(-1);\n const prior =\n pickStringValue(readSignalValue(latestDelta)) ??\n pickStringValue(readSignalValue(lastSnapshot)) ??\n (typeof lastSnapshot?.contents === 'string' ? lastSnapshot.contents : undefined);\n ('');\n if (!prior) return;\n\n const patch = renderHunksOnly(prior, nextContents);\n\n return { contents: patch };\n}\n\nfunction pickStringValue(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction readSignalValue(signal: ProcessorActiveStateSignal | undefined): unknown {\n return (signal?.metadata as { value?: unknown } | undefined)?.value;\n}\n\n/**\n * Render a unified-diff-style patch body containing only `@@` hunks and their\n * lines — dropping the filename preamble (`Index:` / `===` / `---` / `+++`)\n * that `createPatch` emits and the `\` trailer.\n * The preamble exists for tooling like `patch -p1` to know which file to\n * apply to; we only ever diff a single working-memory blob. The newline\n * trailer is semantically meaningless to the model and adds noise to the\n * state signal.\n */\nfunction renderHunksOnly(prior: string, next: string): string {\n const { hunks } = structuredPatch('', '', prior, next, '', '', { context: 0 });\n return hunks\n .map(hunk => {\n const header = `@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`;\n const lines = hunk.lines.filter(line => !line.startsWith('\\\'));\n return [header, ...lines].join('\\n');\n })\n .join('\\n');\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { getProcessorProvidersResponseSchema, getProcessorProviderResponseSchema, processorProviderIdPathParams } from './chunk-SJOVDYRT.js';
2
2
  import { handleError } from './chunk-7ZWJX3AN.js';
3
- import { createRoute } from './chunk-2E3UBZ6Z.js';
3
+ import { createRoute } from './chunk-OMNQYWK3.js';
4
4
  import { HTTPException } from './chunk-6QWQZI4Q.js';
5
5
  import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
6
6
 
@@ -63,5 +63,5 @@ var GET_PROCESSOR_PROVIDER_ROUTE = createRoute({
63
63
  });
64
64
 
65
65
  export { GET_PROCESSOR_PROVIDER_ROUTE, LIST_PROCESSOR_PROVIDERS_ROUTE };
66
- //# sourceMappingURL=chunk-3YBCWOF6.js.map
67
- //# sourceMappingURL=chunk-3YBCWOF6.js.map
66
+ //# sourceMappingURL=chunk-SIBCVLYV.js.map
67
+ //# sourceMappingURL=chunk-SIBCVLYV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/processor-providers.ts"],"names":[],"mappings":";;;;;;AAmBO,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,mCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,2FAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,SAAA,GAAY,OAAO,qBAAA,EAAsB;AAE/C,MAAA,OAAO;AAAA,QACL,WAAW,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAI,CAAA,QAAA,MAAa;AAAA,UACnD,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,iBAAiB,QAAA,CAAS;AAAA,SAC5B,CAAE;AAAA,OACJ;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,+BAA+B,WAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,6BAAA;AAAA,EACjB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,gCAAA;AAAA,EACT,WAAA,EAAa,yFAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,oBAAA,CAAqB,UAAU,CAAA;AAEvD,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,2BAAA,EAA8B,UAAU,cAAc,CAAA;AAAA,MAChG;AAEA,MAAA,OAAO;AAAA,QACL,GAAG,QAAA,CAAS,IAAA;AAAA,QACZ,iBAAiB,QAAA,CAAS,eAAA;AAAA,QAC1B,YAAA,EAAc,eAAA,CAAgB,QAAA,CAAS,YAAY;AAAA,OACrD;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,kCAAkC,CAAA;AAAA,IAC9D;AAAA,EACF;AACF,CAAC","file":"chunk-3YBCWOF6.js","sourcesContent":["import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\n\nimport { HTTPException } from '../http-exception';\nimport {\n processorProviderIdPathParams,\n getProcessorProvidersResponseSchema,\n getProcessorProviderResponseSchema,\n} from '../schemas/processor-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /processor-providers - List all registered processor providers\n */\nexport const LIST_PROCESSOR_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/processor-providers',\n responseType: 'json',\n responseSchema: getProcessorProvidersResponseSchema,\n summary: 'List processor providers',\n description: 'Returns a list of all registered processor providers with their info and available phases',\n tags: ['Processor Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getProcessorProviders();\n\n return {\n providers: Object.values(providers).map(provider => ({\n ...provider.info,\n availablePhases: provider.availablePhases,\n })),\n };\n } catch (error) {\n return handleError(error, 'Error listing processor providers');\n }\n },\n});\n\n/**\n * GET /processor-providers/:providerId - Get a specific processor provider with config schema\n */\nexport const GET_PROCESSOR_PROVIDER_ROUTE = createRoute({\n method: 'GET',\n path: '/processor-providers/:providerId',\n responseType: 'json',\n pathParamSchema: processorProviderIdPathParams,\n responseSchema: getProcessorProviderResponseSchema,\n summary: 'Get processor provider details',\n description: 'Returns details about a specific processor provider, including its configuration schema',\n tags: ['Processor Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getProcessorProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Processor provider with id ${providerId} not found` });\n }\n\n return {\n ...provider.info,\n availablePhases: provider.availablePhases,\n configSchema: zodToJsonSchema(provider.configSchema) as Record<string, unknown>,\n };\n } catch (error) {\n return handleError(error, 'Error getting processor provider');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/processor-providers.ts"],"names":[],"mappings":";;;;;;AAmBO,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,mCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,2FAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,SAAA,GAAY,OAAO,qBAAA,EAAsB;AAE/C,MAAA,OAAO;AAAA,QACL,WAAW,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAI,CAAA,QAAA,MAAa;AAAA,UACnD,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,iBAAiB,QAAA,CAAS;AAAA,SAC5B,CAAE;AAAA,OACJ;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,+BAA+B,WAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,6BAAA;AAAA,EACjB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,gCAAA;AAAA,EACT,WAAA,EAAa,yFAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,oBAAA,CAAqB,UAAU,CAAA;AAEvD,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,2BAAA,EAA8B,UAAU,cAAc,CAAA;AAAA,MAChG;AAEA,MAAA,OAAO;AAAA,QACL,GAAG,QAAA,CAAS,IAAA;AAAA,QACZ,iBAAiB,QAAA,CAAS,eAAA;AAAA,QAC1B,YAAA,EAAc,eAAA,CAAgB,QAAA,CAAS,YAAY;AAAA,OACrD;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,kCAAkC,CAAA;AAAA,IAC9D;AAAA,EACF;AACF,CAAC","file":"chunk-SIBCVLYV.js","sourcesContent":["import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\n\nimport { HTTPException } from '../http-exception';\nimport {\n processorProviderIdPathParams,\n getProcessorProvidersResponseSchema,\n getProcessorProviderResponseSchema,\n} from '../schemas/processor-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /processor-providers - List all registered processor providers\n */\nexport const LIST_PROCESSOR_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/processor-providers',\n responseType: 'json',\n responseSchema: getProcessorProvidersResponseSchema,\n summary: 'List processor providers',\n description: 'Returns a list of all registered processor providers with their info and available phases',\n tags: ['Processor Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getProcessorProviders();\n\n return {\n providers: Object.values(providers).map(provider => ({\n ...provider.info,\n availablePhases: provider.availablePhases,\n })),\n };\n } catch (error) {\n return handleError(error, 'Error listing processor providers');\n }\n },\n});\n\n/**\n * GET /processor-providers/:providerId - Get a specific processor provider with config schema\n */\nexport const GET_PROCESSOR_PROVIDER_ROUTE = createRoute({\n method: 'GET',\n path: '/processor-providers/:providerId',\n responseType: 'json',\n pathParamSchema: processorProviderIdPathParams,\n responseSchema: getProcessorProviderResponseSchema,\n summary: 'Get processor provider details',\n description: 'Returns details about a specific processor provider, including its configuration schema',\n tags: ['Processor Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getProcessorProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Processor provider with id ${providerId} not found` });\n }\n\n return {\n ...provider.info,\n availablePhases: provider.availablePhases,\n configSchema: zodToJsonSchema(provider.configSchema) as Record<string, unknown>,\n };\n } catch (error) {\n return handleError(error, 'Error getting processor provider');\n }\n },\n});\n"]}
@@ -1,10 +1,10 @@
1
- import { getAgentFromSystem } from './chunk-3R4HNV6B.js';
1
+ import { getAgentFromSystem } from './chunk-7NBIALK4.js';
2
2
  import { listToolsResponseSchema, serializedToolSchema, toolIdPathParams, executeToolResponseSchema, executeToolContextBodySchema, agentToolPathParams, executeToolBodySchema } from './chunk-256OPP7S.js';
3
3
  import { MastraFGAPermissions, validateBody } from './chunk-JBSUT5XF.js';
4
4
  import { optionalRunIdSchema } from './chunk-2YY3EMMS.js';
5
5
  import { stringify } from './chunk-NBI73TS5.js';
6
6
  import { handleError } from './chunk-7ZWJX3AN.js';
7
- import { createRoute } from './chunk-2E3UBZ6Z.js';
7
+ import { createRoute } from './chunk-OMNQYWK3.js';
8
8
  import { standardSchemaToJSONSchema, toStandardSchema5 } from './chunk-7IJHXTUO.js';
9
9
  import { HTTPException } from './chunk-6QWQZI4Q.js';
10
10
  import { __export } from './chunk-PR4QN5HX.js';
@@ -282,5 +282,5 @@ var EXECUTE_AGENT_TOOL_ROUTE = createRoute({
282
282
  });
283
283
 
284
284
  export { EXECUTE_AGENT_TOOL_ROUTE, EXECUTE_TOOL_ROUTE, GET_AGENT_TOOL_ROUTE, GET_TOOL_BY_ID_ROUTE, LIST_TOOLS_ROUTE, tools_exports };
285
- //# sourceMappingURL=chunk-C364W23O.js.map
286
- //# sourceMappingURL=chunk-C364W23O.js.map
285
+ //# sourceMappingURL=chunk-SLHJWJR3.js.map
286
+ //# sourceMappingURL=chunk-SLHJWJR3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["tool"],"mappings":"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","file":"chunk-C364W23O.js","sourcesContent":["import { isVercelTool, isProviderDefinedTool } from '@mastra/core/tools';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\nimport { stringify } from 'superjson';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n/**\n * Resolves a schema that may be a lazy function (e.g. AI SDK provider tools).\n * Recursively resolves until a non-function value is returned.\n * Skips functions that are themselves valid schemas (e.g. ArkType types are\n * callable but also implement StandardSchema via ~standard).\n */\nfunction resolveLazySchema(schema: unknown): unknown {\n if (typeof schema === 'function' && !('~standard' in schema)) {\n return resolveLazySchema(schema());\n }\n return schema;\n}\n\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) {\n return undefined;\n }\n\n return standardSchemaToJSONSchema(toStandardSchema(schema), { target: 'draft-2020-12' });\n}\n\nfunction serializeSchema(schema: unknown): string | undefined {\n const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema) as PublicSchema<unknown> | undefined);\n if (jsonSchema === undefined) return undefined;\n return stringify(jsonSchema);\n}\n\n/**\n * Searches dynamically-resolved agent tools (provided via `toolsResolver` /\n * function-based `tools`) for a tool with the given id. Used as a fallback\n * after the static tool registry (`registeredTools` + `mastra.getToolById`)\n * misses, so global tool routes can resolve tools that only exist on agents.\n *\n * Errors thrown by an individual agent's `listTools()` are logged and\n * skipped so a single broken resolver doesn't take down the whole lookup.\n */\nasync function findToolInAgents(mastra: any, toolId: string, requestContext: any): Promise<any | undefined> {\n const agents = mastra.listAgents() || {};\n for (const agent of Object.values(agents) as any[]) {\n try {\n const agentTools = await agent.listTools({ requestContext });\n const found = Object.values(agentTools || {}).find((t: any) => t.id === toolId);\n if (found) return found;\n } catch (error) {\n mastra.getLogger?.()?.warn?.('Failed to list tools for agent while resolving tool by id', {\n agentId: agent?.id,\n toolId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return undefined;\n}\n\n/**\n * Serializes a tool for API responses, handling both regular tools (with Zod schemas)\n * and provider-defined tools (with AI SDK lazy schemas).\n */\nfunction serializeTool(tool: any): any {\n // Provider-defined tools (e.g. google.tools.googleSearch(), openai.tools.webSearch())\n // have lazy inputSchema functions that return AI SDK Schema objects, not Zod schemas.\n // We resolve them and use the jsonSchema property directly.\n if (isProviderDefinedTool(tool)) {\n const resolvedInput = resolveLazySchema(tool.inputSchema);\n const resolvedOutput = resolveLazySchema(tool.outputSchema);\n return {\n ...tool,\n inputSchema:\n resolvedInput && typeof resolvedInput === 'object' && 'jsonSchema' in resolvedInput\n ? stringify(resolvedInput.jsonSchema)\n : undefined,\n outputSchema:\n resolvedOutput && typeof resolvedOutput === 'object' && 'jsonSchema' in resolvedOutput\n ? stringify(resolvedOutput.jsonSchema)\n : undefined,\n };\n }\n\n return {\n ...tool,\n inputSchema: serializeSchema(tool.inputSchema),\n outputSchema: serializeSchema(tool.outputSchema),\n requestContextSchema: serializeSchema(tool.requestContextSchema),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, requestContext }) => {\n try {\n // Merge tools from two sources: mastra.listTools() includes dynamically created tools\n // (e.g. MCP tools, or agent tools registered by their intrinsic id), while registeredTools\n // includes tools discovered by the CLI bundler (keyed by export name).\n //\n // The same tool instance can appear in both maps under different keys (e.g. an agent\n // registers it by `tool.id` while the bundler registers it by export name). Dedupe by\n // `tool.id`, preferring the registeredTools (bundler) key, so each tool appears once.\n const registered = registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : {};\n\n const allTools: Record<string, any> = {};\n const seenToolIds = new Map<string, string>();\n\n // registeredTools first so their key wins for a given tool.id.\n for (const [key, tool] of Object.entries(registered)) {\n const toolId = typeof (tool as any)?.id === 'string' ? (tool as any).id : undefined;\n if (toolId !== undefined) seenToolIds.set(toolId, key);\n allTools[key] = tool;\n }\n\n for (const [key, tool] of Object.entries(mastra.listTools() ?? {})) {\n const toolId = typeof (tool as any)?.id === 'string' ? (tool as any).id : undefined;\n // Skip if this exact tool.id was already registered (under any key) by registeredTools.\n if (toolId !== undefined && seenToolIds.has(toolId)) continue;\n if (toolId !== undefined) seenToolIds.set(toolId, key);\n allTools[key] = tool;\n }\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n acc[id] = serializeTool(_tool);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n // Filter tools by FGA if configured\n const fgaProvider = mastra.getServer?.()?.fga;\n const user = requestContext?.get('user');\n if (fgaProvider && user) {\n const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));\n const accessible = await fgaProvider.filterAccessible(user, toolList, 'tool', MastraFGAPermissions.TOOLS_READ);\n const accessibleSet = new Set(accessible.map((t: any) => t.id));\n for (const id of Object.keys(serializedTools)) {\n if (!accessibleSet.has(id)) {\n delete serializedTools[id];\n }\n }\n }\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, toolId, requestContext }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n let result;\n if (isVercelTool(tool)) {\n result = await (tool as any).execute(data);\n } else {\n result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["tool"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,aAAA,GAAA;AAAA,QAAA,CAAA,aAAA,EAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AA4BA,SAAS,kBAAkB,MAAA,EAA0B;AACnD,EAAA,IAAI,OAAO,MAAA,KAAW,UAAA,IAAc,EAAE,eAAe,MAAA,CAAA,EAAS;AAC5D,IAAA,OAAO,iBAAA,CAAkB,QAAQ,CAAA;AAAA,EACnC;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,mBAAmB,MAAA,EAA2C;AACrE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO,2BAA2B,iBAAA,CAAiB,MAAM,GAAG,EAAE,MAAA,EAAQ,iBAAiB,CAAA;AACzF;AAEA,SAAS,gBAAgB,MAAA,EAAqC;AAC5D,EAAA,MAAM,UAAA,GAAa,kBAAA,CAAmB,iBAAA,CAAkB,MAAM,CAAsC,CAAA;AACpG,EAAA,IAAI,UAAA,KAAe,QAAW,OAAO,MAAA;AACrC,EAAA,OAAO,UAAU,UAAU,CAAA;AAC7B;AAWA,eAAe,gBAAA,CAAiB,MAAA,EAAa,MAAA,EAAgB,cAAA,EAA+C;AAC1G,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,EAAW,IAAK,EAAC;AACvC,EAAA,KAAA,MAAW,KAAA,IAAS,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,EAAY;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,aAAa,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAC3D,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,UAAA,IAAc,EAAE,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,MAAM,CAAA;AAC9E,MAAA,IAAI,OAAO,OAAO,KAAA;AAAA,IACpB,SAAS,KAAA,EAAO;AACd,MAAA,MAAA,CAAO,SAAA,IAAY,EAAG,IAAA,GAAO,2DAAA,EAA6D;AAAA,QACxF,SAAS,KAAA,EAAO,EAAA;AAAA,QAChB,MAAA;AAAA,QACA,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,OAC7D,CAAA;AAAA,IACH;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAMA,SAAS,cAAc,IAAA,EAAgB;AAIrC,EAAA,IAAI,qBAAA,CAAsB,IAAI,CAAA,EAAG;AAC/B,IAAA,MAAM,aAAA,GAAgB,iBAAA,CAAkB,IAAA,CAAK,WAAW,CAAA;AACxD,IAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,IAAA,CAAK,YAAY,CAAA;AAC1D,IAAA,OAAO;AAAA,MACL,GAAG,IAAA;AAAA,MACH,WAAA,EACE,aAAA,IAAiB,OAAO,aAAA,KAAkB,QAAA,IAAY,gBAAgB,aAAA,GAClE,SAAA,CAAU,aAAA,CAAc,UAAU,CAAA,GAClC,MAAA;AAAA,MACN,YAAA,EACE,cAAA,IAAkB,OAAO,cAAA,KAAmB,QAAA,IAAY,gBAAgB,cAAA,GACpE,SAAA,CAAU,cAAA,CAAe,UAAU,CAAA,GACnC;AAAA,KACR;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,WAAA,EAAa,eAAA,CAAgB,IAAA,CAAK,WAAW,CAAA;AAAA,IAC7C,YAAA,EAAc,eAAA,CAAgB,IAAA,CAAK,YAAY,CAAA;AAAA,IAC/C,oBAAA,EAAsB,eAAA,CAAgB,IAAA,CAAK,oBAAoB;AAAA,GACjE;AACF;AAMO,IAAM,mBAAmB,WAAA,CAAY;AAAA,EAC1C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,uBAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,qDAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,gBAAe,KAAM;AAC9D,IAAA,IAAI;AAQF,MAAA,MAAM,UAAA,GAAa,mBAAmB,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,eAAA,GAAkB,EAAC;AAEnG,MAAA,MAAM,WAAgC,EAAC;AACvC,MAAA,MAAM,WAAA,uBAAkB,GAAA,EAAoB;AAG5C,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,IAAI,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AACpD,QAAA,MAAM,SAAS,OAAQ,IAAA,EAAc,EAAA,KAAO,QAAA,GAAY,KAAa,EAAA,GAAK,MAAA;AAC1E,QAAA,IAAI,MAAA,KAAW,MAAA,EAAW,WAAA,CAAY,GAAA,CAAI,QAAQ,GAAG,CAAA;AACrD,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,IAAA;AAAA,MAClB;AAEA,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,IAAI,CAAA,IAAK,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAO,SAAA,EAAU,IAAK,EAAE,CAAA,EAAG;AAClE,QAAA,MAAM,SAAS,OAAQ,IAAA,EAAc,EAAA,KAAO,QAAA,GAAY,KAAa,EAAA,GAAK,MAAA;AAE1E,QAAA,IAAI,MAAA,KAAW,MAAA,IAAa,WAAA,CAAY,GAAA,CAAI,MAAM,CAAA,EAAG;AACrD,QAAA,IAAI,MAAA,KAAW,MAAA,EAAW,WAAA,CAAY,GAAA,CAAI,QAAQ,GAAG,CAAA;AACrD,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,IAAA;AAAA,MAClB;AAEA,MAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/C,CAAC,GAAA,EAAK,CAAC,EAAA,EAAI,KAAK,CAAA,KAAM;AACpB,UAAA,GAAA,CAAI,EAAE,CAAA,GAAI,aAAA,CAAc,KAAK,CAAA;AAC7B,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAGA,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,SAAA,IAAY,EAAG,GAAA;AAC1C,MAAA,MAAM,IAAA,GAAO,cAAA,EAAgB,GAAA,CAAI,MAAM,CAAA;AACvC,MAAA,IAAI,eAAe,IAAA,EAAM;AACvB,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,eAAe,EAAE,GAAA,CAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAA,MAAO,EAAE,EAAA,EAAI,GAAG,GAAE,CAAE,CAAA;AAChF,QAAA,MAAM,UAAA,GAAa,MAAM,WAAA,CAAY,gBAAA,CAAiB,MAAM,QAAA,EAAU,MAAA,EAAQ,qBAAqB,UAAU,CAAA;AAC7G,QAAA,MAAM,aAAA,GAAgB,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAC,CAAA,KAAW,CAAA,CAAE,EAAE,CAAC,CAAA;AAC9D,QAAA,KAAA,MAAW,EAAA,IAAM,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,EAAG;AAC7C,UAAA,IAAI,CAAC,aAAA,CAAc,GAAA,CAAI,EAAE,CAAA,EAAG;AAC1B,YAAA,OAAO,gBAAgB,EAAE,CAAA;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAEA,MAAA,OAAO,eAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qBAAqB,CAAA;AAAA,IACjD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,uBAAuB,WAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,gBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gBAAA;AAAA,EACjB,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,4EAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,eAAA,EAAiB,MAAA,EAAQ,gBAAe,KAAM;AACtE,IAAA,IAAI;AACF,MAAA,IAAI,IAAA;AAGJ,MAAA,IAAI,mBAAmB,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,CAAE,SAAS,CAAA,EAAG;AAC9D,QAAA,IAAA,GAAO,MAAA,CAAO,OAAO,eAAe,CAAA,CAAE,KAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,MAAM,CAAA;AAAA,MACxE;AACA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAI;AACF,UAAA,IAAA,GAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,QAClC,CAAA,CAAA,MAAQ;AAAA,QAER;AAAA,MACF;AAGA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAA,GAAO,MAAM,gBAAA,CAAiB,MAAA,EAAQ,MAAA,EAAQ,cAAc,CAAA;AAAA,MAC9D;AAEA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,OAAO,cAAc,IAAI,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oBAAoB,CAAA;AAAA,IAChD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,wBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gBAAA;AAAA,EACjB,gBAAA,EAAkB,mBAAA;AAAA,EAClB,UAAA,EAAY,4BAAA;AAAA,EACZ,cAAA,EAAgB,yBAAA;AAAA,EAChB,OAAA,EAAS,cAAA;AAAA,EACT,WAAA,EAAa,uDAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAQ,eAAA,EAAiB,cAAA,EAAgB,GAAG,UAAA,EAAW,KAAM;AAC5F,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,uBAAuB,CAAA;AAAA,MACjE;AAEA,MAAA,IAAI,IAAA;AAGJ,MAAA,IAAI,mBAAmB,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,CAAE,SAAS,CAAA,EAAG;AAC9D,QAAA,IAAA,GAAO,MAAA,CAAO,OAAO,eAAe,CAAA,CAAE,KAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,MAAM,CAAA;AAAA,MACxE;AACA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAI;AACF,UAAA,IAAA,GAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,QAClC,CAAA,CAAA,MAAQ;AAAA,QAER;AAAA,MACF;AAGA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAA,GAAO,MAAM,gBAAA,CAAiB,MAAA,EAAQ,MAAA,EAAQ,cAAc,CAAA;AAAA,MAC9D;AAEA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AAEA,MAAA,MAAM,EAAE,MAAK,GAAI,UAAA;AAEjB,MAAA,YAAA,CAAa,EAAE,MAAM,CAAA;AAErB,MAAA,IAAI,MAAA;AACJ,MAAA,IAAI,YAAA,CAAa,IAAI,CAAA,EAAG;AACtB,QAAA,MAAA,GAAS,MAAO,IAAA,CAAa,OAAA,CAAQ,IAAI,CAAA;AAAA,MAC3C,CAAA,MAAO;AACL,QAAA,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAO;AAAA,UACjC,MAAA;AAAA,UACA,cAAA;AAAA;AAAA,UAEA,cAAA,EAAgB,EAAE,WAAA,EAAa,MAAA,EAAU;AAAA,UACzC,GAAI,KAAA,GACA;AAAA,YACE,QAAA,EAAU;AAAA,cACR,KAAA;AAAA,cACA,SAAS,YAAY;AAAA,cAAC;AAAA;AACxB,cAEF;AAAC,SACN,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,sBAAsB,CAAA;AAAA,IAClD;AAAA,EACF;AACF,CAAC;AAMM,IAAM,uBAAuB,WAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,gCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,mBAAA;AAAA,EACjB,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,2DAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,OAAA,EAAS,MAAA,EAAQ,gBAAe,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AACA,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,aAAa,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAE3D,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,UAAA,IAAc,EAAE,CAAA,CAAE,IAAA,CAAK,CAACA,KAAAA,KAAcA,KAAAA,CAAK,EAAA,KAAO,MAAM,CAAA;AAEnF,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,OAAO,cAAc,IAAI,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,0BAA0B,CAAA;AAAA,IACtD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,2BAA2B,WAAA,CAAY;AAAA,EAClD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,wCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,mBAAA;AAAA,EACjB,UAAA,EAAY,qBAAA;AAAA,EACZ,cAAA,EAAgB,yBAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,6EAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,MAAA,EAAQ,IAAA,EAAM,gBAAe,KAAM;AACpE,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AACA,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,aAAa,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAE3D,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,UAAA,IAAc,EAAE,CAAA,CAAE,IAAA,CAAK,CAACA,KAAAA,KAAcA,KAAAA,CAAK,EAAA,KAAO,MAAM,CAAA;AAEnF,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAM;AAAA,QACtC,MAAA;AAAA,QACA,cAAA;AAAA;AAAA,QAEA,cAAA,EAAgB,EAAE,WAAA,EAAa,MAAA;AAAU,OAC1C,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,4BAA4B,CAAA;AAAA,IACxD;AAAA,EACF;AACF,CAAC","file":"chunk-SLHJWJR3.js","sourcesContent":["import { isVercelTool, isProviderDefinedTool } from '@mastra/core/tools';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\nimport { stringify } from 'superjson';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n/**\n * Resolves a schema that may be a lazy function (e.g. AI SDK provider tools).\n * Recursively resolves until a non-function value is returned.\n * Skips functions that are themselves valid schemas (e.g. ArkType types are\n * callable but also implement StandardSchema via ~standard).\n */\nfunction resolveLazySchema(schema: unknown): unknown {\n if (typeof schema === 'function' && !('~standard' in schema)) {\n return resolveLazySchema(schema());\n }\n return schema;\n}\n\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) {\n return undefined;\n }\n\n return standardSchemaToJSONSchema(toStandardSchema(schema), { target: 'draft-2020-12' });\n}\n\nfunction serializeSchema(schema: unknown): string | undefined {\n const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema) as PublicSchema<unknown> | undefined);\n if (jsonSchema === undefined) return undefined;\n return stringify(jsonSchema);\n}\n\n/**\n * Searches dynamically-resolved agent tools (provided via `toolsResolver` /\n * function-based `tools`) for a tool with the given id. Used as a fallback\n * after the static tool registry (`registeredTools` + `mastra.getToolById`)\n * misses, so global tool routes can resolve tools that only exist on agents.\n *\n * Errors thrown by an individual agent's `listTools()` are logged and\n * skipped so a single broken resolver doesn't take down the whole lookup.\n */\nasync function findToolInAgents(mastra: any, toolId: string, requestContext: any): Promise<any | undefined> {\n const agents = mastra.listAgents() || {};\n for (const agent of Object.values(agents) as any[]) {\n try {\n const agentTools = await agent.listTools({ requestContext });\n const found = Object.values(agentTools || {}).find((t: any) => t.id === toolId);\n if (found) return found;\n } catch (error) {\n mastra.getLogger?.()?.warn?.('Failed to list tools for agent while resolving tool by id', {\n agentId: agent?.id,\n toolId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return undefined;\n}\n\n/**\n * Serializes a tool for API responses, handling both regular tools (with Zod schemas)\n * and provider-defined tools (with AI SDK lazy schemas).\n */\nfunction serializeTool(tool: any): any {\n // Provider-defined tools (e.g. google.tools.googleSearch(), openai.tools.webSearch())\n // have lazy inputSchema functions that return AI SDK Schema objects, not Zod schemas.\n // We resolve them and use the jsonSchema property directly.\n if (isProviderDefinedTool(tool)) {\n const resolvedInput = resolveLazySchema(tool.inputSchema);\n const resolvedOutput = resolveLazySchema(tool.outputSchema);\n return {\n ...tool,\n inputSchema:\n resolvedInput && typeof resolvedInput === 'object' && 'jsonSchema' in resolvedInput\n ? stringify(resolvedInput.jsonSchema)\n : undefined,\n outputSchema:\n resolvedOutput && typeof resolvedOutput === 'object' && 'jsonSchema' in resolvedOutput\n ? stringify(resolvedOutput.jsonSchema)\n : undefined,\n };\n }\n\n return {\n ...tool,\n inputSchema: serializeSchema(tool.inputSchema),\n outputSchema: serializeSchema(tool.outputSchema),\n requestContextSchema: serializeSchema(tool.requestContextSchema),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, requestContext }) => {\n try {\n // Merge tools from two sources: mastra.listTools() includes dynamically created tools\n // (e.g. MCP tools, or agent tools registered by their intrinsic id), while registeredTools\n // includes tools discovered by the CLI bundler (keyed by export name).\n //\n // The same tool instance can appear in both maps under different keys (e.g. an agent\n // registers it by `tool.id` while the bundler registers it by export name). Dedupe by\n // `tool.id`, preferring the registeredTools (bundler) key, so each tool appears once.\n const registered = registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : {};\n\n const allTools: Record<string, any> = {};\n const seenToolIds = new Map<string, string>();\n\n // registeredTools first so their key wins for a given tool.id.\n for (const [key, tool] of Object.entries(registered)) {\n const toolId = typeof (tool as any)?.id === 'string' ? (tool as any).id : undefined;\n if (toolId !== undefined) seenToolIds.set(toolId, key);\n allTools[key] = tool;\n }\n\n for (const [key, tool] of Object.entries(mastra.listTools() ?? {})) {\n const toolId = typeof (tool as any)?.id === 'string' ? (tool as any).id : undefined;\n // Skip if this exact tool.id was already registered (under any key) by registeredTools.\n if (toolId !== undefined && seenToolIds.has(toolId)) continue;\n if (toolId !== undefined) seenToolIds.set(toolId, key);\n allTools[key] = tool;\n }\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n acc[id] = serializeTool(_tool);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n // Filter tools by FGA if configured\n const fgaProvider = mastra.getServer?.()?.fga;\n const user = requestContext?.get('user');\n if (fgaProvider && user) {\n const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));\n const accessible = await fgaProvider.filterAccessible(user, toolList, 'tool', MastraFGAPermissions.TOOLS_READ);\n const accessibleSet = new Set(accessible.map((t: any) => t.id));\n for (const id of Object.keys(serializedTools)) {\n if (!accessibleSet.has(id)) {\n delete serializedTools[id];\n }\n }\n }\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, toolId, requestContext }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n let result;\n if (isVercelTool(tool)) {\n result = await (tool as any).execute(data);\n } else {\n result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
@@ -4,7 +4,7 @@ import { MastraFGAPermissions, getEffectiveResourceId, validateRunOwnership } fr
4
4
  import { optionalRunIdSchema, runIdSchema } from './chunk-2YY3EMMS.js';
5
5
  import { getWorkflowInfo, WorkflowRegistry } from './chunk-NBI73TS5.js';
6
6
  import { handleError } from './chunk-7ZWJX3AN.js';
7
- import { createRoute } from './chunk-2E3UBZ6Z.js';
7
+ import { createRoute } from './chunk-OMNQYWK3.js';
8
8
  import { HTTPException } from './chunk-6QWQZI4Q.js';
9
9
  import { __export } from './chunk-PR4QN5HX.js';
10
10
  import { createCachingTransformStream, createReplayStream } from '@mastra/core/stream';
@@ -1115,5 +1115,5 @@ var RECEIVE_WORKFLOW_EVENT_ROUTE = createRoute({
1115
1115
  });
1116
1116
 
1117
1117
  export { CANCEL_WORKFLOW_RUN_ROUTE, CREATE_WORKFLOW_RUN_ROUTE, DELETE_WORKFLOW_RUN_BY_ID_ROUTE, EXECUTE_WORKFLOW_STEP_ROUTE, GET_WORKFLOW_BY_ID_ROUTE, GET_WORKFLOW_RUN_BY_ID_ROUTE, LIST_WORKFLOWS_ROUTE, LIST_WORKFLOW_RUNS_ROUTE, OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE, OBSERVE_STREAM_WORKFLOW_ROUTE, RECEIVE_WORKFLOW_EVENT_ROUTE, RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ASYNC_ROUTE, RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ROUTE, RESTART_ASYNC_WORKFLOW_ROUTE, RESTART_WORKFLOW_ROUTE, RESUME_ASYNC_WORKFLOW_ROUTE, RESUME_NO_WAIT_WORKFLOW_ROUTE, RESUME_STREAM_WORKFLOW_ROUTE, RESUME_WORKFLOW_ROUTE, START_ASYNC_WORKFLOW_ROUTE, START_WORKFLOW_RUN_ROUTE, STREAM_LEGACY_WORKFLOW_ROUTE, STREAM_WORKFLOW_ROUTE, TIME_TRAVEL_ASYNC_WORKFLOW_ROUTE, TIME_TRAVEL_STREAM_WORKFLOW_ROUTE, TIME_TRAVEL_WORKFLOW_ROUTE, workflows_exports };
1118
- //# sourceMappingURL=chunk-2TKEZ5UE.js.map
1119
- //# sourceMappingURL=chunk-2TKEZ5UE.js.map
1118
+ //# sourceMappingURL=chunk-SLWYNPH6.js.map
1119
+ //# sourceMappingURL=chunk-SLWYNPH6.js.map