@mastra/server 1.33.0-alpha.0 → 1.33.0-alpha.10
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.
- package/CHANGELOG.md +258 -0
- package/dist/_types/@internal_core/dist/index.d.ts +9 -1
- package/dist/api-schema-manifest-CMLTOCGS.js +56 -0
- package/dist/api-schema-manifest-CMLTOCGS.js.map +1 -0
- package/dist/api-schema-manifest-UHFUTABX.cjs +58 -0
- package/dist/api-schema-manifest-UHFUTABX.cjs.map +1 -0
- package/dist/{chunk-F35U36E2.cjs → chunk-2N2WHATC.cjs} +603 -378
- package/dist/chunk-2N2WHATC.cjs.map +1 -0
- package/dist/{chunk-UWBU3GWI.cjs → chunk-2PS73C7N.cjs} +8 -8
- package/dist/{chunk-UWBU3GWI.cjs.map → chunk-2PS73C7N.cjs.map} +1 -1
- package/dist/{chunk-V4DZUIDM.cjs → chunk-37XCFECT.cjs} +87 -85
- package/dist/chunk-37XCFECT.cjs.map +1 -0
- package/dist/{chunk-ALVHNIDP.js → chunk-3AKQRYDF.js} +4 -4
- package/dist/{chunk-ALVHNIDP.js.map → chunk-3AKQRYDF.js.map} +1 -1
- package/dist/{chunk-FE2MMCKW.js → chunk-3YJQ26HK.js} +8 -8
- package/dist/{chunk-FE2MMCKW.js.map → chunk-3YJQ26HK.js.map} +1 -1
- package/dist/{chunk-SAOJYYFE.cjs → chunk-42WZN6MM.cjs} +10 -6
- package/dist/chunk-42WZN6MM.cjs.map +1 -0
- package/dist/{chunk-X37VNBBB.cjs → chunk-4NVC7TM6.cjs} +28 -28
- package/dist/{chunk-X37VNBBB.cjs.map → chunk-4NVC7TM6.cjs.map} +1 -1
- package/dist/chunk-4PB6LUYQ.js +46 -0
- package/dist/chunk-4PB6LUYQ.js.map +1 -0
- package/dist/{chunk-GUWIV3ZN.cjs → chunk-4QZCXU3A.cjs} +9 -2
- package/dist/chunk-4QZCXU3A.cjs.map +1 -0
- package/dist/{chunk-EFW6MWXU.cjs → chunk-5XW4MKE6.cjs} +22 -2
- package/dist/chunk-5XW4MKE6.cjs.map +1 -0
- package/dist/{chunk-D3DCFLTS.js → chunk-6ECVA7WE.js} +3 -3
- package/dist/{chunk-D3DCFLTS.js.map → chunk-6ECVA7WE.js.map} +1 -1
- package/dist/{chunk-FZSDG2KA.cjs → chunk-6JP6Q64G.cjs} +10 -10
- package/dist/{chunk-FZSDG2KA.cjs.map → chunk-6JP6Q64G.cjs.map} +1 -1
- package/dist/{chunk-V5AXCSSN.js → chunk-6V2NUA6I.js} +4 -4
- package/dist/{chunk-V5AXCSSN.js.map → chunk-6V2NUA6I.js.map} +1 -1
- package/dist/{chunk-64YJOWH2.cjs → chunk-72W42JL4.cjs} +5 -5
- package/dist/{chunk-64YJOWH2.cjs.map → chunk-72W42JL4.cjs.map} +1 -1
- package/dist/{chunk-CJ2LC5EE.cjs → chunk-776ZOYWV.cjs} +164 -19
- package/dist/chunk-776ZOYWV.cjs.map +1 -0
- package/dist/{chunk-VF2DSR6J.js → chunk-7LGTEZBD.js} +4 -4
- package/dist/{chunk-VF2DSR6J.js.map → chunk-7LGTEZBD.js.map} +1 -1
- package/dist/{chunk-DSJM7F5A.js → chunk-7PDQ67ZY.js} +109 -7
- package/dist/chunk-7PDQ67ZY.js.map +1 -0
- package/dist/{chunk-X2LYM3QK.js → chunk-7RLQ6356.js} +3 -3
- package/dist/{chunk-X2LYM3QK.js.map → chunk-7RLQ6356.js.map} +1 -1
- package/dist/{chunk-P6DRWWFU.cjs → chunk-ALOM42GR.cjs} +24 -24
- package/dist/{chunk-P6DRWWFU.cjs.map → chunk-ALOM42GR.cjs.map} +1 -1
- package/dist/{chunk-GSURMQA2.js → chunk-ANIIJVPR.js} +4 -4
- package/dist/{chunk-GSURMQA2.js.map → chunk-ANIIJVPR.js.map} +1 -1
- package/dist/chunk-B3CHYE7C.js +549 -0
- package/dist/chunk-B3CHYE7C.js.map +1 -0
- package/dist/{chunk-6NY3T42O.js → chunk-BIUL4Y6W.js} +10 -6
- package/dist/chunk-BIUL4Y6W.js.map +1 -0
- package/dist/{chunk-SOJ2UNB6.js → chunk-BK2PTTTN.js} +4 -4
- package/dist/{chunk-SOJ2UNB6.js.map → chunk-BK2PTTTN.js.map} +1 -1
- package/dist/{chunk-JHUXQK47.cjs → chunk-BNONPEW6.cjs} +11 -11
- package/dist/{chunk-JHUXQK47.cjs.map → chunk-BNONPEW6.cjs.map} +1 -1
- package/dist/{chunk-XBT4ZT22.js → chunk-CG3AAC7C.js} +4 -4
- package/dist/{chunk-XBT4ZT22.js.map → chunk-CG3AAC7C.js.map} +1 -1
- package/dist/{chunk-CNTWPG57.cjs → chunk-CXAJPAJ2.cjs} +9 -2
- package/dist/chunk-CXAJPAJ2.cjs.map +1 -0
- package/dist/{chunk-WZKXMP2U.cjs → chunk-D4V5AMTF.cjs} +322 -231
- package/dist/chunk-D4V5AMTF.cjs.map +1 -0
- package/dist/{chunk-YH452QGH.js → chunk-DC7NOATT.js} +3 -3
- package/dist/{chunk-YH452QGH.js.map → chunk-DC7NOATT.js.map} +1 -1
- package/dist/{chunk-URRUDXO5.cjs → chunk-DDF3ZASL.cjs} +173 -69
- package/dist/chunk-DDF3ZASL.cjs.map +1 -0
- package/dist/{chunk-ABCXNCRJ.js → chunk-DPGNOE7R.js} +3 -3
- package/dist/{chunk-ABCXNCRJ.js.map → chunk-DPGNOE7R.js.map} +1 -1
- package/dist/{chunk-F22H7Z7L.cjs → chunk-E7IOQCUP.cjs} +10 -10
- package/dist/{chunk-F22H7Z7L.cjs.map → chunk-E7IOQCUP.cjs.map} +1 -1
- package/dist/chunk-E7UDPLDF.cjs +53 -0
- package/dist/chunk-E7UDPLDF.cjs.map +1 -0
- package/dist/{chunk-SXARBGNQ.js → chunk-EFQBRUA4.js} +3 -3
- package/dist/{chunk-SXARBGNQ.js.map → chunk-EFQBRUA4.js.map} +1 -1
- package/dist/chunk-F3HP5HM6.cjs +998 -0
- package/dist/chunk-F3HP5HM6.cjs.map +1 -0
- package/dist/{chunk-YWORLTQM.js → chunk-FJZ67HHA.js} +7 -5
- package/dist/chunk-FJZ67HHA.js.map +1 -0
- package/dist/{chunk-MQVBXOMA.js → chunk-FKRI5D3X.js} +502 -277
- package/dist/chunk-FKRI5D3X.js.map +1 -0
- package/dist/{chunk-XCIJHMUE.js → chunk-GAC2O7DB.js} +8 -6
- package/dist/chunk-GAC2O7DB.js.map +1 -0
- package/dist/{chunk-GXSML4LI.js → chunk-GIMDOFRR.js} +4 -4
- package/dist/{chunk-GXSML4LI.js.map → chunk-GIMDOFRR.js.map} +1 -1
- package/dist/{chunk-MMHEXUTF.cjs → chunk-GNQ5SKPB.cjs} +7 -7
- package/dist/{chunk-MMHEXUTF.cjs.map → chunk-GNQ5SKPB.cjs.map} +1 -1
- package/dist/{chunk-EUJHJEM6.cjs → chunk-GOXW7A5J.cjs} +10 -10
- package/dist/{chunk-EUJHJEM6.cjs.map → chunk-GOXW7A5J.cjs.map} +1 -1
- package/dist/{chunk-4HRTLLE6.js → chunk-GP65L3TF.js} +166 -38
- package/dist/chunk-GP65L3TF.js.map +1 -0
- package/dist/{chunk-MI3PFFAR.js → chunk-GRPUO3NH.js} +137 -47
- package/dist/chunk-GRPUO3NH.js.map +1 -0
- package/dist/{chunk-RFKNM47Y.js → chunk-GSL72DOW.js} +3 -3
- package/dist/{chunk-RFKNM47Y.js.map → chunk-GSL72DOW.js.map} +1 -1
- package/dist/{chunk-HERDIEC2.cjs → chunk-HNV2E454.cjs} +3 -3
- package/dist/{chunk-HERDIEC2.cjs.map → chunk-HNV2E454.cjs.map} +1 -1
- package/dist/{chunk-NVM46NSG.js → chunk-HW3AHWHB.js} +91 -77
- package/dist/chunk-HW3AHWHB.js.map +1 -0
- package/dist/{chunk-LS5NHYVW.js → chunk-HX5WL5ZF.js} +3 -3
- package/dist/{chunk-LS5NHYVW.js.map → chunk-HX5WL5ZF.js.map} +1 -1
- package/dist/{chunk-UEACXZ5C.cjs → chunk-IIGNRK55.cjs} +4 -4
- package/dist/{chunk-UEACXZ5C.cjs.map → chunk-IIGNRK55.cjs.map} +1 -1
- package/dist/{chunk-4QGPES7N.js → chunk-ITIAC2TC.js} +3 -3
- package/dist/{chunk-4QGPES7N.js.map → chunk-ITIAC2TC.js.map} +1 -1
- package/dist/{chunk-K7IVZQKI.cjs → chunk-J62R54QE.cjs} +6 -6
- package/dist/{chunk-K7IVZQKI.cjs.map → chunk-J62R54QE.cjs.map} +1 -1
- package/dist/{chunk-QCSBOQGP.cjs → chunk-JLH5BHLT.cjs} +10 -10
- package/dist/{chunk-QCSBOQGP.cjs.map → chunk-JLH5BHLT.cjs.map} +1 -1
- package/dist/{chunk-HTSSEM5Z.cjs → chunk-JNRQKNVF.cjs} +21 -6
- package/dist/chunk-JNRQKNVF.cjs.map +1 -0
- package/dist/{chunk-UOC4K3RU.js → chunk-JOUPK2UV.js} +3 -3
- package/dist/{chunk-UOC4K3RU.js.map → chunk-JOUPK2UV.js.map} +1 -1
- package/dist/{chunk-GQOWV33T.js → chunk-JSHKUN5Y.js} +9 -5
- package/dist/chunk-JSHKUN5Y.js.map +1 -0
- package/dist/{chunk-3KIFZFY7.js → chunk-JV7LQVQ4.js} +134 -9
- package/dist/chunk-JV7LQVQ4.js.map +1 -0
- package/dist/{chunk-KUCUFXLD.js → chunk-K3PQS66F.js} +7 -7
- package/dist/{chunk-KUCUFXLD.js.map → chunk-K3PQS66F.js.map} +1 -1
- package/dist/{chunk-43CWQ4M3.js → chunk-KCVOCZXG.js} +9 -3
- package/dist/chunk-KCVOCZXG.js.map +1 -0
- package/dist/{chunk-TJNZEYLA.js → chunk-KEE6UMGC.js} +9 -2
- package/dist/chunk-KEE6UMGC.js.map +1 -0
- package/dist/{chunk-I34RGOPQ.js → chunk-KXZBJDFG.js} +4 -4
- package/dist/{chunk-I34RGOPQ.js.map → chunk-KXZBJDFG.js.map} +1 -1
- package/dist/{chunk-EXVKDDKD.cjs → chunk-L742HQNI.cjs} +10 -10
- package/dist/{chunk-EXVKDDKD.cjs.map → chunk-L742HQNI.cjs.map} +1 -1
- package/dist/{chunk-RRS33WBW.cjs → chunk-LKVE4QAW.cjs} +6 -6
- package/dist/{chunk-RRS33WBW.cjs.map → chunk-LKVE4QAW.cjs.map} +1 -1
- package/dist/{chunk-VIX5OA2V.cjs → chunk-LNV75BVN.cjs} +42 -40
- package/dist/chunk-LNV75BVN.cjs.map +1 -0
- package/dist/{chunk-OGFJRI4R.js → chunk-LPMWXBIW.js} +19 -5
- package/dist/chunk-LPMWXBIW.js.map +1 -0
- package/dist/{chunk-H656FJUZ.js → chunk-LRUC4D2Q.js} +3 -3
- package/dist/{chunk-H656FJUZ.js.map → chunk-LRUC4D2Q.js.map} +1 -1
- package/dist/{chunk-IYEGDP3G.js → chunk-M7DF3D2M.js} +3 -3
- package/dist/{chunk-IYEGDP3G.js.map → chunk-M7DF3D2M.js.map} +1 -1
- package/dist/chunk-N4EZ5RAX.js +630 -0
- package/dist/chunk-N4EZ5RAX.js.map +1 -0
- package/dist/{chunk-CFK4R6LE.js → chunk-NKCUF5ZH.js} +3 -3
- package/dist/{chunk-CFK4R6LE.js.map → chunk-NKCUF5ZH.js.map} +1 -1
- package/dist/{chunk-QXG537D5.cjs → chunk-NOQ45USI.cjs} +13 -13
- package/dist/{chunk-QXG537D5.cjs.map → chunk-NOQ45USI.cjs.map} +1 -1
- package/dist/{chunk-XI4WY2MX.cjs → chunk-NWCY4EDJ.cjs} +30 -30
- package/dist/{chunk-XI4WY2MX.cjs.map → chunk-NWCY4EDJ.cjs.map} +1 -1
- package/dist/{chunk-JLRBUMQA.cjs → chunk-OB4NE2YX.cjs} +10 -10
- package/dist/{chunk-JLRBUMQA.cjs.map → chunk-OB4NE2YX.cjs.map} +1 -1
- package/dist/{chunk-R6JGZX7Q.cjs → chunk-OJFDLVAO.cjs} +13 -13
- package/dist/{chunk-R6JGZX7Q.cjs.map → chunk-OJFDLVAO.cjs.map} +1 -1
- package/dist/{chunk-SRJJBXTO.cjs → chunk-P3TJ7MI6.cjs} +11 -11
- package/dist/{chunk-SRJJBXTO.cjs.map → chunk-P3TJ7MI6.cjs.map} +1 -1
- package/dist/{chunk-PALNMAC6.js → chunk-P5H4ILLH.js} +3 -3
- package/dist/{chunk-PALNMAC6.js.map → chunk-P5H4ILLH.js.map} +1 -1
- package/dist/{chunk-7LAFXMXB.cjs → chunk-PJDFXAOL.cjs} +3 -2
- package/dist/{chunk-7LAFXMXB.cjs.map → chunk-PJDFXAOL.cjs.map} +1 -1
- package/dist/{chunk-MG4EE3KA.cjs → chunk-PPCGMD6N.cjs} +11 -11
- package/dist/{chunk-MG4EE3KA.cjs.map → chunk-PPCGMD6N.cjs.map} +1 -1
- package/dist/{chunk-EPYO4OC5.js → chunk-QFGTTQFQ.js} +3 -3
- package/dist/{chunk-EPYO4OC5.js.map → chunk-QFGTTQFQ.js.map} +1 -1
- package/dist/{chunk-R3DQGOTC.cjs → chunk-QISQJJPS.cjs} +12 -8
- package/dist/chunk-QISQJJPS.cjs.map +1 -0
- package/dist/{chunk-F6MVX6E6.cjs → chunk-QRBV2NDD.cjs} +11 -11
- package/dist/{chunk-F6MVX6E6.cjs.map → chunk-QRBV2NDD.cjs.map} +1 -1
- package/dist/{chunk-JU54MAJE.js → chunk-RYOD3GP4.js} +4 -4
- package/dist/{chunk-JU54MAJE.js.map → chunk-RYOD3GP4.js.map} +1 -1
- package/dist/{chunk-GTERDDNK.js → chunk-SEMTGEAA.js} +3 -3
- package/dist/{chunk-GTERDDNK.js.map → chunk-SEMTGEAA.js.map} +1 -1
- package/dist/{chunk-BSGOXMAI.js → chunk-SFJOG2BT.js} +3 -3
- package/dist/{chunk-BSGOXMAI.js.map → chunk-SFJOG2BT.js.map} +1 -1
- package/dist/{chunk-R2ODPDKE.cjs → chunk-SOQKSSPB.cjs} +74 -74
- package/dist/{chunk-R2ODPDKE.cjs.map → chunk-SOQKSSPB.cjs.map} +1 -1
- package/dist/chunk-TLLV2JP5.js +983 -0
- package/dist/chunk-TLLV2JP5.js.map +1 -0
- package/dist/chunk-TTJ3DYZH.cjs +557 -0
- package/dist/chunk-TTJ3DYZH.cjs.map +1 -0
- package/dist/{chunk-MJXZZQ5O.js → chunk-UBOLRYFV.js} +3 -3
- package/dist/{chunk-MJXZZQ5O.js.map → chunk-UBOLRYFV.js.map} +1 -1
- package/dist/{chunk-QAFWIUAD.cjs → chunk-UVLX3WSX.cjs} +11 -11
- package/dist/{chunk-QAFWIUAD.cjs.map → chunk-UVLX3WSX.cjs.map} +1 -1
- package/dist/{chunk-YEAIZPBY.js → chunk-VBT7SCTA.js} +4 -4
- package/dist/{chunk-YEAIZPBY.js.map → chunk-VBT7SCTA.js.map} +1 -1
- package/dist/{chunk-Y32L6Z5V.cjs → chunk-VHH6Z7YN.cjs} +35 -35
- package/dist/{chunk-Y32L6Z5V.cjs.map → chunk-VHH6Z7YN.cjs.map} +1 -1
- package/dist/{chunk-KDUX3YN3.js → chunk-VMF4AV2C.js} +3 -3
- package/dist/{chunk-KDUX3YN3.js.map → chunk-VMF4AV2C.js.map} +1 -1
- package/dist/{chunk-ZV7XANBD.cjs → chunk-VOBSGFM5.cjs} +10 -10
- package/dist/{chunk-ZV7XANBD.cjs.map → chunk-VOBSGFM5.cjs.map} +1 -1
- package/dist/{chunk-DK46ZSF7.js → chunk-VQSY4I4H.js} +3 -3
- package/dist/{chunk-DK46ZSF7.js.map → chunk-VQSY4I4H.js.map} +1 -1
- package/dist/{chunk-YF6DVWNN.cjs → chunk-VTYCTHUP.cjs} +120 -106
- package/dist/chunk-VTYCTHUP.cjs.map +1 -0
- package/dist/{chunk-KUEMDK4R.js → chunk-VYXPIZJE.js} +3 -3
- package/dist/{chunk-KUEMDK4R.js.map → chunk-VYXPIZJE.js.map} +1 -1
- package/dist/{chunk-APVIDF5T.cjs → chunk-W5B34RLN.cjs} +7 -7
- package/dist/{chunk-APVIDF5T.cjs.map → chunk-W5B34RLN.cjs.map} +1 -1
- package/dist/{chunk-5APP5R3R.cjs → chunk-W6LHLN5M.cjs} +5 -5
- package/dist/{chunk-5APP5R3R.cjs.map → chunk-W6LHLN5M.cjs.map} +1 -1
- package/dist/{chunk-SMAUVMWQ.cjs → chunk-WWOML5Y4.cjs} +10 -10
- package/dist/{chunk-SMAUVMWQ.cjs.map → chunk-WWOML5Y4.cjs.map} +1 -1
- package/dist/{chunk-ELU7GCBF.cjs → chunk-XFDVU6GZ.cjs} +52 -52
- package/dist/{chunk-ELU7GCBF.cjs.map → chunk-XFDVU6GZ.cjs.map} +1 -1
- package/dist/{chunk-LYXVNT6L.cjs → chunk-XXB3DCC2.cjs} +27 -27
- package/dist/{chunk-LYXVNT6L.cjs.map → chunk-XXB3DCC2.cjs.map} +1 -1
- package/dist/{chunk-BK2PRWVJ.cjs → chunk-Y5LNMKEY.cjs} +5 -5
- package/dist/{chunk-BK2PRWVJ.cjs.map → chunk-Y5LNMKEY.cjs.map} +1 -1
- package/dist/{chunk-OJRAH5VV.js → chunk-YARY4I5U.js} +18 -3
- package/dist/chunk-YARY4I5U.js.map +1 -0
- package/dist/{chunk-W5JSRJAK.js → chunk-YTS6XH55.js} +6 -6
- package/dist/{chunk-W5JSRJAK.js.map → chunk-YTS6XH55.js.map} +1 -1
- package/dist/{chunk-ZW7DMFEG.cjs → chunk-YYTMNPB7.cjs} +166 -38
- package/dist/chunk-YYTMNPB7.cjs.map +1 -0
- package/dist/chunk-ZJVN52MC.cjs +636 -0
- package/dist/chunk-ZJVN52MC.cjs.map +1 -0
- package/dist/{dist-6SY6NNDU.cjs → dist-22O7FBGT.cjs} +30 -30
- package/dist/{dist-6SY6NNDU.cjs.map → dist-22O7FBGT.cjs.map} +1 -1
- package/dist/{dist-RVKG65AN.js → dist-2APID4CW.js} +3 -3
- package/dist/{dist-RVKG65AN.js.map → dist-2APID4CW.js.map} +1 -1
- package/dist/{dist-GKNLMW5G.js → dist-3GSFJQXK.js} +3 -3
- package/dist/{dist-GKNLMW5G.js.map → dist-3GSFJQXK.js.map} +1 -1
- package/dist/{dist-47C5ZLC7.js → dist-7Q7BE2C5.js} +3 -3
- package/dist/{dist-47C5ZLC7.js.map → dist-7Q7BE2C5.js.map} +1 -1
- package/dist/{dist-IAVEFOC6.cjs → dist-7X6EJANH.cjs} +26 -26
- package/dist/{dist-IAVEFOC6.cjs.map → dist-7X6EJANH.cjs.map} +1 -1
- package/dist/dist-CC743ARY.cjs +16 -0
- package/dist/{dist-S6SWOZKE.cjs.map → dist-CC743ARY.cjs.map} +1 -1
- package/dist/{dist-VHDOPJW6.cjs → dist-DGCZK6BK.cjs} +20 -20
- package/dist/{dist-VHDOPJW6.cjs.map → dist-DGCZK6BK.cjs.map} +1 -1
- package/dist/{dist-BSWYTOHE.js → dist-F77PFLNC.js} +3 -3
- package/dist/{dist-BSWYTOHE.js.map → dist-F77PFLNC.js.map} +1 -1
- package/dist/{dist-LTT5BP7F.cjs → dist-SPP3XCYT.cjs} +28 -28
- package/dist/{dist-LTT5BP7F.cjs.map → dist-SPP3XCYT.cjs.map} +1 -1
- package/dist/dist-SPTCWKCU.js +3 -0
- package/dist/{dist-KEJZY3UJ.js.map → dist-SPTCWKCU.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-FBBKXNO5-3V6BP5K3.cjs → observational-memory-2PRVG6BF-3V6S3B2J.cjs} +26 -26
- package/dist/{observational-memory-FBBKXNO5-3V6BP5K3.cjs.map → observational-memory-2PRVG6BF-3V6S3B2J.cjs.map} +1 -1
- package/dist/{observational-memory-FBBKXNO5-I7J47ELO.js → observational-memory-2PRVG6BF-4MT3GXPA.js} +3 -3
- package/dist/{observational-memory-FBBKXNO5-I7J47ELO.js.map → observational-memory-2PRVG6BF-4MT3GXPA.js.map} +1 -1
- package/dist/server/a2a/agent-card-signing.d.ts +7 -0
- package/dist/server/a2a/agent-card-signing.d.ts.map +1 -0
- package/dist/server/auth/index.cjs +15 -15
- package/dist/server/auth/index.js +1 -1
- package/dist/server/constants.d.ts +5 -0
- package/dist/server/constants.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.d.ts +10 -0
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +42 -38
- package/dist/server/handlers/agents.d.ts +158 -1
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +11 -11
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +4 -4
- package/dist/server/handlers/background-tasks.d.ts +18 -5
- package/dist/server/handlers/background-tasks.d.ts.map +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/channels.cjs +5 -5
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/datasets.cjs +26 -26
- package/dist/server/handlers/datasets.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +8 -8
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/mcp.cjs +11 -11
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
- package/dist/server/handlers/observability-new-endpoints.d.ts +18 -6
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability.cjs +38 -38
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +3 -3
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +4 -4
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +8 -8
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/responses.adapter.cjs +18 -14
- package/dist/server/handlers/responses.adapter.d.ts +96 -2
- package/dist/server/handlers/responses.adapter.d.ts.map +1 -1
- package/dist/server/handlers/responses.adapter.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.d.ts +8 -2
- package/dist/server/handlers/responses.d.ts.map +1 -1
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/responses.storage.cjs +8 -8
- package/dist/server/handlers/responses.storage.d.ts +4 -2
- package/dist/server/handlers/responses.storage.d.ts.map +1 -1
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +6 -6
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +7 -7
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
- package/dist/server/handlers/stored-mcp-clients.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- package/dist/server/handlers/stored-prompt-blocks.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +6 -2
- package/dist/server/handlers/system.d.ts +39 -0
- package/dist/server/handlers/system.d.ts.map +1 -1
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tool-providers.cjs +5 -5
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +10 -10
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +16 -16
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +32 -24
- package/dist/server/handlers/workflows.d.ts +83 -0
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers/workspace.cjs +26 -26
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +30 -30
- package/dist/server/handlers.js +15 -15
- package/dist/server/schemas/a2a.d.ts +5 -0
- package/dist/server/schemas/a2a.d.ts.map +1 -1
- package/dist/server/schemas/agents.d.ts +77 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/background-tasks.d.ts +11 -0
- package/dist/server/schemas/background-tasks.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +99 -83
- package/dist/server/schemas/index.js +5 -5
- package/dist/server/schemas/responses.d.ts +3 -1
- package/dist/server/schemas/responses.d.ts.map +1 -1
- package/dist/server/schemas/system.d.ts +54 -0
- package/dist/server/schemas/system.d.ts.map +1 -1
- package/dist/server/server-adapter/api-schema-manifest.d.ts +23 -0
- package/dist/server/server-adapter/api-schema-manifest.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +70 -650
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +5 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +20 -633
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/openapi-utils.d.ts +5 -0
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/a2a.d.ts +10 -0
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agents.d.ts +2 -1
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +9 -3
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/responses.d.ts +8 -2
- package/dist/server/server-adapter/routes/responses.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/system.d.ts +39 -1
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +66 -1
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/package.json +8 -6
- package/dist/chunk-3KIFZFY7.js.map +0 -1
- package/dist/chunk-43CWQ4M3.js.map +0 -1
- package/dist/chunk-4HRTLLE6.js.map +0 -1
- package/dist/chunk-4P7D66VB.cjs +0 -30
- package/dist/chunk-4P7D66VB.cjs.map +0 -1
- package/dist/chunk-6NY3T42O.js.map +0 -1
- package/dist/chunk-AJYJ4H7P.js +0 -438
- package/dist/chunk-AJYJ4H7P.js.map +0 -1
- package/dist/chunk-CJ2LC5EE.cjs.map +0 -1
- package/dist/chunk-CNTWPG57.cjs.map +0 -1
- package/dist/chunk-DFSUBEGE.js +0 -226
- package/dist/chunk-DFSUBEGE.js.map +0 -1
- package/dist/chunk-DSJM7F5A.js.map +0 -1
- package/dist/chunk-EFW6MWXU.cjs.map +0 -1
- package/dist/chunk-F35U36E2.cjs.map +0 -1
- package/dist/chunk-GGCDSOHW.js +0 -26
- package/dist/chunk-GGCDSOHW.js.map +0 -1
- package/dist/chunk-GQOWV33T.js.map +0 -1
- package/dist/chunk-GUWIV3ZN.cjs.map +0 -1
- package/dist/chunk-HTSSEM5Z.cjs.map +0 -1
- package/dist/chunk-MI3PFFAR.js.map +0 -1
- package/dist/chunk-MQVBXOMA.js.map +0 -1
- package/dist/chunk-NVM46NSG.js.map +0 -1
- package/dist/chunk-OGFJRI4R.js.map +0 -1
- package/dist/chunk-OJ72T77G.cjs +0 -452
- package/dist/chunk-OJ72T77G.cjs.map +0 -1
- package/dist/chunk-OJRAH5VV.js.map +0 -1
- package/dist/chunk-PJYQMPXT.cjs +0 -234
- package/dist/chunk-PJYQMPXT.cjs.map +0 -1
- package/dist/chunk-R3DQGOTC.cjs.map +0 -1
- package/dist/chunk-SAOJYYFE.cjs.map +0 -1
- package/dist/chunk-TJNZEYLA.js.map +0 -1
- package/dist/chunk-URRUDXO5.cjs.map +0 -1
- package/dist/chunk-V4DZUIDM.cjs.map +0 -1
- package/dist/chunk-VIX5OA2V.cjs.map +0 -1
- package/dist/chunk-WZKXMP2U.cjs.map +0 -1
- package/dist/chunk-XCIJHMUE.js.map +0 -1
- package/dist/chunk-YF6DVWNN.cjs.map +0 -1
- package/dist/chunk-YWORLTQM.js.map +0 -1
- package/dist/chunk-ZW7DMFEG.cjs.map +0 -1
- package/dist/dist-KEJZY3UJ.js +0 -3
- package/dist/dist-S6SWOZKE.cjs +0 -16
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { responseObjectSchema, createResponseBodySchema, responseIdPathParams, deleteResponseSchema } from './chunk-
|
|
2
|
-
import { mapResponseTurnRecordToResponse, mapResponseInputToExecutionMessages, mapMastraToolsToResponseTools, createMessageId, buildCompletedResponse, buildInProgressResponse,
|
|
3
|
-
import { findResponseTurnRecordAcrossAgents, deleteResponseTurnRecord, findResponseTurnRecord, resolveResponseTurnMessagesForStorage, getAgentMemoryStore, persistResponseTurnRecord } from './chunk-
|
|
4
|
-
import { getAgentFromSystem } from './chunk-
|
|
5
|
-
import { getEffectiveThreadId, getEffectiveResourceId, enforceThreadAccess } from './chunk-
|
|
1
|
+
import { responseObjectSchema, createResponseBodySchema, responseIdPathParams, deleteResponseSchema } from './chunk-BIUL4Y6W.js';
|
|
2
|
+
import { mapResponseTurnRecordToResponse, mapResponseInputToExecutionMessages, mapMastraToolsToResponseTools, createMessageId, buildCompletedResponse, buildInProgressResponse, createResponseStreamEventTranslator, createOutputTextPart, toResponseUsage, toResponseStatus, formatSseEvent } from './chunk-TLLV2JP5.js';
|
|
3
|
+
import { findResponseTurnRecordAcrossAgents, deleteResponseTurnRecord, findResponseTurnRecord, resolveResponseTurnMessagesForStorage, getAgentMemoryStore, persistResponseTurnRecord } from './chunk-B3CHYE7C.js';
|
|
4
|
+
import { getAgentFromSystem } from './chunk-GRPUO3NH.js';
|
|
5
|
+
import { getEffectiveThreadId, getEffectiveResourceId, enforceThreadAccess } from './chunk-JOUPK2UV.js';
|
|
6
6
|
import { MastraFGAPermissions } from './chunk-6KDKASVR.js';
|
|
7
|
-
import { createRoute } from './chunk-
|
|
7
|
+
import { createRoute } from './chunk-VMF4AV2C.js';
|
|
8
8
|
import { handleError } from './chunk-P23KBWKB.js';
|
|
9
9
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
10
10
|
import { __export } from './chunk-PR4QN5HX.js';
|
|
@@ -50,8 +50,6 @@ function createStructuredOutput(text) {
|
|
|
50
50
|
function getStreamedMessageOutputItem(response, responseId) {
|
|
51
51
|
return response.output.find(
|
|
52
52
|
(item) => item.type === "message" && item.id === responseId
|
|
53
|
-
) ?? response.output.find(
|
|
54
|
-
(item) => item.type === "message"
|
|
55
53
|
) ?? null;
|
|
56
54
|
}
|
|
57
55
|
async function resolveThreadExecutionContext({
|
|
@@ -307,7 +305,8 @@ async function storeCompletedResponse({
|
|
|
307
305
|
responseId,
|
|
308
306
|
metadata,
|
|
309
307
|
completedState,
|
|
310
|
-
messages
|
|
308
|
+
messages,
|
|
309
|
+
outputItems
|
|
311
310
|
}) {
|
|
312
311
|
if (!didStore || !threadContext) {
|
|
313
312
|
return;
|
|
@@ -321,7 +320,8 @@ async function storeCompletedResponse({
|
|
|
321
320
|
status: completedState.status,
|
|
322
321
|
usage: completedState.usageDetails,
|
|
323
322
|
providerOptions: completedState.providerOptions,
|
|
324
|
-
messageIds: []
|
|
323
|
+
messageIds: [],
|
|
324
|
+
outputItems
|
|
325
325
|
},
|
|
326
326
|
threadContext,
|
|
327
327
|
messages
|
|
@@ -340,14 +340,17 @@ async function finalizeResponse({
|
|
|
340
340
|
conversationId,
|
|
341
341
|
configuredTools,
|
|
342
342
|
responseMetadata,
|
|
343
|
-
fallbackText
|
|
343
|
+
fallbackText,
|
|
344
|
+
fallbackOutputItems
|
|
344
345
|
}) {
|
|
345
346
|
const completedState = await resolveCompletedResponseState(result, fallbackText);
|
|
347
|
+
const fallbackItems = fallbackOutputItems?.(completedState);
|
|
346
348
|
const responseMessages = await resolveResponseTurnMessagesForStorage({
|
|
347
349
|
result,
|
|
348
350
|
responseId,
|
|
349
351
|
text: completedState.text,
|
|
350
|
-
threadContext
|
|
352
|
+
threadContext,
|
|
353
|
+
fallbackOutputItems: threadContext ? fallbackItems : void 0
|
|
351
354
|
});
|
|
352
355
|
const response = buildCompletedResponse({
|
|
353
356
|
responseId,
|
|
@@ -365,6 +368,7 @@ async function finalizeResponse({
|
|
|
365
368
|
providerOptions: completedState.providerOptions,
|
|
366
369
|
tools: configuredTools,
|
|
367
370
|
messages: responseMessages,
|
|
371
|
+
fallbackOutputItems: fallbackItems,
|
|
368
372
|
store: didStore
|
|
369
373
|
});
|
|
370
374
|
await storeCompletedResponse({
|
|
@@ -374,7 +378,8 @@ async function finalizeResponse({
|
|
|
374
378
|
responseId,
|
|
375
379
|
metadata: responseMetadata,
|
|
376
380
|
completedState,
|
|
377
|
-
messages: responseMessages
|
|
381
|
+
messages: responseMessages,
|
|
382
|
+
outputItems: response.output
|
|
378
383
|
});
|
|
379
384
|
return { completedState, response, responseMessages };
|
|
380
385
|
}
|
|
@@ -384,9 +389,52 @@ async function prepareCreateResponseRequest({
|
|
|
384
389
|
requestContext
|
|
385
390
|
}) {
|
|
386
391
|
const executionInput = mapResponseInputToExecutionMessages(body.input);
|
|
387
|
-
|
|
392
|
+
let previousResponseTurnRecord = null;
|
|
393
|
+
let resolvedAgent = null;
|
|
394
|
+
if (body.previous_response_id) {
|
|
395
|
+
if (body.agent_id) {
|
|
396
|
+
resolvedAgent = await resolveResponseAgent({ mastra, agentId: body.agent_id });
|
|
397
|
+
previousResponseTurnRecord = await findResponseTurnRecord({
|
|
398
|
+
agent: resolvedAgent,
|
|
399
|
+
responseId: body.previous_response_id,
|
|
400
|
+
requestContext
|
|
401
|
+
});
|
|
402
|
+
if (!previousResponseTurnRecord) {
|
|
403
|
+
const owningResponseTurnRecord = await findResponseTurnRecordAcrossAgents({
|
|
404
|
+
mastra,
|
|
405
|
+
responseId: body.previous_response_id,
|
|
406
|
+
requestContext
|
|
407
|
+
});
|
|
408
|
+
if (owningResponseTurnRecord) {
|
|
409
|
+
if (owningResponseTurnRecord.metadata.agentId === body.agent_id) {
|
|
410
|
+
previousResponseTurnRecord = owningResponseTurnRecord;
|
|
411
|
+
} else {
|
|
412
|
+
throw new HTTPException(400, {
|
|
413
|
+
message: `Stored response ${body.previous_response_id} belongs to agent ${owningResponseTurnRecord.metadata.agentId}, not ${body.agent_id}`
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
if (!previousResponseTurnRecord) {
|
|
418
|
+
throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
} else {
|
|
422
|
+
if (!mastra) {
|
|
423
|
+
throw new HTTPException(500, { message: "Mastra instance is required for agent-backed responses" });
|
|
424
|
+
}
|
|
425
|
+
previousResponseTurnRecord = await findResponseTurnRecordAcrossAgents({
|
|
426
|
+
mastra,
|
|
427
|
+
responseId: body.previous_response_id,
|
|
428
|
+
requestContext
|
|
429
|
+
});
|
|
430
|
+
if (!previousResponseTurnRecord) {
|
|
431
|
+
throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
const agent = resolvedAgent ?? await resolveResponseAgent({
|
|
388
436
|
mastra,
|
|
389
|
-
agentId: body.agent_id
|
|
437
|
+
agentId: body.agent_id ?? previousResponseTurnRecord?.metadata.agentId
|
|
390
438
|
});
|
|
391
439
|
const resolvedModel = await agent.getModel({
|
|
392
440
|
requestContext,
|
|
@@ -411,10 +459,6 @@ async function prepareCreateResponseRequest({
|
|
|
411
459
|
requestContext,
|
|
412
460
|
errorMessage: body.previous_response_id ? "previous_response_id requires the target agent to have memory storage configured" : shouldStore ? "Stored responses require the target agent to have memory storage configured" : "conversation_id requires the target agent to have memory storage configured"
|
|
413
461
|
}) : null;
|
|
414
|
-
const previousResponseTurnRecord = body.previous_response_id ? await findResponseTurnRecord({ agent, responseId: body.previous_response_id, requestContext }) : null;
|
|
415
|
-
if (body.previous_response_id && !previousResponseTurnRecord) {
|
|
416
|
-
throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });
|
|
417
|
-
}
|
|
418
462
|
const configuredTools = mapMastraToolsToResponseTools(
|
|
419
463
|
await Promise.resolve(agent.listTools({ requestContext }))
|
|
420
464
|
);
|
|
@@ -500,25 +544,7 @@ function createResponseEventStream({
|
|
|
500
544
|
type: "response.in_progress",
|
|
501
545
|
response: createdResponse
|
|
502
546
|
});
|
|
503
|
-
|
|
504
|
-
type: "response.output_item.added",
|
|
505
|
-
output_index: 0,
|
|
506
|
-
item: {
|
|
507
|
-
id: responseId,
|
|
508
|
-
type: "message",
|
|
509
|
-
role: "assistant",
|
|
510
|
-
status: "in_progress",
|
|
511
|
-
content: []
|
|
512
|
-
}
|
|
513
|
-
});
|
|
514
|
-
enqueueEvent("response.content_part.added", {
|
|
515
|
-
type: "response.content_part.added",
|
|
516
|
-
output_index: 0,
|
|
517
|
-
content_index: 0,
|
|
518
|
-
item_id: responseId,
|
|
519
|
-
part: createOutputTextPart("")
|
|
520
|
-
});
|
|
521
|
-
let text = "";
|
|
547
|
+
const streamEvents = createResponseStreamEventTranslator(responseId);
|
|
522
548
|
const fullStream = await streamResult.fullStream;
|
|
523
549
|
const reader = fullStream.getReader();
|
|
524
550
|
try {
|
|
@@ -527,18 +553,13 @@ function createResponseEventStream({
|
|
|
527
553
|
if (done) {
|
|
528
554
|
break;
|
|
529
555
|
}
|
|
530
|
-
const
|
|
531
|
-
|
|
532
|
-
text += delta;
|
|
533
|
-
enqueueEvent("response.output_text.delta", {
|
|
534
|
-
type: "response.output_text.delta",
|
|
535
|
-
output_index: 0,
|
|
536
|
-
content_index: 0,
|
|
537
|
-
item_id: responseId,
|
|
538
|
-
delta
|
|
539
|
-
});
|
|
556
|
+
for (const event of streamEvents.consume(value)) {
|
|
557
|
+
enqueueEvent(event.event, event.payload);
|
|
540
558
|
}
|
|
541
559
|
}
|
|
560
|
+
for (const event of streamEvents.flushPendingToolResults()) {
|
|
561
|
+
enqueueEvent(event.event, event.payload);
|
|
562
|
+
}
|
|
542
563
|
const { completedState, response } = await finalizeResponse({
|
|
543
564
|
agentMemoryStore,
|
|
544
565
|
didStore,
|
|
@@ -552,34 +573,27 @@ function createResponseEventStream({
|
|
|
552
573
|
conversationId: threadContext?.threadId ?? body.conversation_id,
|
|
553
574
|
configuredTools,
|
|
554
575
|
responseMetadata,
|
|
555
|
-
fallbackText: text
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
content_index: 0,
|
|
561
|
-
item_id: responseId,
|
|
562
|
-
text: completedState.text
|
|
563
|
-
});
|
|
564
|
-
const completedItem = getStreamedMessageOutputItem(response, responseId) ?? {
|
|
565
|
-
id: responseId,
|
|
566
|
-
type: "message",
|
|
567
|
-
role: "assistant",
|
|
568
|
-
status: "completed",
|
|
569
|
-
content: [createOutputTextPart(completedState.text)]
|
|
570
|
-
};
|
|
571
|
-
enqueueEvent("response.content_part.done", {
|
|
572
|
-
type: "response.content_part.done",
|
|
573
|
-
output_index: 0,
|
|
574
|
-
content_index: 0,
|
|
575
|
-
item_id: responseId,
|
|
576
|
-
part: createOutputTextPart(completedState.text)
|
|
577
|
-
});
|
|
578
|
-
enqueueEvent("response.output_item.done", {
|
|
579
|
-
type: "response.output_item.done",
|
|
580
|
-
output_index: 0,
|
|
581
|
-
item: completedItem
|
|
576
|
+
fallbackText: streamEvents.text,
|
|
577
|
+
fallbackOutputItems: (completedState2) => streamEvents.getOutputItems({
|
|
578
|
+
text: completedState2.text,
|
|
579
|
+
status: completedState2.status
|
|
580
|
+
})
|
|
582
581
|
});
|
|
582
|
+
const completedItem = getStreamedMessageOutputItem(response, responseId);
|
|
583
|
+
if (completedItem || completedState.text) {
|
|
584
|
+
for (const event of streamEvents.completeText(
|
|
585
|
+
completedState.text,
|
|
586
|
+
completedItem ?? {
|
|
587
|
+
id: responseId,
|
|
588
|
+
type: "message",
|
|
589
|
+
role: "assistant",
|
|
590
|
+
status: "completed",
|
|
591
|
+
content: [createOutputTextPart(completedState.text)]
|
|
592
|
+
}
|
|
593
|
+
)) {
|
|
594
|
+
enqueueEvent(event.event, event.payload);
|
|
595
|
+
}
|
|
596
|
+
}
|
|
583
597
|
enqueueEvent("response.completed", {
|
|
584
598
|
type: "response.completed",
|
|
585
599
|
response
|
|
@@ -742,5 +756,5 @@ var DELETE_RESPONSE_ROUTE = createRoute({
|
|
|
742
756
|
});
|
|
743
757
|
|
|
744
758
|
export { CREATE_RESPONSE_ROUTE, DELETE_RESPONSE_ROUTE, GET_RESPONSE_ROUTE, responses_exports };
|
|
745
|
-
//# sourceMappingURL=chunk-
|
|
746
|
-
//# sourceMappingURL=chunk-
|
|
759
|
+
//# sourceMappingURL=chunk-HW3AHWHB.js.map
|
|
760
|
+
//# sourceMappingURL=chunk-HW3AHWHB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/responses.ts"],"names":["existingThread","threadId","createdThread","completedState"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,iBAAA,GAAA;AAAA,QAAA,CAAA,iBAAA,EAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAiHA,IAAM,2BAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,QAAA;AAAA,EACN,oBAAA,EAAsB;AACxB,CAAA;AAEA,SAAS,YAAA,CAAa,IAAA,EAAsB,MAAA,GAAiB,GAAA,EAAe;AAC1E,EAAA,OAAO,IAAI,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA,IACxC,MAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB;AAAA;AAClB,GACD,CAAA;AACH;AAEA,SAAS,uBAAuB,IAAA,EAAkC;AAChE,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,QAAQ,IAAA,CAAK,OAAO,IAAA;AAAM,IACxB,KAAK,aAAA;AACH,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,2BAAA;AAAA,QACR,mBAAA,EAAqB;AAAA,OACvB;AAAA,IACF,KAAK,aAAA;AACH,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,KAAK,MAAA,CAAO;AAAA,OACtB;AAAA,IACF;AACE,MAAA,OAAO,MAAA;AAAA;AAEb;AAEA,SAAS,4BAAA,CAA6B,UAA0B,UAAA,EAAoB;AAClF,EAAA,OACE,SAAS,MAAA,CAAO,IAAA;AAAA,IACd,CAAC,IAAA,KACC,IAAA,CAAK,IAAA,KAAS,SAAA,IAAa,KAAK,EAAA,KAAO;AAAA,GAC3C,IAAK,IAAA;AAET;AASA,eAAe,6BAAA,CAA8B;AAAA,EAC3C,KAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,0BAAA;AAAA,EACA;AACF,CAAA,EAM2C;AACzC,EAAA,IAAI,cAAA,IAAkB,0BAAA,IAA8B,0BAAA,CAA2B,MAAA,CAAO,OAAO,cAAA,EAAgB;AAC3G,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EACE;AAAA,KACH,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,0BAAA,EAA4B;AAC9B,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,2BAA2B,MAAA,CAAO,EAAA;AAAA,MAC5C,UAAA,EAAY,2BAA2B,MAAA,CAAO;AAAA,KAChD;AAAA,EACF;AAEA,EAAA,MAAM,iBAAA,GAAoB,oBAAA,CAAqB,cAAA,EAAgB,MAAS,CAAA;AACxE,EAAA,MAAM,mBAAA,GAAsB,sBAAA,CAAuB,cAAA,EAAgB,MAAS,CAAA;AAE5E,EAAA,IAAI,CAAC,KAAA,IAAS,CAAC,cAAA,IAAkB,CAAC,iBAAA,EAAmB;AACnD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAS,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AACvD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,QAC3B,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,MAAMA,kBAAiB,MAAM,MAAA,CAAO,cAAc,EAAE,QAAA,EAAU,gBAAgB,CAAA;AAC9E,IAAA,IAAI,CAACA,eAAAA,EAAgB;AACnB,MAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,IAC1F;AAEA,IAAA,MAAM,mBAAA,CAAoB;AAAA,MACxB,MAAA,EAAQ,MAAM,iBAAA,EAAkB;AAAA,MAChC,cAAA;AAAA,MACA,QAAA,EAAU,cAAA;AAAA,MACV,MAAA,EAAQA,eAAAA;AAAA,MACR;AAAA,KACD,CAAA;AACD,IAAA,OAAO;AAAA,MACL,UAAUA,eAAAA,CAAe,EAAA;AAAA,MACzB,UAAA,EAAY,uBAAuBA,eAAAA,CAAe;AAAA,KACpD;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAMC,YAAW,UAAA,EAAW;AAC5B,IAAA,MAAMC,cAAAA,GAAgB,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,MAC9C,QAAA,EAAAD,SAAAA;AAAA,MACA,YAAY,mBAAA,IAAuBA;AAAA,KACpC,CAAA;AAED,IAAA,OAAO;AAAA,MACL,UAAUC,cAAAA,CAAc,EAAA;AAAA,MACxB,YAAYA,cAAAA,CAAc;AAAA,KAC5B;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,GAAW,iBAAA;AACjB,EAAA,MAAM,iBAAiB,MAAM,MAAA,CAAO,aAAA,CAAc,EAAE,UAAU,CAAA;AAC9D,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,MAAM,mBAAA,CAAoB;AAAA,MACxB,MAAA,EAAQ,MAAM,iBAAA,EAAkB;AAAA,MAChC,cAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA,EAAQ,cAAA;AAAA,MACR;AAAA,KACD,CAAA;AACD,IAAA,OAAO;AAAA,MACL,UAAU,cAAA,CAAe,EAAA;AAAA,MACzB,UAAA,EAAY,uBAAuB,cAAA,CAAe;AAAA,KACpD;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,aAAa,mBAAA,IAAuB,QAAA;AAC1C,EAAA,MAAM,aAAA,GAAgB,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IAC9C,QAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,UAAU,aAAA,CAAc,EAAA;AAAA,IACxB,YAAY,aAAA,CAAc;AAAA,GAC5B;AACF;AAEA,SAAS,sBAAsB,aAAA,EAA8C;AAC3E,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,QAAQ,aAAA,CAAc,QAAA;AAAA,MACtB,UAAU,aAAA,CAAc;AAAA;AAC1B,GACF;AACF;AAKA,eAAe,oBAAA,CAAqB;AAAA,EAClC,MAAA;AAAA,EACA;AACF,CAAA,EAGuC;AACrC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0DAA0D,CAAA;AAAA,EACpG;AAEA,EAAA,OAAO,kBAAA,CAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,CAAA;AAC/C;AAEA,eAAe,uBAAA,CAAwB;AAAA,EACrC,KAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAI2B;AACzB,EAAA,MAAM,mBAAmB,MAAM,mBAAA,CAAoB,EAAE,KAAA,EAAO,gBAAgB,CAAA;AAC5E,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,cAAc,CAAA;AAAA,EACxD;AAEA,EAAA,OAAO,gBAAA;AACT;AAKA,eAAe,eAAA,CAAgB;AAAA,EAC7B,KAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAWG;AACD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,IAAI,CAAA;AACpD,EAAA,MAAM,cAAc,aAAA,GAAgB,EAAE,KAAA,EAAO,aAAA,KAAkB,EAAC;AAChE,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG,WAAA;AAAA,IACH,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,GAAI,mBAAmB;AAAC,GAC1B;AAEA,EAAA,IAAI,aAAA,CAAc,yBAAyB,IAAA,EAAM;AAC/C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,OAAQ,MAAM,KAAA,CAAM,cAAA,CAAe,KAAA,EAAO;AAAA,QACxC,YAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA,GAAG,WAAA;AAAA,QACH,QAAQ,gBAAA,EAAkB,MAAA;AAAA,QAC1B,eAAA;AAAA,QACA,YAAY,aAAA,CAAc,UAAA;AAAA,QAC1B,UAAU,aAAA,CAAc;AAAA,OAChB,CAAA;AAAA,IACZ;AAEA,IAAA,OAAQ,MAAM,KAAA,CAAM,cAAA,CAAe,KAAA,EAAO;AAAA,MACxC,YAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,GAAG,WAAA;AAAA,MACH,QAAQ,gBAAA,EAAkB,MAAA;AAAA,MAC1B;AAAA,KACQ,CAAA;AAAA,EACZ;AAEA,EAAA,OAAQ,MAAM,KAAA,CAAM,QAAA,CAAS,KAAA,EAAO,aAAsB,CAAA;AAC5D;AAKA,eAAe,aAAA,CAAc;AAAA,EAC3B,KAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAWG;AACD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,IAAI,CAAA;AACpD,EAAA,MAAM,cAAc,aAAA,GAAgB,EAAE,KAAA,EAAO,aAAA,KAAkB,EAAC;AAChE,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG,WAAA;AAAA,IACH,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,GAAI,mBAAmB;AAAC,GAC1B;AAEA,EAAA,IAAI,aAAA,CAAc,yBAAyB,IAAA,EAAM;AAC/C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,OAAQ,MAAM,KAAA,CAAM,YAAA,CAAa,KAAA,EAAO;AAAA,QACtC,YAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA,GAAG,WAAA;AAAA,QACH,QAAQ,gBAAA,EAAkB,MAAA;AAAA,QAC1B,eAAA;AAAA,QACA,YAAY,aAAA,CAAc,UAAA;AAAA,QAC1B,UAAU,aAAA,CAAc;AAAA,OAChB,CAAA;AAAA,IACZ;AAEA,IAAA,OAAQ,MAAM,KAAA,CAAM,YAAA,CAAa,KAAA,EAAO;AAAA,MACtC,YAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,GAAG,WAAA;AAAA,MACH,QAAQ,gBAAA,EAAkB,MAAA;AAAA,MAC1B;AAAA,KACQ,CAAA;AAAA,EACZ;AAEA,EAAA,OAAQ,MAAM,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,aAAsB,CAAA;AAC1D;AAEA,eAAe,aAAa,MAAA,EAA4E;AACtG,EAAA,OAAQ,OAAO,MAAA,CAAO,UAAA,IAAc,MAAA,CAAO,KAAA,IAAS,IAAA,CAAA;AACtD;AAEA,eAAe,wBACb,MAAA,EAC+B;AAC/B,EAAA,OAAQ,OAAO,OAAO,gBAAA,IAAoB,MAAA,CAAA;AAC5C;AAEA,eAAe,oBACb,MAAA,EAC6B;AAC7B,EAAA,OAAQ,MAAM,OAAO,YAAA,IAAiB,MAAA;AACxC;AAEA,eAAe,YAAY,MAAA,EAAyE;AAClG,EAAA,OAAQ,MAAM,OAAO,IAAA,IAAS,EAAA;AAChC;AAKA,eAAe,6BAAA,CACb,QACA,YAAA,EACiC;AACjC,EAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,CAAa,MAAM,CAAA;AAEvC,EAAA,OAAO;AAAA,IACL,aAAa,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAAA,IACzC,MAAA,EAAQ,gBAAA,CAAiB,MAAM,mBAAA,CAAoB,MAAM,CAAC,CAAA;AAAA,IAC1D,IAAA,EAAO,MAAM,WAAA,CAAY,MAAM,CAAA,IAAM,YAAA;AAAA,IACrC,KAAA;AAAA,IACA,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,eAAA,EAAiB,MAAM,uBAAA,CAAwB,MAAM;AAAA,GACvD;AACF;AAKA,eAAe,sBAAA,CAAuB;AAAA,EACpC,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EASkB;AAChB,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,aAAA,EAAe;AAC/B,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,yBAAA,CAA0B;AAAA,IAC9B,WAAA,EAAa,gBAAA;AAAA,IACb,UAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,GAAG,QAAA;AAAA,MACH,aAAa,cAAA,CAAe,WAAA;AAAA,MAC5B,QAAQ,cAAA,CAAe,MAAA;AAAA,MACvB,OAAO,cAAA,CAAe,YAAA;AAAA,MACtB,iBAAiB,cAAA,CAAe,eAAA;AAAA,MAChC,YAAY,EAAC;AAAA,MACb;AAAA,KACF;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH;AAKA,eAAe,gBAAA,CAAiB;AAAA,EAC9B,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAkB+B;AAC7B,EAAA,MAAM,cAAA,GAAiB,MAAM,6BAAA,CAA8B,MAAA,EAAQ,YAAY,CAAA;AAC/E,EAAA,MAAM,aAAA,GAAgB,sBAAsB,cAAc,CAAA;AAC1D,EAAA,MAAM,gBAAA,GAAmB,MAAM,qCAAA,CAAsC;AAAA,IACnE,MAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAM,cAAA,CAAe,IAAA;AAAA,IACrB,aAAA;AAAA,IACA,mBAAA,EAAqB,gBAAgB,aAAA,GAAgB;AAAA,GACtD,CAAA;AACD,EAAA,MAAM,WAAW,sBAAA,CAAuB;AAAA,IACtC,UAAA;AAAA,IACA,eAAA,EAAiB,UAAA;AAAA,IACjB,KAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAa,cAAA,CAAe,WAAA;AAAA,IAC5B,QAAQ,cAAA,CAAe,MAAA;AAAA,IACvB,MAAM,cAAA,CAAe,IAAA;AAAA,IACrB,OAAO,cAAA,CAAe,KAAA;AAAA,IACtB,YAAA;AAAA,IACA,YAAY,gBAAA,CAAiB,IAAA;AAAA,IAC7B,kBAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAiB,cAAA,CAAe,eAAA;AAAA,IAChC,KAAA,EAAO,eAAA;AAAA,IACP,QAAA,EAAU,gBAAA;AAAA,IACV,mBAAA,EAAqB,aAAA;AAAA,IACrB,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,MAAM,sBAAA,CAAuB;AAAA,IAC3B,gBAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA,EAAU,gBAAA;AAAA,IACV,cAAA;AAAA,IACA,QAAA,EAAU,gBAAA;AAAA,IACV,aAAa,QAAA,CAAS;AAAA,GACvB,CAAA;AAED,EAAA,OAAO,EAAE,cAAA,EAAgB,QAAA,EAAU,gBAAA,EAAiB;AACtD;AAOA,eAAe,4BAAA,CAA6B;AAAA,EAC1C,IAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAI2C;AACzC,EAAA,MAAM,cAAA,GAAiB,mCAAA,CAAoC,IAAA,CAAK,KAAK,CAAA;AACrE,EAAA,IAAI,0BAAA,GAAwD,IAAA;AAC5D,EAAA,IAAI,aAAA,GAAkD,IAAA;AAEtD,EAAA,IAAI,KAAK,oBAAA,EAAsB;AAC7B,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,aAAA,GAAgB,MAAM,oBAAA,CAAqB,EAAE,QAAQ,OAAA,EAAS,IAAA,CAAK,UAAU,CAAA;AAC7E,MAAA,0BAAA,GAA6B,MAAM,sBAAA,CAAuB;AAAA,QACxD,KAAA,EAAO,aAAA;AAAA,QACP,YAAY,IAAA,CAAK,oBAAA;AAAA,QACjB;AAAA,OACD,CAAA;AAED,MAAA,IAAI,CAAC,0BAAA,EAA4B;AAC/B,QAAA,MAAM,wBAAA,GAA2B,MAAM,kCAAA,CAAmC;AAAA,UACxE,MAAA;AAAA,UACA,YAAY,IAAA,CAAK,oBAAA;AAAA,UACjB;AAAA,SACD,CAAA;AAED,QAAA,IAAI,wBAAA,EAA0B;AAC5B,UAAA,IAAI,wBAAA,CAAyB,QAAA,CAAS,OAAA,KAAY,IAAA,CAAK,QAAA,EAAU;AAC/D,YAAA,0BAAA,GAA6B,wBAAA;AAAA,UAC/B,CAAA,MAAO;AACL,YAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,cAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,IAAA,CAAK,oBAAoB,CAAA,kBAAA,EAAqB,yBAAyB,QAAA,CAAS,OAAO,CAAA,MAAA,EAAS,IAAA,CAAK,QAAQ,CAAA;AAAA,aAC1I,CAAA;AAAA,UACH;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,0BAAA,EAA4B;AAC/B,UAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,IAAA,CAAK,oBAAoB,CAAA,cAAA,CAAA,EAAkB,CAAA;AAAA,QACxG;AAAA,MACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0DAA0D,CAAA;AAAA,MACpG;AAEA,MAAA,0BAAA,GAA6B,MAAM,kCAAA,CAAmC;AAAA,QACpE,MAAA;AAAA,QACA,YAAY,IAAA,CAAK,oBAAA;AAAA,QACjB;AAAA,OACD,CAAA;AAED,MAAA,IAAI,CAAC,0BAAA,EAA4B;AAC/B,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,IAAA,CAAK,oBAAoB,CAAA,cAAA,CAAA,EAAkB,CAAA;AAAA,MACxG;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GACJ,aAAA,IACC,MAAM,oBAAA,CAAqB;AAAA,IAC1B,MAAA;AAAA,IACA,OAAA,EAAS,IAAA,CAAK,QAAA,IAAY,0BAAA,EAA4B,QAAA,CAAS;AAAA,GAChE,CAAA;AACH,EAAA,MAAM,aAAA,GAAgB,MAAM,KAAA,CAAM,QAAA,CAAS;AAAA,IACzC,cAAA;AAAA,IACA,aAAa,IAAA,CAAK;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,aAAA,GACJ,IAAA,CAAK,KAAA,IAAA,CACJ,MAAM;AACL,IAAA,IAAI,aAAA,CAAc,QAAA,IAAY,aAAA,CAAc,OAAA,EAAS;AACnD,MAAA,MAAM,gBAAA,GAAmB,aAAA,CAAc,QAAA,CAAS,QAAA,CAAS,GAAG,CAAA,GACxD,aAAA,CAAc,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,IACnC,aAAA,CAAc,QAAA;AAClB,MAAA,OAAO,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAAI,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,IACrD;AAEA,IAAA,IAAI,cAAc,OAAA,EAAS;AACzB,MAAA,OAAO,aAAA,CAAc,OAAA;AAAA,IACvB;AAEA,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH,CAAA,GAAG;AACL,EAAA,MAAM,WAAA,GAAc,KAAK,KAAA,IAAS,KAAA;AAClC,EAAA,MAAM,gBAAA,GAAmB,eAAe,OAAA,CAAQ,IAAA,CAAK,eAAe,CAAA,IAAK,OAAA,CAAQ,KAAK,oBAAoB,CAAA;AAC1G,EAAA,MAAM,gBAAA,GAAmB,gBAAA,GACrB,MAAM,uBAAA,CAAwB;AAAA,IAC5B,KAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA,EAAc,IAAA,CAAK,oBAAA,GACf,kFAAA,GACA,cACE,6EAAA,GACA;AAAA,GACP,CAAA,GACD,IAAA;AACJ,EAAA,MAAM,eAAA,GAAkB,6BAAA;AAAA,IACrB,MAAM,QAAQ,OAAA,CAAQ,KAAA,CAAM,UAAU,EAAE,cAAA,EAAgB,CAAC;AAAA,GAC5D;AAEA,EAAA,MAAM,aAAa,eAAA,EAAgB;AACnC,EAAA,MAAM,YAAY,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAC9C,EAAA,MAAM,aAAA,GAAgB,MAAM,6BAAA,CAA8B;AAAA,IACxD,KAAA;AAAA,IACA,KAAA,EAAO,WAAA;AAAA,IACP,gBAAgB,IAAA,CAAK,eAAA;AAAA,IACrB,0BAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,WAAA,IAAe,CAAC,aAAA,EAAe;AACjC,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA,IAAe,OAAA,CAAQ,aAAa,CAAA;AAErD,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA;AAAA,IACA,0BAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,KAAA,EAAO,aAAA;AAAA,MACP,SAAA;AAAA,MACA,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,kBAAA,EAAoB,0BAAA,EAA4B,OAAA,CAAQ,EAAA,IAAM,IAAA,CAAK,oBAAA;AAAA,MACnE,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,GACF;AACF;AAMA,SAAS,yBAAA,CAA0B;AAAA,EACjC,gBAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,0BAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAeG;AACD,EAAA,MAAM,kBAAkB,uBAAA,CAAwB;AAAA,IAC9C,UAAA;AAAA,IACA,KAAA,EAAO,aAAA;AAAA,IACP,SAAA;AAAA,IACA,cAAc,IAAA,CAAK,YAAA;AAAA,IACnB,YAAY,IAAA,CAAK,IAAA;AAAA,IACjB,oBAAoB,IAAA,CAAK,oBAAA;AAAA,IACzB,cAAA,EAAgB,aAAA,EAAe,QAAA,IAAY,IAAA,CAAK,eAAA;AAAA,IAChD,KAAA,EAAO,eAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,OAAO,IAAI,cAAA,CAA2B;AAAA,IACpC,MAAM,MAAM,UAAA,EAAY;AACtB,MAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,MAAA,MAAM,YAAA,GAAe,CAAC,SAAA,EAAmB,OAAA,KAAqC;AAC5E,QAAA,UAAA,CAAW,OAAA;AAAA,UACT,eAAe,SAAA,EAAW;AAAA,YACxB,GAAG,OAAA;AAAA,YACH,eAAA,EAAiB,cAAA;AAAA,WAClB;AAAA,SACH;AAAA,MACF,CAAA;AAEA,MAAA,YAAA,CAAa,kBAAA,EAAoB;AAAA,QAC/B,IAAA,EAAM,kBAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACX,CAAA;AACD,MAAA,YAAA,CAAa,sBAAA,EAAwB;AAAA,QACnC,IAAA,EAAM,sBAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACX,CAAA;AAED,MAAA,MAAM,YAAA,GAAe,oCAAoC,UAAU,CAAA;AACnE,MAAA,MAAM,UAAA,GAAa,MAAM,YAAA,CAAa,UAAA;AACtC,MAAA,MAAM,MAAA,GAAS,WAAW,SAAA,EAAU;AAEpC,MAAA,IAAI;AACF,QAAA,OAAO,IAAA,EAAM;AACX,UAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,MAAM,OAAO,IAAA,EAAK;AAC1C,UAAA,IAAI,IAAA,EAAM;AACR,YAAA;AAAA,UACF;AAEA,UAAA,KAAA,MAAW,KAAA,IAAS,YAAA,CAAa,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC/C,YAAA,YAAA,CAAa,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAAA,UACzC;AAAA,QACF;AAEA,QAAA,KAAA,MAAW,KAAA,IAAS,YAAA,CAAa,uBAAA,EAAwB,EAAG;AAC1D,UAAA,YAAA,CAAa,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAAA,QACzC;AAEA,QAAA,MAAM,EAAE,cAAA,EAAgB,QAAA,EAAS,GAAI,MAAM,gBAAA,CAAiB;AAAA,UAC1D,gBAAA;AAAA,UACA,QAAA;AAAA,UACA,aAAA;AAAA,UACA,MAAA,EAAQ,YAAA;AAAA,UACR,UAAA;AAAA,UACA,SAAA;AAAA,UACA,KAAA,EAAO,aAAA;AAAA,UACP,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,kBAAA,EAAoB,0BAAA,EAA4B,OAAA,CAAQ,EAAA,IAAM,IAAA,CAAK,oBAAA;AAAA,UACnE,cAAA,EAAgB,aAAA,EAAe,QAAA,IAAY,IAAA,CAAK,eAAA;AAAA,UAChD,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,cAAc,YAAA,CAAa,IAAA;AAAA,UAC3B,mBAAA,EAAqB,CAAAC,eAAAA,KACnB,YAAA,CAAa,cAAA,CAAe;AAAA,YAC1B,MAAMA,eAAAA,CAAe,IAAA;AAAA,YACrB,QAAQA,eAAAA,CAAe;AAAA,WACxB;AAAA,SACJ,CAAA;AAED,QAAA,MAAM,aAAA,GAAgB,4BAAA,CAA6B,QAAA,EAAU,UAAU,CAAA;AACvE,QAAA,IAAI,aAAA,IAAiB,eAAe,IAAA,EAAM;AACxC,UAAA,KAAA,MAAW,SAAS,YAAA,CAAa,YAAA;AAAA,YAC/B,cAAA,CAAe,IAAA;AAAA,YACf,aAAA,IAAiB;AAAA,cACf,EAAA,EAAI,UAAA;AAAA,cACJ,IAAA,EAAM,SAAA;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,MAAA,EAAQ,WAAA;AAAA,cACR,OAAA,EAAS,CAAC,oBAAA,CAAqB,cAAA,CAAe,IAAI,CAAC;AAAA;AACrD,WACF,EAAG;AACD,YAAA,YAAA,CAAa,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAAA,UACzC;AAAA,QACF;AACA,QAAA,YAAA,CAAa,oBAAA,EAAsB;AAAA,UACjC,IAAA,EAAM,oBAAA;AAAA,UACN;AAAA,SACD,CAAA;AACD,QAAA,UAAA,CAAW,KAAA,EAAM;AAAA,MACnB,SAAS,KAAA,EAAO;AACd,QAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,MACxB,CAAA,SAAE;AACA,QAAA,MAAA,CAAO,WAAA,EAAY;AAAA,MACrB;AAAA,IACF;AAAA,GACD,CAAA;AACH;AAEO,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,eAAA;AAAA,EACN,YAAA,EAAc,qBAAA;AAAA,EACd,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,2EAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoB,oBAAA,CAAqB,cAAA;AAAA,EACzC,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,gBAAgB,WAAA,EAAa,GAAG,MAAK,KAAM;AACnE,IAAA,IAAI;AACF,MAAA,MAAM;AAAA,QACJ,KAAA;AAAA,QACA,gBAAA;AAAA,QACA,eAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA;AAAA,QACA,0BAAA;AAAA,QACA,aAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,gBAAA;AAAA,QACA;AAAA,UACE,MAAM,4BAAA,CAA6B,EAAE,IAAA,EAAM,MAAA,EAAQ,gBAAgB,CAAA;AAEvE,MAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,QAAA,MAAM,MAAA,GAAS,MAAM,eAAA,CAAgB;AAAA,UACnC,KAAA;AAAA,UACA,aAAA;AAAA,UACA,eAAe,IAAA,CAAK,KAAA;AAAA,UACpB,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,iBAAiB,IAAA,CAAK,eAAA;AAAA,UACtB,KAAA,EAAO,cAAA;AAAA,UACP,cAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,MAAM,EAAE,QAAA,EAAS,GAAI,MAAM,gBAAA,CAAiB;AAAA,UAC1C,gBAAA;AAAA,UACA,QAAA;AAAA,UACA,aAAA;AAAA,UACA,MAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAA;AAAA,UACA,KAAA,EAAO,aAAA;AAAA,UACP,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,kBAAA,EAAoB,0BAAA,EAA4B,OAAA,CAAQ,EAAA,IAAM,IAAA,CAAK,oBAAA;AAAA,UACnE,cAAA,EAAgB,aAAA,EAAe,QAAA,IAAY,IAAA,CAAK,eAAA;AAAA,UAChD,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,YAAA,EAAc;AAAA,SACf,CAAA;AAED,QAAA,OAAO,aAAa,QAAQ,CAAA;AAAA,MAC9B;AAEA,MAAA,MAAM,YAAA,GAAe,MAAM,aAAA,CAAc;AAAA,QACvC,KAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAe,IAAA,CAAK,KAAA;AAAA,QACpB,cAAc,IAAA,CAAK,YAAA;AAAA,QACnB,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,iBAAiB,IAAA,CAAK,eAAA;AAAA,QACtB,KAAA,EAAO,cAAA;AAAA,QACP,cAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,MAAM,SAAS,yBAAA,CAA0B;AAAA,QACvC,gBAAA;AAAA,QACA,IAAA;AAAA,QACA,eAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,0BAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,gBAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,OAAO,IAAI,SAAS,MAAA,EAAQ;AAAA,QAC1B,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB,kCAAA;AAAA,UAChB,eAAA,EAAiB,UAAA;AAAA,UACjB,UAAA,EAAY,YAAA;AAAA,UACZ,mBAAA,EAAqB;AAAA;AACvB,OACD,CAAA;AAAA,IACH,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yBAAyB,CAAA;AAAA,IACrD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,2BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,oBAAA;AAAA,EACjB,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,4BAAA;AAAA,EACT,WAAA,EAAa,6CAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoB,oBAAA,CAAqB,WAAA;AAAA,EACzC,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,YAAW,KAAM;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,qBAAqB,MAAM,kCAAA,CAAmC,EAAE,MAAA,EAAQ,UAAA,EAAY,gBAAgB,CAAA;AAC1G,MAAA,IAAI,CAAC,kBAAA,EAAoB;AACvB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,UAAU,kBAAkB,CAAA;AAAA,MACzF;AAEA,MAAA,OAAO,gCAAgC,kBAAkB,CAAA;AAAA,IAC3D,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,2BAA2B,CAAA;AAAA,IACvD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,2BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,oBAAA;AAAA,EACjB,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,uEAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoB,oBAAA,CAAqB,aAAA;AAAA,EACzC,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,YAAW,KAAM;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,qBAAqB,MAAM,kCAAA,CAAmC,EAAE,MAAA,EAAQ,UAAA,EAAY,gBAAgB,CAAA;AAC1G,MAAA,IAAI,CAAC,kBAAA,EAAoB;AACvB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,UAAU,kBAAkB,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,wBAAA,CAAyB,EAAE,kBAAA,EAAoB,CAAA;AAErD,MAAA,MAAM,QAAA,GAA2B;AAAA,QAC/B,EAAA,EAAI,UAAA;AAAA,QACJ,MAAA,EAAQ,UAAA;AAAA,QACR,OAAA,EAAS;AAAA,OACX;AAEA,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yBAAyB,CAAA;AAAA,IACrD;AAAA,EACF;AACF,CAAC","file":"chunk-HW3AHWHB.js","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n createResponseBodySchema,\n deleteResponseSchema,\n responseIdPathParams,\n responseObjectSchema,\n} from '../schemas/responses';\nimport type { CreateResponseBody, DeleteResponse, ResponseObject } from '../schemas/responses';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport {\n buildCompletedResponse,\n buildInProgressResponse,\n createResponseStreamEventTranslator,\n createMessageId,\n createOutputTextPart,\n formatSseEvent,\n mapMastraToolsToResponseTools,\n mapResponseInputToExecutionMessages,\n mapResponseTurnRecordToResponse,\n toResponseStatus,\n toResponseUsage,\n} from './responses.adapter';\nimport {\n deleteResponseTurnRecord,\n findResponseTurnRecord,\n findResponseTurnRecordAcrossAgents,\n getAgentMemoryStore,\n persistResponseTurnRecord,\n resolveResponseTurnMessagesForStorage,\n} from './responses.storage';\nimport type {\n ProviderMetadataLike,\n ResponseTurnRecord,\n ResponseTurnRecordMetadata,\n ThreadExecutionContext,\n UsageLike,\n} from './responses.storage';\nimport { enforceThreadAccess, getEffectiveResourceId, getEffectiveThreadId } from './utils';\n\ntype AgentExecutionInput = Parameters<Agent['generate']>[0];\ntype ResolvedAgentModel = Awaited<ReturnType<Agent['getModel']>>;\n\ntype ResponseExecutionResult = {\n text?: string;\n finishReason?: string;\n totalUsage?: UsageLike | Promise<UsageLike>;\n usage?: UsageLike | Promise<UsageLike>;\n providerMetadata?: ProviderMetadataLike | Promise<ProviderMetadataLike>;\n response?: {\n id?: string;\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype ResponseStreamResult = {\n fullStream: ReadableStream<unknown> | Promise<ReadableStream<unknown>>;\n text: Promise<string> | string;\n finishReason: Promise<string | undefined> | string | undefined;\n totalUsage?: Promise<UsageLike> | UsageLike;\n usage?: Promise<UsageLike> | UsageLike;\n providerMetadata?: Promise<ProviderMetadataLike> | ProviderMetadataLike;\n response?:\n | Promise<{\n id?: string;\n dbMessages?: MastraDBMessage[];\n }>\n | {\n id?: string;\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype CompletedResponseState = {\n completedAt: number;\n status: ResponseObject['status'];\n text: string;\n usage: UsageLike;\n usageDetails: ResponseObject['usage'];\n providerOptions: ProviderMetadataLike;\n};\n\ntype FinalizedResponse = {\n completedState: CompletedResponseState;\n response: ResponseObject;\n responseMessages: MastraDBMessage[];\n};\n\ntype PreparedCreateResponseRequest = {\n agent: Agent<any, any, any, any>;\n agentMemoryStore: MemoryStorage | null;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n createdAt: number;\n didStore: boolean;\n executionInput: AgentExecutionInput;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n resolvedModel: ResolvedAgentModel;\n responseId: string;\n responseModel: string;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n threadContext: ThreadExecutionContext | null;\n};\n\nconst JSON_OBJECT_RESPONSE_SCHEMA = {\n type: 'object',\n additionalProperties: true,\n} as const;\n\nfunction jsonResponse(data: ResponseObject, status: number = 200): Response {\n return new Response(JSON.stringify(data), {\n status,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\nfunction createStructuredOutput(text: CreateResponseBody['text']) {\n if (!text) {\n return undefined;\n }\n\n switch (text.format.type) {\n case 'json_object':\n return {\n schema: JSON_OBJECT_RESPONSE_SCHEMA,\n jsonPromptInjection: true,\n };\n case 'json_schema':\n return {\n schema: text.format.schema,\n };\n default:\n return undefined;\n }\n}\n\nfunction getStreamedMessageOutputItem(response: ResponseObject, responseId: string) {\n return (\n response.output.find(\n (item): item is Extract<ResponseObject['output'][number], { type: 'message' }> =>\n item.type === 'message' && item.id === responseId,\n ) ?? null\n );\n}\n\n/**\n * Resolves the memory thread that should back the current response request.\n *\n * If `previous_response_id` is present, the request continues on that stored thread.\n * Otherwise, the route only creates or reuses a thread when the caller asked to store\n * the response and the resolved agent actually has memory configured.\n */\nasync function resolveThreadExecutionContext({\n agent,\n store,\n conversationId,\n previousResponseTurnRecord,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n store: boolean;\n conversationId?: string;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n requestContext: RequestContext;\n}): Promise<ThreadExecutionContext | null> {\n if (conversationId && previousResponseTurnRecord && previousResponseTurnRecord.thread.id !== conversationId) {\n throw new HTTPException(400, {\n message:\n 'conversation_id and previous_response_id must reference the same conversation thread when both are provided',\n });\n }\n\n if (previousResponseTurnRecord) {\n return {\n threadId: previousResponseTurnRecord.thread.id,\n resourceId: previousResponseTurnRecord.thread.resourceId,\n };\n }\n\n const effectiveThreadId = getEffectiveThreadId(requestContext, undefined);\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n\n if (!store && !conversationId && !effectiveThreadId) {\n return null;\n }\n\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n if (conversationId) {\n throw new HTTPException(400, {\n message: 'conversation_id requires the target agent to have memory configured',\n });\n }\n\n return null;\n }\n\n if (conversationId) {\n const existingThread = await memory.getThreadById({ threadId: conversationId });\n if (!existingThread) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await enforceThreadAccess({\n mastra: agent.getMastraInstance(),\n requestContext,\n threadId: conversationId,\n thread: existingThread,\n effectiveResourceId,\n });\n return {\n threadId: existingThread.id,\n resourceId: effectiveResourceId ?? existingThread.resourceId,\n };\n }\n\n if (!effectiveThreadId) {\n if (!store) {\n return null;\n }\n\n const threadId = randomUUID();\n const createdThread = await memory.createThread({\n threadId,\n resourceId: effectiveResourceId ?? threadId,\n });\n\n return {\n threadId: createdThread.id,\n resourceId: createdThread.resourceId,\n };\n }\n\n const threadId = effectiveThreadId;\n const existingThread = await memory.getThreadById({ threadId });\n if (existingThread) {\n await enforceThreadAccess({\n mastra: agent.getMastraInstance(),\n requestContext,\n threadId,\n thread: existingThread,\n effectiveResourceId,\n });\n return {\n threadId: existingThread.id,\n resourceId: effectiveResourceId ?? existingThread.resourceId,\n };\n }\n\n if (!store) {\n return null;\n }\n\n const resourceId = effectiveResourceId ?? threadId;\n const createdThread = await memory.createThread({\n threadId,\n resourceId,\n });\n\n return {\n threadId: createdThread.id,\n resourceId: createdThread.resourceId,\n };\n}\n\nfunction createExecutionMemory(threadContext: ThreadExecutionContext | null) {\n if (!threadContext) {\n return undefined;\n }\n\n return {\n memory: {\n thread: threadContext.threadId,\n resource: threadContext.resourceId,\n },\n } as const;\n}\n\n/**\n * Resolves the registered Mastra agent that owns the response request.\n */\nasync function resolveResponseAgent({\n mastra,\n agentId,\n}: {\n mastra: Mastra | undefined;\n agentId?: string;\n}): Promise<Agent<any, any, any, any>> {\n if (!agentId) {\n throw new HTTPException(400, {\n message: 'Responses requests require an agent_id',\n });\n }\n\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for agent-backed responses' });\n }\n\n return getAgentFromSystem({ mastra, agentId });\n}\n\nasync function resolveAgentMemoryStore({\n agent,\n requestContext,\n errorMessage,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n errorMessage: string;\n}): Promise<MemoryStorage> {\n const agentMemoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!agentMemoryStore) {\n throw new HTTPException(400, { message: errorMessage });\n }\n\n return agentMemoryStore;\n}\n\n/**\n * Executes a non-streaming Responses API request through the resolved Mastra agent.\n */\nasync function executeGenerate({\n agent,\n resolvedModel,\n modelOverride,\n instructions,\n text,\n providerOptions,\n input,\n requestContext,\n abortSignal,\n threadContext,\n}: {\n agent: Agent;\n resolvedModel: ResolvedAgentModel;\n modelOverride?: string;\n instructions: string | undefined;\n text: CreateResponseBody['text'];\n providerOptions: CreateResponseBody['providerOptions'];\n input: AgentExecutionInput;\n requestContext: RequestContext;\n abortSignal: AbortSignal;\n threadContext: ThreadExecutionContext | null;\n}) {\n const executionMemory = createExecutionMemory(threadContext);\n const structuredOutput = createStructuredOutput(text);\n const modelOption = modelOverride ? { model: modelOverride } : {};\n const commonOptions = {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n structuredOutput,\n providerOptions,\n ...(executionMemory ?? {}),\n };\n\n if (resolvedModel.specificationVersion === 'v1') {\n if (threadContext) {\n return (await agent.generateLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n resourceId: threadContext.resourceId,\n threadId: threadContext.threadId,\n } as never)) as ResponseExecutionResult;\n }\n\n return (await agent.generateLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n } as never)) as ResponseExecutionResult;\n }\n\n return (await agent.generate(input, commonOptions as never)) as ResponseExecutionResult;\n}\n\n/**\n * Executes a streaming Responses API request through the resolved Mastra agent.\n */\nasync function executeStream({\n agent,\n resolvedModel,\n modelOverride,\n instructions,\n text,\n providerOptions,\n input,\n requestContext,\n abortSignal,\n threadContext,\n}: {\n agent: Agent;\n resolvedModel: ResolvedAgentModel;\n modelOverride?: string;\n instructions: string | undefined;\n text: CreateResponseBody['text'];\n providerOptions: CreateResponseBody['providerOptions'];\n input: AgentExecutionInput;\n requestContext: RequestContext;\n abortSignal: AbortSignal;\n threadContext: ThreadExecutionContext | null;\n}) {\n const executionMemory = createExecutionMemory(threadContext);\n const structuredOutput = createStructuredOutput(text);\n const modelOption = modelOverride ? { model: modelOverride } : {};\n const commonOptions = {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n structuredOutput,\n providerOptions,\n ...(executionMemory ?? {}),\n };\n\n if (resolvedModel.specificationVersion === 'v1') {\n if (threadContext) {\n return (await agent.streamLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n resourceId: threadContext.resourceId,\n threadId: threadContext.threadId,\n } as never)) as ResponseStreamResult;\n }\n\n return (await agent.streamLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n } as never)) as ResponseStreamResult;\n }\n\n return (await agent.stream(input, commonOptions as never)) as ResponseStreamResult;\n}\n\nasync function resolveUsage(result: ResponseExecutionResult | ResponseStreamResult): Promise<UsageLike> {\n return (await (result.totalUsage ?? result.usage ?? null)) as UsageLike;\n}\n\nasync function resolveProviderMetadata(\n result: ResponseExecutionResult | ResponseStreamResult,\n): Promise<ProviderMetadataLike> {\n return (await (result.providerMetadata ?? undefined)) as ProviderMetadataLike;\n}\n\nasync function resolveFinishReason(\n result: ResponseExecutionResult | ResponseStreamResult,\n): Promise<string | undefined> {\n return (await result.finishReason) ?? undefined;\n}\n\nasync function resolveText(result: ResponseExecutionResult | ResponseStreamResult): Promise<string> {\n return (await result.text) ?? '';\n}\n\n/**\n * Resolves the final response state shared by streaming and non-streaming flows.\n */\nasync function resolveCompletedResponseState(\n result: ResponseExecutionResult | ResponseStreamResult,\n fallbackText: string,\n): Promise<CompletedResponseState> {\n const usage = await resolveUsage(result);\n\n return {\n completedAt: Math.floor(Date.now() / 1000),\n status: toResponseStatus(await resolveFinishReason(result)),\n text: (await resolveText(result)) || fallbackText,\n usage,\n usageDetails: toResponseUsage(usage),\n providerOptions: await resolveProviderMetadata(result),\n };\n}\n\n/**\n * Stores the completed response when the request opted into memory-backed persistence.\n */\nasync function storeCompletedResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n responseId,\n metadata,\n completedState,\n messages,\n outputItems,\n}: {\n agentMemoryStore: MemoryStorage | null;\n didStore: boolean;\n threadContext: ThreadExecutionContext | null;\n responseId: string;\n metadata: Omit<ResponseTurnRecordMetadata, 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'>;\n completedState: CompletedResponseState;\n messages: MastraDBMessage[];\n outputItems: ResponseObject['output'];\n}): Promise<void> {\n if (!didStore || !threadContext) {\n return;\n }\n\n await persistResponseTurnRecord({\n memoryStore: agentMemoryStore,\n responseId,\n metadata: {\n ...metadata,\n completedAt: completedState.completedAt,\n status: completedState.status,\n usage: completedState.usageDetails,\n providerOptions: completedState.providerOptions,\n messageIds: [],\n outputItems,\n },\n threadContext,\n messages,\n });\n}\n\n/**\n * Resolves the final response object and persists the stored response turn when needed.\n */\nasync function finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result,\n responseId,\n createdAt,\n model,\n instructions,\n previousResponseId,\n conversationId,\n configuredTools,\n responseMetadata,\n fallbackText,\n fallbackOutputItems,\n}: {\n agentMemoryStore: MemoryStorage | null;\n didStore: boolean;\n threadContext: ThreadExecutionContext | null;\n result: ResponseExecutionResult | ResponseStreamResult;\n responseId: string;\n createdAt: number;\n model: string;\n instructions: string | undefined;\n previousResponseId?: string;\n conversationId?: string;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n fallbackText: string;\n fallbackOutputItems?: (completedState: CompletedResponseState) => ResponseObject['output'];\n}): Promise<FinalizedResponse> {\n const completedState = await resolveCompletedResponseState(result, fallbackText);\n const fallbackItems = fallbackOutputItems?.(completedState);\n const responseMessages = await resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text: completedState.text,\n threadContext,\n fallbackOutputItems: threadContext ? fallbackItems : undefined,\n });\n const response = buildCompletedResponse({\n responseId,\n outputMessageId: responseId,\n model,\n createdAt,\n completedAt: completedState.completedAt,\n status: completedState.status,\n text: completedState.text,\n usage: completedState.usage,\n instructions,\n textConfig: responseMetadata.text,\n previousResponseId,\n conversationId,\n providerOptions: completedState.providerOptions,\n tools: configuredTools,\n messages: responseMessages,\n fallbackOutputItems: fallbackItems,\n store: didStore,\n });\n\n await storeCompletedResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n responseId,\n metadata: responseMetadata,\n completedState,\n messages: responseMessages,\n outputItems: response.output,\n });\n\n return { completedState, response, responseMessages };\n}\n\n/**\n * Resolves all request-scoped Mastra primitives needed to execute a Responses create\n * call: the owning agent, the memory thread context, the normalized execution input,\n * and the response-turn metadata that may be persisted later.\n */\nasync function prepareCreateResponseRequest({\n body,\n mastra,\n requestContext,\n}: {\n body: CreateResponseBody;\n mastra: Mastra | undefined;\n requestContext: RequestContext;\n}): Promise<PreparedCreateResponseRequest> {\n const executionInput = mapResponseInputToExecutionMessages(body.input) as AgentExecutionInput;\n let previousResponseTurnRecord: ResponseTurnRecord | null = null;\n let resolvedAgent: Agent<any, any, any, any> | null = null;\n\n if (body.previous_response_id) {\n if (body.agent_id) {\n resolvedAgent = await resolveResponseAgent({ mastra, agentId: body.agent_id });\n previousResponseTurnRecord = await findResponseTurnRecord({\n agent: resolvedAgent,\n responseId: body.previous_response_id,\n requestContext,\n });\n\n if (!previousResponseTurnRecord) {\n const owningResponseTurnRecord = await findResponseTurnRecordAcrossAgents({\n mastra,\n responseId: body.previous_response_id,\n requestContext,\n });\n\n if (owningResponseTurnRecord) {\n if (owningResponseTurnRecord.metadata.agentId === body.agent_id) {\n previousResponseTurnRecord = owningResponseTurnRecord;\n } else {\n throw new HTTPException(400, {\n message: `Stored response ${body.previous_response_id} belongs to agent ${owningResponseTurnRecord.metadata.agentId}, not ${body.agent_id}`,\n });\n }\n }\n\n if (!previousResponseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });\n }\n }\n } else {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for agent-backed responses' });\n }\n\n previousResponseTurnRecord = await findResponseTurnRecordAcrossAgents({\n mastra,\n responseId: body.previous_response_id,\n requestContext,\n });\n\n if (!previousResponseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });\n }\n }\n }\n\n const agent =\n resolvedAgent ??\n (await resolveResponseAgent({\n mastra,\n agentId: body.agent_id ?? previousResponseTurnRecord?.metadata.agentId,\n }));\n const resolvedModel = await agent.getModel({\n requestContext,\n modelConfig: body.model,\n });\n const responseModel =\n body.model ??\n (() => {\n if (resolvedModel.provider && resolvedModel.modelId) {\n const publicProviderId = resolvedModel.provider.includes('.')\n ? resolvedModel.provider.split('.')[0]!\n : resolvedModel.provider;\n return `${publicProviderId}/${resolvedModel.modelId}`;\n }\n\n if (resolvedModel.modelId) {\n return resolvedModel.modelId;\n }\n\n throw new HTTPException(500, {\n message: 'Responses route could not determine the effective model for this request',\n });\n })();\n const shouldStore = body.store ?? false;\n const needsMemoryStore = shouldStore || Boolean(body.conversation_id) || Boolean(body.previous_response_id);\n const agentMemoryStore = needsMemoryStore\n ? await resolveAgentMemoryStore({\n agent,\n requestContext,\n errorMessage: body.previous_response_id\n ? 'previous_response_id requires the target agent to have memory storage configured'\n : shouldStore\n ? 'Stored responses require the target agent to have memory storage configured'\n : 'conversation_id requires the target agent to have memory storage configured',\n })\n : null;\n const configuredTools = mapMastraToolsToResponseTools(\n (await Promise.resolve(agent.listTools({ requestContext }))) as Record<string, unknown>,\n );\n\n const responseId = createMessageId();\n const createdAt = Math.floor(Date.now() / 1000);\n const threadContext = await resolveThreadExecutionContext({\n agent,\n store: shouldStore,\n conversationId: body.conversation_id,\n previousResponseTurnRecord,\n requestContext,\n });\n\n if (shouldStore && !threadContext) {\n throw new HTTPException(400, {\n message: 'Stored responses require the target agent to have memory configured',\n });\n }\n\n const didStore = shouldStore && Boolean(threadContext);\n\n return {\n agent,\n agentMemoryStore,\n configuredTools,\n createdAt,\n didStore,\n executionInput,\n previousResponseTurnRecord,\n resolvedModel,\n responseId,\n responseModel,\n responseMetadata: {\n agentId: agent.id,\n model: responseModel,\n createdAt,\n instructions: body.instructions,\n text: body.text,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n tools: configuredTools,\n store: didStore,\n },\n threadContext,\n };\n}\n\n/**\n * Bridges a Mastra agent stream into OpenAI-style Responses SSE events and completes\n * the stored response-turn record when the stream finishes.\n */\nfunction createResponseEventStream({\n agentMemoryStore,\n body,\n configuredTools,\n createdAt,\n didStore,\n previousResponseTurnRecord,\n responseId,\n responseModel,\n responseMetadata,\n streamResult,\n threadContext,\n}: {\n agentMemoryStore: MemoryStorage | null;\n body: CreateResponseBody;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n createdAt: number;\n didStore: boolean;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n responseId: string;\n responseModel: string;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n streamResult: ResponseStreamResult;\n threadContext: ThreadExecutionContext | null;\n}) {\n const createdResponse = buildInProgressResponse({\n responseId,\n model: responseModel,\n createdAt,\n instructions: body.instructions,\n textConfig: body.text,\n previousResponseId: body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n tools: configuredTools,\n store: didStore,\n });\n\n return new ReadableStream<Uint8Array>({\n async start(controller) {\n let sequenceNumber = 1;\n const enqueueEvent = (eventName: string, payload: Record<string, unknown>) => {\n controller.enqueue(\n formatSseEvent(eventName, {\n ...payload,\n sequence_number: sequenceNumber++,\n }),\n );\n };\n\n enqueueEvent('response.created', {\n type: 'response.created',\n response: createdResponse,\n });\n enqueueEvent('response.in_progress', {\n type: 'response.in_progress',\n response: createdResponse,\n });\n\n const streamEvents = createResponseStreamEventTranslator(responseId);\n const fullStream = await streamResult.fullStream;\n const reader = fullStream.getReader();\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n\n for (const event of streamEvents.consume(value)) {\n enqueueEvent(event.event, event.payload);\n }\n }\n\n for (const event of streamEvents.flushPendingToolResults()) {\n enqueueEvent(event.event, event.payload);\n }\n\n const { completedState, response } = await finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result: streamResult,\n responseId,\n createdAt,\n model: responseModel,\n instructions: body.instructions,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n configuredTools,\n responseMetadata,\n fallbackText: streamEvents.text,\n fallbackOutputItems: completedState =>\n streamEvents.getOutputItems({\n text: completedState.text,\n status: completedState.status,\n }),\n });\n\n const completedItem = getStreamedMessageOutputItem(response, responseId);\n if (completedItem || completedState.text) {\n for (const event of streamEvents.completeText(\n completedState.text,\n completedItem ?? {\n id: responseId,\n type: 'message' as const,\n role: 'assistant' as const,\n status: 'completed' as const,\n content: [createOutputTextPart(completedState.text)],\n },\n )) {\n enqueueEvent(event.event, event.payload);\n }\n }\n enqueueEvent('response.completed', {\n type: 'response.completed',\n response,\n });\n controller.close();\n } catch (error) {\n controller.error(error);\n } finally {\n reader.releaseLock();\n }\n },\n });\n}\n\nexport const CREATE_RESPONSE_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/responses',\n responseType: 'datastream-response',\n bodySchema: createResponseBodySchema,\n responseSchema: responseObjectSchema,\n summary: 'Create a response',\n description: 'Creates a response through a Mastra-hosted Responses API-compatible route',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_EXECUTE,\n handler: async ({ mastra, requestContext, abortSignal, ...body }) => {\n try {\n const {\n agent,\n agentMemoryStore,\n configuredTools,\n createdAt,\n didStore,\n executionInput,\n previousResponseTurnRecord,\n resolvedModel,\n responseId,\n responseModel,\n responseMetadata,\n threadContext,\n } = await prepareCreateResponseRequest({ body, mastra, requestContext });\n\n if (!body.stream) {\n const result = await executeGenerate({\n agent,\n resolvedModel,\n modelOverride: body.model,\n instructions: body.instructions,\n text: body.text,\n providerOptions: body.providerOptions,\n input: executionInput,\n requestContext,\n abortSignal,\n threadContext,\n });\n\n const { response } = await finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result,\n responseId,\n createdAt,\n model: responseModel,\n instructions: body.instructions,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n configuredTools,\n responseMetadata,\n fallbackText: '',\n });\n\n return jsonResponse(response);\n }\n\n const streamResult = await executeStream({\n agent,\n resolvedModel,\n modelOverride: body.model,\n instructions: body.instructions,\n text: body.text,\n providerOptions: body.providerOptions,\n input: executionInput,\n requestContext,\n abortSignal,\n threadContext,\n });\n\n const stream = createResponseEventStream({\n agentMemoryStore,\n body,\n configuredTools,\n createdAt,\n didStore,\n previousResponseTurnRecord,\n responseId,\n responseModel,\n responseMetadata,\n streamResult,\n threadContext,\n });\n\n return new Response(stream, {\n headers: {\n 'Content-Type': 'text/event-stream; charset=utf-8',\n 'Cache-Control': 'no-cache',\n Connection: 'keep-alive',\n 'X-Accel-Buffering': 'no',\n },\n });\n } catch (error) {\n return handleError(error, 'Error creating response');\n }\n },\n});\n\nexport const GET_RESPONSE_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/responses/:responseId',\n responseType: 'json',\n pathParamSchema: responseIdPathParams,\n responseSchema: responseObjectSchema,\n summary: 'Retrieve a stored response',\n description: 'Returns a previously stored response object',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, responseId }) => {\n try {\n const responseTurnRecord = await findResponseTurnRecordAcrossAgents({ mastra, responseId, requestContext });\n if (!responseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${responseId} was not found` });\n }\n\n return mapResponseTurnRecordToResponse(responseTurnRecord);\n } catch (error) {\n return handleError(error, 'Error retrieving response');\n }\n },\n});\n\nexport const DELETE_RESPONSE_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/responses/:responseId',\n responseType: 'json',\n pathParamSchema: responseIdPathParams,\n responseSchema: deleteResponseSchema,\n summary: 'Delete a stored response',\n description: 'Deletes a stored response so it can no longer be retrieved or chained',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, responseId }) => {\n try {\n const responseTurnRecord = await findResponseTurnRecordAcrossAgents({ mastra, responseId, requestContext });\n if (!responseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${responseId} was not found` });\n }\n\n await deleteResponseTurnRecord({ responseTurnRecord });\n\n const response: DeleteResponse = {\n id: responseId,\n object: 'response',\n deleted: true,\n };\n\n return response;\n } catch (error) {\n return handleError(error, 'Error deleting response');\n }\n },\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { conversationItemSchema } from './chunk-
|
|
1
|
+
import { conversationItemSchema } from './chunk-BIUL4Y6W.js';
|
|
2
2
|
import { getThreadByIdResponseSchema } from './chunk-CJFSLVFA.js';
|
|
3
3
|
import z from 'zod';
|
|
4
4
|
|
|
@@ -31,5 +31,5 @@ var conversationItemsListSchema = z.object({
|
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
export { conversationDeletedSchema, conversationIdPathParams, conversationItemsListSchema, conversationObjectSchema, createConversationBodySchema };
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-HX5WL5ZF.js.map
|
|
35
|
+
//# sourceMappingURL=chunk-HX5WL5ZF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":[],"mappings":";;;;AAIO,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+B,EAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiB,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACpC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAU,EAAE,OAAA;AACd,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":[],"mappings":";;;;AAIO,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+B,EAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiB,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACpC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAU,EAAE,OAAA;AACd,CAAC","file":"chunk-HX5WL5ZF.js","sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk42WZN6MM_cjs = require('./chunk-42WZN6MM.cjs');
|
|
4
4
|
var chunkBYX5LHPW_cjs = require('./chunk-BYX5LHPW.cjs');
|
|
5
5
|
var z = require('zod');
|
|
6
6
|
|
|
@@ -30,7 +30,7 @@ var conversationDeletedSchema = z__default.default.object({
|
|
|
30
30
|
});
|
|
31
31
|
var conversationItemsListSchema = z__default.default.object({
|
|
32
32
|
object: z__default.default.literal("list"),
|
|
33
|
-
data: z__default.default.array(
|
|
33
|
+
data: z__default.default.array(chunk42WZN6MM_cjs.conversationItemSchema),
|
|
34
34
|
first_id: z__default.default.string().nullable(),
|
|
35
35
|
last_id: z__default.default.string().nullable(),
|
|
36
36
|
has_more: z__default.default.boolean()
|
|
@@ -41,5 +41,5 @@ exports.conversationIdPathParams = conversationIdPathParams;
|
|
|
41
41
|
exports.conversationItemsListSchema = conversationItemsListSchema;
|
|
42
42
|
exports.conversationObjectSchema = conversationObjectSchema;
|
|
43
43
|
exports.createConversationBodySchema = createConversationBodySchema;
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
45
|
-
//# sourceMappingURL=chunk-
|
|
44
|
+
//# sourceMappingURL=chunk-IIGNRK55.cjs.map
|
|
45
|
+
//# sourceMappingURL=chunk-IIGNRK55.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":["z","getThreadByIdResponseSchema","conversationItemSchema"],"mappings":";;;;;;;;;;AAIO,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgBA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+BA,mBAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiBA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAaA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAOA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQC;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4BD,mBAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAASA,kBAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8BA,mBAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAMA,kBAAA,CAAE,KAAA,CAAME,wCAAsB,CAAA;AAAA,EACpC,QAAA,EAAUF,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,mBAAE,OAAA;AACd,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":["z","getThreadByIdResponseSchema","conversationItemSchema"],"mappings":";;;;;;;;;;AAIO,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgBA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+BA,mBAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiBA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAaA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAOA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQC;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4BD,mBAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAASA,kBAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8BA,mBAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAMA,kBAAA,CAAE,KAAA,CAAME,wCAAsB,CAAA;AAAA,EACpC,QAAA,EAAUF,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,mBAAE,OAAA;AACd,CAAC","file":"chunk-IIGNRK55.cjs","sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { listMCPClientVersionsResponseSchema, listMCPClientVersionsQuerySchema, mcpClientVersionPathParams, createMCPClientVersionResponseSchema, createMCPClientVersionBodySchema, getMCPClientVersionResponseSchema, mcpClientVersionIdPathParams, activateMCPClientVersionResponseSchema, restoreMCPClientVersionResponseSchema, deleteMCPClientVersionResponseSchema, compareMCPClientVersionsResponseSchema, compareMCPClientVersionsQuerySchema } from './chunk-EFJIK2PW.js';
|
|
2
2
|
import { extractConfigFromVersion, MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS, calculateChangedFields, createVersionWithRetry, enforceRetentionLimit, computeVersionDiffs } from './chunk-33QPJPK4.js';
|
|
3
|
-
import { createRoute } from './chunk-
|
|
3
|
+
import { createRoute } from './chunk-VMF4AV2C.js';
|
|
4
4
|
import { handleError } from './chunk-P23KBWKB.js';
|
|
5
5
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
6
6
|
|
|
@@ -380,5 +380,5 @@ var COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({
|
|
|
380
380
|
});
|
|
381
381
|
|
|
382
382
|
export { ACTIVATE_MCP_CLIENT_VERSION_ROUTE, COMPARE_MCP_CLIENT_VERSIONS_ROUTE, CREATE_MCP_CLIENT_VERSION_ROUTE, DELETE_MCP_CLIENT_VERSION_ROUTE, GET_MCP_CLIENT_VERSION_ROUTE, LIST_MCP_CLIENT_VERSIONS_ROUTE, RESTORE_MCP_CLIENT_VERSION_ROUTE };
|
|
383
|
-
//# sourceMappingURL=chunk-
|
|
384
|
-
//# sourceMappingURL=chunk-
|
|
383
|
+
//# sourceMappingURL=chunk-ITIAC2TC.js.map
|
|
384
|
+
//# sourceMappingURL=chunk-ITIAC2TC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/mcp-client-versions.ts"],"names":[],"mappings":"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","file":"chunk-4QGPES7N.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n mcpClientVersionPathParams,\n mcpClientVersionIdPathParams,\n listMCPClientVersionsQuerySchema,\n createMCPClientVersionBodySchema,\n compareMCPClientVersionsQuerySchema,\n listMCPClientVersionsResponseSchema,\n getMCPClientVersionResponseSchema,\n createMCPClientVersionResponseSchema,\n activateMCPClientVersionResponseSchema,\n restoreMCPClientVersionResponseSchema,\n deleteMCPClientVersionResponseSchema,\n compareMCPClientVersionsResponseSchema,\n} from '../schemas/mcp-client-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client\n */\nexport const LIST_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: listMCPClientVersionsQuerySchema,\n responseSchema: listMCPClientVersionsResponseSchema,\n summary: 'List MCP client versions',\n description: 'Returns a paginated list of all versions for a stored MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const result = await mcpClientStore.listVersions({\n mcpClientId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing MCP client versions');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions - Create a new version snapshot\n */\nexport const CREATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n bodySchema: createMCPClientVersionBodySchema,\n responseSchema: createMCPClientVersionResponseSchema,\n summary: 'Create MCP client version',\n description: 'Creates a new version snapshot of the current MCP client configuration',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (mcpClient.activeVersionId) {\n const activeVersion = await mcpClientStore.getVersion(mcpClient.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n\n // If no activeVersionId, fall back to latest version config\n if (!mcpClient.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/:versionId - Get a specific version\n */\nexport const GET_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: getMCPClientVersionResponseSchema,\n summary: 'Get MCP client version',\n description: 'Returns a specific version of an MCP client by its version ID',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: activateMCPClientVersionResponseSchema,\n summary: 'Activate MCP client version',\n description: 'Sets a specific version as the active version for the MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n await mcpClientStore.update({\n id: mcpClientId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore - Restore MCP client to a version\n */\nexport const RESTORE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: restoreMCPClientVersionResponseSchema,\n summary: 'Restore MCP client version',\n description: 'Restores the MCP client configuration from a version, creating a new version',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const versionToRestore = await mcpClientStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n await mcpClientStore.update({\n id: mcpClientId,\n ...restoredConfig,\n });\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await mcpClientStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring MCP client version');\n }\n },\n});\n\n/**\n * DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId - Delete a version\n */\nexport const DELETE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: deleteMCPClientVersionResponseSchema,\n summary: 'Delete MCP client version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n if (mcpClient.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await mcpClientStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/compare - Compare two versions\n */\nexport const COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: compareMCPClientVersionsQuerySchema,\n responseSchema: compareMCPClientVersionsResponseSchema,\n summary: 'Compare MCP client versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const fromVersion = await mcpClientStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const toVersion = await mcpClientStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing MCP client versions');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/mcp-client-versions.ts"],"names":[],"mappings":";;;;;;;AA+BO,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,2CAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,0BAAA;AAAA,EACjB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,cAAA,EAAgB,mCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,kEAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,aAAa,IAAA,EAAM,OAAA,EAAS,SAAQ,KAAM;AAClE,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,OAAA,CAAQ,WAAW,CAAA;AAC1D,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,mBAAA,EAAsB,WAAW,cAAc,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,YAAA,CAAa;AAAA,QAC/C,WAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,kCAAkC,WAAA,CAAY;AAAA,EACzD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,2CAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,0BAAA;AAAA,EACjB,UAAA,EAAY,gCAAA;AAAA,EACZ,cAAA,EAAgB,oCAAA;AAAA,EAChB,OAAA,EAAS,2BAAA;AAAA,EACT,WAAA,EAAa,wEAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,MAAA,EAAQ,WAAA,EAAa,eAAc,KAAM;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,OAAA,CAAQ,WAAW,CAAA;AAC1D,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,mBAAA,EAAsB,WAAW,cAAc,CAAA;AAAA,MACzF;AAEA,MAAA,IAAI,gBAAyC,EAAC;AAC9C,MAAA,IAAI,UAAU,eAAA,EAAiB;AAC7B,QAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,CAAe,UAAA,CAAW,UAAU,eAAe,CAAA;AAC/E,QAAA,IAAI,aAAA,EAAe;AACjB,UAAA,aAAA,GAAgB,wBAAA;AAAA,YACd,aAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,CAAe,gBAAA,CAAiB,WAAW,CAAA;AAGvE,MAAA,IAAI,CAAC,SAAA,CAAU,eAAA,IAAmB,aAAA,EAAe;AAC/C,QAAA,aAAA,GAAgB,wBAAA;AAAA,UACd,aAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF;AACA,MAAA,MAAM,iBAAiB,aAAA,GACnB,wBAAA;AAAA,QACE,aAAA;AAAA,QACA;AAAA,OACF,GACA,IAAA;AAEJ,MAAA,MAAM,aAAA,GAAgB,sBAAA,CAAuB,cAAA,EAAgB,aAAa,CAAA;AAE1E,MAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAM,sBAAA;AAAA,QAC1B,cAAA;AAAA,QACA,WAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,EAAE,aAAA;AAAc,OAClB;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,CAAe,UAAA,CAAW,SAAS,CAAA;AACzD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,sCAAsC,CAAA;AAAA,MAChF;AAEA,MAAA,MAAM,qBAAA;AAAA,QACJ,cAAA;AAAA,QACA,WAAA;AAAA,QACA,aAAA;AAAA,QACA,SAAA,CAAU;AAAA,OACZ;AAEA,MAAA,OAAO,OAAA;AAAA,IACT,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,sDAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,4BAAA;AAAA,EACjB,cAAA,EAAgB,iCAAA;AAAA,EAChB,OAAA,EAAS,wBAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,MAAA,EAAQ,WAAA,EAAa,WAAU,KAAM;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,CAAe,UAAA,CAAW,SAAS,CAAA;AAEzD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,SAAS,cAAc,CAAA;AAAA,MACpF;AAEA,MAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,SAAS,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SAC9E,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,OAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,kCAAkC,CAAA;AAAA,IAC9D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,oCAAoC,WAAA,CAAY;AAAA,EAC3D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,+DAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,4BAAA;AAAA,EACjB,cAAA,EAAgB,sCAAA;AAAA,EAChB,OAAA,EAAS,6BAAA;AAAA,EACT,WAAA,EAAa,kEAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,MAAA,EAAQ,WAAA,EAAa,WAAU,KAAM;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,OAAA,CAAQ,WAAW,CAAA;AAC1D,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,mBAAA,EAAsB,WAAW,cAAc,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,CAAe,UAAA,CAAW,SAAS,CAAA;AACzD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,SAAS,cAAc,CAAA;AAAA,MACpF;AACA,MAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,SAAS,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SAC9E,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,eAAe,MAAA,CAAO;AAAA,QAC1B,EAAA,EAAI,WAAA;AAAA,QACJ,eAAA,EAAiB,SAAA;AAAA,QACjB,MAAA,EAAQ;AAAA,OACT,CAAA;AAGD,MAAA,MAAA,CAAO,SAAA,EAAU,EAAG,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA;AAE9C,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,OAAA,EAAS,CAAA,QAAA,EAAW,OAAA,CAAQ,aAAa,CAAA,cAAA,CAAA;AAAA,QACzC,eAAA,EAAiB;AAAA,OACnB;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qCAAqC,CAAA;AAAA,IACjE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,mCAAmC,WAAA,CAAY;AAAA,EAC1D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,8DAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,4BAAA;AAAA,EACjB,cAAA,EAAgB,qCAAA;AAAA,EAChB,OAAA,EAAS,4BAAA;AAAA,EACT,WAAA,EAAa,8EAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,MAAA,EAAQ,WAAA,EAAa,WAAU,KAAM;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,OAAA,CAAQ,WAAW,CAAA;AAC1D,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,mBAAA,EAAsB,WAAW,cAAc,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,gBAAA,GAAmB,MAAM,cAAA,CAAe,UAAA,CAAW,SAAS,CAAA;AAClE,MAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,SAAS,cAAc,CAAA;AAAA,MACpF;AACA,MAAA,IAAI,gBAAA,CAAiB,gBAAgB,WAAA,EAAa;AAChD,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,SAAS,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SAC9E,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,cAAA,GAAiB,wBAAA;AAAA,QACrB,gBAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,MAAM,eAAe,MAAA,CAAO;AAAA,QAC1B,EAAA,EAAI,WAAA;AAAA,QACJ,GAAG;AAAA,OACJ,CAAA;AAED,MAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,CAAe,gBAAA,CAAiB,WAAW,CAAA;AACvE,MAAA,MAAM,iBAAiB,aAAA,GACnB,wBAAA;AAAA,QACE,aAAA;AAAA,QACA;AAAA,OACF,GACA,IAAA;AAEJ,MAAA,MAAM,aAAA,GAAgB,sBAAA,CAAuB,cAAA,EAAgB,cAAc,CAAA;AAE3E,MAAA,MAAM,EAAE,SAAA,EAAW,YAAA,EAAa,GAAI,MAAM,sBAAA;AAAA,QACxC,cAAA;AAAA,QACA,WAAA;AAAA,QACA,aAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA,UACE,aAAA,EAAe,CAAA,sBAAA,EAAyB,gBAAA,CAAiB,aAAa,CAAA;AAAA;AACxE,OACF;AAEA,MAAA,MAAM,UAAA,GAAa,MAAM,cAAA,CAAe,UAAA,CAAW,YAAY,CAAA;AAC/D,MAAA,IAAI,CAAC,UAAA,EAAY;AACf,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,sCAAsC,CAAA;AAAA,MAChF;AAEA,MAAA,MAAM,qBAAA;AAAA,QACJ,cAAA;AAAA,QACA,WAAA;AAAA,QACA,aAAA;AAAA,QACA,SAAA,CAAU;AAAA,OACZ;AAGA,MAAA,MAAA,CAAO,SAAA,EAAU,EAAG,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA;AAE9C,MAAA,OAAO,UAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oCAAoC,CAAA;AAAA,IAChE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,kCAAkC,WAAA,CAAY;AAAA,EACzD,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,sDAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,4BAAA;AAAA,EACjB,cAAA,EAAgB,oCAAA;AAAA,EAChB,OAAA,EAAS,2BAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,MAAA,EAAQ,WAAA,EAAa,WAAU,KAAM;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,OAAA,CAAQ,WAAW,CAAA;AAC1D,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,mBAAA,EAAsB,WAAW,cAAc,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,cAAA,CAAe,UAAA,CAAW,SAAS,CAAA;AACzD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,SAAS,cAAc,CAAA;AAAA,MACpF;AACA,MAAA,IAAI,OAAA,CAAQ,gBAAgB,WAAA,EAAa;AACvC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,SAAS,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SAC9E,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,SAAA,CAAU,oBAAoB,SAAA,EAAW;AAC3C,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,cAAA,CAAe,cAAc,SAAS,CAAA;AAG5C,MAAA,MAAA,CAAO,SAAA,EAAU,EAAG,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA;AAE9C,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,OAAA,EAAS,CAAA,QAAA,EAAW,OAAA,CAAQ,aAAa,CAAA,qBAAA;AAAA,OAC3C;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,oCAAoC,WAAA,CAAY;AAAA,EAC3D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mDAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,0BAAA;AAAA,EACjB,gBAAA,EAAkB,mCAAA;AAAA,EAClB,cAAA,EAAgB,sCAAA;AAAA,EAChB,OAAA,EAAS,6BAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,qBAAqB,CAAA;AAAA,EAC5B,SAAS,OAAO,EAAE,QAAQ,WAAA,EAAa,IAAA,EAAM,IAAG,KAAM;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA;AAC1D,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+CAA+C,CAAA;AAAA,MACzF;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,cAAA,CAAe,UAAA,CAAW,IAAI,CAAA;AACxD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,IAAI,cAAc,CAAA;AAAA,MAC/E;AACA,MAAA,IAAI,WAAA,CAAY,gBAAgB,WAAA,EAAa;AAC3C,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,IAAI,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SACzE,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,UAAA,CAAW,EAAE,CAAA;AACpD,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,gBAAA,EAAmB,EAAE,cAAc,CAAA;AAAA,MAC7E;AACA,MAAA,IAAI,SAAA,CAAU,gBAAgB,WAAA,EAAa;AACzC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,gBAAA,EAAmB,EAAE,CAAA,0BAAA,EAA6B,WAAW,CAAA;AAAA,SACvE,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,UAAA,GAAa,wBAAA;AAAA,QACjB,WAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,QAAA,GAAW,wBAAA;AAAA,QACf,SAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,UAAA,EAAY,QAAQ,CAAA;AAEtD,MAAA,OAAO;AAAA,QACL,KAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qCAAqC,CAAA;AAAA,IACjE;AAAA,EACF;AACF,CAAC","file":"chunk-ITIAC2TC.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n mcpClientVersionPathParams,\n mcpClientVersionIdPathParams,\n listMCPClientVersionsQuerySchema,\n createMCPClientVersionBodySchema,\n compareMCPClientVersionsQuerySchema,\n listMCPClientVersionsResponseSchema,\n getMCPClientVersionResponseSchema,\n createMCPClientVersionResponseSchema,\n activateMCPClientVersionResponseSchema,\n restoreMCPClientVersionResponseSchema,\n deleteMCPClientVersionResponseSchema,\n compareMCPClientVersionsResponseSchema,\n} from '../schemas/mcp-client-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client\n */\nexport const LIST_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: listMCPClientVersionsQuerySchema,\n responseSchema: listMCPClientVersionsResponseSchema,\n summary: 'List MCP client versions',\n description: 'Returns a paginated list of all versions for a stored MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const result = await mcpClientStore.listVersions({\n mcpClientId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing MCP client versions');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions - Create a new version snapshot\n */\nexport const CREATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n bodySchema: createMCPClientVersionBodySchema,\n responseSchema: createMCPClientVersionResponseSchema,\n summary: 'Create MCP client version',\n description: 'Creates a new version snapshot of the current MCP client configuration',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (mcpClient.activeVersionId) {\n const activeVersion = await mcpClientStore.getVersion(mcpClient.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n\n // If no activeVersionId, fall back to latest version config\n if (!mcpClient.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/:versionId - Get a specific version\n */\nexport const GET_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: getMCPClientVersionResponseSchema,\n summary: 'Get MCP client version',\n description: 'Returns a specific version of an MCP client by its version ID',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: activateMCPClientVersionResponseSchema,\n summary: 'Activate MCP client version',\n description: 'Sets a specific version as the active version for the MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n await mcpClientStore.update({\n id: mcpClientId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore - Restore MCP client to a version\n */\nexport const RESTORE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: restoreMCPClientVersionResponseSchema,\n summary: 'Restore MCP client version',\n description: 'Restores the MCP client configuration from a version, creating a new version',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const versionToRestore = await mcpClientStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n await mcpClientStore.update({\n id: mcpClientId,\n ...restoredConfig,\n });\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await mcpClientStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring MCP client version');\n }\n },\n});\n\n/**\n * DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId - Delete a version\n */\nexport const DELETE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: deleteMCPClientVersionResponseSchema,\n summary: 'Delete MCP client version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n if (mcpClient.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await mcpClientStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/compare - Compare two versions\n */\nexport const COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: compareMCPClientVersionsQuerySchema,\n responseSchema: compareMCPClientVersionsResponseSchema,\n summary: 'Compare MCP client versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const fromVersion = await mcpClientStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const toVersion = await mcpClientStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing MCP client versions');\n }\n },\n});\n"]}
|