@mastra/server 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -0
- package/dist/chunk-2AUSWWKT.js +75 -0
- package/dist/chunk-2AUSWWKT.js.map +1 -0
- package/dist/{chunk-RLZPX2YZ.js → chunk-2E5ZB7FH.js} +7 -5
- package/dist/{chunk-RLZPX2YZ.js.map → chunk-2E5ZB7FH.js.map} +1 -1
- package/dist/chunk-2ERW3HSX.js +71 -0
- package/dist/chunk-2ERW3HSX.js.map +1 -0
- package/dist/{chunk-QRQAZI3Q.js → chunk-2GOCJDE2.js} +6 -73
- package/dist/chunk-2GOCJDE2.js.map +1 -0
- package/dist/{chunk-SVQNZ6U2.js → chunk-2OBRONRW.js} +4 -15
- package/dist/chunk-2OBRONRW.js.map +1 -0
- package/dist/chunk-43MOXX6D.cjs +74 -0
- package/dist/chunk-43MOXX6D.cjs.map +1 -0
- package/dist/chunk-47RDD2HN.js +61 -0
- package/dist/chunk-47RDD2HN.js.map +1 -0
- package/dist/{chunk-S7BVUW44.cjs → chunk-4NZHZQ6Q.cjs} +13 -8
- package/dist/chunk-4NZHZQ6Q.cjs.map +1 -0
- package/dist/{chunk-HFOR62M4.js → chunk-4V5MHFM6.js} +4 -343
- package/dist/chunk-4V5MHFM6.js.map +1 -0
- package/dist/chunk-574U64WA.cjs +103 -0
- package/dist/chunk-574U64WA.cjs.map +1 -0
- package/dist/chunk-5HJQACVQ.cjs +32 -0
- package/dist/chunk-5HJQACVQ.cjs.map +1 -0
- package/dist/chunk-5N4O5XJZ.js +259 -0
- package/dist/chunk-5N4O5XJZ.js.map +1 -0
- package/dist/chunk-5WFMCDP6.cjs +42 -0
- package/dist/chunk-5WFMCDP6.cjs.map +1 -0
- package/dist/{chunk-NBYRUVSE.cjs → chunk-6LFZL6QU.cjs} +100 -443
- package/dist/chunk-6LFZL6QU.cjs.map +1 -0
- package/dist/{chunk-D6AEONK2.js → chunk-6LTXNJU5.js} +4 -4
- package/dist/chunk-6LTXNJU5.js.map +1 -0
- package/dist/{chunk-VKBYR4V4.js → chunk-6M6OX2GI.js} +5 -5
- package/dist/{chunk-VKBYR4V4.js.map → chunk-6M6OX2GI.js.map} +1 -1
- package/dist/chunk-6P7P7Y5U.cjs +11959 -0
- package/dist/chunk-6P7P7Y5U.cjs.map +1 -0
- package/dist/{chunk-E4NYFEOQ.cjs → chunk-6T2DK2GP.cjs} +16 -71
- package/dist/chunk-6T2DK2GP.cjs.map +1 -0
- package/dist/chunk-7D3YBNO6.cjs +76 -0
- package/dist/chunk-7D3YBNO6.cjs.map +1 -0
- package/dist/chunk-7NDOPT3W.js +73 -0
- package/dist/chunk-7NDOPT3W.js.map +1 -0
- package/dist/{chunk-XQURD55R.js → chunk-7RVXUWRC.js} +4 -33
- package/dist/chunk-7RVXUWRC.js.map +1 -0
- package/dist/{chunk-S5SBIVKP.js → chunk-A37KSL6V.js} +4 -69
- package/dist/chunk-A37KSL6V.js.map +1 -0
- package/dist/{chunk-Y6UBLYBC.cjs → chunk-ALE53JHX.cjs} +13 -13
- package/dist/{chunk-Y6UBLYBC.cjs.map → chunk-ALE53JHX.cjs.map} +1 -1
- package/dist/chunk-AUPN3AM6.js +34 -0
- package/dist/chunk-AUPN3AM6.js.map +1 -0
- package/dist/chunk-BAECEBZY.cjs +117 -0
- package/dist/chunk-BAECEBZY.cjs.map +1 -0
- package/dist/{chunk-ELLQE6XA.js → chunk-BBMSARPV.js} +4 -46
- package/dist/chunk-BBMSARPV.js.map +1 -0
- package/dist/chunk-BNJI7YMJ.cjs +89 -0
- package/dist/chunk-BNJI7YMJ.cjs.map +1 -0
- package/dist/chunk-BOIOGPBE.js +24 -0
- package/dist/chunk-BOIOGPBE.js.map +1 -0
- package/dist/chunk-BTRFBBRF.js +102 -0
- package/dist/chunk-BTRFBBRF.js.map +1 -0
- package/dist/{chunk-RCEX4V4N.cjs → chunk-C3U5LR4X.cjs} +24 -124
- package/dist/chunk-C3U5LR4X.cjs.map +1 -0
- package/dist/{chunk-GAATB3SN.cjs → chunk-CMGZD5UE.cjs} +29 -94
- package/dist/chunk-CMGZD5UE.cjs.map +1 -0
- package/dist/chunk-CWPZX27X.cjs +88 -0
- package/dist/chunk-CWPZX27X.cjs.map +1 -0
- package/dist/{chunk-DX7T3ZCH.js → chunk-D64GTBXM.js} +5 -5
- package/dist/{chunk-DX7T3ZCH.js.map → chunk-D64GTBXM.js.map} +1 -1
- package/dist/{chunk-IXWCFFVU.cjs → chunk-DK4A344H.cjs} +28 -74
- package/dist/chunk-DK4A344H.cjs.map +1 -0
- package/dist/{chunk-VFRQX7CD.cjs → chunk-DMAGP2MP.cjs} +28 -79
- package/dist/chunk-DMAGP2MP.cjs.map +1 -0
- package/dist/{chunk-3P34AJWW.js → chunk-DWDLH2Q5.js} +5 -60
- package/dist/chunk-DWDLH2Q5.js.map +1 -0
- package/dist/{chunk-DRFNY77Q.cjs → chunk-EFX5WYRT.cjs} +12 -10
- package/dist/chunk-EFX5WYRT.cjs.map +1 -0
- package/dist/{chunk-S46TMT6A.cjs → chunk-F4HPG2WH.cjs} +35 -152
- package/dist/chunk-F4HPG2WH.cjs.map +1 -0
- package/dist/{chunk-DW6ZTEJ4.cjs → chunk-FBIKXU4U.cjs} +29 -88
- package/dist/chunk-FBIKXU4U.cjs.map +1 -0
- package/dist/chunk-FU22BXAG.cjs +29 -0
- package/dist/chunk-FU22BXAG.cjs.map +1 -0
- package/dist/{chunk-PYO3IWOR.js → chunk-GESVIYWC.js} +74 -388
- package/dist/chunk-GESVIYWC.js.map +1 -0
- package/dist/{chunk-43WGLEEB.js → chunk-GRI42AT7.js} +5 -5
- package/dist/chunk-GRI42AT7.js.map +1 -0
- package/dist/{chunk-BAWISNLT.cjs → chunk-GU5KJAMA.cjs} +14 -37
- package/dist/chunk-GU5KJAMA.cjs.map +1 -0
- package/dist/{chunk-MOR4VVBW.js → chunk-H4AABNBB.js} +4 -4
- package/dist/chunk-H4AABNBB.js.map +1 -0
- package/dist/{chunk-B5JKQOIU.cjs → chunk-HERQV6YY.cjs} +22 -22
- package/dist/{chunk-B5JKQOIU.cjs.map → chunk-HERQV6YY.cjs.map} +1 -1
- package/dist/{chunk-BZMWUSOF.js → chunk-HMUJSYUR.js} +4 -4
- package/dist/chunk-HMUJSYUR.js.map +1 -0
- package/dist/{chunk-WQWSVABP.cjs → chunk-HOAPZDJV.cjs} +81 -81
- package/dist/{chunk-WQWSVABP.cjs.map → chunk-HOAPZDJV.cjs.map} +1 -1
- package/dist/{chunk-KJ3H6ED4.js → chunk-HWOBV3IH.js} +11 -176
- package/dist/{chunk-KJ3H6ED4.js.map → chunk-HWOBV3IH.js.map} +1 -1
- package/dist/chunk-I4THGZHE.js +52 -0
- package/dist/chunk-I4THGZHE.js.map +1 -0
- package/dist/chunk-II6TN6MR.js +171 -0
- package/dist/chunk-II6TN6MR.js.map +1 -0
- package/dist/chunk-J3SEZ24R.cjs +70 -0
- package/dist/chunk-J3SEZ24R.cjs.map +1 -0
- package/dist/{chunk-CPEJA5XY.cjs → chunk-JGK2MALT.cjs} +9 -42
- package/dist/chunk-JGK2MALT.cjs.map +1 -0
- package/dist/{chunk-MWWNB5KJ.js → chunk-JK3GI25F.js} +6 -102
- package/dist/chunk-JK3GI25F.js.map +1 -0
- package/dist/{chunk-QYPZ4IND.js → chunk-JTAGYRQP.js} +3 -3
- package/dist/chunk-JTAGYRQP.js.map +1 -0
- package/dist/{chunk-7F2JBD7F.cjs → chunk-JWCTCYDF.cjs} +13 -81
- package/dist/chunk-JWCTCYDF.cjs.map +1 -0
- package/dist/{chunk-OBA7KIAW.js → chunk-KF2QGKT3.js} +4 -68
- package/dist/chunk-KF2QGKT3.js.map +1 -0
- package/dist/chunk-KPMEA5UE.js +121 -0
- package/dist/chunk-KPMEA5UE.js.map +1 -0
- package/dist/chunk-KTKTSTDR.cjs +297 -0
- package/dist/chunk-KTKTSTDR.cjs.map +1 -0
- package/dist/chunk-KXXILK3T.cjs +134 -0
- package/dist/chunk-KXXILK3T.cjs.map +1 -0
- package/dist/chunk-LCP4G5CT.cjs +83 -0
- package/dist/chunk-LCP4G5CT.cjs.map +1 -0
- package/dist/{chunk-2RQXCCD4.js → chunk-LIPXZWEY.js} +7 -7
- package/dist/{chunk-2RQXCCD4.js.map → chunk-LIPXZWEY.js.map} +1 -1
- package/dist/{chunk-GDE4YNSF.cjs → chunk-LKBYAMJS.cjs} +31 -31
- package/dist/{chunk-GDE4YNSF.cjs.map → chunk-LKBYAMJS.cjs.map} +1 -1
- package/dist/{chunk-LIXI3MOA.cjs → chunk-LNIERC4T.cjs} +27 -87
- package/dist/chunk-LNIERC4T.cjs.map +1 -0
- package/dist/chunk-LOA2QO6H.cjs +391 -0
- package/dist/chunk-LOA2QO6H.cjs.map +1 -0
- package/dist/{chunk-OQZPEQXU.cjs → chunk-LTJHINYX.cjs} +17 -96
- package/dist/chunk-LTJHINYX.cjs.map +1 -0
- package/dist/chunk-LU7HU7KW.cjs +65 -0
- package/dist/chunk-LU7HU7KW.cjs.map +1 -0
- package/dist/chunk-LW2FKUW5.js +94 -0
- package/dist/chunk-LW2FKUW5.js.map +1 -0
- package/dist/chunk-NLMVQMCR.js +85 -0
- package/dist/chunk-NLMVQMCR.js.map +1 -0
- package/dist/{chunk-LFB6AUDW.js → chunk-NOT4JSQJ.js} +7 -7
- package/dist/chunk-NOT4JSQJ.js.map +1 -0
- package/dist/{chunk-OQG4AAGQ.cjs → chunk-NSB6AGO3.cjs} +27 -92
- package/dist/chunk-NSB6AGO3.cjs.map +1 -0
- package/dist/chunk-O272KKXN.cjs +111 -0
- package/dist/chunk-O272KKXN.cjs.map +1 -0
- package/dist/chunk-OLKVMPNB.js +11943 -0
- package/dist/chunk-OLKVMPNB.js.map +1 -0
- package/dist/{chunk-O26N7P6R.js → chunk-ONORVWSC.js} +3 -3
- package/dist/{chunk-O26N7P6R.js.map → chunk-ONORVWSC.js.map} +1 -1
- package/dist/chunk-OP626LZY.js +61 -0
- package/dist/chunk-OP626LZY.js.map +1 -0
- package/dist/chunk-P2ZMGGHF.cjs +19 -0
- package/dist/chunk-P2ZMGGHF.cjs.map +1 -0
- package/dist/{chunk-V4RWTVRV.cjs → chunk-P445W4ET.cjs} +76 -334
- package/dist/chunk-P445W4ET.cjs.map +1 -0
- package/dist/chunk-PALNMAC6.js +1 -1
- package/dist/{chunk-JSX4LRMG.cjs → chunk-PEG4SKER.cjs} +33 -33
- package/dist/{chunk-JSX4LRMG.cjs.map → chunk-PEG4SKER.cjs.map} +1 -1
- package/dist/{chunk-27QSSHGX.js → chunk-PGABFIYY.js} +4 -51
- package/dist/chunk-PGABFIYY.js.map +1 -0
- package/dist/chunk-PNJPBMSY.js +69 -0
- package/dist/chunk-PNJPBMSY.js.map +1 -0
- package/dist/chunk-PONEV4T5.js +47 -0
- package/dist/chunk-PONEV4T5.js.map +1 -0
- package/dist/{chunk-LIMSH6CA.js → chunk-Q7KDJZGD.js} +23 -136
- package/dist/chunk-Q7KDJZGD.js.map +1 -0
- package/dist/chunk-QB3ZGAO4.js +57 -0
- package/dist/chunk-QB3ZGAO4.js.map +1 -0
- package/dist/{chunk-YHXHZINI.js → chunk-QGDZ4IB6.js} +6 -62
- package/dist/chunk-QGDZ4IB6.js.map +1 -0
- package/dist/chunk-QIP5UCDX.js +16 -0
- package/dist/chunk-QIP5UCDX.js.map +1 -0
- package/dist/{chunk-5OOQPDVS.cjs → chunk-QOLNS6MT.cjs} +109 -291
- package/dist/chunk-QOLNS6MT.cjs.map +1 -0
- package/dist/{chunk-MKIO7LCE.cjs → chunk-QQGEBRIG.cjs} +6 -17
- package/dist/chunk-QQGEBRIG.cjs.map +1 -0
- package/dist/chunk-QTBCX6KF.cjs +84 -0
- package/dist/chunk-QTBCX6KF.cjs.map +1 -0
- package/dist/{chunk-TRIYMJ4C.cjs → chunk-R2DKW2EK.cjs} +26 -120
- package/dist/chunk-R2DKW2EK.cjs.map +1 -0
- package/dist/{chunk-W7PA7IJX.js → chunk-R3SMI5BC.js} +5 -259
- package/dist/chunk-R3SMI5BC.js.map +1 -0
- package/dist/{chunk-E2UIA7IY.cjs → chunk-RCSPGNEZ.cjs} +3 -2
- package/dist/chunk-RCSPGNEZ.cjs.map +1 -0
- package/dist/{chunk-SAHA4QAC.js → chunk-RKKIUW52.js} +6 -75
- package/dist/chunk-RKKIUW52.js.map +1 -0
- package/dist/{chunk-R3WEUP7P.cjs → chunk-SE3VUDBK.cjs} +14 -3
- package/dist/chunk-SE3VUDBK.cjs.map +1 -0
- package/dist/{chunk-6JJCLDVS.cjs → chunk-SI3B7F4U.cjs} +28 -98
- package/dist/chunk-SI3B7F4U.cjs.map +1 -0
- package/dist/{chunk-ONKZNI7W.cjs → chunk-STHQS3QR.cjs} +116 -116
- package/dist/chunk-STHQS3QR.cjs.map +1 -0
- package/dist/chunk-TB3QXBEC.js +65 -0
- package/dist/chunk-TB3QXBEC.js.map +1 -0
- package/dist/chunk-TJIN7OPG.js +69 -0
- package/dist/chunk-TJIN7OPG.js.map +1 -0
- package/dist/{chunk-SCSCPEXU.cjs → chunk-TKBRQY5C.cjs} +24 -97
- package/dist/chunk-TKBRQY5C.cjs.map +1 -0
- package/dist/{chunk-TOAWPUWG.cjs → chunk-TSMZEPL3.cjs} +27 -27
- package/dist/chunk-TSMZEPL3.cjs.map +1 -0
- package/dist/{chunk-4Q3QO4MB.cjs → chunk-U3PO2SCK.cjs} +6 -5
- package/dist/chunk-U3PO2SCK.cjs.map +1 -0
- package/dist/chunk-U4YUXGDH.cjs +195 -0
- package/dist/chunk-U4YUXGDH.cjs.map +1 -0
- package/dist/chunk-ULL6VJ5E.cjs +90 -0
- package/dist/chunk-ULL6VJ5E.cjs.map +1 -0
- package/dist/{chunk-MHYPFRBW.js → chunk-UOJM27PI.js} +4 -83
- package/dist/chunk-UOJM27PI.js.map +1 -0
- package/dist/{chunk-U53P5KGY.js → chunk-URPQ6FHZ.js} +6 -6
- package/dist/chunk-URPQ6FHZ.js.map +1 -0
- package/dist/{chunk-R6M5RX3R.cjs → chunk-USD6C4ZL.cjs} +25 -16
- package/dist/chunk-USD6C4ZL.cjs.map +1 -0
- package/dist/{chunk-5CRPJSGU.js → chunk-USZD5AX2.js} +4 -4
- package/dist/chunk-USZD5AX2.js.map +1 -0
- package/dist/chunk-V7DWWIJ6.js +18 -0
- package/dist/chunk-V7DWWIJ6.js.map +1 -0
- package/dist/chunk-VDG7SNSS.js +343 -0
- package/dist/chunk-VDG7SNSS.js.map +1 -0
- package/dist/{chunk-Z3LL4AAE.js → chunk-VKTJMAUK.js} +6 -8
- package/dist/chunk-VKTJMAUK.js.map +1 -0
- package/dist/{chunk-KD3YOO6V.cjs → chunk-VTHT3PPM.cjs} +7 -5
- package/dist/chunk-VTHT3PPM.cjs.map +1 -0
- package/dist/{chunk-BJ7PYBAM.cjs → chunk-W34IV6DV.cjs} +24 -95
- package/dist/chunk-W34IV6DV.cjs.map +1 -0
- package/dist/{chunk-42NL52FN.js → chunk-WAWVGCSA.js} +5 -24
- package/dist/chunk-WAWVGCSA.js.map +1 -0
- package/dist/chunk-WOMVBFIP.cjs +81 -0
- package/dist/chunk-WOMVBFIP.cjs.map +1 -0
- package/dist/{chunk-6WDBVMGU.js → chunk-WXS6DNFY.js} +4 -65
- package/dist/chunk-WXS6DNFY.js.map +1 -0
- package/dist/{chunk-OFVMF4SA.js → chunk-X2UK65IJ.js} +5 -95
- package/dist/chunk-X2UK65IJ.js.map +1 -0
- package/dist/{chunk-Q5HPZJ5K.js → chunk-YEGGGHMD.js} +4 -4
- package/dist/{chunk-Q5HPZJ5K.js.map → chunk-YEGGGHMD.js.map} +1 -1
- package/dist/chunk-YUWWXTL2.cjs +69 -0
- package/dist/chunk-YUWWXTL2.cjs.map +1 -0
- package/dist/{chunk-WQW3XWRQ.js → chunk-YVN3HW3L.js} +4 -55
- package/dist/chunk-YVN3HW3L.js.map +1 -0
- package/dist/{chunk-AILL53XB.cjs → chunk-Z2QBLWUE.cjs} +1008 -1325
- package/dist/chunk-Z2QBLWUE.cjs.map +1 -0
- package/dist/{chunk-QTII22RU.js → chunk-ZMQY23MO.js} +4 -70
- package/dist/chunk-ZMQY23MO.js.map +1 -0
- package/dist/{chunk-RWLJZWDL.cjs → chunk-ZYXDUS6Q.cjs} +4 -3
- package/dist/chunk-ZYXDUS6Q.cjs.map +1 -0
- package/dist/dist-47C5ZLC7.js +1 -1
- package/dist/dist-BSWYTOHE.js +1 -1
- package/dist/dist-GKNLMW5G.js +1 -1
- package/dist/dist-RVKG65AN.js +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-YRWU6CY3-OSS4UPF4.cjs → observational-memory-XXD6E2SO-3I4EZBKC.cjs} +308 -40
- package/dist/observational-memory-XXD6E2SO-3I4EZBKC.cjs.map +1 -0
- package/dist/{observational-memory-YRWU6CY3-I7PD5THQ.js → observational-memory-XXD6E2SO-QVSLOLI6.js} +308 -40
- package/dist/observational-memory-XXD6E2SO-QVSLOLI6.js.map +1 -0
- package/dist/server/handlers/a2a.cjs +9 -9
- package/dist/server/handlers/a2a.d.ts +95 -2
- 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.d.ts +377 -15
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.d.ts +13233 -2792
- package/dist/server/handlers/agent-versions.d.ts.map +1 -1
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +33 -33
- package/dist/server/handlers/agents.d.ts +4721 -134
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +10 -10
- package/dist/server/handlers/auth.d.ts +152 -13
- package/dist/server/handlers/auth.d.ts.map +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/datasets.cjs +21 -21
- package/dist/server/handlers/datasets.d.ts +416 -20
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.d.ts +105 -3
- package/dist/server/handlers/logs.d.ts.map +1 -1
- 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.d.ts +197 -7
- package/dist/server/handlers/mcp-client-versions.d.ts.map +1 -1
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/mcp.cjs +9 -9
- package/dist/server/handlers/mcp.d.ts +73 -8
- package/dist/server/handlers/mcp.d.ts.map +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.d.ts +579 -25
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +5 -5
- package/dist/server/handlers/observability.d.ts +181 -10
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/processor-providers.cjs +3 -3
- package/dist/server/handlers/processor-providers.d.ts +29 -2
- package/dist/server/handlers/processor-providers.d.ts.map +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +4 -4
- package/dist/server/handlers/processors.d.ts +113 -3
- package/dist/server/handlers/processors.d.ts.map +1 -1
- 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.d.ts +563 -7
- package/dist/server/handlers/prompt-block-versions.d.ts.map +1 -1
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- package/dist/server/handlers/scorer-versions.d.ts +311 -7
- package/dist/server/handlers/scorer-versions.d.ts.map +1 -1
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.d.ts +84 -6
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +7 -7
- package/dist/server/handlers/stored-agents.d.ts +5965 -6883
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- 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.d.ts +191 -5
- package/dist/server/handlers/stored-mcp-clients.d.ts.map +1 -1
- 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.d.ts +561 -5
- package/dist/server/handlers/stored-prompt-blocks.d.ts.map +1 -1
- 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.d.ts +305 -5
- package/dist/server/handlers/stored-scorers.d.ts.map +1 -1
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.d.ts +235 -6
- package/dist/server/handlers/stored-skills.d.ts.map +1 -1
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.d.ts +331 -5
- package/dist/server/handlers/stored-workspaces.d.ts.map +1 -1
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.d.ts +8 -1
- 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.d.ts +48 -4
- package/dist/server/handlers/tool-providers.d.ts.map +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.d.ts +41 -5
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/vector.cjs +16 -16
- package/dist/server/handlers/vector.d.ts +67 -8
- package/dist/server/handlers/vector.d.ts.map +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.d.ts +41 -7
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +24 -24
- package/dist/server/handlers/workflows.d.ts +551 -23
- 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.d.ts +664 -39
- package/dist/server/handlers/workspace.d.ts.map +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +26 -26
- package/dist/server/handlers.js +13 -13
- package/dist/server/schemas/__tests__/route-contracts.typetest.d.ts +2 -0
- package/dist/server/schemas/__tests__/route-contracts.typetest.d.ts.map +1 -0
- package/dist/server/schemas/index.cjs +1717 -0
- package/dist/server/schemas/index.cjs.map +1 -0
- package/dist/server/schemas/index.d.ts +33 -0
- package/dist/server/schemas/index.d.ts.map +1 -0
- package/dist/server/schemas/index.js +32 -0
- package/dist/server/schemas/index.js.map +1 -0
- package/dist/server/schemas/route-contracts.d.ts +74 -0
- package/dist/server/schemas/route-contracts.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +290 -294
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +4 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +65 -69
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/openapi-utils.d.ts +2 -2
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/a2a.d.ts +187 -2
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +607 -2
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agents.d.ts +43 -1
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/datasets.d.ts +768 -2
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/index.d.ts +75 -4
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/legacy.d.ts +347 -2
- package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/logs.d.ts +193 -2
- package/dist/server/server-adapter/routes/logs.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/mcp.d.ts +131 -2
- package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts +1082 -2
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +308 -2
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/processor-providers.d.ts +43 -2
- package/dist/server/server-adapter/routes/processor-providers.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/processors.d.ts +197 -2
- package/dist/server/server-adapter/routes/processors.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts +6 -6
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/scorers.d.ts +157 -2
- package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-agents.d.ts +22 -1
- package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-mcp-clients.d.ts +720 -2
- package/dist/server/server-adapter/routes/stored-mcp-clients.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-prompt-blocks.d.ts +1697 -2
- package/dist/server/server-adapter/routes/stored-prompt-blocks.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-scorers.d.ts +1077 -2
- package/dist/server/server-adapter/routes/stored-scorers.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-skills.d.ts +459 -2
- package/dist/server/server-adapter/routes/stored-skills.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts +653 -2
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/system.d.ts +8 -1
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/tool-providers.d.ts +89 -2
- package/dist/server/server-adapter/routes/tool-providers.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/tools.d.ts +43 -2
- package/dist/server/server-adapter/routes/tools.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/vectors.d.ts +119 -2
- package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +897 -2
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workspace.d.ts +650 -2
- package/dist/server/server-adapter/routes/workspace.d.ts.map +1 -1
- package/package.json +19 -9
- package/schemas.d.ts +1 -0
- package/dist/chunk-27QSSHGX.js.map +0 -1
- package/dist/chunk-3P34AJWW.js.map +0 -1
- package/dist/chunk-42NL52FN.js.map +0 -1
- package/dist/chunk-43WGLEEB.js.map +0 -1
- package/dist/chunk-4Q3QO4MB.cjs.map +0 -1
- package/dist/chunk-5CRPJSGU.js.map +0 -1
- package/dist/chunk-5OOQPDVS.cjs.map +0 -1
- package/dist/chunk-6JJCLDVS.cjs.map +0 -1
- package/dist/chunk-6WDBVMGU.js.map +0 -1
- package/dist/chunk-7F2JBD7F.cjs.map +0 -1
- package/dist/chunk-AILL53XB.cjs.map +0 -1
- package/dist/chunk-BAWISNLT.cjs.map +0 -1
- package/dist/chunk-BJ7PYBAM.cjs.map +0 -1
- package/dist/chunk-BZMWUSOF.js.map +0 -1
- package/dist/chunk-CPEJA5XY.cjs.map +0 -1
- package/dist/chunk-D6AEONK2.js.map +0 -1
- package/dist/chunk-DRFNY77Q.cjs.map +0 -1
- package/dist/chunk-DW6ZTEJ4.cjs.map +0 -1
- package/dist/chunk-E2UIA7IY.cjs.map +0 -1
- package/dist/chunk-E4NYFEOQ.cjs.map +0 -1
- package/dist/chunk-ELLQE6XA.js.map +0 -1
- package/dist/chunk-GAATB3SN.cjs.map +0 -1
- package/dist/chunk-GTFXCNM6.cjs +0 -343
- package/dist/chunk-GTFXCNM6.cjs.map +0 -1
- package/dist/chunk-HFOR62M4.js.map +0 -1
- package/dist/chunk-IXWCFFVU.cjs.map +0 -1
- package/dist/chunk-KD3YOO6V.cjs.map +0 -1
- package/dist/chunk-LFB6AUDW.js.map +0 -1
- package/dist/chunk-LIMSH6CA.js.map +0 -1
- package/dist/chunk-LIXI3MOA.cjs.map +0 -1
- package/dist/chunk-MHYPFRBW.js.map +0 -1
- package/dist/chunk-MKIO7LCE.cjs.map +0 -1
- package/dist/chunk-MOR4VVBW.js.map +0 -1
- package/dist/chunk-MWWNB5KJ.js.map +0 -1
- package/dist/chunk-NBYRUVSE.cjs.map +0 -1
- package/dist/chunk-OBA7KIAW.js.map +0 -1
- package/dist/chunk-OFVMF4SA.js.map +0 -1
- package/dist/chunk-ONKZNI7W.cjs.map +0 -1
- package/dist/chunk-OQG4AAGQ.cjs.map +0 -1
- package/dist/chunk-OQZPEQXU.cjs.map +0 -1
- package/dist/chunk-PYO3IWOR.js.map +0 -1
- package/dist/chunk-QG276LOL.js +0 -335
- package/dist/chunk-QG276LOL.js.map +0 -1
- package/dist/chunk-QRQAZI3Q.js.map +0 -1
- package/dist/chunk-QTII22RU.js.map +0 -1
- package/dist/chunk-QYPZ4IND.js.map +0 -1
- package/dist/chunk-R3WEUP7P.cjs.map +0 -1
- package/dist/chunk-R6M5RX3R.cjs.map +0 -1
- package/dist/chunk-RCEX4V4N.cjs.map +0 -1
- package/dist/chunk-RWLJZWDL.cjs.map +0 -1
- package/dist/chunk-S46TMT6A.cjs.map +0 -1
- package/dist/chunk-S5SBIVKP.js.map +0 -1
- package/dist/chunk-S7BVUW44.cjs.map +0 -1
- package/dist/chunk-SAHA4QAC.js.map +0 -1
- package/dist/chunk-SCSCPEXU.cjs.map +0 -1
- package/dist/chunk-SVQNZ6U2.js.map +0 -1
- package/dist/chunk-TOAWPUWG.cjs.map +0 -1
- package/dist/chunk-TRIYMJ4C.cjs.map +0 -1
- package/dist/chunk-U53P5KGY.js.map +0 -1
- package/dist/chunk-V4RWTVRV.cjs.map +0 -1
- package/dist/chunk-VFRQX7CD.cjs.map +0 -1
- package/dist/chunk-W7PA7IJX.js.map +0 -1
- package/dist/chunk-WQW3XWRQ.js.map +0 -1
- package/dist/chunk-XQURD55R.js.map +0 -1
- package/dist/chunk-YHXHZINI.js.map +0 -1
- package/dist/chunk-Z3LL4AAE.js.map +0 -1
- package/dist/observational-memory-YRWU6CY3-I7PD5THQ.js.map +0 -1
- package/dist/observational-memory-YRWU6CY3-OSS4UPF4.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/memory.ts"],"names":["__export","HTTPException","createRoute","getMemoryStatusQuerySchema","memoryStatusResponseSchema","handleError","getMemoryConfigQuerySchema","memoryConfigResponseSchema","getObservationalMemoryQuerySchema","getObservationalMemoryResponseSchema","awaitBufferStatusBodySchema","awaitBufferStatusResponseSchema","listThreadsQuerySchema","listThreadsResponseSchema","getEffectiveResourceId","threadIdPathParams","getThreadByIdQuerySchema","getThreadByIdResponseSchema","getEffectiveThreadId","validateBody","validateThreadOwnership","listMessagesQuerySchema","listMessagesResponseSchema","getWorkingMemoryQuerySchema","getWorkingMemoryResponseSchema","generateEmptyFromSchema","agentIdQuerySchema","saveMessagesBodySchema","saveMessagesResponseSchema","createThreadBodySchema","updateThreadBodySchema","deleteThreadQuerySchema","deleteThreadResponseSchema","cloneThreadBodySchema","cloneThreadResponseSchema","updateWorkingMemoryBodySchema","updateWorkingMemoryResponseSchema","deleteMessagesQuerySchema","deleteMessagesBodySchema","deleteMessagesResponseSchema","searchMemoryQuerySchema","searchMemoryResponseSchema","getMemoryStatusNetworkQuerySchema","listThreadsNetworkQuerySchema","getThreadByIdNetworkQuerySchema","listMessagesNetworkQuerySchema","saveMessagesNetworkQuerySchema","createThreadNetworkQuerySchema","updateThreadNetworkQuerySchema","deleteThreadNetworkQuerySchema","deleteMessagesNetworkQuerySchema"],"mappings":"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","file":"chunk-6LFZL6QU.cjs","sourcesContent":["import type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { MastraMemory } from '@mastra/core/memory';\nimport type { MastraStorage, MemoryStorage } from '@mastra/core/storage';\nimport { generateEmptyFromSchema } from '@mastra/core/utils';\nimport { HTTPException } from '../http-exception';\nimport {\n threadIdPathParams,\n agentIdQuerySchema,\n getMemoryStatusQuerySchema,\n getMemoryConfigQuerySchema,\n listThreadsQuerySchema,\n getThreadByIdQuerySchema,\n listMessagesQuerySchema,\n getWorkingMemoryQuerySchema,\n deleteThreadQuerySchema,\n deleteMessagesQuerySchema,\n getMemoryStatusNetworkQuerySchema,\n listThreadsNetworkQuerySchema,\n getThreadByIdNetworkQuerySchema,\n listMessagesNetworkQuerySchema,\n saveMessagesNetworkQuerySchema,\n createThreadNetworkQuerySchema,\n updateThreadNetworkQuerySchema,\n deleteThreadNetworkQuerySchema,\n deleteMessagesNetworkQuerySchema,\n memoryStatusResponseSchema,\n memoryConfigResponseSchema,\n listThreadsResponseSchema,\n getThreadByIdResponseSchema,\n listMessagesResponseSchema,\n getWorkingMemoryResponseSchema,\n saveMessagesBodySchema,\n createThreadBodySchema,\n updateThreadBodySchema,\n updateWorkingMemoryBodySchema,\n deleteMessagesBodySchema,\n searchMemoryQuerySchema,\n saveMessagesResponseSchema,\n updateWorkingMemoryResponseSchema,\n searchMemoryResponseSchema,\n deleteThreadResponseSchema,\n deleteMessagesResponseSchema,\n cloneThreadBodySchema,\n cloneThreadResponseSchema,\n getObservationalMemoryQuerySchema,\n getObservationalMemoryResponseSchema,\n awaitBufferStatusBodySchema,\n awaitBufferStatusResponseSchema,\n} from '../schemas/memory';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { validateBody, getEffectiveResourceId, getEffectiveThreadId, validateThreadOwnership } from './utils';\n\ninterface MemoryContext extends Context {\n agentId?: string;\n resourceId?: string;\n threadId?: string;\n requestContext?: RequestContext;\n}\n\ninterface SearchResult {\n id: string;\n role: string;\n content: string;\n createdAt: Date;\n threadId?: string;\n threadTitle?: string;\n score?: number;\n context?: {\n before?: SearchResult[];\n after?: SearchResult[];\n };\n}\n\nexport function getTextContent(message: MastraDBMessage): string {\n if (typeof message.content === 'string') {\n return message.content;\n }\n if (message.content && typeof message.content === 'object' && 'parts' in message.content) {\n const textPart = message.content.parts.find(p => p.type === 'text');\n return textPart?.text || '';\n }\n return '';\n}\n\nasync function getMemoryFromContext({\n mastra,\n agentId,\n requestContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'requestContext'>): Promise<MastraMemory | null | undefined> {\n const logger = mastra.getLogger();\n let agent;\n if (agentId) {\n try {\n agent = mastra.getAgentById(agentId);\n } catch (error) {\n logger.debug('Error getting agent from mastra, searching agents for agent', error);\n }\n }\n if (agentId && !agent) {\n logger.debug('Agent not found in registered agents, trying stored agents', { agentId });\n try {\n const storedAgent = (await mastra.getEditor()?.agent.getById(agentId)) ?? null;\n if (storedAgent) {\n agent = storedAgent;\n }\n } catch (error) {\n logger.debug('Error getting stored agent', error);\n }\n }\n\n if (agentId && !agent) {\n logger.debug('Stored agent not found, searching sub-agents', { agentId });\n const agents = mastra.listAgents();\n if (Object.keys(agents || {}).length) {\n for (const [_, ag] of Object.entries(agents)) {\n try {\n const subAgents = await ag.listAgents({ requestContext });\n\n if (subAgents[agentId]) {\n agent = subAgents[agentId];\n break;\n }\n } catch (error) {\n logger.debug('Error getting agent from agent', error);\n }\n }\n }\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n }\n\n if (agent) {\n return await agent?.getMemory({\n requestContext,\n });\n }\n}\n\n/**\n * Gets the storage from context, used as a fallback when no agentId is provided.\n * This allows fetching threads/messages without knowing which agents were involved.\n */\nfunction getStorageFromContext({ mastra }: Pick<MemoryContext, 'mastra'>): MastraStorage | undefined {\n return mastra.getStorage();\n}\n\n/**\n * Gets the agent from context for OM processor detection.\n */\nasync function getAgentFromContext({\n mastra,\n agentId,\n requestContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'requestContext'>): Promise<Agent | null> {\n if (!agentId) return null;\n\n const logger = mastra.getLogger();\n let agent: Agent | null = null;\n\n // First try registered agents\n try {\n agent = mastra.getAgentById(agentId);\n } catch (error) {\n logger.debug('Error getting agent from mastra', error);\n }\n\n // Then try stored agents\n if (!agent) {\n logger.debug('Agent not found in registered agents, trying stored agents', { agentId });\n try {\n const storedAgent = (await mastra.getEditor()?.agent.getById(agentId)) ?? null;\n if (storedAgent) {\n agent = storedAgent;\n }\n } catch (error) {\n logger.debug('Error getting stored agent', error);\n }\n }\n\n // Finally search sub-agents with requestContext\n if (!agent) {\n logger.debug('Stored agent not found, searching sub-agents', { agentId });\n const agents = mastra.listAgents();\n if (Object.keys(agents || {}).length) {\n for (const [_, ag] of Object.entries(agents)) {\n try {\n const nestedAgents = await ag.listAgents({ requestContext });\n if (nestedAgents[agentId]) {\n agent = nestedAgents[agentId];\n break;\n }\n } catch (error) {\n logger.debug('Error getting agent from agent', error);\n }\n }\n }\n }\n\n return agent;\n}\n\n/**\n * Gets Observational Memory configuration from an agent's processors.\n * Returns null if OM is not enabled.\n */\nasync function getOMConfigFromAgent(\n agent: Agent,\n requestContext?: RequestContext,\n): Promise<{\n enabled: boolean;\n scope?: 'thread' | 'resource';\n shareTokenBudget?: boolean;\n messageTokens?: number | { min: number; max: number };\n observationTokens?: number | { min: number; max: number };\n observationModel?: string;\n reflectionModel?: string;\n} | null> {\n try {\n // Guard against older @mastra/core versions that don't have resolveProcessorById\n if (typeof agent.resolveProcessorById !== 'function') {\n return null;\n }\n const omProcessor = await agent.resolveProcessorById('observational-memory', requestContext);\n if (!omProcessor) {\n return null;\n }\n\n // Use getResolvedConfig if available (properly resolves model names)\n // Fall back to .config for backwards compatibility\n const hasResolvedConfig = typeof (omProcessor as any).getResolvedConfig === 'function';\n\n if (hasResolvedConfig) {\n const resolvedConfig = await (omProcessor as any).getResolvedConfig(requestContext);\n return {\n enabled: true,\n scope: resolvedConfig.scope || 'resource',\n shareTokenBudget: resolvedConfig.shareTokenBudget,\n messageTokens: resolvedConfig.observation?.messageTokens,\n observationTokens: resolvedConfig.reflection?.observationTokens,\n observationModel: resolvedConfig.observation?.model,\n reflectionModel: resolvedConfig.reflection?.model,\n };\n }\n\n // Fallback for older processor versions\n const processorConfig = (omProcessor as any).config || {};\n return {\n enabled: true,\n scope: processorConfig.scope || 'resource',\n shareTokenBudget: processorConfig.shareTokenBudget,\n messageTokens: processorConfig.observation?.messageTokens,\n observationTokens: processorConfig.reflection?.observationTokens,\n observationModel: undefined,\n reflectionModel: undefined,\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Gets Observational Memory status for a specific resource/thread.\n */\nasync function getOMStatus(\n memoryStorage: MemoryStorage,\n resourceId: string,\n threadId?: string,\n): Promise<{\n hasRecord: boolean;\n originType?: string;\n lastObservedAt?: Date | null;\n tokenCount?: number;\n observationTokenCount?: number;\n isObserving?: boolean;\n isReflecting?: boolean;\n} | null> {\n try {\n const record = await memoryStorage.getObservationalMemory(threadId ?? null, resourceId);\n if (!record) {\n return { hasRecord: false };\n }\n\n return {\n hasRecord: true,\n originType: record.originType,\n lastObservedAt: record.lastObservedAt ?? null,\n tokenCount: record.totalTokensObserved,\n observationTokenCount: record.observationTokenCount,\n isObserving: record.isObserving,\n isReflecting: record.isReflecting,\n };\n } catch {\n return null;\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_MEMORY_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/status',\n responseType: 'json',\n queryParamSchema: getMemoryStatusQuerySchema,\n responseSchema: memoryStatusResponseSchema,\n summary: 'Get memory status',\n description: 'Returns the current status of the memory system including configuration and health information',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, threadId, requestContext }) => {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (memory) {\n // Check for Observational Memory\n const agent = await getAgentFromContext({ mastra, agentId, requestContext });\n let omStatus:\n | {\n enabled: boolean;\n hasRecord?: boolean;\n originType?: string;\n lastObservedAt?: Date;\n tokenCount?: number;\n observationTokenCount?: number;\n isObserving?: boolean;\n isReflecting?: boolean;\n }\n | undefined;\n\n if (agent) {\n const omConfig = await getOMConfigFromAgent(agent, requestContext);\n if (omConfig?.enabled && resourceId) {\n // For resource-scoped OM, lookup by resourceId only (threadId=null)\n const omThreadId = omConfig.scope === 'resource' ? undefined : threadId;\n // Get OM status from the agent's memory storage (not mastra.getStorage())\n try {\n const memoryStore = await memory.storage.getStore('memory');\n if (memoryStore) {\n const status = await getOMStatus(memoryStore, resourceId, omThreadId);\n if (status) {\n omStatus = {\n enabled: true,\n ...status,\n // Convert null to undefined for schema compatibility\n lastObservedAt: status.lastObservedAt ?? undefined,\n };\n } else {\n omStatus = { enabled: true, hasRecord: false };\n }\n }\n } catch {\n // Storage not configured, just mark as enabled\n omStatus = { enabled: true };\n }\n } else if (omConfig?.enabled) {\n omStatus = { enabled: true };\n }\n }\n\n return { result: true, observationalMemory: omStatus };\n }\n\n // Only fallback to storage if no agentId was provided\n if (!agentId) {\n const storage = getStorageFromContext({ mastra });\n if (storage) {\n return { result: true };\n }\n }\n\n return { result: false };\n } catch (error) {\n return handleError(error, 'Error getting memory status');\n }\n },\n});\n\nexport const GET_MEMORY_CONFIG_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/config',\n responseType: 'json',\n queryParamSchema: getMemoryConfigQuerySchema,\n responseSchema: memoryConfigResponseSchema,\n summary: 'Get memory configuration',\n description: 'Returns the memory configuration for a specific agent or the system default',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Get the merged configuration (defaults + custom)\n const config = memory.getMergedThreadConfig({});\n\n // Check for Observational Memory config\n const agent = await getAgentFromContext({ mastra, agentId, requestContext });\n let omConfig:\n | {\n enabled: boolean;\n scope?: 'thread' | 'resource';\n messageTokens?: number | { min: number; max: number };\n observationTokens?: number | { min: number; max: number };\n observationModel?: string;\n reflectionModel?: string;\n }\n | undefined;\n\n if (agent) {\n omConfig = (await getOMConfigFromAgent(agent, requestContext)) ?? { enabled: false };\n }\n\n return {\n config: {\n ...config,\n observationalMemory: omConfig,\n },\n };\n } catch (error) {\n return handleError(error, 'Error getting memory configuration');\n }\n },\n});\n\nexport const GET_OBSERVATIONAL_MEMORY_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/observational-memory',\n responseType: 'json',\n queryParamSchema: getObservationalMemoryQuerySchema,\n responseSchema: getObservationalMemoryResponseSchema,\n summary: 'Get observational memory data',\n description: 'Returns the current observational memory record and optional history for a resource/thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, threadId, requestContext }) => {\n try {\n // Verify agent has OM enabled\n const agent = await getAgentFromContext({ mastra, agentId, requestContext });\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const omConfig = await getOMConfigFromAgent(agent, requestContext);\n if (!omConfig?.enabled) {\n throw new HTTPException(400, { message: 'Observational Memory is not enabled for this agent' });\n }\n\n // Get storage from the agent's memory (not mastra.getStorage())\n // This ensures we use the same storage the agent uses for OM\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not configured for this agent' });\n }\n\n let memoryStore: MemoryStorage | undefined;\n try {\n memoryStore = await memory.storage.getStore('memory');\n } catch {\n throw new HTTPException(400, { message: 'Memory storage is not initialized' });\n }\n if (!memoryStore) {\n throw new HTTPException(400, { message: 'Memory storage is not initialized' });\n }\n\n // Determine the resourceId to use\n const effectiveResourceId = resourceId;\n if (!effectiveResourceId) {\n throw new HTTPException(400, { message: 'resourceId is required for observational memory lookup' });\n }\n\n // For resource-scoped OM, lookup by resourceId only (threadId=null)\n const omThreadId = omConfig.scope === 'resource' ? null : (threadId ?? null);\n\n // Get current record\n const record = await memoryStore.getObservationalMemory(omThreadId, effectiveResourceId);\n\n // Get history (last 5 generations)\n const history = await memoryStore.getObservationalMemoryHistory(omThreadId, effectiveResourceId, 5);\n\n return {\n record: record ?? null,\n history: history.length > 0 ? history : undefined,\n };\n } catch (error) {\n return handleError(error, 'Error getting observational memory');\n }\n },\n});\n\nexport const AWAIT_BUFFER_STATUS_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/observational-memory/buffer-status',\n responseType: 'json',\n bodySchema: awaitBufferStatusBodySchema,\n responseSchema: awaitBufferStatusResponseSchema,\n summary: 'Await observational memory buffering completion',\n description:\n 'Blocks until any in-flight buffering operations complete for the given thread/resource, then returns the updated record',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, threadId, requestContext }: MemoryContext) => {\n try {\n const agent = await getAgentFromContext({ mastra, agentId, requestContext });\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const omConfig = await getOMConfigFromAgent(agent, requestContext);\n if (!omConfig?.enabled) {\n throw new HTTPException(400, { message: 'Observational Memory is not enabled for this agent' });\n }\n\n // Resolve the OM processor to call waitForBuffering\n const omProcessor = await agent.resolveProcessorById('observational-memory', requestContext);\n if (!omProcessor || typeof (omProcessor as any).waitForBuffering !== 'function') {\n throw new HTTPException(400, { message: 'Observational Memory processor not available' });\n }\n\n // Block until buffering completes (30s timeout)\n await (omProcessor as any).waitForBuffering(threadId, resourceId);\n\n // After buffering, fetch the updated record\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not configured for this agent' });\n }\n\n let memoryStore: MemoryStorage | undefined;\n try {\n memoryStore = await memory.storage.getStore('memory');\n } catch {\n throw new HTTPException(400, { message: 'Memory storage is not initialized' });\n }\n if (!memoryStore) {\n throw new HTTPException(400, { message: 'Memory storage is not initialized' });\n }\n\n const effectiveResourceId = resourceId;\n if (!effectiveResourceId) {\n throw new HTTPException(400, { message: 'resourceId is required' });\n }\n\n const omThreadId = omConfig.scope === 'resource' ? null : (threadId ?? null);\n const record = await memoryStore.getObservationalMemory(omThreadId, effectiveResourceId);\n\n return { record: record ?? null };\n } catch (error) {\n console.error('Error awaiting buffer status', error);\n return handleError(error, 'Error awaiting buffer status');\n }\n },\n});\n\nexport const LIST_THREADS_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/threads',\n responseType: 'json',\n queryParamSchema: listThreadsQuerySchema,\n responseSchema: listThreadsResponseSchema,\n summary: 'List memory threads',\n description:\n 'Returns a paginated list of conversation threads with optional filtering by resource ID and/or metadata',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, metadata, requestContext, page, perPage, orderBy }) => {\n try {\n // Use effective resourceId (context key takes precedence over client-provided value)\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n\n // Build filter object dynamically based on provided parameters\n const filter: { resourceId?: string; metadata?: Record<string, unknown> } | undefined =\n effectiveResourceId || metadata ? {} : undefined;\n\n if (effectiveResourceId) {\n filter!.resourceId = effectiveResourceId;\n }\n if (metadata) {\n filter!.metadata = metadata;\n }\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (memory) {\n const result = await memory.listThreads({\n filter,\n page,\n perPage,\n orderBy,\n });\n return result;\n }\n\n // Only fallback to storage if no agentId was provided\n if (!agentId) {\n const storage = getStorageFromContext({ mastra });\n if (storage) {\n const memoryStore = await storage.getStore('memory');\n if (memoryStore) {\n const result = await memoryStore.listThreads({\n filter,\n page,\n perPage,\n orderBy,\n });\n return result;\n }\n }\n }\n\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n } catch (error) {\n return handleError(error, 'Error listing threads');\n }\n },\n});\n\nexport const GET_THREAD_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: getThreadByIdQuerySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Get thread by ID',\n description: 'Returns details for a specific conversation thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n validateBody({ threadId: effectiveThreadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (memory) {\n const thread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n return thread;\n }\n\n // Only fallback to storage if no agentId was provided\n if (!agentId) {\n const storage = getStorageFromContext({ mastra });\n if (storage) {\n const memoryStore = await storage.getStore('memory');\n if (memoryStore) {\n const thread = await memoryStore.getThreadById({ threadId: effectiveThreadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n return thread;\n }\n }\n }\n\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n } catch (error) {\n return handleError(error, 'Error getting thread');\n }\n },\n});\n\nexport const LIST_MESSAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/threads/:threadId/messages',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: listMessagesQuerySchema,\n responseSchema: listMessagesResponseSchema,\n summary: 'List thread messages',\n description: 'Returns a paginated list of messages in a conversation thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: (async ({\n mastra,\n agentId,\n threadId,\n resourceId,\n perPage,\n page,\n orderBy,\n include,\n filter,\n requestContext,\n }: any) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n validateBody({ threadId: effectiveThreadId });\n\n if (!effectiveThreadId) {\n throw new HTTPException(400, { message: 'No threadId found' });\n }\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (memory) {\n const thread = await memory.getThreadById({ threadId: effectiveThreadId });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const result = await memory.recall({\n threadId: effectiveThreadId,\n resourceId: effectiveResourceId,\n perPage,\n page,\n orderBy,\n include,\n filter,\n });\n return result;\n }\n\n // Only fallback to storage if no agentId was provided\n if (!agentId) {\n const storage = getStorageFromContext({ mastra });\n if (storage) {\n const memoryStore = await storage.getStore('memory');\n if (memoryStore) {\n const thread = await memoryStore.getThreadById({ threadId: effectiveThreadId });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const result = await memoryStore.listMessages({\n threadId: effectiveThreadId,\n resourceId: effectiveResourceId,\n perPage,\n page,\n orderBy,\n include,\n filter,\n });\n return result;\n }\n }\n }\n\n // Return empty messages when memory is not configured (Issue #11765)\n // This allows the playground UI to gracefully handle agents without memory\n return { messages: [], uiMessages: [] };\n } catch (error) {\n return handleError(error, 'Error getting messages');\n }\n }) as any,\n});\n\nexport const GET_WORKING_MEMORY_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/threads/:threadId/working-memory',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: getWorkingMemoryQuerySchema,\n responseSchema: getWorkingMemoryResponseSchema,\n summary: 'Get working memory',\n description: 'Returns the working memory state for a thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, resourceId, requestContext, memoryConfig }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n validateBody({ threadId: effectiveThreadId });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n const thread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (thread) {\n await validateThreadOwnership(thread, effectiveResourceId);\n }\n const threadExists = !!thread;\n const template = await memory.getWorkingMemoryTemplate({ memoryConfig });\n const workingMemoryTemplate =\n template?.format === 'json'\n ? { ...template, content: JSON.stringify(generateEmptyFromSchema(template.content)) }\n : template;\n const workingMemory = await memory.getWorkingMemory({\n threadId: effectiveThreadId!,\n resourceId: effectiveResourceId,\n memoryConfig,\n });\n const config = memory.getMergedThreadConfig(memoryConfig || {});\n const source: 'thread' | 'resource' =\n config.workingMemory?.scope !== 'thread' && effectiveResourceId ? 'resource' : 'thread';\n return { workingMemory, source, workingMemoryTemplate, threadExists };\n } catch (error) {\n return handleError(error, 'Error getting working memory');\n }\n },\n});\n\nexport const SAVE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/save-messages',\n responseType: 'json',\n queryParamSchema: agentIdQuerySchema,\n bodySchema: saveMessagesBodySchema,\n responseSchema: saveMessagesResponseSchema,\n summary: 'Save messages',\n description: 'Saves new messages to memory',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, messages, requestContext }) => {\n try {\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n if (!messages) {\n throw new HTTPException(400, { message: 'Messages are required' });\n }\n\n if (!Array.isArray(messages)) {\n throw new HTTPException(400, { message: 'Messages should be an array' });\n }\n\n // Validate that all messages have threadId and resourceId\n const invalidMessages = messages.filter(message => !message.threadId || !message.resourceId);\n if (invalidMessages.length > 0) {\n throw new HTTPException(400, {\n message: `All messages must have threadId and resourceId fields. Found ${invalidMessages.length} invalid message(s).`,\n });\n }\n\n // If effectiveResourceId is set, validate all messages belong to this resource\n if (effectiveResourceId) {\n const unauthorizedMessages = messages.filter(message => message.resourceId !== effectiveResourceId);\n if (unauthorizedMessages.length > 0) {\n throw new HTTPException(403, {\n message: 'Access denied: cannot save messages for a different resource',\n });\n }\n\n // Validate that all threads belong to this resource (prevents cross-resource data pollution)\n const threadIds = [...new Set(messages.map(m => m.threadId).filter(Boolean))] as string[];\n for (const threadId of threadIds) {\n const thread = await memory.getThreadById({ threadId });\n // Thread may not exist yet (will be created on first message save), which is allowed\n // But if it exists, it must belong to the same resource\n await validateThreadOwnership(thread, effectiveResourceId);\n }\n }\n\n const processedMessages = messages.map(message => ({\n ...message,\n id: message.id || memory.generateId(),\n createdAt: message.createdAt ? new Date(message.createdAt) : new Date(),\n }));\n\n const result = await memory.saveMessages({ messages: processedMessages as any, memoryConfig: {} });\n return result;\n } catch (error) {\n return handleError(error, 'Error saving messages');\n }\n },\n});\n\nexport const CREATE_THREAD_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/threads',\n responseType: 'json',\n queryParamSchema: agentIdQuerySchema,\n bodySchema: createThreadBodySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Create thread',\n description: 'Creates a new conversation thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, title, metadata, threadId, requestContext }) => {\n try {\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n validateBody({ resourceId: effectiveResourceId });\n\n const result = await memory.createThread({\n resourceId: effectiveResourceId!,\n title,\n metadata,\n threadId,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error saving thread to memory');\n }\n },\n});\n\nexport const UPDATE_THREAD_ROUTE = createRoute({\n method: 'PATCH',\n path: '/memory/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: agentIdQuerySchema,\n bodySchema: updateThreadBodySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Update thread',\n description: 'Updates a conversation thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, title, metadata, resourceId, requestContext }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n const updatedAt = new Date();\n\n validateBody({ threadId: effectiveThreadId });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const updatedThread = {\n ...thread,\n title: title || thread.title,\n metadata: metadata || thread.metadata,\n // Don't allow changing resourceId if effectiveResourceId is set (prevents reassigning threads)\n resourceId: effectiveResourceId || resourceId || thread.resourceId,\n createdAt: thread.createdAt,\n updatedAt,\n };\n\n const result = await memory.saveThread({ thread: updatedThread });\n return {\n ...result,\n resourceId: result.resourceId ?? null,\n };\n } catch (error) {\n return handleError(error, 'Error updating thread');\n }\n },\n});\n\nexport const DELETE_THREAD_ROUTE = createRoute({\n method: 'DELETE',\n path: '/memory/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: deleteThreadQuerySchema,\n responseSchema: deleteThreadResponseSchema,\n summary: 'Delete thread',\n description: 'Deletes a conversation thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n validateBody({ threadId: effectiveThreadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n\n await memory.deleteThread(effectiveThreadId!);\n return { result: 'Thread deleted' };\n } catch (error) {\n return handleError(error, 'Error deleting thread');\n }\n },\n});\n\nexport const CLONE_THREAD_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/threads/:threadId/clone',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: agentIdQuerySchema,\n bodySchema: cloneThreadBodySchema,\n responseSchema: cloneThreadResponseSchema,\n summary: 'Clone thread',\n description: 'Creates a copy of a conversation thread with all its messages',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, newThreadId, resourceId, title, metadata, options, requestContext }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n validateBody({ threadId: effectiveThreadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Validate source thread ownership\n const sourceThread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (!sourceThread) {\n throw new HTTPException(404, { message: 'Source thread not found' });\n }\n await validateThreadOwnership(sourceThread, effectiveResourceId);\n\n const result = await memory.cloneThread({\n sourceThreadId: effectiveThreadId!,\n newThreadId,\n // Use effective resourceId for the cloned thread\n resourceId: effectiveResourceId,\n title,\n metadata,\n options,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error cloning thread');\n }\n },\n});\n\nexport const UPDATE_WORKING_MEMORY_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/threads/:threadId/working-memory',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: agentIdQuerySchema,\n bodySchema: updateWorkingMemoryBodySchema,\n responseSchema: updateWorkingMemoryResponseSchema,\n summary: 'Update working memory',\n description: 'Updates the working memory state for a thread',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, requestContext }) => {\n try {\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n validateBody({ threadId: effectiveThreadId, workingMemory });\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n const thread = await memory.getThreadById({ threadId: effectiveThreadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n\n await memory.updateWorkingMemory({\n threadId: effectiveThreadId!,\n resourceId: effectiveResourceId,\n workingMemory,\n memoryConfig,\n });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error updating working memory');\n }\n },\n});\n\nexport const DELETE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/messages/delete',\n responseType: 'json',\n queryParamSchema: deleteMessagesQuerySchema,\n bodySchema: deleteMessagesBodySchema,\n responseSchema: deleteMessagesResponseSchema,\n summary: 'Delete messages',\n description: 'Deletes specific messages from memory',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, resourceId, messageIds, requestContext }) => {\n try {\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n\n if (messageIds === undefined || messageIds === null) {\n throw new HTTPException(400, { message: 'messageIds is required' });\n }\n\n // Normalize messageIds to the format expected by deleteMessages\n // Convert single values to arrays and extract IDs from objects\n let normalizedIds: string[] | { id: string }[];\n\n if (Array.isArray(messageIds)) {\n // Already an array - keep as is (could be string[] or { id: string }[])\n normalizedIds = messageIds;\n } else if (typeof messageIds === 'string') {\n // Single string ID - wrap in array\n normalizedIds = [messageIds];\n } else {\n // Single object with id property - wrap in array\n normalizedIds = [messageIds];\n }\n\n // Extract string IDs for validation and deletion\n const stringIds = normalizedIds.map(id => (typeof id === 'string' ? id : id.id));\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n\n // If effectiveResourceId is set, validate ownership of all messages before deletion\n // Fail closed: if we can't verify ownership, deny deletion\n if (effectiveResourceId && stringIds.length > 0) {\n const storage = memory?.storage || getStorageFromContext({ mastra });\n if (!storage) {\n throw new HTTPException(403, { message: 'Access denied: unable to verify message ownership' });\n }\n const memoryStore = await storage.getStore('memory');\n if (!memoryStore) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Get messages to find their threads\n const { messages } = await memoryStore.listMessagesById({ messageIds: stringIds });\n\n // Collect unique thread IDs\n const threadIds = [...new Set(messages.map(m => m.threadId).filter(Boolean))] as string[];\n\n // Validate ownership of all threads\n for (const threadId of threadIds) {\n const thread = await memoryStore.getThreadById({ threadId });\n if (thread && thread.resourceId && thread.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, {\n message: 'Access denied: message belongs to a thread owned by a different resource',\n });\n }\n }\n }\n\n if (memory) {\n await memory.deleteMessages(normalizedIds);\n } else if (!agentId) {\n // Only fallback to storage if no agentId was provided\n const storage = getStorageFromContext({ mastra });\n if (storage) {\n const memoryStore = await storage.getStore('memory');\n if (memoryStore) {\n await memoryStore.deleteMessages(stringIds);\n } else {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n } else {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n } else {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Count messages for response\n const count = Array.isArray(messageIds) ? messageIds.length : 1;\n\n return { success: true, message: `${count} message${count === 1 ? '' : 's'} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting messages');\n }\n },\n});\n\nexport const SEARCH_MEMORY_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/search',\n responseType: 'json',\n queryParamSchema: searchMemoryQuerySchema,\n responseSchema: searchMemoryResponseSchema,\n summary: 'Search memory',\n description: 'Searches across memory using semantic or text search',\n tags: ['Memory'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, searchQuery, resourceId, threadId, limit = 20, requestContext, memoryConfig }) => {\n try {\n const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);\n const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);\n validateBody({ searchQuery, resourceId: effectiveResourceId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Get memory configuration first to check scope\n const config = memory.getMergedThreadConfig(memoryConfig || {});\n const hasSemanticRecall = !!config?.semanticRecall;\n const resourceScope =\n typeof config?.semanticRecall === 'object' ? config?.semanticRecall?.scope !== 'thread' : true;\n\n const searchResults: SearchResult[] = [];\n\n // If threadId is provided and scope is thread-based, check if the thread exists\n if (effectiveThreadId && !resourceScope) {\n const thread = await memory.getThreadById({ threadId: effectiveThreadId });\n if (!thread) {\n // Thread doesn't exist yet (new unsaved thread) - return empty results\n return {\n results: [],\n count: 0,\n query: searchQuery,\n searchScope: resourceScope ? 'resource' : 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n }\n await validateThreadOwnership(thread, effectiveResourceId);\n }\n\n // Use effectiveThreadId or find one from the resource\n let searchThreadId = effectiveThreadId;\n\n // If no threadId provided, get one from the resource\n if (!searchThreadId) {\n const { threads } = await memory.listThreads({\n filter: { resourceId: effectiveResourceId },\n page: 0,\n perPage: 1,\n orderBy: { field: 'updatedAt', direction: 'DESC' },\n });\n\n if (threads.length === 0) {\n return {\n results: [],\n count: 0,\n query: searchQuery,\n searchScope: resourceScope ? 'resource' : 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n }\n\n // Use first thread - Memory class will handle scope internally\n searchThreadId = threads[0]!.id;\n }\n\n const beforeRange =\n typeof config.semanticRecall === `boolean`\n ? 2\n : typeof config.semanticRecall?.messageRange === `number`\n ? config.semanticRecall.messageRange\n : config.semanticRecall?.messageRange.before || 2;\n const afterRange =\n typeof config.semanticRecall === `boolean`\n ? 2\n : typeof config.semanticRecall?.messageRange === `number`\n ? config.semanticRecall.messageRange\n : config.semanticRecall?.messageRange.after || 2;\n\n if (resourceScope && config.semanticRecall) {\n config.semanticRecall =\n typeof config.semanticRecall === `boolean`\n ? // make message range 0 so we can highlight the matches in search, message range will include other messages, not the matching ones\n // and we add prev/next messages in a special section on each message anyway\n { messageRange: 0, topK: 2, scope: 'resource' }\n : { ...config.semanticRecall, messageRange: 0 };\n }\n\n // Single call to recall - just like the agent does\n // The Memory class handles scope (thread vs resource) internally\n const threadConfig = memory.getMergedThreadConfig(config || {});\n if (!threadConfig.lastMessages && !threadConfig.semanticRecall) {\n return { results: [], count: 0, query: searchQuery };\n }\n\n const result = await memory.recall({\n threadId: searchThreadId,\n resourceId: effectiveResourceId,\n perPage: threadConfig.lastMessages,\n threadConfig: config,\n vectorSearchString: threadConfig.semanticRecall && searchQuery ? searchQuery : undefined,\n });\n\n // Get all threads to build context and show which thread each message is from\n // Fetch threads by IDs from the actual messages to avoid truncation\n const threadIds = Array.from(\n new Set(result.messages.map((m: MastraDBMessage) => m.threadId || searchThreadId!).filter(Boolean)),\n );\n const fetched = await Promise.all(threadIds.map((id: string) => memory.getThreadById({ threadId: id })));\n const threadMap = new Map(fetched.filter(Boolean).map(t => [t!.id, t!]));\n\n // Process each message in the results\n for (const msg of result.messages) {\n const content = getTextContent(msg);\n\n const msgThreadId = msg.threadId || searchThreadId;\n const thread = threadMap.get(msgThreadId);\n\n // Get thread messages for context\n const threadMessages = (await memory.recall({ threadId: msgThreadId })).messages;\n const messageIndex = threadMessages.findIndex(m => m.id === msg.id);\n\n const searchResult: SearchResult = {\n id: msg.id,\n role: msg.role,\n content,\n createdAt: msg.createdAt,\n threadId: msgThreadId,\n threadTitle: thread?.title || msgThreadId,\n };\n\n if (messageIndex !== -1) {\n searchResult.context = {\n before: threadMessages.slice(Math.max(0, messageIndex - beforeRange), messageIndex).map(m => ({\n id: m.id,\n role: m.role,\n content: getTextContent(m),\n createdAt: m.createdAt || new Date(),\n })),\n after: threadMessages.slice(messageIndex + 1, messageIndex + afterRange + 1).map(m => ({\n id: m.id,\n role: m.role,\n content: getTextContent(m),\n createdAt: m.createdAt || new Date(),\n })),\n };\n }\n\n searchResults.push(searchResult);\n }\n\n // Sort by date (newest first) and limit\n const sortedResults = searchResults\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())\n .slice(0, limit);\n\n return {\n results: sortedResults,\n count: sortedResults.length,\n query: searchQuery,\n searchScope: resourceScope ? 'resource' : 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n } catch (error) {\n return handleError(error, 'Error searching memory');\n }\n },\n});\n\n// Network routes (same handlers with /network/ prefix)\nexport const GET_MEMORY_STATUS_NETWORK_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/network/status',\n responseType: 'json',\n queryParamSchema: getMemoryStatusNetworkQuerySchema,\n responseSchema: memoryStatusResponseSchema,\n summary: 'Get memory status (network)',\n description: 'Returns the current status of the memory system (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: GET_MEMORY_STATUS_ROUTE.handler,\n});\n\nexport const LIST_THREADS_NETWORK_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/network/threads',\n responseType: 'json',\n queryParamSchema: listThreadsNetworkQuerySchema,\n responseSchema: listThreadsResponseSchema,\n summary: 'List memory threads (network)',\n description: 'Returns a paginated list of conversation threads (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: LIST_THREADS_ROUTE.handler,\n});\n\nexport const GET_THREAD_BY_ID_NETWORK_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/network/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: getThreadByIdNetworkQuerySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Get thread by ID (network)',\n description: 'Returns details for a specific conversation thread (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: GET_THREAD_BY_ID_ROUTE.handler,\n});\n\nexport const LIST_MESSAGES_NETWORK_ROUTE = createRoute({\n method: 'GET',\n path: '/memory/network/threads/:threadId/messages',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: listMessagesNetworkQuerySchema,\n responseSchema: listMessagesResponseSchema,\n summary: 'List thread messages (network)',\n description: 'Returns a paginated list of messages in a conversation thread (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: LIST_MESSAGES_ROUTE.handler,\n});\n\nexport const SAVE_MESSAGES_NETWORK_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/network/save-messages',\n responseType: 'json',\n queryParamSchema: saveMessagesNetworkQuerySchema,\n bodySchema: saveMessagesBodySchema,\n responseSchema: saveMessagesResponseSchema,\n summary: 'Save messages (network)',\n description: 'Saves new messages to memory (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: SAVE_MESSAGES_ROUTE.handler,\n});\n\nexport const CREATE_THREAD_NETWORK_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/network/threads',\n responseType: 'json',\n queryParamSchema: createThreadNetworkQuerySchema,\n bodySchema: createThreadBodySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Create thread (network)',\n description: 'Creates a new conversation thread (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: CREATE_THREAD_ROUTE.handler,\n});\n\nexport const UPDATE_THREAD_NETWORK_ROUTE = createRoute({\n method: 'PATCH',\n path: '/memory/network/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: updateThreadNetworkQuerySchema,\n bodySchema: updateThreadBodySchema,\n responseSchema: getThreadByIdResponseSchema,\n summary: 'Update thread (network)',\n description: 'Updates a conversation thread (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: UPDATE_THREAD_ROUTE.handler,\n});\n\nexport const DELETE_THREAD_NETWORK_ROUTE = createRoute({\n method: 'DELETE',\n path: '/memory/network/threads/:threadId',\n responseType: 'json',\n pathParamSchema: threadIdPathParams,\n queryParamSchema: deleteThreadNetworkQuerySchema,\n responseSchema: deleteThreadResponseSchema,\n summary: 'Delete thread (network)',\n description: 'Deletes a conversation thread (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: DELETE_THREAD_ROUTE.handler,\n});\n\nexport const DELETE_MESSAGES_NETWORK_ROUTE = createRoute({\n method: 'POST',\n path: '/memory/network/messages/delete',\n responseType: 'json',\n queryParamSchema: deleteMessagesNetworkQuerySchema,\n bodySchema: deleteMessagesBodySchema,\n responseSchema: deleteMessagesResponseSchema,\n summary: 'Delete messages (network)',\n description: 'Deletes specific messages from memory (network route)',\n tags: ['Memory - Network'],\n requiresAuth: true,\n handler: DELETE_MESSAGES_ROUTE.handler,\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import z from 'zod';
|
|
2
2
|
|
|
3
3
|
// src/server/schemas/workspace.ts
|
|
4
|
-
z.object({
|
|
4
|
+
var fsPathParams = z.object({
|
|
5
5
|
path: z.string().describe("File or directory path (URL encoded)")
|
|
6
6
|
});
|
|
7
7
|
var workspaceIdPathParams = z.object({
|
|
@@ -329,6 +329,6 @@ var skillsShUpdateResponseSchema = z.object({
|
|
|
329
329
|
)
|
|
330
330
|
});
|
|
331
331
|
|
|
332
|
-
export { fsDeleteQuerySchema, fsDeleteResponseSchema, fsListQuerySchema, fsListResponseSchema, fsMkdirBodySchema, fsMkdirResponseSchema, fsReadQuerySchema, fsReadResponseSchema, fsStatQuerySchema, fsStatResponseSchema, fsWriteBodySchema, fsWriteResponseSchema, getAgentSkillResponseSchema, getSkillResponseSchema, indexBodySchema, indexResponseSchema, listReferencesResponseSchema, listSkillsResponseSchema, listWorkspacesResponseSchema, searchQuerySchema, searchResponseSchema, searchSkillsQuerySchema, searchSkillsResponseSchema, skillNamePathParams, skillReferencePathParams, skillReferenceResponseSchema, skillsShInstallBodySchema, skillsShInstallResponseSchema, skillsShListResponseSchema, skillsShPopularQuerySchema, skillsShPreviewQuerySchema, skillsShPreviewResponseSchema, skillsShRemoveBodySchema, skillsShRemoveResponseSchema, skillsShSearchQuerySchema, skillsShSearchResponseSchema, skillsShUpdateBodySchema, skillsShUpdateResponseSchema, workspaceIdPathParams, workspaceInfoResponseSchema };
|
|
333
|
-
//# sourceMappingURL=chunk-
|
|
334
|
-
//# sourceMappingURL=chunk-
|
|
332
|
+
export { fileEntrySchema, fsDeleteQuerySchema, fsDeleteResponseSchema, fsListQuerySchema, fsListResponseSchema, fsMkdirBodySchema, fsMkdirResponseSchema, fsPathParams, fsReadQuerySchema, fsReadResponseSchema, fsStatQuerySchema, fsStatResponseSchema, fsWriteBodySchema, fsWriteResponseSchema, getAgentSkillResponseSchema, getSkillResponseSchema, indexBodySchema, indexResponseSchema, listReferencesResponseSchema, listSkillsResponseSchema, listWorkspacesResponseSchema, mountInfoSchema, searchQuerySchema, searchResponseSchema, searchResultSchema, searchSkillsQuerySchema, searchSkillsResponseSchema, skillMetadataSchema, skillMetadataWithPathSchema, skillNamePathParams, skillReferencePathParams, skillReferenceResponseSchema, skillSchema, skillSearchResultSchema, skillSourceSchema, skillsShInstallBodySchema, skillsShInstallResponseSchema, skillsShListResponseSchema, skillsShPopularQuerySchema, skillsShPreviewQuerySchema, skillsShPreviewResponseSchema, skillsShRemoveBodySchema, skillsShRemoveResponseSchema, skillsShSearchQuerySchema, skillsShSearchResponseSchema, skillsShSkillSchema, skillsShSourceSchema, skillsShUpdateBodySchema, skillsShUpdateResponseSchema, workspaceIdPathParams, workspaceInfoResponseSchema };
|
|
333
|
+
//# sourceMappingURL=chunk-6LTXNJU5.js.map
|
|
334
|
+
//# sourceMappingURL=chunk-6LTXNJU5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/workspace.ts"],"names":[],"mappings":"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","file":"chunk-6LTXNJU5.js","sourcesContent":["/**\n * Workspace Schemas\n *\n * All Zod schemas for workspace operations including:\n * - Filesystem operations (read, write, list, delete, mkdir, stat)\n * - Search operations (search, index)\n * - Skills operations (list, get, search, references)\n */\n\nimport z from 'zod';\n\n// =============================================================================\n// Filesystem Path Schemas\n// =============================================================================\n\nexport const fsPathParams = z.object({\n path: z.string().describe('File or directory path (URL encoded)'),\n});\n\nexport const workspaceIdPathParams = z.object({\n workspaceId: z.string().describe('Workspace ID'),\n});\n\n// =============================================================================\n// Filesystem Query Schemas\n// =============================================================================\n\nexport const fsReadQuerySchema = z.object({\n path: z.string().describe('Path to the file to read'),\n encoding: z.string().optional().describe('Encoding for text files (default: utf-8)'),\n});\n\nexport const fsListQuerySchema = z.object({\n path: z.string().describe('Path to the directory to list'),\n recursive: z.coerce.boolean().optional().describe('Include subdirectories'),\n});\n\nexport const fsStatQuerySchema = z.object({\n path: z.string().describe('Path to get info about'),\n});\n\nexport const fsDeleteQuerySchema = z.object({\n path: z.string().describe('Path to delete'),\n recursive: z.coerce.boolean().optional().describe('Delete directories recursively'),\n force: z.coerce.boolean().optional().describe(\"Don't error if path doesn't exist\"),\n});\n\n// =============================================================================\n// Filesystem Body Schemas\n// =============================================================================\n\nexport const fsWriteBodySchema = z.object({\n path: z.string().describe('Path to write to'),\n content: z.string().describe('Content to write (text or base64-encoded binary)'),\n encoding: z.enum(['utf-8', 'base64']).optional().default('utf-8').describe('Content encoding'),\n recursive: z.coerce.boolean().optional().describe('Create parent directories if needed'),\n});\n\nexport const fsMkdirBodySchema = z.object({\n path: z.string().describe('Directory path to create'),\n recursive: z.coerce.boolean().optional().describe('Create parent directories if needed'),\n});\n\n// =============================================================================\n// Filesystem Response Schemas\n// =============================================================================\n\nexport const fileEntrySchema = z.object({\n name: z.string(),\n type: z.enum(['file', 'directory']),\n size: z.number().optional(),\n mount: z\n .object({\n provider: z.string(),\n icon: z.string().optional(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n status: z\n .enum([\n 'pending',\n 'initializing',\n 'ready',\n 'starting',\n 'running',\n 'stopping',\n 'stopped',\n 'destroying',\n 'destroyed',\n 'error',\n ])\n .optional(),\n error: z.string().optional(),\n })\n .optional(),\n});\n\nexport const fsReadResponseSchema = z.object({\n path: z.string(),\n content: z.string(),\n type: z.enum(['file', 'directory']),\n size: z.number().optional(),\n mimeType: z.string().optional(),\n});\n\nexport const fsWriteResponseSchema = z.object({\n success: z.boolean(),\n path: z.string(),\n});\n\nexport const fsListResponseSchema = z.object({\n path: z.string(),\n entries: z.array(fileEntrySchema),\n});\n\nexport const fsDeleteResponseSchema = z.object({\n success: z.boolean(),\n path: z.string(),\n});\n\nexport const fsMkdirResponseSchema = z.object({\n success: z.boolean(),\n path: z.string(),\n});\n\nexport const fsStatResponseSchema = z.object({\n path: z.string(),\n type: z.enum(['file', 'directory']),\n size: z.number().optional(),\n createdAt: z.string().optional(),\n modifiedAt: z.string().optional(),\n mimeType: z.string().optional(),\n});\n\n// =============================================================================\n// Search Schemas\n// =============================================================================\n\nexport const searchQuerySchema = z.object({\n query: z.string().describe('Search query text'),\n topK: z.coerce.number().optional().default(5).describe('Maximum number of results'),\n mode: z.enum(['bm25', 'vector', 'hybrid']).optional().describe('Search mode'),\n minScore: z.coerce.number().optional().describe('Minimum relevance score threshold'),\n});\n\nexport const searchResultSchema = z.object({\n id: z.string().describe('Document ID (file path)'),\n content: z.string(),\n score: z.number(),\n lineRange: z\n .object({\n start: z.number(),\n end: z.number(),\n })\n .optional(),\n scoreDetails: z\n .object({\n vector: z.number().optional(),\n bm25: z.number().optional(),\n })\n .optional(),\n});\n\nexport const searchResponseSchema = z.object({\n results: z.array(searchResultSchema),\n query: z.string(),\n mode: z.enum(['bm25', 'vector', 'hybrid']),\n});\n\nexport const indexBodySchema = z.object({\n path: z.string().describe('Path to use as document ID'),\n content: z.string().describe('Content to index'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Optional metadata'),\n});\n\nexport const indexResponseSchema = z.object({\n success: z.boolean(),\n path: z.string(),\n});\n\n// =============================================================================\n// Mount Schemas\n// =============================================================================\n\nexport const mountInfoSchema = z.object({\n path: z.string().describe('Mount path'),\n provider: z.string().describe('Filesystem provider type'),\n readOnly: z.boolean().describe('Whether the mount is read-only'),\n displayName: z.string().optional().describe('Human-readable name'),\n icon: z.string().optional().describe('UI icon identifier'),\n name: z.string().optional().describe('Filesystem instance name'),\n});\n\n// =============================================================================\n// Workspace Info Schema\n// =============================================================================\n\nexport const workspaceInfoResponseSchema = z.object({\n isWorkspaceConfigured: z.boolean(),\n id: z.string().optional(),\n name: z.string().optional(),\n status: z.string().optional(),\n capabilities: z\n .object({\n hasFilesystem: z.boolean(),\n hasSandbox: z.boolean(),\n canBM25: z.boolean(),\n canVector: z.boolean(),\n canHybrid: z.boolean(),\n hasSkills: z.boolean(),\n })\n .optional(),\n safety: z\n .object({\n readOnly: z.boolean(),\n })\n .optional(),\n filesystem: z\n .object({\n id: z.string(),\n name: z.string(),\n provider: z.string(),\n status: z.string().optional(),\n error: z.string().optional(),\n readOnly: z.boolean().optional(),\n icon: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .optional(),\n mounts: z.array(mountInfoSchema).optional().describe('Mount points (only present for CompositeFilesystem)'),\n});\n\nconst workspaceItemSchema = z.object({\n id: z.string(),\n name: z.string(),\n status: z.string(),\n source: z.enum(['mastra', 'agent']),\n agentId: z.string().optional(),\n agentName: z.string().optional(),\n capabilities: z.object({\n hasFilesystem: z.boolean(),\n hasSandbox: z.boolean(),\n canBM25: z.boolean(),\n canVector: z.boolean(),\n canHybrid: z.boolean(),\n hasSkills: z.boolean(),\n }),\n safety: z.object({\n readOnly: z.boolean(),\n }),\n});\n\nexport const listWorkspacesResponseSchema = z.object({\n workspaces: z.array(workspaceItemSchema),\n});\n\n// =============================================================================\n// Skills Path Parameter Schemas\n// =============================================================================\n\nexport const skillNamePathParams = workspaceIdPathParams.extend({\n skillName: z.string().describe('Skill name identifier'),\n});\n\nexport const skillReferencePathParams = skillNamePathParams.extend({\n referencePath: z.string().describe('Reference file path (URL encoded)'),\n});\n\n// =============================================================================\n// Skills Query Parameter Schemas\n// =============================================================================\n\nexport const searchSkillsQuerySchema = z.object({\n query: z.string().describe('Search query text'),\n topK: z.coerce.number().optional().default(5).describe('Maximum number of results'),\n minScore: z.coerce.number().optional().describe('Minimum relevance score threshold'),\n skillNames: z.string().optional().describe('Comma-separated list of skill names to search within'),\n includeReferences: z.coerce.boolean().optional().default(true).describe('Include reference files in search'),\n});\n\n// =============================================================================\n// Skills Response Schemas\n// =============================================================================\n\nexport const skillMetadataSchema = z.object({\n name: z.string(),\n description: z.string(),\n license: z.string().optional(),\n compatibility: z.unknown().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const skillSourceSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('external'), packagePath: z.string() }),\n z.object({ type: z.literal('local'), projectPath: z.string() }),\n z.object({ type: z.literal('managed'), mastraPath: z.string() }),\n]);\n\nexport const skillSchema = skillMetadataSchema.extend({\n path: z.string(),\n instructions: z.string(),\n source: skillSourceSchema,\n references: z.array(z.string()),\n scripts: z.array(z.string()),\n assets: z.array(z.string()),\n});\n\n/**\n * Source info for skills installed via skills.sh\n * Stored in .meta.json when a skill is installed\n */\nexport const skillsShSourceSchema = z.object({\n owner: z.string().describe('GitHub owner/org'),\n repo: z.string().describe('GitHub repository'),\n});\n\nexport const skillMetadataWithPathSchema = skillMetadataSchema.extend({\n path: z.string().describe('Path to the skill directory'),\n /** Source info for skills installed via skills.sh (from .meta.json) */\n skillsShSource: skillsShSourceSchema.optional(),\n});\n\nexport const listSkillsResponseSchema = z.object({\n skills: z.array(skillMetadataWithPathSchema),\n isSkillsConfigured: z.boolean().describe('Whether skills are configured in the workspace'),\n});\n\nexport const getSkillResponseSchema = skillSchema;\n\n/**\n * Agent skill response schema - similar to skillSchema but with optional fields\n * for when full skill details aren't available (e.g., inherited skills without\n * direct access to the Skills instance).\n */\nexport const getAgentSkillResponseSchema = skillMetadataSchema.extend({\n path: z.string().optional(),\n instructions: z.string().optional(),\n source: skillSourceSchema.optional(),\n references: z.array(z.string()).optional(),\n scripts: z.array(z.string()).optional(),\n assets: z.array(z.string()).optional(),\n});\n\nexport const skillReferenceResponseSchema = z.object({\n skillName: z.string(),\n referencePath: z.string(),\n content: z.string(),\n});\n\nexport const listReferencesResponseSchema = z.object({\n skillName: z.string(),\n references: z.array(z.string()),\n});\n\nexport const skillSearchResultSchema = z.object({\n skillName: z.string(),\n source: z.string(),\n content: z.string(),\n score: z.number(),\n lineRange: z\n .object({\n start: z.number(),\n end: z.number(),\n })\n .optional(),\n scoreDetails: z\n .object({\n vector: z.number().optional(),\n bm25: z.number().optional(),\n })\n .optional(),\n});\n\nexport const searchSkillsResponseSchema = z.object({\n results: z.array(skillSearchResultSchema),\n query: z.string(),\n});\n\n// =============================================================================\n// skills.sh Proxy Schemas\n// =============================================================================\n\nexport const skillsShSearchQuerySchema = z.object({\n q: z.string().describe('Search query'),\n limit: z.coerce.number().optional().default(10).describe('Maximum number of results'),\n});\n\nexport const skillsShPopularQuerySchema = z.object({\n limit: z.coerce.number().optional().default(10).describe('Maximum number of results'),\n offset: z.coerce.number().optional().default(0).describe('Offset for pagination'),\n});\n\nexport const skillsShSkillSchema = z.object({\n id: z.string(),\n name: z.string(),\n installs: z.number(),\n topSource: z.string(),\n});\n\nexport const skillsShSearchResponseSchema = z.object({\n query: z.string(),\n searchType: z.string(),\n skills: z.array(skillsShSkillSchema),\n count: z.number(),\n});\n\nexport const skillsShListResponseSchema = z.object({\n skills: z.array(skillsShSkillSchema),\n count: z.number(),\n limit: z.number(),\n offset: z.number(),\n});\n\nexport const skillsShPreviewQuerySchema = z.object({\n owner: z.string().describe('GitHub repository owner'),\n repo: z.string().describe('GitHub repository name'),\n path: z.string().describe('Path to skill within repo'),\n});\n\nexport const skillsShPreviewResponseSchema = z.object({\n content: z.string(),\n});\n\nexport const skillsShInstallBodySchema = z.object({\n owner: z.string().describe('GitHub repository owner'),\n repo: z.string().describe('GitHub repository name'),\n skillName: z.string().describe('Skill name from skills.sh'),\n mount: z.string().optional().describe('Mount path to install into (for CompositeFilesystem)'),\n});\n\nexport const skillsShInstallResponseSchema = z.object({\n success: z.boolean(),\n skillName: z.string(),\n installedPath: z.string(),\n filesWritten: z.number(),\n});\n\nexport const skillsShRemoveBodySchema = z.object({\n skillName: z.string().describe('Name of the installed skill to remove'),\n});\n\nexport const skillsShRemoveResponseSchema = z.object({\n success: z.boolean(),\n skillName: z.string(),\n removedPath: z.string(),\n});\n\nexport const skillsShUpdateBodySchema = z.object({\n skillName: z.string().optional().describe('Specific skill to update, or omit to update all'),\n});\n\nexport const skillsShUpdateResponseSchema = z.object({\n updated: z.array(\n z.object({\n skillName: z.string(),\n success: z.boolean(),\n filesWritten: z.number().optional(),\n error: z.string().optional(),\n }),\n ),\n});\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getAgentFromSystem } from './chunk-
|
|
2
|
-
import { voiceSpeakersResponseSchema, agentIdPathParams, speakResponseSchema, generateSpeechBodySchema, transcribeSpeechResponseSchema, transcribeSpeechBodySchema, getListenerResponseSchema } from './chunk-
|
|
1
|
+
import { getAgentFromSystem } from './chunk-NOT4JSQJ.js';
|
|
2
|
+
import { voiceSpeakersResponseSchema, agentIdPathParams, speakResponseSchema, generateSpeechBodySchema, transcribeSpeechResponseSchema, transcribeSpeechBodySchema, getListenerResponseSchema } from './chunk-GRI42AT7.js';
|
|
3
3
|
import { validateBody } from './chunk-USR6JK77.js';
|
|
4
4
|
import { handleError } from './chunk-NA7LKQPZ.js';
|
|
5
|
-
import { createRoute } from './chunk-
|
|
5
|
+
import { createRoute } from './chunk-OLKVMPNB.js';
|
|
6
6
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
7
7
|
import { __export } from './chunk-PR4QN5HX.js';
|
|
8
8
|
import { Readable } from 'stream';
|
|
@@ -191,5 +191,5 @@ var GET_LISTENER_ROUTE = createRoute({
|
|
|
191
191
|
});
|
|
192
192
|
|
|
193
193
|
export { GENERATE_SPEECH_DEPRECATED_ROUTE, GENERATE_SPEECH_ROUTE, GET_LISTENER_ROUTE, GET_SPEAKERS_DEPRECATED_ROUTE, GET_SPEAKERS_ROUTE, TRANSCRIBE_SPEECH_DEPRECATED_ROUTE, TRANSCRIBE_SPEECH_ROUTE, voice_exports };
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-6M6OX2GI.js.map
|
|
195
|
+
//# sourceMappingURL=chunk-6M6OX2GI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,IAAA,aAAA,GAAA;AAAA,QAAA,CAAA,aAAA,EAAA;AAAA,EAAA,gCAAA,EAAA,MAAA,gCAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,6BAAA,EAAA,MAAA,6BAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,kCAAA,EAAA,MAAA,kCAAA;AAAA,EAAA,uBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAsBO,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,cAAA,EAAgB,2BAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,0DAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,gBAAe,KAAM;AACtD,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AAEA,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,QAAA,CAAS,EAAE,gBAAgB,CAAA;AAErD,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,EAAQ,CACpC,IAAA,CAAK,MAAM,KAAA,CAAM,WAAA,EAAa,CAAA,CAC9B,KAAA,CAAM,CAAA,GAAA,KAAO;AACZ,QAAA,IAAI,eAAe,WAAA,EAAa;AAE9B,UAAA,OAAO,EAAC;AAAA,QACV;AACA,QAAA,MAAM,GAAA;AAAA,MACR,CAAC,CAAA;AAEH,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,wBAAwB,CAAA;AAAA,IACpD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,gCAAgC,WAAA,CAAY;AAAA,EACvD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,2BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,cAAA,EAAgB,2BAAA;AAAA,EAChB,OAAA,EAAS,qCAAA;AAAA,EACT,WAAA,EAAa,+FAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,kBAAA,CAAmB;AAC9B,CAAC;AAEM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,8BAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,mBAAA;AAAA,EAChB,OAAA,EAAS,iBAAA;AAAA,EACT,WAAA,EAAa,sEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,IAAA,EAAM,SAAA,EAAW,gBAAe,KAAM;AACvE,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AAEA,MAAA,YAAA,CAAa,EAAE,MAAM,CAAA;AAErB,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,QAAA,CAAS,EAAE,gBAAgB,CAAA;AAErD,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAEA,MAAA,MAAM,cAAc,MAAM,OAAA,CAAQ,OAAA,EAAQ,CACvC,KAAK,MAAM,KAAA,CAAM,KAAA,CAAM,IAAA,EAAO,EAAE,OAAA,EAAS,SAAA,EAAY,CAAC,CAAA,CACtD,MAAM,CAAA,GAAA,KAAO;AACZ,QAAA,IAAI,eAAe,WAAA,EAAa;AAC9B,UAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,GAAA,CAAI,SAAS,CAAA;AAAA,QACvD;AAEA,QAAA,MAAM,GAAA;AAAA,MACR,CAAC,CAAA;AAEH,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,OAAO,WAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yBAAyB,CAAA;AAAA,IACrD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,mCAAmC,WAAA,CAAY;AAAA,EAC1D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,wBAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,mBAAA;AAAA,EAChB,OAAA,EAAS,wBAAA;AAAA,EACT,WAAA,EACE,gHAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,qBAAA,CAAsB;AACjC,CAAC;AAEM,IAAM,0BAA0B,WAAA,CAAY;AAAA,EACjD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,+BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,0BAAA;AAAA,EACZ,cAAA,EAAgB,8BAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,sEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,KAAA,EAAO,OAAA,EAAS,gBAAe,KAAM;AACtE,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AAEA,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AAEA,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,QAAA,CAAS,EAAE,gBAAgB,CAAA;AAErD,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAEA,MAAA,MAAM,WAAA,GAAc,IAAI,QAAA,EAAS;AACjC,MAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AACtB,MAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AAErB,MAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,MAAA,CAAO,aAAa,OAAO,CAAA;AACpD,MAAA,OAAO,EAAE,IAAA,EAAqB;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,2BAA2B,CAAA;AAAA,IACvD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qCAAqC,WAAA,CAAY;AAAA,EAC5D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,yBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,0BAAA;AAAA,EACZ,cAAA,EAAgB,8BAAA;AAAA,EAChB,OAAA,EAAS,wBAAA;AAAA,EACT,WAAA,EACE,0LAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,uBAAA,CAAwB;AACnC,CAAC;AAEM,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,cAAA,EAAgB,yBAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,wDAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,gBAAe,KAAM;AACtD,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,MAClE;AAEA,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA;AAEzC,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,mBAAmB,CAAA;AAAA,MAC7D;AAEA,MAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,QAAA,CAAS,EAAE,gBAAgB,CAAA;AAErD,MAAA,MAAM,SAAA,GAAY,MAAM,OAAA,CAAQ,OAAA,EAAQ,CACrC,IAAA,CAAK,MAAM,KAAA,CAAM,WAAA,EAAa,CAAA,CAC9B,KAAA,CAAM,CAAA,GAAA,KAAO;AACZ,QAAA,IAAI,eAAe,WAAA,EAAa;AAE9B,UAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,QAC1B;AACA,QAAA,MAAM,GAAA;AAAA,MACR,CAAC,CAAA;AAEH,MAAA,OAAO,SAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yBAAyB,CAAA;AAAA,IACrD;AAAA,EACF;AACF,CAAC","file":"chunk-VKBYR4V4.js","sourcesContent":["import { Readable } from 'node:stream';\nimport { MastraError } from '@mastra/core/error';\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n voiceSpeakersResponseSchema,\n generateSpeechBodySchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n getListenerResponseSchema,\n} from '../schemas/agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Objects\n// ============================================================================\n\nexport const GET_SPEAKERS_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get voice speakers',\n description: 'Returns available voice speakers for the specified agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n const speakers = await Promise.resolve()\n .then(() => voice.getSpeakers())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured, return empty array\n return [];\n }\n throw err;\n });\n\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n },\n});\n\nexport const GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get available speakers for an agent',\n description: '[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GET_SPEAKERS_ROUTE.handler,\n});\n\nexport const GENERATE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Generate speech',\n description: 'Generates speech audio from text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({ text });\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(text!, { speaker: speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream as unknown as ReadableStream<any>;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n },\n});\n\nexport const GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Convert text to speech',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GENERATE_SPEECH_ROUTE.handler,\n});\n\nexport const TRANSCRIBE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Transcribe speech',\n description: 'Transcribes speech audio to text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, audio, options, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!audio) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(audio);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, options);\n return { text: text as string };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n },\n});\n\nexport const TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Convert speech to text',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: TRANSCRIBE_SPEECH_ROUTE.handler,\n});\n\nexport const GET_LISTENER_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/listener',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: getListenerResponseSchema,\n summary: 'Get voice listener',\n description: 'Returns the voice listener configuration for the agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const listeners = await Promise.resolve()\n .then(() => voice.getListener())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured\n return { enabled: false };\n }\n throw err;\n });\n\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":"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","file":"chunk-6M6OX2GI.js","sourcesContent":["import { Readable } from 'node:stream';\nimport { MastraError } from '@mastra/core/error';\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n voiceSpeakersResponseSchema,\n generateSpeechBodySchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n getListenerResponseSchema,\n} from '../schemas/agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Objects\n// ============================================================================\n\nexport const GET_SPEAKERS_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get voice speakers',\n description: 'Returns available voice speakers for the specified agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n const speakers = await Promise.resolve()\n .then(() => voice.getSpeakers())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured, return empty array\n return [];\n }\n throw err;\n });\n\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n },\n});\n\nexport const GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get available speakers for an agent',\n description: '[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GET_SPEAKERS_ROUTE.handler,\n});\n\nexport const GENERATE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Generate speech',\n description: 'Generates speech audio from text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({ text });\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(text!, { speaker: speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream as unknown as ReadableStream<any>;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n },\n});\n\nexport const GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Convert text to speech',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GENERATE_SPEECH_ROUTE.handler,\n});\n\nexport const TRANSCRIBE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Transcribe speech',\n description: 'Transcribes speech audio to text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, audio, options, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!audio) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(audio);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, options);\n return { text: text as string };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n },\n});\n\nexport const TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Convert speech to text',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: TRANSCRIBE_SPEECH_ROUTE.handler,\n});\n\nexport const GET_LISTENER_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/listener',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: getListenerResponseSchema,\n summary: 'Get voice listener',\n description: 'Returns the voice listener configuration for the agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const listeners = await Promise.resolve()\n .then(() => voice.getListener())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured\n return { enabled: false };\n }\n throw err;\n });\n\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n },\n});\n"]}
|