@mastra/server 0.0.0-bundle-studio-cloud-20251222034739 → 0.0.0-bundle-version-20260121091645
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 +1059 -4
- package/dist/{chunk-UWRAKVAJ.js → chunk-2CLS2PYJ.js} +151 -24
- package/dist/chunk-2CLS2PYJ.js.map +1 -0
- package/dist/{chunk-MQLS6Z7A.js → chunk-2CYGIE3E.js} +257 -73
- package/dist/chunk-2CYGIE3E.js.map +1 -0
- package/dist/{chunk-3XI22UQR.cjs → chunk-33CKPQS4.cjs} +31 -4
- package/dist/chunk-33CKPQS4.cjs.map +1 -0
- package/dist/{chunk-3SFLFUKY.js → chunk-3FEYUHHJ.js} +4 -4
- package/dist/{chunk-3SFLFUKY.js.map → chunk-3FEYUHHJ.js.map} +1 -1
- package/dist/{chunk-DW3WE4M4.js → chunk-3REGEJEN.js} +4 -4
- package/dist/{chunk-DW3WE4M4.js.map → chunk-3REGEJEN.js.map} +1 -1
- package/dist/chunk-3W67K7YE.js +13 -0
- package/dist/chunk-3W67K7YE.js.map +1 -0
- package/dist/chunk-4DJ7EJRB.cjs +186 -0
- package/dist/chunk-4DJ7EJRB.cjs.map +1 -0
- package/dist/{chunk-Q7NPRJRV.cjs → chunk-4EYONQIW.cjs} +9 -15
- package/dist/chunk-4EYONQIW.cjs.map +1 -0
- package/dist/{chunk-3BXS37TQ.js → chunk-4R2Z655M.js} +77 -107
- package/dist/chunk-4R2Z655M.js.map +1 -0
- package/dist/{chunk-AZIH2QEC.js → chunk-5NFRDYFN.js} +9 -15
- package/dist/chunk-5NFRDYFN.js.map +1 -0
- package/dist/chunk-5VDI75UV.js +44 -0
- package/dist/chunk-5VDI75UV.js.map +1 -0
- package/dist/{chunk-BNGT3NIC.cjs → chunk-6MP2S6VI.cjs} +26 -26
- package/dist/{chunk-BNGT3NIC.cjs.map → chunk-6MP2S6VI.cjs.map} +1 -1
- package/dist/{chunk-SXVANU23.js → chunk-7S7ALPCY.js} +66 -5
- package/dist/chunk-7S7ALPCY.js.map +1 -0
- package/dist/chunk-7XPMKW4Y.cjs +447 -0
- package/dist/chunk-7XPMKW4Y.cjs.map +1 -0
- package/dist/{chunk-K73YS7YB.cjs → chunk-AQI6GLTN.cjs} +74 -74
- package/dist/{chunk-K73YS7YB.cjs.map → chunk-AQI6GLTN.cjs.map} +1 -1
- package/dist/{chunk-S3TIWWQL.cjs → chunk-AV3CN5ZR.cjs} +22 -18
- package/dist/chunk-AV3CN5ZR.cjs.map +1 -0
- package/dist/{chunk-H2RMXG2Q.cjs → chunk-AVRO3FIN.cjs} +68 -4
- package/dist/chunk-AVRO3FIN.cjs.map +1 -0
- package/dist/{chunk-BMYZ4DO6.cjs → chunk-BRI4GUZ2.cjs} +19 -8
- package/dist/chunk-BRI4GUZ2.cjs.map +1 -0
- package/dist/{chunk-HAJOEDNB.js → chunk-CGIGPJRU.js} +32 -27
- package/dist/chunk-CGIGPJRU.js.map +1 -0
- package/dist/{chunk-JUYWLFVT.cjs → chunk-CLAEGIP5.cjs} +10 -16
- package/dist/chunk-CLAEGIP5.cjs.map +1 -0
- package/dist/chunk-FLLJIPD4.cjs +46 -0
- package/dist/chunk-FLLJIPD4.cjs.map +1 -0
- package/dist/chunk-G2AMUTU4.js +250 -0
- package/dist/chunk-G2AMUTU4.js.map +1 -0
- package/dist/{chunk-3OAAPDGI.js → chunk-GHQZIEPS.js} +6700 -1111
- package/dist/chunk-GHQZIEPS.js.map +1 -0
- package/dist/{chunk-WBLT2HL3.js → chunk-GNCALVLC.js} +31 -4
- package/dist/chunk-GNCALVLC.js.map +1 -0
- package/dist/{chunk-6V57U52D.js → chunk-H34VRYSF.js} +8 -8
- package/dist/{chunk-6V57U52D.js.map → chunk-H34VRYSF.js.map} +1 -1
- package/dist/{chunk-E646Y4FQ.js → chunk-H66LLFDL.js} +3 -3
- package/dist/chunk-H66LLFDL.js.map +1 -0
- package/dist/{chunk-LXXDQQSW.cjs → chunk-HCVDHEDD.cjs} +6838 -1252
- package/dist/chunk-HCVDHEDD.cjs.map +1 -0
- package/dist/chunk-I27H7BEB.js +439 -0
- package/dist/chunk-I27H7BEB.js.map +1 -0
- package/dist/{chunk-SRQY5IWD.js → chunk-IVGQTL3T.js} +5 -5
- package/dist/{chunk-SRQY5IWD.js.map → chunk-IVGQTL3T.js.map} +1 -1
- package/dist/{chunk-FYY54HZC.js → chunk-KKY4MSZO.js} +12 -8
- package/dist/chunk-KKY4MSZO.js.map +1 -0
- package/dist/{chunk-LKTCAPBD.cjs → chunk-L2E5RUVT.cjs} +13 -13
- package/dist/{chunk-LKTCAPBD.cjs.map → chunk-L2E5RUVT.cjs.map} +1 -1
- package/dist/chunk-LJ6YRVDI.cjs +15 -0
- package/dist/chunk-LJ6YRVDI.cjs.map +1 -0
- package/dist/{chunk-SV4AUWGY.js → chunk-LOA7RQYO.js} +3 -3
- package/dist/{chunk-SV4AUWGY.js.map → chunk-LOA7RQYO.js.map} +1 -1
- package/dist/{chunk-X43DWDXB.cjs → chunk-MPUVSOEU.cjs} +22 -22
- package/dist/{chunk-X43DWDXB.cjs.map → chunk-MPUVSOEU.cjs.map} +1 -1
- package/dist/chunk-N4EIZSG2.js +180 -0
- package/dist/chunk-N4EIZSG2.js.map +1 -0
- package/dist/{chunk-C3UIIRAT.cjs → chunk-NUO7HPOV.cjs} +292 -107
- package/dist/chunk-NUO7HPOV.cjs.map +1 -0
- package/dist/{chunk-UXGQZUYZ.js → chunk-ONN5EA7E.js} +13 -3
- package/dist/chunk-ONN5EA7E.js.map +1 -0
- package/dist/chunk-PNZQCQY4.cjs +252 -0
- package/dist/chunk-PNZQCQY4.cjs.map +1 -0
- package/dist/{chunk-I6LR6CPC.cjs → chunk-QPFYN6B5.cjs} +10 -10
- package/dist/{chunk-I6LR6CPC.cjs.map → chunk-QPFYN6B5.cjs.map} +1 -1
- package/dist/{chunk-V5WWQN7P.cjs → chunk-SUKFO7UM.cjs} +13 -2
- package/dist/chunk-SUKFO7UM.cjs.map +1 -0
- package/dist/chunk-T4SPG2GP.cjs +82 -0
- package/dist/chunk-T4SPG2GP.cjs.map +1 -0
- package/dist/{chunk-XW2HXQDO.js → chunk-TMS4LS2J.js} +3 -3
- package/dist/{chunk-XW2HXQDO.js.map → chunk-TMS4LS2J.js.map} +1 -1
- package/dist/{chunk-LQSZ4FJJ.cjs → chunk-UK4FZWNW.cjs} +37 -37
- package/dist/{chunk-LQSZ4FJJ.cjs.map → chunk-UK4FZWNW.cjs.map} +1 -1
- package/dist/{chunk-BMLUV4BH.cjs → chunk-VX3VN7FN.cjs} +3 -3
- package/dist/chunk-VX3VN7FN.cjs.map +1 -0
- package/dist/{chunk-PUFCKXFW.cjs → chunk-WJ6DNHLW.cjs} +11 -11
- package/dist/{chunk-PUFCKXFW.cjs.map → chunk-WJ6DNHLW.cjs.map} +1 -1
- package/dist/{chunk-KPSSRYGH.js → chunk-WLGJVDH4.js} +17 -9
- package/dist/chunk-WLGJVDH4.js.map +1 -0
- package/dist/{chunk-DRUNNM4C.js → chunk-XB27LCKO.js} +4 -4
- package/dist/{chunk-DRUNNM4C.js.map → chunk-XB27LCKO.js.map} +1 -1
- package/dist/{chunk-IEYXQTUW.cjs → chunk-XCEQ4GQW.cjs} +42 -37
- package/dist/chunk-XCEQ4GQW.cjs.map +1 -0
- package/dist/chunk-XOUK3IYU.js +77 -0
- package/dist/chunk-XOUK3IYU.js.map +1 -0
- package/dist/{chunk-7KOS32XA.cjs → chunk-YK63KHHB.cjs} +242 -111
- package/dist/chunk-YK63KHHB.cjs.map +1 -0
- package/dist/{chunk-S5XBFHJL.js → chunk-YN3FWKVQ.js} +6 -12
- package/dist/chunk-YN3FWKVQ.js.map +1 -0
- package/dist/{chunk-P6S2HIVE.cjs → chunk-ZQ2G6QKS.cjs} +131 -163
- package/dist/chunk-ZQ2G6QKS.cjs.map +1 -0
- package/dist/{dist-AF7EUPXA.cjs → dist-7NTDEVLP.cjs} +28 -28
- package/dist/{dist-AF7EUPXA.cjs.map → dist-7NTDEVLP.cjs.map} +1 -1
- package/dist/{dist-4CMHRWC4.js → dist-B5GMANA6.js} +3 -3
- package/dist/{dist-4CMHRWC4.js.map → dist-B5GMANA6.js.map} +1 -1
- package/dist/dist-EDO7GEGI.js +3 -0
- package/dist/{dist-MEN73GGI.js.map → dist-EDO7GEGI.js.map} +1 -1
- package/dist/{dist-Q2ST4SUQ.cjs → dist-OF24ZMHH.cjs} +30 -30
- package/dist/{dist-Q2ST4SUQ.cjs.map → dist-OF24ZMHH.cjs.map} +1 -1
- package/dist/{dist-Y5SYUVLY.cjs → dist-P6YSNLL3.cjs} +20 -20
- package/dist/{dist-Y5SYUVLY.cjs.map → dist-P6YSNLL3.cjs.map} +1 -1
- package/dist/{dist-AEJONJSS.js → dist-SMBO5KVB.js} +3 -3
- package/dist/{dist-AEJONJSS.js.map → dist-SMBO5KVB.js.map} +1 -1
- package/dist/{dist-TE7XRSWH.js → dist-THPMW5QR.js} +3 -3
- package/dist/{dist-TE7XRSWH.js.map → dist-THPMW5QR.js.map} +1 -1
- package/dist/{dist-NVXXJWBO.cjs → dist-VZTG56X2.cjs} +26 -26
- package/dist/{dist-NVXXJWBO.cjs.map → dist-VZTG56X2.cjs.map} +1 -1
- package/dist/dist-ZLC23RVC.cjs +16 -0
- package/dist/{dist-2J26LQO2.cjs.map → dist-ZLC23RVC.cjs.map} +1 -1
- package/dist/{dist-VPYZNWNG.js → dist-ZOZ6MHJH.js} +3 -3
- package/dist/{dist-VPYZNWNG.js.map → dist-ZOZ6MHJH.js.map} +1 -1
- package/dist/docs/README.md +31 -0
- package/dist/docs/SKILL.md +32 -0
- package/dist/docs/SOURCE_MAP.json +6 -0
- package/dist/docs/server/01-custom-adapters.md +380 -0
- package/dist/docs/server/02-reference.md +819 -0
- package/dist/server/handlers/a2a.cjs +9 -9
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -28
- package/dist/server/handlers/agent-builder.d.ts +77 -87
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +40 -24
- package/dist/server/handlers/agents.d.ts +107 -79
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +6 -2
- package/dist/server/handlers/error.d.ts +12 -0
- package/dist/server/handlers/error.d.ts.map +1 -1
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp.cjs +9 -9
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +28 -24
- package/dist/server/handlers/memory.d.ts +206 -90
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +7 -23
- package/dist/server/handlers/observability.d.ts +92 -95
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/processors.cjs +20 -0
- package/dist/server/handlers/processors.cjs.map +1 -0
- package/dist/server/handlers/processors.d.ts +181 -0
- package/dist/server/handlers/processors.d.ts.map +1 -0
- package/dist/server/handlers/processors.js +3 -0
- package/dist/server/handlers/processors.js.map +1 -0
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.d.ts +7 -7
- 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 +6 -6
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/system.cjs +12 -0
- package/dist/server/handlers/system.cjs.map +1 -0
- package/dist/server/handlers/system.d.ts +7 -0
- package/dist/server/handlers/system.d.ts.map +1 -0
- package/dist/server/handlers/system.js +3 -0
- package/dist/server/handlers/system.js.map +1 -0
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/vector.cjs +13 -13
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.d.ts +6 -6
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +24 -36
- package/dist/server/handlers/workflows.d.ts +98 -112
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +27 -27
- package/dist/server/handlers.js +12 -12
- package/dist/server/schemas/agent-builder.d.ts +13 -1
- package/dist/server/schemas/agent-builder.d.ts.map +1 -1
- package/dist/server/schemas/agents.d.ts +412 -9
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/memory.d.ts +257 -91
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/schemas/processors.d.ts +519 -0
- package/dist/server/schemas/processors.d.ts.map +1 -0
- package/dist/server/schemas/scores.d.ts +6 -6
- package/dist/server/schemas/system.d.ts +36 -0
- package/dist/server/schemas/system.d.ts.map +1 -0
- package/dist/server/schemas/workflows.d.ts +233 -38
- package/dist/server/schemas/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +187 -149
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +24 -6
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +50 -25
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/redact.d.ts +2 -2
- package/dist/server/server-adapter/redact.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/index.d.ts +1 -1
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/processors.d.ts +3 -0
- package/dist/server/server-adapter/routes/processors.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts +60 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/system.d.ts +12 -0
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/{token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs → token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs} +8 -8
- package/dist/{token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs.map → token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs.map} +1 -1
- package/dist/{token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js → token-6GSAFR2W-K2BTU23I-NW33N3NU.js} +5 -5
- package/dist/{token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js.map → token-6GSAFR2W-K2BTU23I-NW33N3NU.js.map} +1 -1
- package/dist/token-6GSAFR2W-VLY2XUPA-NCSASMWN.js +61 -0
- package/dist/token-6GSAFR2W-VLY2XUPA-NCSASMWN.js.map +1 -0
- package/dist/token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs +63 -0
- package/dist/token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs +10 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js +8 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js.map +1 -0
- package/dist/token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs +10 -0
- package/dist/{token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs.map → token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs.map} +1 -1
- package/dist/token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js +8 -0
- package/dist/{token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js.map → token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js.map} +1 -1
- package/package.json +13 -12
- package/dist/chunk-3BXS37TQ.js.map +0 -1
- package/dist/chunk-3OAAPDGI.js.map +0 -1
- package/dist/chunk-3XI22UQR.cjs.map +0 -1
- package/dist/chunk-7KOS32XA.cjs.map +0 -1
- package/dist/chunk-AZIH2QEC.js.map +0 -1
- package/dist/chunk-BMLUV4BH.cjs.map +0 -1
- package/dist/chunk-BMYZ4DO6.cjs.map +0 -1
- package/dist/chunk-C3UIIRAT.cjs.map +0 -1
- package/dist/chunk-E646Y4FQ.js.map +0 -1
- package/dist/chunk-FYY54HZC.js.map +0 -1
- package/dist/chunk-GFF2I6UD.js +0 -354
- package/dist/chunk-GFF2I6UD.js.map +0 -1
- package/dist/chunk-H2RMXG2Q.cjs.map +0 -1
- package/dist/chunk-HAJOEDNB.js.map +0 -1
- package/dist/chunk-IEYXQTUW.cjs.map +0 -1
- package/dist/chunk-JUYWLFVT.cjs.map +0 -1
- package/dist/chunk-KPSSRYGH.js.map +0 -1
- package/dist/chunk-LXXDQQSW.cjs.map +0 -1
- package/dist/chunk-MQLS6Z7A.js.map +0 -1
- package/dist/chunk-P6S2HIVE.cjs.map +0 -1
- package/dist/chunk-Q7NPRJRV.cjs.map +0 -1
- package/dist/chunk-S3TIWWQL.cjs.map +0 -1
- package/dist/chunk-S5XBFHJL.js.map +0 -1
- package/dist/chunk-SXVANU23.js.map +0 -1
- package/dist/chunk-TYZ6ZISQ.cjs +0 -368
- package/dist/chunk-TYZ6ZISQ.cjs.map +0 -1
- package/dist/chunk-UWRAKVAJ.js.map +0 -1
- package/dist/chunk-UXGQZUYZ.js.map +0 -1
- package/dist/chunk-V5WWQN7P.cjs.map +0 -1
- package/dist/chunk-WBLT2HL3.js.map +0 -1
- package/dist/dist-2J26LQO2.cjs +0 -16
- package/dist/dist-MEN73GGI.js +0 -3
- package/dist/server/schemas/observability.d.ts +0 -402
- package/dist/server/schemas/observability.d.ts.map +0 -1
- package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js +0 -8
- package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
# @mastra/server
|
|
2
2
|
|
|
3
|
-
## 0.0.0-bundle-
|
|
3
|
+
## 0.0.0-bundle-version-20260121091645
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b)]:
|
|
8
|
+
- @mastra/core@0.0.0-bundle-version-20260121091645
|
|
9
|
+
|
|
10
|
+
## 1.0.4
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
|
|
15
|
+
|
|
16
|
+
- Updated dependencies:
|
|
17
|
+
- @mastra/core@1.0.4
|
|
18
|
+
|
|
19
|
+
## 1.0.4-alpha.0
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
|
|
24
|
+
|
|
25
|
+
- Updated dependencies:
|
|
26
|
+
- @mastra/core@1.0.4-alpha.0
|
|
27
|
+
|
|
28
|
+
## 1.0.0
|
|
4
29
|
|
|
5
30
|
### Major Changes
|
|
6
31
|
|
|
@@ -136,6 +161,40 @@
|
|
|
136
161
|
|
|
137
162
|
- Rename `defaultVNextStreamOptions` to `defaultOptions`. Add "Legacy" suffix to v1 option properties and methods (`defaultGenerateOptions` → `defaultGenerateOptionsLegacy`, `defaultStreamOptions` → `defaultStreamOptionsLegacy`). ([#9535](https://github.com/mastra-ai/mastra/pull/9535))
|
|
138
163
|
|
|
164
|
+
- **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
|
|
165
|
+
|
|
166
|
+
This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
|
|
167
|
+
- All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
|
|
168
|
+
- Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
|
|
169
|
+
- `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
|
|
170
|
+
- `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
|
|
171
|
+
- Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
|
|
172
|
+
- Added `FullOutput<OUTPUT>` type representing complete output with all fields
|
|
173
|
+
- Added `AgentExecutionOptionsBase<OUTPUT>` type
|
|
174
|
+
- `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
|
|
175
|
+
- `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
|
|
176
|
+
- `agent.generate()` and `agent.stream()` methods have updated signatures
|
|
177
|
+
- `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
|
|
178
|
+
- Network route and streaming APIs updated to use plain OUTPUT generic
|
|
179
|
+
|
|
180
|
+
**Before:**
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
const output = await agent.generate<z.ZodType>([...], {
|
|
184
|
+
structuredOutput: { schema: mySchema }
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
**After:**
|
|
188
|
+
const output = await agent.generate<z.infer<typeof mySchema>>([...], {
|
|
189
|
+
structuredOutput: { schema: mySchema }
|
|
190
|
+
});
|
|
191
|
+
// Or rely on type inference:
|
|
192
|
+
const output = await agent.generate([...], {
|
|
193
|
+
structuredOutput: { schema: mySchema }
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
|
|
139
198
|
- Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
|
|
140
199
|
|
|
141
200
|
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
@@ -258,7 +317,7 @@
|
|
|
258
317
|
|
|
259
318
|
// Load and use the agent
|
|
260
319
|
const agent = await mastra.getStoredAgentById('my-agent');
|
|
261
|
-
const response = await agent.generate(
|
|
320
|
+
const response = await agent.generate('Hello!');
|
|
262
321
|
|
|
263
322
|
// List all stored agents with pagination
|
|
264
323
|
const { agents, total, hasMore } = await mastra.listStoredAgents({
|
|
@@ -269,6 +328,54 @@
|
|
|
269
328
|
|
|
270
329
|
Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
|
|
271
330
|
|
|
331
|
+
- Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
|
|
332
|
+
|
|
333
|
+
**Why:** This provides parity between `stream()` and `generate()` for tool approval flows, allowing non-streaming use cases to leverage `requireToolApproval` without needing to switch to streaming.
|
|
334
|
+
|
|
335
|
+
Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
|
|
336
|
+
|
|
337
|
+
**Using tool approval with generate()**
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
const output = await agent.generate('Find user John', {
|
|
341
|
+
requireToolApproval: true,
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
// Check if a tool is waiting for approval
|
|
345
|
+
if (output.finishReason === 'suspended') {
|
|
346
|
+
console.log('Tool requires approval:', output.suspendPayload.toolName);
|
|
347
|
+
|
|
348
|
+
// Approve the tool call
|
|
349
|
+
const result = await agent.approveToolCallGenerate({
|
|
350
|
+
runId: output.runId,
|
|
351
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
console.log(result.text);
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**Declining a tool call**
|
|
359
|
+
|
|
360
|
+
```typescript
|
|
361
|
+
if (output.finishReason === 'suspended') {
|
|
362
|
+
const result = await agent.declineToolCallGenerate({
|
|
363
|
+
runId: output.runId,
|
|
364
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**New methods added:**
|
|
370
|
+
- `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
|
|
371
|
+
- `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
|
|
372
|
+
|
|
373
|
+
**Server routes added:**
|
|
374
|
+
- `POST /api/agents/:agentId/approve-tool-call-generate`
|
|
375
|
+
- `POST /api/agents/:agentId/decline-tool-call-generate`
|
|
376
|
+
|
|
377
|
+
The playground UI now also supports tool approval when using generate mode.
|
|
378
|
+
|
|
272
379
|
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
273
380
|
|
|
274
381
|
- Memory scope defaults changed from 'thread' to 'resource' ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
@@ -306,10 +413,165 @@
|
|
|
306
413
|
|
|
307
414
|
- Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
308
415
|
|
|
416
|
+
- Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
|
|
417
|
+
|
|
418
|
+
## What changed
|
|
419
|
+
|
|
420
|
+
Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
|
|
421
|
+
|
|
422
|
+
**Before:**
|
|
423
|
+
|
|
424
|
+
```typescript
|
|
425
|
+
// Old span structure
|
|
426
|
+
span.agentId; // 'my-agent'
|
|
427
|
+
span.toolId; // undefined
|
|
428
|
+
span.workflowId; // undefined
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**After:**
|
|
432
|
+
|
|
433
|
+
```typescript
|
|
434
|
+
// New span structure
|
|
435
|
+
span.entityType; // EntityType.AGENT
|
|
436
|
+
span.entityId; // 'my-agent'
|
|
437
|
+
span.entityName; // 'My Agent'
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## New `listTraces()` API
|
|
441
|
+
|
|
442
|
+
Query traces with filtering, pagination, and sorting:
|
|
443
|
+
|
|
444
|
+
```typescript
|
|
445
|
+
const { spans, pagination } = await storage.listTraces({
|
|
446
|
+
filters: {
|
|
447
|
+
entityType: EntityType.AGENT,
|
|
448
|
+
entityId: 'my-agent',
|
|
449
|
+
userId: 'user-123',
|
|
450
|
+
environment: 'production',
|
|
451
|
+
status: TraceStatus.SUCCESS,
|
|
452
|
+
startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
|
|
453
|
+
},
|
|
454
|
+
pagination: { page: 0, perPage: 50 },
|
|
455
|
+
orderBy: { field: 'startedAt', direction: 'DESC' },
|
|
456
|
+
});
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
**Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
|
|
460
|
+
|
|
461
|
+
## New retrieval methods
|
|
462
|
+
- `getSpan({ traceId, spanId })` - Get a single span
|
|
463
|
+
- `getRootSpan({ traceId })` - Get the root span of a trace
|
|
464
|
+
- `getTrace({ traceId })` - Get all spans for a trace
|
|
465
|
+
|
|
466
|
+
## Backward compatibility
|
|
467
|
+
|
|
468
|
+
The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
|
|
469
|
+
|
|
470
|
+
## Migration
|
|
471
|
+
|
|
472
|
+
**Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
|
|
473
|
+
|
|
474
|
+
**No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
|
|
475
|
+
|
|
476
|
+
- Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
|
|
477
|
+
|
|
478
|
+
**New Features**
|
|
479
|
+
- Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
|
|
480
|
+
- All filter parameters are optional, allowing you to list all threads or filter as needed
|
|
481
|
+
- Full pagination and sorting support
|
|
482
|
+
|
|
483
|
+
**Example Usage**
|
|
484
|
+
|
|
485
|
+
```typescript
|
|
486
|
+
// List all threads
|
|
487
|
+
const allThreads = await memory.listThreads({});
|
|
488
|
+
|
|
489
|
+
// Filter by resourceId only
|
|
490
|
+
const userThreads = await memory.listThreads({
|
|
491
|
+
filter: { resourceId: 'user-123' },
|
|
492
|
+
});
|
|
493
|
+
|
|
494
|
+
// Filter by metadata only
|
|
495
|
+
const supportThreads = await memory.listThreads({
|
|
496
|
+
filter: { metadata: { category: 'support' } },
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
// Filter by both with pagination
|
|
500
|
+
const filteredThreads = await memory.listThreads({
|
|
501
|
+
filter: {
|
|
502
|
+
resourceId: 'user-123',
|
|
503
|
+
metadata: { priority: 'high', status: 'open' },
|
|
504
|
+
},
|
|
505
|
+
orderBy: { field: 'updatedAt', direction: 'DESC' },
|
|
506
|
+
page: 0,
|
|
507
|
+
perPage: 20,
|
|
508
|
+
});
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
**Security Improvements**
|
|
512
|
+
- Added validation to prevent SQL injection via malicious metadata keys
|
|
513
|
+
- Added pagination parameter validation to prevent integer overflow attacks
|
|
514
|
+
|
|
309
515
|
- Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
310
516
|
|
|
517
|
+
- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
518
|
+
|
|
519
|
+
**What changed:**
|
|
520
|
+
- `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
|
|
521
|
+
- Added optional `fields` parameter to request only specific fields for better performance
|
|
522
|
+
- Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
|
|
523
|
+
- Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
|
|
524
|
+
- Removed `/execution-result` API endpoints from server (breaking change)
|
|
525
|
+
- Removed `runExecutionResult()` method from client SDK (breaking change)
|
|
526
|
+
- Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
|
|
527
|
+
|
|
528
|
+
**Before:**
|
|
529
|
+
|
|
530
|
+
```typescript
|
|
531
|
+
// Had to call two different methods for different data
|
|
532
|
+
const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
|
|
533
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
**After:**
|
|
537
|
+
|
|
538
|
+
```typescript
|
|
539
|
+
// Single method returns everything
|
|
540
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
541
|
+
// Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
|
|
542
|
+
|
|
543
|
+
// Request only specific fields for better performance (avoids expensive step fetching)
|
|
544
|
+
const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
|
|
545
|
+
|
|
546
|
+
// Skip nested workflow steps for faster response
|
|
547
|
+
const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.
|
|
551
|
+
|
|
311
552
|
### Patch Changes
|
|
312
553
|
|
|
554
|
+
- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
|
|
555
|
+
|
|
556
|
+
Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
|
|
557
|
+
|
|
558
|
+
Each package includes:
|
|
559
|
+
- **SKILL.md** - Entry point explaining the package's purpose and capabilities
|
|
560
|
+
- **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
|
|
561
|
+
- **Topic folders** - Conceptual documentation organized by feature area
|
|
562
|
+
|
|
563
|
+
Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
|
|
564
|
+
|
|
565
|
+
- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
|
|
566
|
+
|
|
567
|
+
```diff
|
|
568
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
569
|
+
- const stream = await run.streamVNext({ inputData: { ... } });
|
|
570
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
574
|
+
|
|
313
575
|
- Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
|
|
314
576
|
|
|
315
577
|
- Fix semantic search endpoint to return results in the correct format. Also fix the delete messages endpoint to properly normalize ids in the expected format. ([#10032](https://github.com/mastra-ai/mastra/pull/10032))
|
|
@@ -322,14 +584,26 @@
|
|
|
322
584
|
These packages support mastra server routes on express and hono respectively.
|
|
323
585
|
Better abstractions will be built on top of these packages in the near future, enabling users to easily attach mastra routes to any existing server framework.
|
|
324
586
|
|
|
587
|
+
- Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
|
|
588
|
+
|
|
325
589
|
- Fix type safety for message ordering - restrict `orderBy` to only accept `'createdAt'` field ([#11069](https://github.com/mastra-ai/mastra/pull/11069))
|
|
326
590
|
|
|
327
591
|
Messages don't have an `updatedAt` field, but the previous type allowed ordering by it, which would return empty results. This change adds compile-time type safety by making `StorageOrderBy` generic and restricting `StorageListMessagesInput.orderBy` to only accept `'createdAt'`. The API validation schemas have also been updated to reject invalid orderBy values at runtime.
|
|
328
592
|
|
|
329
593
|
- Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
|
|
330
594
|
|
|
595
|
+
- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
596
|
+
|
|
597
|
+
**What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.
|
|
598
|
+
|
|
599
|
+
**Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.
|
|
600
|
+
|
|
601
|
+
**User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.
|
|
602
|
+
|
|
331
603
|
- Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
|
|
332
604
|
|
|
605
|
+
- Added new /api/processors endpoints to list, get details, and execute processors. Processor workflows are now auto-detected based on their schema. ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
|
|
606
|
+
|
|
333
607
|
- Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
|
|
334
608
|
|
|
335
609
|
Consolidated the 3 different execution contexts to one
|
|
@@ -376,8 +650,78 @@
|
|
|
376
650
|
}
|
|
377
651
|
```
|
|
378
652
|
|
|
653
|
+
- Removes the deprecated `threadId` and `resourceId` options from `AgentExecutionOptions`. These have been deprecated for months in favour of the `memory` option. ([#11897](https://github.com/mastra-ai/mastra/pull/11897))
|
|
654
|
+
|
|
655
|
+
### Breaking Changes
|
|
656
|
+
|
|
657
|
+
#### `@mastra/core`
|
|
658
|
+
|
|
659
|
+
The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
|
|
660
|
+
|
|
661
|
+
```ts
|
|
662
|
+
// Before
|
|
663
|
+
await agent.stream('Hello', {
|
|
664
|
+
threadId: 'thread-123',
|
|
665
|
+
resourceId: 'user-456',
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
// After
|
|
669
|
+
await agent.stream('Hello', {
|
|
670
|
+
memory: {
|
|
671
|
+
thread: 'thread-123',
|
|
672
|
+
resource: 'user-456',
|
|
673
|
+
},
|
|
674
|
+
});
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
#### `@mastra/server`
|
|
678
|
+
|
|
679
|
+
The `threadId`, `resourceId`, and `resourceid` fields have been removed from the main agent execution body schema. The server now expects the `memory` option format in request bodies. Legacy routes (`/api/agents/:agentId/generate-legacy` and `/api/agents/:agentId/stream-legacy`) continue to support the deprecated fields.
|
|
680
|
+
|
|
681
|
+
#### `@mastra/react`
|
|
682
|
+
|
|
683
|
+
The `useChat` hook now internally converts `threadId` to the `memory` option format when making API calls. No changes needed in component code - the hook handles the conversion automatically.
|
|
684
|
+
|
|
685
|
+
#### `@mastra/client-js`
|
|
686
|
+
|
|
687
|
+
When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
|
|
688
|
+
|
|
689
|
+
```ts
|
|
690
|
+
const agent = client.getAgent('my-agent');
|
|
691
|
+
|
|
692
|
+
// Before
|
|
693
|
+
await agent.generate([...], {
|
|
694
|
+
threadId: 'thread-123',
|
|
695
|
+
resourceId: 'user-456',
|
|
696
|
+
});
|
|
697
|
+
|
|
698
|
+
// After
|
|
699
|
+
await agent.generate([...], {
|
|
700
|
+
memory: {
|
|
701
|
+
thread: 'thread-123',
|
|
702
|
+
resource: 'user-456',
|
|
703
|
+
},
|
|
704
|
+
});
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
- Fixed orderBy query parameter parsing for memory endpoints. The listMessages and listThreads endpoints now correctly parse orderBy when passed as a JSON string in URL query parameters, matching the existing behavior for include and filter parameters. ([#11767](https://github.com/mastra-ai/mastra/pull/11767))
|
|
708
|
+
|
|
709
|
+
- Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
|
|
710
|
+
- Add suspend/resume capabilities to agent network
|
|
711
|
+
- Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
|
|
712
|
+
|
|
713
|
+
`agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
|
|
714
|
+
|
|
379
715
|
- Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
|
|
380
716
|
|
|
717
|
+
- Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
718
|
+
|
|
719
|
+
Fixes an issue where complex query parameters (like `startedAt` and `endedAt` date range filters) would fail with "Expected object, received string" errors when using the `listTraces` API.
|
|
720
|
+
|
|
721
|
+
The fix addresses two issues:
|
|
722
|
+
- Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
|
|
723
|
+
- Ensures compatibility with both zod v3 and v4
|
|
724
|
+
|
|
381
725
|
- Add execution metadata to A2A message/send responses. The A2A protocol now returns detailed execution information including tool calls, tool results, token usage, and finish reason in the task metadata. This allows clients to inspect which tools were invoked during agent execution and access execution statistics without additional queries. ([#11241](https://github.com/mastra-ai/mastra/pull/11241))
|
|
382
726
|
|
|
383
727
|
- Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
|
|
@@ -386,8 +730,25 @@
|
|
|
386
730
|
|
|
387
731
|
Tools created with `createTool({ inputSchema: z.object(...) })` now work without TypeScript errors.
|
|
388
732
|
|
|
733
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
734
|
+
|
|
735
|
+
The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
|
|
736
|
+
|
|
737
|
+
**Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
|
|
738
|
+
|
|
739
|
+
**Solution**:
|
|
740
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
741
|
+
- Kept handler transformation for defense in depth
|
|
742
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
743
|
+
|
|
744
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
745
|
+
|
|
746
|
+
Fixes #11412
|
|
747
|
+
|
|
389
748
|
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
390
749
|
|
|
750
|
+
- Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
|
|
751
|
+
|
|
391
752
|
- feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
|
|
392
753
|
|
|
393
754
|
Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
|
|
@@ -472,6 +833,49 @@
|
|
|
472
833
|
- Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
|
|
473
834
|
- Combining both: Maximum performance optimization
|
|
474
835
|
|
|
836
|
+
- Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
|
|
837
|
+
|
|
838
|
+
### Summary
|
|
839
|
+
|
|
840
|
+
This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
|
|
841
|
+
|
|
842
|
+
### Migration Guide
|
|
843
|
+
|
|
844
|
+
All direct method calls on storage instances should be updated to use `getStore()`:
|
|
845
|
+
|
|
846
|
+
```typescript
|
|
847
|
+
// Before
|
|
848
|
+
const thread = await storage.getThreadById({ threadId });
|
|
849
|
+
await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
850
|
+
await storage.createSpan(span);
|
|
851
|
+
|
|
852
|
+
// After
|
|
853
|
+
const memory = await storage.getStore('memory');
|
|
854
|
+
const thread = await memory?.getThreadById({ threadId });
|
|
855
|
+
|
|
856
|
+
const workflows = await storage.getStore('workflows');
|
|
857
|
+
await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
858
|
+
|
|
859
|
+
const observability = await storage.getStore('observability');
|
|
860
|
+
await observability?.createSpan(span);
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
### Available Domains
|
|
864
|
+
- **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
|
|
865
|
+
- **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
|
|
866
|
+
- **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
|
|
867
|
+
- **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
|
|
868
|
+
- **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
|
|
869
|
+
|
|
870
|
+
### Breaking Changes
|
|
871
|
+
- Passthrough methods have been removed from `MastraStorage` base class
|
|
872
|
+
- All storage adapters now require accessing domains via `getStore()`
|
|
873
|
+
- The `stores` property on storage instances is now the canonical way to access domain storage
|
|
874
|
+
|
|
875
|
+
### Internal Changes
|
|
876
|
+
- Each storage adapter now initializes domain-specific stores in its constructor
|
|
877
|
+
- Domain stores share database connections and handle their own table initialization
|
|
878
|
+
|
|
475
879
|
- Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
476
880
|
|
|
477
881
|
- Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
|
|
@@ -516,6 +920,39 @@
|
|
|
516
920
|
- Added comprehensive MCP endpoint tests for both Hono and Express adapters
|
|
517
921
|
- Added GitHub Actions workflow for server adapter CI testing
|
|
518
922
|
|
|
923
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
924
|
+
|
|
925
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
|
|
926
|
+
|
|
927
|
+
```typescript
|
|
928
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
929
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
930
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
931
|
+
|
|
932
|
+
// Compose domains from different stores
|
|
933
|
+
const storage = new MastraStorage({
|
|
934
|
+
id: 'composite',
|
|
935
|
+
domains: {
|
|
936
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
937
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
938
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
939
|
+
},
|
|
940
|
+
});
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
**Breaking changes:**
|
|
944
|
+
- `storage.supports` property no longer exists
|
|
945
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
946
|
+
|
|
947
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
948
|
+
|
|
949
|
+
```typescript
|
|
950
|
+
const store = await storage.getStore('memory');
|
|
951
|
+
if (store) {
|
|
952
|
+
// domain is available
|
|
953
|
+
}
|
|
954
|
+
```
|
|
955
|
+
|
|
519
956
|
- Remove deprecated playground-only prompt generation handler (functionality moved to @mastra/server) ([#11074](https://github.com/mastra-ai/mastra/pull/11074))
|
|
520
957
|
|
|
521
958
|
Improve prompt enhancement UX: show toast errors when enhancement fails, disable button when no model has a configured API key, and prevent users from disabling all models in the model list
|
|
@@ -530,6 +967,14 @@
|
|
|
530
967
|
await workflow.deleteWorkflowRunById(runId);
|
|
531
968
|
```
|
|
532
969
|
|
|
970
|
+
- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
|
|
971
|
+
|
|
972
|
+
- Fix 'Memory is not initialized' error in playground for agents with sub-agents but no memory ([#11780](https://github.com/mastra-ai/mastra/pull/11780))
|
|
973
|
+
|
|
974
|
+
When using agents with sub-agents (e.g., agent networks) but no memory configured, the playground UI would log HTTPException errors when fetching messages for sub-agents without memory.
|
|
975
|
+
|
|
976
|
+
Changed GET /api/memory/threads/:threadId/messages to return empty messages `{ messages: [], uiMessages: [] }` instead of throwing 400 error when memory is not configured for the requested agent.
|
|
977
|
+
|
|
533
978
|
- Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
|
|
534
979
|
|
|
535
980
|
```ts
|
|
@@ -546,6 +991,10 @@
|
|
|
546
991
|
- Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
|
|
547
992
|
- Server adapters now auto-register with Mastra in their constructor
|
|
548
993
|
|
|
994
|
+
- Add `/api/system/packages` endpoint that returns installed Mastra packages and versions from the dev environment ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
|
|
995
|
+
|
|
996
|
+
- Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
|
|
997
|
+
|
|
549
998
|
- Standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
|
|
550
999
|
- Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
|
|
551
1000
|
- Client SDK sends both param formats to support older server versions
|
|
@@ -565,6 +1014,33 @@
|
|
|
565
1014
|
|
|
566
1015
|
- Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
|
|
567
1016
|
|
|
1017
|
+
- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
|
|
1018
|
+
|
|
1019
|
+
```typescript
|
|
1020
|
+
// Clone a thread
|
|
1021
|
+
const { thread, clonedMessages } = await memory.cloneThread({
|
|
1022
|
+
sourceThreadId: 'thread-123',
|
|
1023
|
+
title: 'My Clone',
|
|
1024
|
+
options: {
|
|
1025
|
+
messageLimit: 10, // optional: only copy last N messages
|
|
1026
|
+
},
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
// Check if a thread is a clone
|
|
1030
|
+
if (memory.isClone(thread)) {
|
|
1031
|
+
const source = await memory.getSourceThread(thread.id);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
// List all clones of a thread
|
|
1035
|
+
const clones = await memory.listClones('thread-123');
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
Includes:
|
|
1039
|
+
- Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
|
|
1040
|
+
- API endpoint: `POST /api/memory/threads/:threadId/clone`
|
|
1041
|
+
- Embeddings created for cloned messages (semantic recall)
|
|
1042
|
+
- Clone button in playground UI Memory tab
|
|
1043
|
+
|
|
568
1044
|
- The `stream` API endpoint now automatically redacts `request` data from stream chunks (`step-start`, `step-finish`, `finish`) which could contain system prompts, tool definitions, and API keys. Redaction is enabled by default and can be disabled for debugging/internal services via `streamOptions.redact`. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
|
|
569
1045
|
|
|
570
1046
|
- Remove `waitForEvent` from workflows. `waitForEvent` is now removed, please use suspend & resume flow instead. See https://mastra.ai/en/docs/workflows/suspend-and-resume for more details on suspend & resume flow. ([#9214](https://github.com/mastra-ai/mastra/pull/9214))
|
|
@@ -636,8 +1112,587 @@
|
|
|
636
1112
|
|
|
637
1113
|
- Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
|
|
638
1114
|
|
|
639
|
-
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
|
|
640
|
-
|
|
1115
|
+
- Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
|
|
1116
|
+
|
|
1117
|
+
When workflows use multiple agents sharing the same threadId/resourceId, users can now retrieve threads and messages without specifying an agentId. The server falls back to using storage directly when agentId is not provided.
|
|
1118
|
+
|
|
1119
|
+
- Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
|
|
1120
|
+
|
|
1121
|
+
The voice transcription endpoint (`/api/agents/:agentId/voice/listen`) now correctly handles multipart/form-data requests for audio uploads rather than only parsing JSON request bodies.
|
|
1122
|
+
|
|
1123
|
+
Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
|
|
1124
|
+
|
|
1125
|
+
**Breaking change:** The server schema field for the transcription endpoint was renamed from `audioData` to `audio` to match the client SDK. If you are making direct API calls to the transcription endpoint (not using the SDK), you will need to update your request body to use `audio` instead of `audioData`.
|
|
1126
|
+
|
|
1127
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
|
|
1128
|
+
- @mastra/core@1.0.0
|
|
1129
|
+
|
|
1130
|
+
## 1.0.0-beta.27
|
|
1131
|
+
|
|
1132
|
+
### Patch Changes
|
|
1133
|
+
|
|
1134
|
+
- Updated dependencies [[`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a)]:
|
|
1135
|
+
- @mastra/core@1.0.0-beta.27
|
|
1136
|
+
|
|
1137
|
+
## 1.0.0-beta.26
|
|
1138
|
+
|
|
1139
|
+
### Patch Changes
|
|
1140
|
+
|
|
1141
|
+
- Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
|
|
1142
|
+
|
|
1143
|
+
- Updated dependencies [[`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897)]:
|
|
1144
|
+
- @mastra/core@1.0.0-beta.26
|
|
1145
|
+
|
|
1146
|
+
## 1.0.0-beta.25
|
|
1147
|
+
|
|
1148
|
+
### Minor Changes
|
|
1149
|
+
|
|
1150
|
+
- Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
|
|
1151
|
+
|
|
1152
|
+
**Why:** This provides parity between `stream()` and `generate()` for tool approval flows, allowing non-streaming use cases to leverage `requireToolApproval` without needing to switch to streaming.
|
|
1153
|
+
|
|
1154
|
+
Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
|
|
1155
|
+
|
|
1156
|
+
**Using tool approval with generate()**
|
|
1157
|
+
|
|
1158
|
+
```typescript
|
|
1159
|
+
const output = await agent.generate('Find user John', {
|
|
1160
|
+
requireToolApproval: true,
|
|
1161
|
+
});
|
|
1162
|
+
|
|
1163
|
+
// Check if a tool is waiting for approval
|
|
1164
|
+
if (output.finishReason === 'suspended') {
|
|
1165
|
+
console.log('Tool requires approval:', output.suspendPayload.toolName);
|
|
1166
|
+
|
|
1167
|
+
// Approve the tool call
|
|
1168
|
+
const result = await agent.approveToolCallGenerate({
|
|
1169
|
+
runId: output.runId,
|
|
1170
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
1171
|
+
});
|
|
1172
|
+
|
|
1173
|
+
console.log(result.text);
|
|
1174
|
+
}
|
|
1175
|
+
```
|
|
1176
|
+
|
|
1177
|
+
**Declining a tool call**
|
|
1178
|
+
|
|
1179
|
+
```typescript
|
|
1180
|
+
if (output.finishReason === 'suspended') {
|
|
1181
|
+
const result = await agent.declineToolCallGenerate({
|
|
1182
|
+
runId: output.runId,
|
|
1183
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
1184
|
+
});
|
|
1185
|
+
}
|
|
1186
|
+
```
|
|
1187
|
+
|
|
1188
|
+
**New methods added:**
|
|
1189
|
+
- `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
|
|
1190
|
+
- `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
|
|
1191
|
+
|
|
1192
|
+
**Server routes added:**
|
|
1193
|
+
- `POST /api/agents/:agentId/approve-tool-call-generate`
|
|
1194
|
+
- `POST /api/agents/:agentId/decline-tool-call-generate`
|
|
1195
|
+
|
|
1196
|
+
The playground UI now also supports tool approval when using generate mode.
|
|
1197
|
+
|
|
1198
|
+
- Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
|
|
1199
|
+
|
|
1200
|
+
**New Features**
|
|
1201
|
+
- Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
|
|
1202
|
+
- All filter parameters are optional, allowing you to list all threads or filter as needed
|
|
1203
|
+
- Full pagination and sorting support
|
|
1204
|
+
|
|
1205
|
+
**Example Usage**
|
|
1206
|
+
|
|
1207
|
+
```typescript
|
|
1208
|
+
// List all threads
|
|
1209
|
+
const allThreads = await memory.listThreads({});
|
|
1210
|
+
|
|
1211
|
+
// Filter by resourceId only
|
|
1212
|
+
const userThreads = await memory.listThreads({
|
|
1213
|
+
filter: { resourceId: 'user-123' },
|
|
1214
|
+
});
|
|
1215
|
+
|
|
1216
|
+
// Filter by metadata only
|
|
1217
|
+
const supportThreads = await memory.listThreads({
|
|
1218
|
+
filter: { metadata: { category: 'support' } },
|
|
1219
|
+
});
|
|
1220
|
+
|
|
1221
|
+
// Filter by both with pagination
|
|
1222
|
+
const filteredThreads = await memory.listThreads({
|
|
1223
|
+
filter: {
|
|
1224
|
+
resourceId: 'user-123',
|
|
1225
|
+
metadata: { priority: 'high', status: 'open' },
|
|
1226
|
+
},
|
|
1227
|
+
orderBy: { field: 'updatedAt', direction: 'DESC' },
|
|
1228
|
+
page: 0,
|
|
1229
|
+
perPage: 20,
|
|
1230
|
+
});
|
|
1231
|
+
```
|
|
1232
|
+
|
|
1233
|
+
**Security Improvements**
|
|
1234
|
+
- Added validation to prevent SQL injection via malicious metadata keys
|
|
1235
|
+
- Added pagination parameter validation to prevent integer overflow attacks
|
|
1236
|
+
|
|
1237
|
+
### Patch Changes
|
|
1238
|
+
|
|
1239
|
+
- Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
|
|
1240
|
+
|
|
1241
|
+
- Added new /api/processors endpoints to list, get details, and execute processors. Processor workflows are now auto-detected based on their schema. ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
|
|
1242
|
+
|
|
1243
|
+
- Updated dependencies [[`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5)]:
|
|
1244
|
+
- @mastra/core@1.0.0-beta.25
|
|
1245
|
+
|
|
1246
|
+
## 1.0.0-beta.24
|
|
1247
|
+
|
|
1248
|
+
### Patch Changes
|
|
1249
|
+
|
|
1250
|
+
- Updated dependencies [[`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d)]:
|
|
1251
|
+
- @mastra/core@1.0.0-beta.24
|
|
1252
|
+
|
|
1253
|
+
## 1.0.0-beta.23
|
|
1254
|
+
|
|
1255
|
+
### Patch Changes
|
|
1256
|
+
|
|
1257
|
+
- Updated dependencies [[`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8)]:
|
|
1258
|
+
- @mastra/core@1.0.0-beta.23
|
|
1259
|
+
|
|
1260
|
+
## 1.0.0-beta.22
|
|
1261
|
+
|
|
1262
|
+
### Major Changes
|
|
1263
|
+
|
|
1264
|
+
- **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
|
|
1265
|
+
|
|
1266
|
+
This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
|
|
1267
|
+
- All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
|
|
1268
|
+
- Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
|
|
1269
|
+
- `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
|
|
1270
|
+
- `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
|
|
1271
|
+
- Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
|
|
1272
|
+
- Added `FullOutput<OUTPUT>` type representing complete output with all fields
|
|
1273
|
+
- Added `AgentExecutionOptionsBase<OUTPUT>` type
|
|
1274
|
+
- `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
|
|
1275
|
+
- `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
|
|
1276
|
+
- `agent.generate()` and `agent.stream()` methods have updated signatures
|
|
1277
|
+
- `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
|
|
1278
|
+
- Network route and streaming APIs updated to use plain OUTPUT generic
|
|
1279
|
+
|
|
1280
|
+
**Before:**
|
|
1281
|
+
|
|
1282
|
+
```typescript
|
|
1283
|
+
const output = await agent.generate<z.ZodType>({
|
|
1284
|
+
messages: [...],
|
|
1285
|
+
structuredOutput: { schema: mySchema }
|
|
1286
|
+
});
|
|
1287
|
+
|
|
1288
|
+
**After:**
|
|
1289
|
+
const output = await agent.generate<z.infer<typeof mySchema>>({
|
|
1290
|
+
messages: [...],
|
|
1291
|
+
structuredOutput: { schema: mySchema }
|
|
1292
|
+
});
|
|
1293
|
+
// Or rely on type inference:
|
|
1294
|
+
const output = await agent.generate({
|
|
1295
|
+
messages: [...],
|
|
1296
|
+
structuredOutput: { schema: mySchema }
|
|
1297
|
+
});
|
|
1298
|
+
|
|
1299
|
+
```
|
|
1300
|
+
|
|
1301
|
+
### Patch Changes
|
|
1302
|
+
|
|
1303
|
+
- Removes the deprecated `threadId` and `resourceId` options from `AgentExecutionOptions`. These have been deprecated for months in favour of the `memory` option. ([#11897](https://github.com/mastra-ai/mastra/pull/11897))
|
|
1304
|
+
|
|
1305
|
+
### Breaking Changes
|
|
1306
|
+
|
|
1307
|
+
#### `@mastra/core`
|
|
1308
|
+
|
|
1309
|
+
The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
|
|
1310
|
+
|
|
1311
|
+
```ts
|
|
1312
|
+
// Before
|
|
1313
|
+
await agent.stream('Hello', {
|
|
1314
|
+
threadId: 'thread-123',
|
|
1315
|
+
resourceId: 'user-456',
|
|
1316
|
+
});
|
|
1317
|
+
|
|
1318
|
+
// After
|
|
1319
|
+
await agent.stream('Hello', {
|
|
1320
|
+
memory: {
|
|
1321
|
+
thread: 'thread-123',
|
|
1322
|
+
resource: 'user-456',
|
|
1323
|
+
},
|
|
1324
|
+
});
|
|
1325
|
+
```
|
|
1326
|
+
|
|
1327
|
+
#### `@mastra/server`
|
|
1328
|
+
|
|
1329
|
+
The `threadId`, `resourceId`, and `resourceid` fields have been removed from the main agent execution body schema. The server now expects the `memory` option format in request bodies. Legacy routes (`/api/agents/:agentId/generate-legacy` and `/api/agents/:agentId/stream-legacy`) continue to support the deprecated fields.
|
|
1330
|
+
|
|
1331
|
+
#### `@mastra/react`
|
|
1332
|
+
|
|
1333
|
+
The `useChat` hook now internally converts `threadId` to the `memory` option format when making API calls. No changes needed in component code - the hook handles the conversion automatically.
|
|
1334
|
+
|
|
1335
|
+
#### `@mastra/client-js`
|
|
1336
|
+
|
|
1337
|
+
When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
|
|
1338
|
+
|
|
1339
|
+
```ts
|
|
1340
|
+
const agent = client.getAgent('my-agent');
|
|
1341
|
+
|
|
1342
|
+
// Before
|
|
1343
|
+
await agent.generate({
|
|
1344
|
+
messages: [...],
|
|
1345
|
+
threadId: 'thread-123',
|
|
1346
|
+
resourceId: 'user-456',
|
|
1347
|
+
});
|
|
1348
|
+
|
|
1349
|
+
// After
|
|
1350
|
+
await agent.generate({
|
|
1351
|
+
messages: [...],
|
|
1352
|
+
memory: {
|
|
1353
|
+
thread: 'thread-123',
|
|
1354
|
+
resource: 'user-456',
|
|
1355
|
+
},
|
|
1356
|
+
});
|
|
1357
|
+
```
|
|
1358
|
+
|
|
1359
|
+
- Fixed orderBy query parameter parsing for memory endpoints. The listMessages and listThreads endpoints now correctly parse orderBy when passed as a JSON string in URL query parameters, matching the existing behavior for include and filter parameters. ([#11767](https://github.com/mastra-ai/mastra/pull/11767))
|
|
1360
|
+
|
|
1361
|
+
- Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
|
|
1362
|
+
- Add suspend/resume capabilities to agent network
|
|
1363
|
+
- Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
|
|
1364
|
+
|
|
1365
|
+
`agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
|
|
1366
|
+
|
|
1367
|
+
- Fix 'Memory is not initialized' error in playground for agents with sub-agents but no memory ([#11780](https://github.com/mastra-ai/mastra/pull/11780))
|
|
1368
|
+
|
|
1369
|
+
When using agents with sub-agents (e.g., agent networks) but no memory configured, the playground UI would log HTTPException errors when fetching messages for sub-agents without memory.
|
|
1370
|
+
|
|
1371
|
+
Changed GET /api/memory/threads/:threadId/messages to return empty messages `{ messages: [], uiMessages: [] }` instead of throwing 400 error when memory is not configured for the requested agent.
|
|
1372
|
+
|
|
1373
|
+
- Updated dependencies [[`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617)]:
|
|
1374
|
+
- @mastra/core@1.0.0-beta.22
|
|
1375
|
+
|
|
1376
|
+
## 1.0.0-beta.21
|
|
1377
|
+
|
|
1378
|
+
### Patch Changes
|
|
1379
|
+
|
|
1380
|
+
- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
1381
|
+
|
|
1382
|
+
- Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
1383
|
+
|
|
1384
|
+
Fixes an issue where complex query parameters (like `startedAt` and `endedAt` date range filters) would fail with "Expected object, received string" errors when using the `listTraces` API.
|
|
1385
|
+
|
|
1386
|
+
The fix addresses two issues:
|
|
1387
|
+
- Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
|
|
1388
|
+
- Ensures compatibility with both zod v3 and v4
|
|
1389
|
+
|
|
1390
|
+
- Updated dependencies [[`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c)]:
|
|
1391
|
+
- @mastra/core@1.0.0-beta.21
|
|
1392
|
+
|
|
1393
|
+
## 1.0.0-beta.20
|
|
1394
|
+
|
|
1395
|
+
### Minor Changes
|
|
1396
|
+
|
|
1397
|
+
- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
1398
|
+
|
|
1399
|
+
**What changed:**
|
|
1400
|
+
- `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
|
|
1401
|
+
- Added optional `fields` parameter to request only specific fields for better performance
|
|
1402
|
+
- Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
|
|
1403
|
+
- Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
|
|
1404
|
+
- Removed `/execution-result` API endpoints from server (breaking change)
|
|
1405
|
+
- Removed `runExecutionResult()` method from client SDK (breaking change)
|
|
1406
|
+
- Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
|
|
1407
|
+
|
|
1408
|
+
**Before:**
|
|
1409
|
+
|
|
1410
|
+
```typescript
|
|
1411
|
+
// Had to call two different methods for different data
|
|
1412
|
+
const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
|
|
1413
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
**After:**
|
|
1417
|
+
|
|
1418
|
+
```typescript
|
|
1419
|
+
// Single method returns everything
|
|
1420
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
1421
|
+
// Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
|
|
1422
|
+
|
|
1423
|
+
// Request only specific fields for better performance (avoids expensive step fetching)
|
|
1424
|
+
const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
|
|
1425
|
+
|
|
1426
|
+
// Skip nested workflow steps for faster response
|
|
1427
|
+
const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
|
|
1428
|
+
```
|
|
1429
|
+
|
|
1430
|
+
**Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.
|
|
1431
|
+
|
|
1432
|
+
### Patch Changes
|
|
1433
|
+
|
|
1434
|
+
- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
|
|
1435
|
+
|
|
1436
|
+
Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
|
|
1437
|
+
|
|
1438
|
+
Each package includes:
|
|
1439
|
+
- **SKILL.md** - Entry point explaining the package's purpose and capabilities
|
|
1440
|
+
- **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
|
|
1441
|
+
- **Topic folders** - Conceptual documentation organized by feature area
|
|
1442
|
+
|
|
1443
|
+
Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
|
|
1444
|
+
|
|
1445
|
+
- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
|
|
1446
|
+
|
|
1447
|
+
```diff
|
|
1448
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
1449
|
+
- const stream = await run.streamVNext({ inputData: { ... } });
|
|
1450
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
1451
|
+
```
|
|
1452
|
+
|
|
1453
|
+
- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
1454
|
+
|
|
1455
|
+
**What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.
|
|
1456
|
+
|
|
1457
|
+
**Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.
|
|
1458
|
+
|
|
1459
|
+
**User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.
|
|
1460
|
+
|
|
1461
|
+
- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
|
|
1462
|
+
|
|
1463
|
+
- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
|
|
1464
|
+
|
|
1465
|
+
```typescript
|
|
1466
|
+
// Clone a thread
|
|
1467
|
+
const { thread, clonedMessages } = await memory.cloneThread({
|
|
1468
|
+
sourceThreadId: 'thread-123',
|
|
1469
|
+
title: 'My Clone',
|
|
1470
|
+
options: {
|
|
1471
|
+
messageLimit: 10, // optional: only copy last N messages
|
|
1472
|
+
},
|
|
1473
|
+
});
|
|
1474
|
+
|
|
1475
|
+
// Check if a thread is a clone
|
|
1476
|
+
if (memory.isClone(thread)) {
|
|
1477
|
+
const source = await memory.getSourceThread(thread.id);
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
// List all clones of a thread
|
|
1481
|
+
const clones = await memory.listClones('thread-123');
|
|
1482
|
+
```
|
|
1483
|
+
|
|
1484
|
+
Includes:
|
|
1485
|
+
- Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
|
|
1486
|
+
- API endpoint: `POST /api/memory/threads/:threadId/clone`
|
|
1487
|
+
- Embeddings created for cloned messages (semantic recall)
|
|
1488
|
+
- Clone button in playground UI Memory tab
|
|
1489
|
+
|
|
1490
|
+
- Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
|
|
1491
|
+
|
|
1492
|
+
When workflows use multiple agents sharing the same threadId/resourceId, users can now retrieve threads and messages without specifying an agentId. The server falls back to using storage directly when agentId is not provided.
|
|
1493
|
+
|
|
1494
|
+
- Updated dependencies [[`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c)]:
|
|
1495
|
+
- @mastra/core@1.0.0-beta.20
|
|
1496
|
+
|
|
1497
|
+
## 1.0.0-beta.19
|
|
1498
|
+
|
|
1499
|
+
### Patch Changes
|
|
1500
|
+
|
|
1501
|
+
- Updated dependencies [[`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7)]:
|
|
1502
|
+
- @mastra/core@1.0.0-beta.19
|
|
1503
|
+
|
|
1504
|
+
## 1.0.0-beta.18
|
|
1505
|
+
|
|
1506
|
+
### Patch Changes
|
|
1507
|
+
|
|
1508
|
+
- Updated dependencies [[`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93)]:
|
|
1509
|
+
- @mastra/core@1.0.0-beta.18
|
|
1510
|
+
|
|
1511
|
+
## 1.0.0-beta.17
|
|
1512
|
+
|
|
1513
|
+
### Patch Changes
|
|
1514
|
+
|
|
1515
|
+
- Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318)]:
|
|
1516
|
+
- @mastra/core@1.0.0-beta.17
|
|
1517
|
+
|
|
1518
|
+
## 1.0.0-beta.16
|
|
1519
|
+
|
|
1520
|
+
### Patch Changes
|
|
1521
|
+
|
|
1522
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
1523
|
+
|
|
1524
|
+
The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
|
|
1525
|
+
|
|
1526
|
+
**Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
|
|
1527
|
+
|
|
1528
|
+
**Solution**:
|
|
1529
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
1530
|
+
- Kept handler transformation for defense in depth
|
|
1531
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
1532
|
+
|
|
1533
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
1534
|
+
|
|
1535
|
+
Fixes #11412
|
|
1536
|
+
|
|
1537
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
1538
|
+
|
|
1539
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
|
|
1540
|
+
|
|
1541
|
+
```typescript
|
|
1542
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
1543
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
1544
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
1545
|
+
|
|
1546
|
+
// Compose domains from different stores
|
|
1547
|
+
const storage = new MastraStorage({
|
|
1548
|
+
id: 'composite',
|
|
1549
|
+
domains: {
|
|
1550
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
1551
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
1552
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
1553
|
+
},
|
|
1554
|
+
});
|
|
1555
|
+
```
|
|
1556
|
+
|
|
1557
|
+
**Breaking changes:**
|
|
1558
|
+
- `storage.supports` property no longer exists
|
|
1559
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
1560
|
+
|
|
1561
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
1562
|
+
|
|
1563
|
+
```typescript
|
|
1564
|
+
const store = await storage.getStore('memory');
|
|
1565
|
+
if (store) {
|
|
1566
|
+
// domain is available
|
|
1567
|
+
}
|
|
1568
|
+
```
|
|
1569
|
+
|
|
1570
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
1571
|
+
- @mastra/core@1.0.0-beta.16
|
|
1572
|
+
|
|
1573
|
+
## 1.0.0-beta.15
|
|
1574
|
+
|
|
1575
|
+
### Minor Changes
|
|
1576
|
+
|
|
1577
|
+
- Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
|
|
1578
|
+
|
|
1579
|
+
## What changed
|
|
1580
|
+
|
|
1581
|
+
Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
|
|
1582
|
+
|
|
1583
|
+
**Before:**
|
|
1584
|
+
|
|
1585
|
+
```typescript
|
|
1586
|
+
// Old span structure
|
|
1587
|
+
span.agentId; // 'my-agent'
|
|
1588
|
+
span.toolId; // undefined
|
|
1589
|
+
span.workflowId; // undefined
|
|
1590
|
+
```
|
|
1591
|
+
|
|
1592
|
+
**After:**
|
|
1593
|
+
|
|
1594
|
+
```typescript
|
|
1595
|
+
// New span structure
|
|
1596
|
+
span.entityType; // EntityType.AGENT
|
|
1597
|
+
span.entityId; // 'my-agent'
|
|
1598
|
+
span.entityName; // 'My Agent'
|
|
1599
|
+
```
|
|
1600
|
+
|
|
1601
|
+
## New `listTraces()` API
|
|
1602
|
+
|
|
1603
|
+
Query traces with filtering, pagination, and sorting:
|
|
1604
|
+
|
|
1605
|
+
```typescript
|
|
1606
|
+
const { spans, pagination } = await storage.listTraces({
|
|
1607
|
+
filters: {
|
|
1608
|
+
entityType: EntityType.AGENT,
|
|
1609
|
+
entityId: 'my-agent',
|
|
1610
|
+
userId: 'user-123',
|
|
1611
|
+
environment: 'production',
|
|
1612
|
+
status: TraceStatus.SUCCESS,
|
|
1613
|
+
startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
|
|
1614
|
+
},
|
|
1615
|
+
pagination: { page: 0, perPage: 50 },
|
|
1616
|
+
orderBy: { field: 'startedAt', direction: 'DESC' },
|
|
1617
|
+
});
|
|
1618
|
+
```
|
|
1619
|
+
|
|
1620
|
+
**Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
|
|
1621
|
+
|
|
1622
|
+
## New retrieval methods
|
|
1623
|
+
- `getSpan({ traceId, spanId })` - Get a single span
|
|
1624
|
+
- `getRootSpan({ traceId })` - Get the root span of a trace
|
|
1625
|
+
- `getTrace({ traceId })` - Get all spans for a trace
|
|
1626
|
+
|
|
1627
|
+
## Backward compatibility
|
|
1628
|
+
|
|
1629
|
+
The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
|
|
1630
|
+
|
|
1631
|
+
## Migration
|
|
1632
|
+
|
|
1633
|
+
**Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
|
|
1634
|
+
|
|
1635
|
+
**No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
|
|
1636
|
+
|
|
1637
|
+
### Patch Changes
|
|
1638
|
+
|
|
1639
|
+
- Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
|
|
1640
|
+
|
|
1641
|
+
### Summary
|
|
1642
|
+
|
|
1643
|
+
This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
|
|
1644
|
+
|
|
1645
|
+
### Migration Guide
|
|
1646
|
+
|
|
1647
|
+
All direct method calls on storage instances should be updated to use `getStore()`:
|
|
1648
|
+
|
|
1649
|
+
```typescript
|
|
1650
|
+
// Before
|
|
1651
|
+
const thread = await storage.getThreadById({ threadId });
|
|
1652
|
+
await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1653
|
+
await storage.createSpan(span);
|
|
1654
|
+
|
|
1655
|
+
// After
|
|
1656
|
+
const memory = await storage.getStore('memory');
|
|
1657
|
+
const thread = await memory?.getThreadById({ threadId });
|
|
1658
|
+
|
|
1659
|
+
const workflows = await storage.getStore('workflows');
|
|
1660
|
+
await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1661
|
+
|
|
1662
|
+
const observability = await storage.getStore('observability');
|
|
1663
|
+
await observability?.createSpan(span);
|
|
1664
|
+
```
|
|
1665
|
+
|
|
1666
|
+
### Available Domains
|
|
1667
|
+
- **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
|
|
1668
|
+
- **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
|
|
1669
|
+
- **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
|
|
1670
|
+
- **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
|
|
1671
|
+
- **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
|
|
1672
|
+
|
|
1673
|
+
### Breaking Changes
|
|
1674
|
+
- Passthrough methods have been removed from `MastraStorage` base class
|
|
1675
|
+
- All storage adapters now require accessing domains via `getStore()`
|
|
1676
|
+
- The `stores` property on storage instances is now the canonical way to access domain storage
|
|
1677
|
+
|
|
1678
|
+
### Internal Changes
|
|
1679
|
+
- Each storage adapter now initializes domain-specific stores in its constructor
|
|
1680
|
+
- Domain stores share database connections and handle their own table initialization
|
|
1681
|
+
|
|
1682
|
+
- Add `/api/system/packages` endpoint that returns installed Mastra packages and versions from the dev environment ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
|
|
1683
|
+
|
|
1684
|
+
- Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
|
|
1685
|
+
|
|
1686
|
+
- Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
|
|
1687
|
+
|
|
1688
|
+
The voice transcription endpoint (`/api/agents/:agentId/voice/listen`) now correctly handles multipart/form-data requests for audio uploads rather than only parsing JSON request bodies.
|
|
1689
|
+
|
|
1690
|
+
Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
|
|
1691
|
+
|
|
1692
|
+
**Breaking change:** The server schema field for the transcription endpoint was renamed from `audioData` to `audio` to match the client SDK. If you are making direct API calls to the transcription endpoint (not using the SDK), you will need to update your request body to use `audio` instead of `audioData`.
|
|
1693
|
+
|
|
1694
|
+
- Updated dependencies [[`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde)]:
|
|
1695
|
+
- @mastra/core@1.0.0-beta.15
|
|
641
1696
|
|
|
642
1697
|
## 1.0.0-beta.14
|
|
643
1698
|
|