@mastra/server 0.0.0-unified-sidebar-20251010130811 → 0.0.0-unified-workspace-snapshot-20260128233410
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 +2775 -3
- package/README.md +2 -2
- package/a2a/store.d.ts +1 -0
- package/auth.d.ts +1 -0
- package/dist/{chunk-SIW6CYO3.js → chunk-24SISJRB.js} +13 -17
- package/dist/chunk-24SISJRB.js.map +1 -0
- package/dist/chunk-2ZLYWOYM.cjs +623 -0
- package/dist/chunk-2ZLYWOYM.cjs.map +1 -0
- package/dist/chunk-3W67K7YE.js +13 -0
- package/dist/chunk-3W67K7YE.js.map +1 -0
- package/dist/chunk-4G5R2KZI.js +312 -0
- package/dist/chunk-4G5R2KZI.js.map +1 -0
- package/dist/chunk-4HFYR562.cjs +82 -0
- package/dist/chunk-4HFYR562.cjs.map +1 -0
- package/dist/chunk-4LVJBXI2.cjs +324 -0
- package/dist/chunk-4LVJBXI2.cjs.map +1 -0
- package/dist/chunk-5GXOE6RS.cjs +33179 -0
- package/dist/chunk-5GXOE6RS.cjs.map +1 -0
- package/dist/chunk-5HVOCRC4.cjs +344 -0
- package/dist/chunk-5HVOCRC4.cjs.map +1 -0
- package/dist/chunk-5VXFAF6R.cjs +212 -0
- package/dist/chunk-5VXFAF6R.cjs.map +1 -0
- package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
- package/dist/chunk-64ITUOXI.cjs.map +1 -0
- package/dist/{chunk-XVPBGW6Y.cjs → chunk-6G2RQWKA.cjs} +17 -21
- package/dist/chunk-6G2RQWKA.cjs.map +1 -0
- package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
- package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
- package/dist/chunk-7D3UAMQM.cjs +82 -0
- package/dist/chunk-7D3UAMQM.cjs.map +1 -0
- package/dist/chunk-7XHQEMU2.js +246 -0
- package/dist/chunk-7XHQEMU2.js.map +1 -0
- package/dist/chunk-AAHPYUEC.cjs +211 -0
- package/dist/chunk-AAHPYUEC.cjs.map +1 -0
- package/dist/chunk-AOU2LXZK.js +1190 -0
- package/dist/chunk-AOU2LXZK.js.map +1 -0
- package/dist/{chunk-2PLXW4ZX.cjs → chunk-AQI6GLTN.cjs} +74 -74
- package/dist/{chunk-2PLXW4ZX.cjs.map → chunk-AQI6GLTN.cjs.map} +1 -1
- package/dist/chunk-BB46GZPA.js +245 -0
- package/dist/chunk-BB46GZPA.js.map +1 -0
- package/dist/chunk-CW327NIR.js +442 -0
- package/dist/chunk-CW327NIR.js.map +1 -0
- package/dist/chunk-D5VCL56B.js +317 -0
- package/dist/chunk-D5VCL56B.js.map +1 -0
- package/dist/{chunk-YWOK4F5A.js → chunk-DEG24CE7.js} +68 -9
- package/dist/chunk-DEG24CE7.js.map +1 -0
- package/dist/chunk-DH5UZ4DD.js +203 -0
- package/dist/chunk-DH5UZ4DD.js.map +1 -0
- package/dist/chunk-EJCBKZET.cjs +219 -0
- package/dist/chunk-EJCBKZET.cjs.map +1 -0
- package/dist/{chunk-VY4ENABS.cjs → chunk-ERXWG5L2.cjs} +68 -8
- package/dist/chunk-ERXWG5L2.cjs.map +1 -0
- package/dist/chunk-ETCMV326.cjs +450 -0
- package/dist/chunk-ETCMV326.cjs.map +1 -0
- package/dist/chunk-ETVLWGEB.js +596 -0
- package/dist/chunk-ETVLWGEB.js.map +1 -0
- package/dist/chunk-EV5H2JQU.js +45 -0
- package/dist/chunk-EV5H2JQU.js.map +1 -0
- package/dist/chunk-FA66XJZJ.js +334 -0
- package/dist/chunk-FA66XJZJ.js.map +1 -0
- package/dist/chunk-FRRHYZR6.cjs +88 -0
- package/dist/chunk-FRRHYZR6.cjs.map +1 -0
- package/dist/chunk-G34VLTQC.js +33140 -0
- package/dist/chunk-G34VLTQC.js.map +1 -0
- package/dist/chunk-H2FLPRXD.cjs +1195 -0
- package/dist/chunk-H2FLPRXD.cjs.map +1 -0
- package/dist/{chunk-RQK4FQUD.js → chunk-H66LLFDL.js} +5 -47
- package/dist/chunk-H66LLFDL.js.map +1 -0
- package/dist/chunk-H6UO5RMT.cjs +252 -0
- package/dist/chunk-H6UO5RMT.cjs.map +1 -0
- package/dist/chunk-HDGF45K7.cjs +128 -0
- package/dist/chunk-HDGF45K7.cjs.map +1 -0
- package/dist/chunk-HT4LP3BO.js +75 -0
- package/dist/chunk-HT4LP3BO.js.map +1 -0
- package/dist/chunk-HZINLMHL.cjs +252 -0
- package/dist/chunk-HZINLMHL.cjs.map +1 -0
- package/dist/chunk-I4MLE3R3.js +212 -0
- package/dist/chunk-I4MLE3R3.js.map +1 -0
- package/dist/chunk-I7CFYVAL.cjs +322 -0
- package/dist/chunk-I7CFYVAL.cjs.map +1 -0
- package/dist/chunk-IS3HHGL4.js +250 -0
- package/dist/chunk-IS3HHGL4.js.map +1 -0
- package/dist/chunk-JHSXUNQV.cjs +703 -0
- package/dist/chunk-JHSXUNQV.cjs.map +1 -0
- package/dist/chunk-K4HSW5ZF.js +77 -0
- package/dist/chunk-K4HSW5ZF.js.map +1 -0
- package/dist/{chunk-HPXAM2PG.js → chunk-KADBYP7R.js} +231 -37
- package/dist/chunk-KADBYP7R.js.map +1 -0
- package/dist/chunk-LFTVDHOD.js +200 -0
- package/dist/chunk-LFTVDHOD.js.map +1 -0
- package/dist/chunk-LJ6YRVDI.cjs +15 -0
- package/dist/chunk-LJ6YRVDI.cjs.map +1 -0
- package/dist/{chunk-ZULZ2752.js → chunk-LOA7RQYO.js} +3 -3
- package/dist/{chunk-ZULZ2752.js.map → chunk-LOA7RQYO.js.map} +1 -1
- package/dist/chunk-MCYD5LW7.cjs +90 -0
- package/dist/chunk-MCYD5LW7.cjs.map +1 -0
- package/dist/chunk-ONN5EA7E.js +26 -0
- package/dist/chunk-ONN5EA7E.js.map +1 -0
- package/dist/chunk-OS7SAIRA.js +250 -0
- package/dist/chunk-OS7SAIRA.js.map +1 -0
- package/dist/chunk-OZGT6GOC.cjs +1405 -0
- package/dist/chunk-OZGT6GOC.cjs.map +1 -0
- package/dist/chunk-P7IT44NU.js +1153 -0
- package/dist/chunk-P7IT44NU.js.map +1 -0
- package/dist/chunk-PWXUI3OG.cjs +252 -0
- package/dist/chunk-PWXUI3OG.cjs.map +1 -0
- package/dist/chunk-QXDNFBJQ.js +220 -0
- package/dist/chunk-QXDNFBJQ.js.map +1 -0
- package/dist/chunk-RIX6WEJ2.js +83 -0
- package/dist/chunk-RIX6WEJ2.js.map +1 -0
- package/dist/{chunk-TOP25AIO.cjs → chunk-RSSBE2Q6.cjs} +237 -37
- package/dist/chunk-RSSBE2Q6.cjs.map +1 -0
- package/dist/chunk-S4SLHUJ7.cjs +253 -0
- package/dist/chunk-S4SLHUJ7.cjs.map +1 -0
- package/dist/chunk-SG3SQGMV.js +332 -0
- package/dist/chunk-SG3SQGMV.js.map +1 -0
- package/dist/chunk-SRQBCSNC.js +184 -0
- package/dist/chunk-SRQBCSNC.js.map +1 -0
- package/dist/chunk-SUKFO7UM.cjs +29 -0
- package/dist/chunk-SUKFO7UM.cjs.map +1 -0
- package/dist/chunk-T5KH32UA.cjs +47 -0
- package/dist/chunk-T5KH32UA.cjs.map +1 -0
- package/dist/chunk-TCWPL26W.js +119 -0
- package/dist/chunk-TCWPL26W.js.map +1 -0
- package/dist/chunk-UNWXKDYP.js +1373 -0
- package/dist/chunk-UNWXKDYP.js.map +1 -0
- package/dist/chunk-USR6JK77.js +62 -0
- package/dist/chunk-USR6JK77.js.map +1 -0
- package/dist/chunk-VL4AR6TK.cjs +284 -0
- package/dist/chunk-VL4AR6TK.cjs.map +1 -0
- package/dist/{chunk-LPM6BBAX.cjs → chunk-VX3VN7FN.cjs} +4 -55
- package/dist/chunk-VX3VN7FN.cjs.map +1 -0
- package/dist/chunk-W6H577VU.cjs +190 -0
- package/dist/chunk-W6H577VU.cjs.map +1 -0
- package/dist/chunk-XIRAKXBF.cjs +1220 -0
- package/dist/chunk-XIRAKXBF.cjs.map +1 -0
- package/dist/chunk-XKLJYRAA.js +77 -0
- package/dist/chunk-XKLJYRAA.js.map +1 -0
- package/dist/chunk-Z45X45WX.js +684 -0
- package/dist/chunk-Z45X45WX.js.map +1 -0
- package/dist/chunk-ZI4WQHQA.cjs +352 -0
- package/dist/chunk-ZI4WQHQA.cjs.map +1 -0
- package/dist/chunk-ZKMVCV4G.cjs +71 -0
- package/dist/chunk-ZKMVCV4G.cjs.map +1 -0
- package/dist/{dist-G2BYZJOC.cjs → dist-7NTDEVLP.cjs} +28 -28
- package/dist/{dist-G2BYZJOC.cjs.map → dist-7NTDEVLP.cjs.map} +1 -1
- package/dist/{dist-X7XR3M3Z.js → dist-B5GMANA6.js} +3 -3
- package/dist/{dist-X7XR3M3Z.js.map → dist-B5GMANA6.js.map} +1 -1
- package/dist/dist-EDO7GEGI.js +3 -0
- package/dist/{dist-YREX2TJT.js.map → dist-EDO7GEGI.js.map} +1 -1
- package/dist/{dist-RFMYFILX.cjs → dist-OF24ZMHH.cjs} +30 -30
- package/dist/{dist-RFMYFILX.cjs.map → dist-OF24ZMHH.cjs.map} +1 -1
- package/dist/{dist-4MVGNSRL.cjs → dist-P6YSNLL3.cjs} +20 -20
- package/dist/{dist-4MVGNSRL.cjs.map → dist-P6YSNLL3.cjs.map} +1 -1
- package/dist/{dist-PQZUVLPC.js → dist-SMBO5KVB.js} +3 -3
- package/dist/{dist-PQZUVLPC.js.map → dist-SMBO5KVB.js.map} +1 -1
- package/dist/{dist-XVBSOGFK.js → dist-THPMW5QR.js} +3 -3
- package/dist/{dist-XVBSOGFK.js.map → dist-THPMW5QR.js.map} +1 -1
- package/dist/{dist-FZYCV3VB.cjs → dist-VZTG56X2.cjs} +26 -26
- package/dist/{dist-FZYCV3VB.cjs.map → dist-VZTG56X2.cjs.map} +1 -1
- package/dist/dist-ZLC23RVC.cjs +16 -0
- package/dist/{dist-P4MXBQ3U.cjs.map → dist-ZLC23RVC.cjs.map} +1 -1
- package/dist/{dist-R7WYX6LC.js → dist-ZOZ6MHJH.js} +3 -3
- package/dist/{dist-R7WYX6LC.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 +833 -0
- package/dist/server/auth/defaults.d.ts +3 -0
- package/dist/server/auth/defaults.d.ts.map +1 -0
- package/dist/server/auth/helpers.d.ts +21 -0
- package/dist/server/auth/helpers.d.ts.map +1 -0
- package/dist/server/auth/index.cjs +48 -0
- package/dist/server/auth/index.cjs.map +1 -0
- package/dist/server/auth/index.d.ts +3 -0
- package/dist/server/auth/index.d.ts.map +1 -0
- package/dist/server/auth/index.js +3 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/auth/path-pattern.d.ts +43 -0
- package/dist/server/auth/path-pattern.d.ts.map +1 -0
- package/dist/server/constants.d.ts +51 -0
- package/dist/server/constants.d.ts.map +1 -0
- package/dist/server/handlers/a2a.cjs +15 -7
- package/dist/server/handlers/a2a.d.ts +492 -10
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +31 -31
- package/dist/server/handlers/agent-builder.d.ts +622 -84
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +60 -0
- package/dist/server/handlers/agent-versions.cjs.map +1 -0
- package/dist/server/handlers/agent-versions.d.ts +479 -0
- package/dist/server/handlers/agent-versions.d.ts.map +1 -0
- package/dist/server/handlers/agent-versions.js +3 -0
- package/dist/server/handlers/agent-versions.js.map +1 -0
- package/dist/server/handlers/agents.cjs +85 -37
- package/dist/server/handlers/agents.d.ts +3385 -149
- 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 +7 -7
- package/dist/server/handlers/logs.d.ts +135 -27
- package/dist/server/handlers/logs.d.ts.map +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp.cjs +40 -0
- package/dist/server/handlers/mcp.cjs.map +1 -0
- package/dist/server/handlers/mcp.d.ts +132 -0
- package/dist/server/handlers/mcp.d.ts.map +1 -0
- package/dist/server/handlers/mcp.js +3 -0
- package/dist/server/handlers/mcp.js.map +1 -0
- package/dist/server/handlers/memory.cjs +67 -31
- package/dist/server/handlers/memory.d.ts +1073 -102
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +9 -9
- package/dist/server/handlers/observability.d.ts +147 -42
- 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 +13 -13
- package/dist/server/handlers/scores.d.ts +110 -240
- 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 +28 -0
- package/dist/server/handlers/stored-agents.cjs.map +1 -0
- package/dist/server/handlers/stored-agents.d.ts +317 -0
- package/dist/server/handlers/stored-agents.d.ts.map +1 -0
- package/dist/server/handlers/stored-agents.js +3 -0
- package/dist/server/handlers/stored-agents.js.map +1 -0
- 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/test-utils.cjs +15 -0
- package/dist/server/handlers/test-utils.cjs.map +1 -0
- package/dist/server/handlers/test-utils.d.ts +6 -0
- package/dist/server/handlers/test-utils.d.ts.map +1 -0
- package/dist/server/handlers/test-utils.js +13 -0
- package/dist/server/handlers/test-utils.js.map +1 -0
- package/dist/server/handlers/tools.cjs +11 -11
- package/dist/server/handlers/tools.d.ts +69 -23
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +27 -3
- package/dist/server/handlers/utils.d.ts +31 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +31 -7
- package/dist/server/handlers/vector.d.ts +93 -9
- package/dist/server/handlers/vector.d.ts.map +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +21 -9
- package/dist/server/handlers/voice.d.ts +81 -40
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +57 -37
- package/dist/server/handlers/workflows.d.ts +983 -78
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers/workspace.cjs +80 -0
- package/dist/server/handlers/workspace.cjs.map +1 -0
- package/dist/server/handlers/workspace.d.ts +591 -0
- package/dist/server/handlers/workspace.d.ts.map +1 -0
- package/dist/server/handlers/workspace.js +3 -0
- package/dist/server/handlers/workspace.js.map +1 -0
- package/dist/server/handlers.cjs +32 -37
- package/dist/server/handlers.d.ts +1 -2
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +12 -13
- package/dist/server/http-exception.d.ts +0 -5
- package/dist/server/http-exception.d.ts.map +1 -1
- package/dist/server/schemas/a2a.d.ts +786 -0
- package/dist/server/schemas/a2a.d.ts.map +1 -0
- package/dist/server/schemas/agent-builder.d.ts +225 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -0
- package/dist/server/schemas/agent-versions.d.ts +1646 -0
- package/dist/server/schemas/agent-versions.d.ts.map +1 -0
- package/dist/server/schemas/agents.d.ts +1815 -0
- package/dist/server/schemas/agents.d.ts.map +1 -0
- package/dist/server/schemas/common.d.ts +179 -0
- package/dist/server/schemas/common.d.ts.map +1 -0
- package/dist/server/schemas/logs.d.ts +124 -0
- package/dist/server/schemas/logs.d.ts.map +1 -0
- package/dist/server/schemas/mcp.d.ts +299 -0
- package/dist/server/schemas/mcp.d.ts.map +1 -0
- package/dist/server/schemas/memory.d.ts +1216 -0
- package/dist/server/schemas/memory.d.ts.map +1 -0
- 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 +259 -0
- package/dist/server/schemas/scores.d.ts.map +1 -0
- package/dist/server/schemas/stored-agents.d.ts +850 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -0
- package/dist/server/schemas/system.d.ts +36 -0
- package/dist/server/schemas/system.d.ts.map +1 -0
- package/dist/server/schemas/vectors.d.ts +107 -0
- package/dist/server/schemas/vectors.d.ts.map +1 -0
- package/dist/server/schemas/workflows.d.ts +863 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -0
- package/dist/server/schemas/workspace.d.ts +1107 -0
- package/dist/server/schemas/workspace.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +661 -0
- package/dist/server/server-adapter/index.cjs.map +1 -0
- package/dist/server/server-adapter/index.d.ts +163 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -0
- package/dist/server/server-adapter/index.js +630 -0
- package/dist/server/server-adapter/index.js.map +1 -0
- package/dist/server/server-adapter/openapi-utils.d.ts +69 -0
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
- package/dist/server/server-adapter/redact.d.ts +26 -0
- package/dist/server/server-adapter/redact.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agents.d.ts +3 -0
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts +52 -0
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
- package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/logs.d.ts +3 -0
- package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
- package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/memory.d.ts +3 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/observability.d.ts +3 -0
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
- 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 +112 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
- package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
- package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
- 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/tools.d.ts +3 -0
- package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
- package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/workspace.d.ts +8 -0
- package/dist/server/server-adapter/routes/workspace.d.ts.map +1 -0
- package/dist/server/utils.d.ts +17 -3
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/{token-53CFGXUO.cjs → token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs} +11 -12
- package/dist/token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs.map +1 -0
- package/dist/{token-WAEKDUVY.js → token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js} +8 -9
- package/dist/token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js.map +1 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs +63 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs.map +1 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js +61 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js.map +1 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs +63 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs.map +1 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js +61 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js.map +1 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js +8 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js.map +1 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs +10 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js +8 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js.map +1 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs +10 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs +10 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js +8 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js.map +1 -0
- package/handlers/server/handlers.d.ts +1 -0
- package/handlers.d.ts +1 -0
- package/package.json +46 -16
- package/server-adapter.d.ts +1 -0
- package/dist/chunk-2S4IMB6E.cjs +0 -130
- package/dist/chunk-2S4IMB6E.cjs.map +0 -1
- package/dist/chunk-3LTO44EP.cjs +0 -570
- package/dist/chunk-3LTO44EP.cjs.map +0 -1
- package/dist/chunk-3SNGNFUJ.cjs +0 -128
- package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
- package/dist/chunk-4QCXUEAT.js +0 -25
- package/dist/chunk-4QCXUEAT.js.map +0 -1
- package/dist/chunk-5BNQIYQN.js +0 -189
- package/dist/chunk-5BNQIYQN.js.map +0 -1
- package/dist/chunk-67GYDFSB.js +0 -160
- package/dist/chunk-67GYDFSB.js.map +0 -1
- package/dist/chunk-6ZR275MD.cjs +0 -165
- package/dist/chunk-6ZR275MD.cjs.map +0 -1
- package/dist/chunk-7HDOBOGG.cjs +0 -17517
- package/dist/chunk-7HDOBOGG.cjs.map +0 -1
- package/dist/chunk-ABRFV4XP.js +0 -83
- package/dist/chunk-ABRFV4XP.js.map +0 -1
- package/dist/chunk-AHB4JCIQ.js +0 -160
- package/dist/chunk-AHB4JCIQ.js.map +0 -1
- package/dist/chunk-BATEJLED.js +0 -124
- package/dist/chunk-BATEJLED.js.map +0 -1
- package/dist/chunk-BZLZFHAT.cjs +0 -682
- package/dist/chunk-BZLZFHAT.cjs.map +0 -1
- package/dist/chunk-CY4TP3FK.js +0 -16
- package/dist/chunk-CY4TP3FK.js.map +0 -1
- package/dist/chunk-DB63UMTV.js +0 -660
- package/dist/chunk-DB63UMTV.js.map +0 -1
- package/dist/chunk-EP3JQDPD.cjs +0 -131
- package/dist/chunk-EP3JQDPD.cjs.map +0 -1
- package/dist/chunk-FWO7VQDC.js +0 -17481
- package/dist/chunk-FWO7VQDC.js.map +0 -1
- package/dist/chunk-FZNS32WJ.js +0 -46
- package/dist/chunk-FZNS32WJ.js.map +0 -1
- package/dist/chunk-G4PUALCE.cjs +0 -28
- package/dist/chunk-G4PUALCE.cjs.map +0 -1
- package/dist/chunk-HPXAM2PG.js.map +0 -1
- package/dist/chunk-I3C4ODGV.cjs +0 -335
- package/dist/chunk-I3C4ODGV.cjs.map +0 -1
- package/dist/chunk-JSLAYFEW.js +0 -662
- package/dist/chunk-JSLAYFEW.js.map +0 -1
- package/dist/chunk-LLUOPR3J.js +0 -323
- package/dist/chunk-LLUOPR3J.js.map +0 -1
- package/dist/chunk-LNT5N7XW.cjs +0 -197
- package/dist/chunk-LNT5N7XW.cjs.map +0 -1
- package/dist/chunk-LPM6BBAX.cjs.map +0 -1
- package/dist/chunk-MMROOK5J.js.map +0 -1
- package/dist/chunk-MQDBNHBT.cjs +0 -680
- package/dist/chunk-MQDBNHBT.cjs.map +0 -1
- package/dist/chunk-MYR4PVGN.js +0 -123
- package/dist/chunk-MYR4PVGN.js.map +0 -1
- package/dist/chunk-OEOGYAQC.js +0 -553
- package/dist/chunk-OEOGYAQC.js.map +0 -1
- package/dist/chunk-OYL5TBJW.cjs +0 -48
- package/dist/chunk-OYL5TBJW.cjs.map +0 -1
- package/dist/chunk-QQXMIP6C.js +0 -122
- package/dist/chunk-QQXMIP6C.js.map +0 -1
- package/dist/chunk-RE4RPXT2.cjs +0 -18
- package/dist/chunk-RE4RPXT2.cjs.map +0 -1
- package/dist/chunk-RQK4FQUD.js.map +0 -1
- package/dist/chunk-SIW6CYO3.js.map +0 -1
- package/dist/chunk-TOP25AIO.cjs.map +0 -1
- package/dist/chunk-TRGAMKHX.cjs +0 -167
- package/dist/chunk-TRGAMKHX.cjs.map +0 -1
- package/dist/chunk-VY4ENABS.cjs.map +0 -1
- package/dist/chunk-XN74I6VW.cjs +0 -88
- package/dist/chunk-XN74I6VW.cjs.map +0 -1
- package/dist/chunk-XVPBGW6Y.cjs.map +0 -1
- package/dist/chunk-YWOK4F5A.js.map +0 -1
- package/dist/dist-P4MXBQ3U.cjs +0 -16
- package/dist/dist-YREX2TJT.js +0 -3
- package/dist/server/handlers/legacyWorkflows.cjs +0 -48
- package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
- package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
- package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
- package/dist/server/handlers/legacyWorkflows.js +0 -3
- package/dist/server/handlers/legacyWorkflows.js.map +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -20
- package/dist/server/handlers/telemetry.cjs.map +0 -1
- package/dist/server/handlers/telemetry.d.ts +0 -33
- package/dist/server/handlers/telemetry.d.ts.map +0 -1
- package/dist/server/handlers/telemetry.js +0 -3
- package/dist/server/handlers/telemetry.js.map +0 -1
- package/dist/token-53CFGXUO.cjs.map +0 -1
- package/dist/token-WAEKDUVY.js.map +0 -1
- package/dist/token-util-LY37VCIN.js +0 -7
- package/dist/token-util-LY37VCIN.js.map +0 -1
- package/dist/token-util-S4A355II.cjs +0 -9
- package/dist/token-util-S4A355II.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,2776 @@
|
|
|
1
1
|
# @mastra/server
|
|
2
2
|
|
|
3
|
-
## 0.0.0-unified-
|
|
3
|
+
## 0.0.0-unified-workspace-snapshot-20260128233410
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition. ([#12153](https://github.com/mastra-ai/mastra/pull/12153))
|
|
8
|
+
|
|
9
|
+
- Added dynamic agent management with CRUD operations and version tracking ([#12038](https://github.com/mastra-ai/mastra/pull/12038))
|
|
10
|
+
|
|
11
|
+
**New Features:**
|
|
12
|
+
- Create, edit, and delete agents directly from the Mastra Studio UI
|
|
13
|
+
- Full version history for agents with compare and restore capabilities
|
|
14
|
+
- Visual diff viewer to compare agent configurations across versions
|
|
15
|
+
- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)
|
|
16
|
+
- AI-powered instruction enhancement
|
|
17
|
+
|
|
18
|
+
**Storage:**
|
|
19
|
+
- New storage interfaces for stored agents and agent versions
|
|
20
|
+
- PostgreSQL, LibSQL, and MongoDB implementations included
|
|
21
|
+
- In-memory storage for development and testing
|
|
22
|
+
|
|
23
|
+
**API:**
|
|
24
|
+
- RESTful endpoints for agent CRUD operations
|
|
25
|
+
- Version management endpoints (create, list, activate, restore, delete, compare)
|
|
26
|
+
- Automatic versioning on agent updates when enabled
|
|
27
|
+
|
|
28
|
+
**Client SDK:**
|
|
29
|
+
- JavaScript client with full support for stored agents and versions
|
|
30
|
+
- Type-safe methods for all CRUD and version operations
|
|
31
|
+
|
|
32
|
+
**Usage Example:**
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// Server-side: Configure storage
|
|
36
|
+
import { Mastra } from '@mastra/core';
|
|
37
|
+
import { PgAgentsStorage } from '@mastra/pg';
|
|
38
|
+
|
|
39
|
+
const mastra = new Mastra({
|
|
40
|
+
agents: { agentOne },
|
|
41
|
+
storage: {
|
|
42
|
+
agents: new PgAgentsStorage({
|
|
43
|
+
connectionString: process.env.DATABASE_URL,
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Client-side: Use the SDK
|
|
49
|
+
import { MastraClient } from '@mastra/client-js';
|
|
50
|
+
|
|
51
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:3000' });
|
|
52
|
+
|
|
53
|
+
// Create a stored agent
|
|
54
|
+
const agent = await client.createStoredAgent({
|
|
55
|
+
name: 'Customer Support Agent',
|
|
56
|
+
description: 'Handles customer inquiries',
|
|
57
|
+
model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },
|
|
58
|
+
instructions: 'You are a helpful customer support agent...',
|
|
59
|
+
tools: ['search', 'email'],
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Create a version snapshot
|
|
63
|
+
await client.storedAgent(agent.id).createVersion({
|
|
64
|
+
name: 'v1.0 - Initial release',
|
|
65
|
+
changeMessage: 'First production version',
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Compare versions
|
|
69
|
+
const diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Why:**
|
|
73
|
+
This feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.
|
|
74
|
+
|
|
75
|
+
- Added support for including custom API routes in the generated OpenAPI documentation. Custom routes registered via `registerApiRoute()` now appear in the OpenAPI spec alongside built-in Mastra routes. ([#11786](https://github.com/mastra-ai/mastra/pull/11786))
|
|
76
|
+
|
|
77
|
+
- Added workspace API endpoints for filesystem operations, skill management, and content search. ([`30e1998`](https://github.com/mastra-ai/mastra/commit/30e1998941bc9f8161371379381d7477480e4ce3))
|
|
78
|
+
|
|
79
|
+
**New endpoints:**
|
|
80
|
+
- `GET /workspace` - Get workspace info and capabilities
|
|
81
|
+
- `GET/POST/DELETE /workspace/fs/*` - Filesystem operations (read, write, list, delete, mkdir, stat)
|
|
82
|
+
- `GET /workspace/skills` - List available skills
|
|
83
|
+
- `GET /workspace/skills/:name` - Get skill details
|
|
84
|
+
- `GET /workspace/skills/:name/references` - List skill references
|
|
85
|
+
- `POST /workspace/search` - Search indexed content
|
|
86
|
+
|
|
87
|
+
**Usage:**
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// Read a file
|
|
91
|
+
const response = await fetch('/api/workspace/fs/read?path=/docs/guide.md');
|
|
92
|
+
const { content } = await response.json();
|
|
93
|
+
|
|
94
|
+
// List skills
|
|
95
|
+
const skills = await fetch('/api/workspace/skills').then(r => r.json());
|
|
96
|
+
|
|
97
|
+
// Search content
|
|
98
|
+
const results = await fetch('/api/workspace/search', {
|
|
99
|
+
method: 'POST',
|
|
100
|
+
body: JSON.stringify({ query: 'authentication', mode: 'hybrid' }),
|
|
101
|
+
}).then(r => r.json());
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Patch Changes
|
|
105
|
+
|
|
106
|
+
- Fixed a bug introduced in PR #12251 where requestContext was not passed through to agent and workflow operations. This could cause tools and nested operations that rely on requestContext values to fail or behave incorrectly. ([#12428](https://github.com/mastra-ai/mastra/pull/12428))
|
|
107
|
+
|
|
108
|
+
- Fix broken import for deepEqual by inlining the function into server. ([#12446](https://github.com/mastra-ai/mastra/pull/12446))
|
|
109
|
+
|
|
110
|
+
- Added requestContextSchema type support. ([#12259](https://github.com/mastra-ai/mastra/pull/12259))
|
|
111
|
+
|
|
112
|
+
- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true. ([#12339](https://github.com/mastra-ai/mastra/pull/12339))
|
|
113
|
+
|
|
114
|
+
- Fixed malformed JSON body handling in Hono adapter. When a POST request contains invalid JSON (e.g., missing closing braces), the server now returns HTTP 400 Bad Request with a structured error message instead of silently accepting the request with HTTP 200. This prevents workflows from starting with undefined input data. ([#12310](https://github.com/mastra-ai/mastra/issues/12310)) ([#12332](https://github.com/mastra-ai/mastra/pull/12332))
|
|
115
|
+
|
|
116
|
+
- Fix path parameter routes not respecting requiresAuth setting ([#12143](https://github.com/mastra-ai/mastra/pull/12143))
|
|
117
|
+
|
|
118
|
+
Fixes issue where custom API routes with path parameters (e.g., `/users/:id`) were incorrectly requiring authentication even when `requiresAuth` was set to `false`. The authentication middleware now uses pattern matching to correctly match dynamic routes against registered patterns.
|
|
119
|
+
|
|
120
|
+
Changes:
|
|
121
|
+
- Inlined path pattern matching utility (based on regexparam) to avoid dependency complexity
|
|
122
|
+
- Updated `isCustomRoutePublic()` to iterate through routes and match path patterns
|
|
123
|
+
- Enhanced `pathMatchesPattern()` to support path parameters (`:id`), optional parameters (`:id?`), and wildcards (`*`)
|
|
124
|
+
- Added comprehensive test coverage for path parameter matching scenarios
|
|
125
|
+
|
|
126
|
+
Fixes #12106
|
|
127
|
+
|
|
128
|
+
- Improves CommonJS support by adding typefiles to the root directory ([#12068](https://github.com/mastra-ai/mastra/pull/12068))
|
|
129
|
+
|
|
130
|
+
- Added `mcpOptions` to server adapters for serverless MCP support. ([#12324](https://github.com/mastra-ai/mastra/pull/12324))
|
|
131
|
+
|
|
132
|
+
**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.
|
|
133
|
+
|
|
134
|
+
**Before:**
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
const server = new MastraServer({
|
|
138
|
+
app,
|
|
139
|
+
mastra,
|
|
140
|
+
});
|
|
141
|
+
// No way to pass serverless option to MCP HTTP transport
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**After:**
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
const server = new MastraServer({
|
|
148
|
+
app,
|
|
149
|
+
mastra,
|
|
150
|
+
mcpOptions: {
|
|
151
|
+
serverless: true,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
// MCP HTTP transport now runs in stateless mode
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
- Fixed memory API endpoints to respect MASTRA_RESOURCE_ID_KEY and MASTRA_THREAD_ID_KEY from middleware. Previously, these endpoints ignored the reserved context keys and used client-provided values directly, allowing authenticated users to potentially access other users' threads and messages. Now when middleware sets these reserved keys, they take precedence over client-provided values for secure user isolation. ([#12251](https://github.com/mastra-ai/mastra/pull/12251))
|
|
158
|
+
|
|
159
|
+
- Route prefixes are now normalized for consistent handling (trailing slashes removed, leading slashes added, multiple slashes collapsed). ([#12295](https://github.com/mastra-ai/mastra/pull/12295))
|
|
160
|
+
|
|
161
|
+
- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented. ([#12221](https://github.com/mastra-ai/mastra/pull/12221))
|
|
162
|
+
|
|
163
|
+
- Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`943772b`](https://github.com/mastra-ai/mastra/commit/943772b4378f625f0f4e19ea2b7c392bd8e71786), [`b5c711b`](https://github.com/mastra-ai/mastra/commit/b5c711b281dd1fb81a399a766bc9f86c55efc13e), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`1e49e7a`](https://github.com/mastra-ai/mastra/commit/1e49e7ab5f173582154cb26b29d424de67d09aef), [`30e1998`](https://github.com/mastra-ai/mastra/commit/30e1998941bc9f8161371379381d7477480e4ce3), [`771ad96`](https://github.com/mastra-ai/mastra/commit/771ad962441996b5c43549391a3e6a02c6ddedc2), [`2b0936b`](https://github.com/mastra-ai/mastra/commit/2b0936b0c9a43eeed9bef63e614d7e02ee803f7e), [`3b04f30`](https://github.com/mastra-ai/mastra/commit/3b04f3010604f3cdfc8a0674731700ad66471cee), [`97e26de`](https://github.com/mastra-ai/mastra/commit/97e26deaebd9836647a67b96423281d66421ca07), [`10523f4`](https://github.com/mastra-ai/mastra/commit/10523f4882d9b874b40ce6e3715f66dbcd4947d2), [`cb72d20`](https://github.com/mastra-ai/mastra/commit/cb72d2069d7339bda8a0e76d4f35615debb07b84), [`42856b1`](https://github.com/mastra-ai/mastra/commit/42856b1c8aeea6371c9ee77ae2f5f5fe34400933), [`66f33ff`](https://github.com/mastra-ai/mastra/commit/66f33ff68620018513e499c394411d1d39b3aa5c), [`ab3c190`](https://github.com/mastra-ai/mastra/commit/ab3c1901980a99910ca9b96a7090c22e24060113), [`d4f06c8`](https://github.com/mastra-ai/mastra/commit/d4f06c85ffa5bb0da38fb82ebf3b040cc6b4ec4e), [`0350626`](https://github.com/mastra-ai/mastra/commit/03506267ec41b67add80d994c0c0fcce93bbc75f), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`f46a478`](https://github.com/mastra-ai/mastra/commit/f46a4782f595949c696569e891f81c8d26338508), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`f05a3a5`](https://github.com/mastra-ai/mastra/commit/f05a3a5cf2b9a9c2d40c09cb8c762a4b6cd5d565), [`a291da9`](https://github.com/mastra-ai/mastra/commit/a291da9363efd92dafd8775dccb4f2d0511ece7a), [`c5d71da`](https://github.com/mastra-ai/mastra/commit/c5d71da1c680ce5640b1a7f8ca0e024a4ab1cfed), [`07042f9`](https://github.com/mastra-ai/mastra/commit/07042f9f89080f38b8f72713ba1c972d5b1905b8)]:
|
|
164
|
+
- @mastra/core@0.0.0-unified-workspace-snapshot-20260128233410
|
|
165
|
+
|
|
166
|
+
## 1.0.4
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
|
|
171
|
+
|
|
172
|
+
- Updated dependencies:
|
|
173
|
+
- @mastra/core@1.0.4
|
|
174
|
+
|
|
175
|
+
## 1.0.4-alpha.0
|
|
176
|
+
|
|
177
|
+
### Patch Changes
|
|
178
|
+
|
|
179
|
+
- Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
|
|
180
|
+
|
|
181
|
+
- Updated dependencies:
|
|
182
|
+
- @mastra/core@1.0.4-alpha.0
|
|
183
|
+
|
|
184
|
+
## 1.0.0
|
|
185
|
+
|
|
186
|
+
### Major Changes
|
|
187
|
+
|
|
188
|
+
- Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
|
|
189
|
+
|
|
190
|
+
- Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
|
|
191
|
+
|
|
192
|
+
Primitives that are added to other primitives are also automatically added to the Mastra instance
|
|
193
|
+
|
|
194
|
+
- Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
|
|
195
|
+
|
|
196
|
+
- Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
197
|
+
|
|
198
|
+
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
199
|
+
|
|
200
|
+
**Storage changes:**
|
|
201
|
+
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
202
|
+
- All storage implementations support `perPage: false`:
|
|
203
|
+
- Memory: `listMessages()`
|
|
204
|
+
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
205
|
+
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
206
|
+
|
|
207
|
+
**Memory changes:**
|
|
208
|
+
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
209
|
+
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
210
|
+
|
|
211
|
+
**Stricter validation:**
|
|
212
|
+
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
213
|
+
|
|
214
|
+
**Migration:**
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
218
|
+
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
219
|
+
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
220
|
+
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
221
|
+
|
|
222
|
+
// Memory: Replace selectBy with flat parameters
|
|
223
|
+
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
224
|
+
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
225
|
+
|
|
226
|
+
// Client SDK
|
|
227
|
+
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
228
|
+
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
- **Removed `storage.getMessages()`** ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
|
|
232
|
+
|
|
233
|
+
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
234
|
+
|
|
235
|
+
**Migration:**
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
// Before
|
|
239
|
+
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
240
|
+
|
|
241
|
+
// After
|
|
242
|
+
const result = await storage.listMessages({
|
|
243
|
+
threadId: 'thread-1',
|
|
244
|
+
page: 0,
|
|
245
|
+
perPage: 50,
|
|
246
|
+
});
|
|
247
|
+
const messages = result.messages; // Access messages array
|
|
248
|
+
console.log(result.total); // Total count
|
|
249
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Message ordering default**
|
|
253
|
+
|
|
254
|
+
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
255
|
+
|
|
256
|
+
**To use DESC ordering (newest first):**
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
const result = await storage.listMessages({
|
|
260
|
+
threadId: 'thread-1',
|
|
261
|
+
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Renamed `client.getThreadMessages()` → `client.listThreadMessages()`**
|
|
266
|
+
|
|
267
|
+
**Migration:**
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
// Before
|
|
271
|
+
const response = await client.getThreadMessages(threadId, { agentId });
|
|
272
|
+
|
|
273
|
+
// After
|
|
274
|
+
const response = await client.listThreadMessages(threadId, { agentId });
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
The response format remains the same.
|
|
278
|
+
|
|
279
|
+
**Removed `StorageGetMessagesArg` type**
|
|
280
|
+
|
|
281
|
+
Use `StorageListMessagesInput` instead:
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
// Before
|
|
285
|
+
import type { StorageGetMessagesArg } from '@mastra/core';
|
|
286
|
+
|
|
287
|
+
// After
|
|
288
|
+
import type { StorageListMessagesInput } from '@mastra/core';
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
292
|
+
|
|
293
|
+
- Replace `getThreadsByResourceIdPaginated` with `listThreadsByResourceId` across memory handlers. Update client SDK to use `listThreads()` with `offset`/`limit` parameters instead of deprecated `getMemoryThreads()`. Consolidate `/api/memory/threads` routes to single paginated endpoint. ([#9508](https://github.com/mastra-ai/mastra/pull/9508))
|
|
294
|
+
|
|
295
|
+
- This simplifies the Memory API by removing the confusing rememberMessages method and renaming query to recall for better clarity. ([#9701](https://github.com/mastra-ai/mastra/pull/9701))
|
|
296
|
+
|
|
297
|
+
The rememberMessages method name implied it might persist data when it was actually just retrieving messages, same as query. Having two methods that did essentially the same thing was unnecessary.
|
|
298
|
+
|
|
299
|
+
Before:
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
// Two methods that did the same thing
|
|
303
|
+
memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
|
|
304
|
+
memory.query({ threadId, resourceId, perPage, vectorSearchString });
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
After:
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
// Single unified method with clear purpose
|
|
311
|
+
memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
|
|
315
|
+
|
|
316
|
+
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
317
|
+
|
|
318
|
+
- 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))
|
|
319
|
+
|
|
320
|
+
- **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
|
|
321
|
+
|
|
322
|
+
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.
|
|
323
|
+
- All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
|
|
324
|
+
- Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
|
|
325
|
+
- `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
|
|
326
|
+
- `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
|
|
327
|
+
- Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
|
|
328
|
+
- Added `FullOutput<OUTPUT>` type representing complete output with all fields
|
|
329
|
+
- Added `AgentExecutionOptionsBase<OUTPUT>` type
|
|
330
|
+
- `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
|
|
331
|
+
- `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
|
|
332
|
+
- `agent.generate()` and `agent.stream()` methods have updated signatures
|
|
333
|
+
- `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
|
|
334
|
+
- Network route and streaming APIs updated to use plain OUTPUT generic
|
|
335
|
+
|
|
336
|
+
**Before:**
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
const output = await agent.generate<z.ZodType>([...], {
|
|
340
|
+
structuredOutput: { schema: mySchema }
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
**After:**
|
|
344
|
+
const output = await agent.generate<z.infer<typeof mySchema>>([...], {
|
|
345
|
+
structuredOutput: { schema: mySchema }
|
|
346
|
+
});
|
|
347
|
+
// Or rely on type inference:
|
|
348
|
+
const output = await agent.generate([...], {
|
|
349
|
+
structuredOutput: { schema: mySchema }
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
- 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))
|
|
355
|
+
|
|
356
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
357
|
+
|
|
358
|
+
- **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
|
|
359
|
+
|
|
360
|
+
This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
|
|
361
|
+
|
|
362
|
+
**What's Changed**
|
|
363
|
+
- Removed legacy v1 watch event handlers and types
|
|
364
|
+
- Renamed `watch-v2` to `watch` throughout the codebase
|
|
365
|
+
- Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
|
|
366
|
+
- Removed `/watch` HTTP endpoints from server and deployer
|
|
367
|
+
- Removed `WorkflowWatchResult` and v1 `WatchEvent` types
|
|
368
|
+
|
|
369
|
+
- Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
370
|
+
|
|
371
|
+
All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
|
|
372
|
+
|
|
373
|
+
**Affected APIs:**
|
|
374
|
+
- `Memory.listThreadsByResourceId()`
|
|
375
|
+
- `Memory.listMessages()`
|
|
376
|
+
- `Storage.listWorkflowRuns()`
|
|
377
|
+
|
|
378
|
+
**Migration:**
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
// Before
|
|
382
|
+
await memory.listThreadsByResourceId({
|
|
383
|
+
resourceId: 'user-123',
|
|
384
|
+
offset: 20,
|
|
385
|
+
limit: 10,
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
// After
|
|
389
|
+
await memory.listThreadsByResourceId({
|
|
390
|
+
resourceId: 'user-123',
|
|
391
|
+
page: 2, // page = Math.floor(offset / limit)
|
|
392
|
+
perPage: 10,
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
// Before
|
|
396
|
+
await memory.listMessages({
|
|
397
|
+
threadId: 'thread-456',
|
|
398
|
+
offset: 20,
|
|
399
|
+
limit: 10,
|
|
400
|
+
});
|
|
401
|
+
|
|
402
|
+
// After
|
|
403
|
+
await memory.listMessages({
|
|
404
|
+
threadId: 'thread-456',
|
|
405
|
+
page: 2,
|
|
406
|
+
perPage: 10,
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
// Before
|
|
410
|
+
await storage.listWorkflowRuns({
|
|
411
|
+
workflowName: 'my-workflow',
|
|
412
|
+
offset: 20,
|
|
413
|
+
limit: 10,
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
// After
|
|
417
|
+
await storage.listWorkflowRuns({
|
|
418
|
+
workflowName: 'my-workflow',
|
|
419
|
+
page: 2,
|
|
420
|
+
perPage: 10,
|
|
421
|
+
});
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Additional improvements:**
|
|
425
|
+
- Added validation for negative `page` values in all storage implementations
|
|
426
|
+
- Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
|
|
427
|
+
- Added reusable query parser utilities for consistent validation in handlers
|
|
428
|
+
|
|
429
|
+
- Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
430
|
+
|
|
431
|
+
- Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
432
|
+
|
|
433
|
+
- Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
|
|
434
|
+
|
|
435
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
436
|
+
|
|
437
|
+
- Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
|
|
438
|
+
|
|
439
|
+
- Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
|
|
440
|
+
Made the return format of all methods that return db messages consistent. It's always `{ messages: MastraDBMessage[] }` now, and messages can be converted after that using `@mastra/ai-sdk/ui`'s `toAISdkV4/5Messages()` function
|
|
441
|
+
|
|
442
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
443
|
+
|
|
444
|
+
- Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
445
|
+
|
|
446
|
+
### Minor Changes
|
|
447
|
+
|
|
448
|
+
- Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
|
|
449
|
+
|
|
450
|
+
Agents can now be stored in the database and loaded at runtime. This lets you persist agent configurations and dynamically create executable Agent instances from storage.
|
|
451
|
+
|
|
452
|
+
```typescript
|
|
453
|
+
import { Mastra } from '@mastra/core';
|
|
454
|
+
import { LibSQLStore } from '@mastra/libsql';
|
|
455
|
+
|
|
456
|
+
const mastra = new Mastra({
|
|
457
|
+
storage: new LibSQLStore({ url: ':memory:' }),
|
|
458
|
+
tools: { myTool },
|
|
459
|
+
scorers: { myScorer },
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
// Create agent in storage via API or directly
|
|
463
|
+
await mastra.getStorage().createAgent({
|
|
464
|
+
agent: {
|
|
465
|
+
id: 'my-agent',
|
|
466
|
+
name: 'My Agent',
|
|
467
|
+
instructions: 'You are helpful',
|
|
468
|
+
model: { provider: 'openai', name: 'gpt-4' },
|
|
469
|
+
tools: { myTool: {} },
|
|
470
|
+
scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
|
|
471
|
+
},
|
|
472
|
+
});
|
|
473
|
+
|
|
474
|
+
// Load and use the agent
|
|
475
|
+
const agent = await mastra.getStoredAgentById('my-agent');
|
|
476
|
+
const response = await agent.generate('Hello!');
|
|
477
|
+
|
|
478
|
+
// List all stored agents with pagination
|
|
479
|
+
const { agents, total, hasMore } = await mastra.listStoredAgents({
|
|
480
|
+
page: 0,
|
|
481
|
+
perPage: 10,
|
|
482
|
+
});
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
|
|
486
|
+
|
|
487
|
+
- Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
|
|
488
|
+
|
|
489
|
+
**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.
|
|
490
|
+
|
|
491
|
+
Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
|
|
492
|
+
|
|
493
|
+
**Using tool approval with generate()**
|
|
494
|
+
|
|
495
|
+
```typescript
|
|
496
|
+
const output = await agent.generate('Find user John', {
|
|
497
|
+
requireToolApproval: true,
|
|
498
|
+
});
|
|
499
|
+
|
|
500
|
+
// Check if a tool is waiting for approval
|
|
501
|
+
if (output.finishReason === 'suspended') {
|
|
502
|
+
console.log('Tool requires approval:', output.suspendPayload.toolName);
|
|
503
|
+
|
|
504
|
+
// Approve the tool call
|
|
505
|
+
const result = await agent.approveToolCallGenerate({
|
|
506
|
+
runId: output.runId,
|
|
507
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
508
|
+
});
|
|
509
|
+
|
|
510
|
+
console.log(result.text);
|
|
511
|
+
}
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
**Declining a tool call**
|
|
515
|
+
|
|
516
|
+
```typescript
|
|
517
|
+
if (output.finishReason === 'suspended') {
|
|
518
|
+
const result = await agent.declineToolCallGenerate({
|
|
519
|
+
runId: output.runId,
|
|
520
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
**New methods added:**
|
|
526
|
+
- `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
|
|
527
|
+
- `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
|
|
528
|
+
|
|
529
|
+
**Server routes added:**
|
|
530
|
+
- `POST /api/agents/:agentId/approve-tool-call-generate`
|
|
531
|
+
- `POST /api/agents/:agentId/decline-tool-call-generate`
|
|
532
|
+
|
|
533
|
+
The playground UI now also supports tool approval when using generate mode.
|
|
534
|
+
|
|
535
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
536
|
+
|
|
537
|
+
- Memory scope defaults changed from 'thread' to 'resource' ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
538
|
+
|
|
539
|
+
Both `workingMemory.scope` and `semanticRecall.scope` now default to `'resource'` instead of `'thread'`. This means:
|
|
540
|
+
- Working memory persists across all conversations for the same user/resource
|
|
541
|
+
- Semantic recall searches across all threads for the same user/resource
|
|
542
|
+
|
|
543
|
+
**Migration**: To maintain the previous thread-scoped behavior, explicitly set `scope: 'thread'`:
|
|
544
|
+
|
|
545
|
+
```typescript
|
|
546
|
+
memory: new Memory({
|
|
547
|
+
storage,
|
|
548
|
+
workingMemory: {
|
|
549
|
+
enabled: true,
|
|
550
|
+
scope: 'thread', // Explicitly set for thread-scoped behavior
|
|
551
|
+
},
|
|
552
|
+
semanticRecall: {
|
|
553
|
+
scope: 'thread', // Explicitly set for thread-scoped behavior
|
|
554
|
+
},
|
|
555
|
+
}),
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
|
|
559
|
+
|
|
560
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
561
|
+
|
|
562
|
+
- Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
563
|
+
|
|
564
|
+
- Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
|
|
565
|
+
- Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
|
|
566
|
+
- Add corresponding server handlers and deployer routes for observe streaming
|
|
567
|
+
- Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
|
|
568
|
+
- Update template installation processor to support both legacy and VNext streaming event formats
|
|
569
|
+
|
|
570
|
+
- Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
571
|
+
|
|
572
|
+
- Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
|
|
573
|
+
|
|
574
|
+
## What changed
|
|
575
|
+
|
|
576
|
+
Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
|
|
577
|
+
|
|
578
|
+
**Before:**
|
|
579
|
+
|
|
580
|
+
```typescript
|
|
581
|
+
// Old span structure
|
|
582
|
+
span.agentId; // 'my-agent'
|
|
583
|
+
span.toolId; // undefined
|
|
584
|
+
span.workflowId; // undefined
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
**After:**
|
|
588
|
+
|
|
589
|
+
```typescript
|
|
590
|
+
// New span structure
|
|
591
|
+
span.entityType; // EntityType.AGENT
|
|
592
|
+
span.entityId; // 'my-agent'
|
|
593
|
+
span.entityName; // 'My Agent'
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
## New `listTraces()` API
|
|
597
|
+
|
|
598
|
+
Query traces with filtering, pagination, and sorting:
|
|
599
|
+
|
|
600
|
+
```typescript
|
|
601
|
+
const { spans, pagination } = await storage.listTraces({
|
|
602
|
+
filters: {
|
|
603
|
+
entityType: EntityType.AGENT,
|
|
604
|
+
entityId: 'my-agent',
|
|
605
|
+
userId: 'user-123',
|
|
606
|
+
environment: 'production',
|
|
607
|
+
status: TraceStatus.SUCCESS,
|
|
608
|
+
startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
|
|
609
|
+
},
|
|
610
|
+
pagination: { page: 0, perPage: 50 },
|
|
611
|
+
orderBy: { field: 'startedAt', direction: 'DESC' },
|
|
612
|
+
});
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**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`.
|
|
616
|
+
|
|
617
|
+
## New retrieval methods
|
|
618
|
+
- `getSpan({ traceId, spanId })` - Get a single span
|
|
619
|
+
- `getRootSpan({ traceId })` - Get the root span of a trace
|
|
620
|
+
- `getTrace({ traceId })` - Get all spans for a trace
|
|
621
|
+
|
|
622
|
+
## Backward compatibility
|
|
623
|
+
|
|
624
|
+
The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
|
|
625
|
+
|
|
626
|
+
## Migration
|
|
627
|
+
|
|
628
|
+
**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`.
|
|
629
|
+
|
|
630
|
+
**No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
|
|
631
|
+
|
|
632
|
+
- Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
|
|
633
|
+
|
|
634
|
+
**New Features**
|
|
635
|
+
- Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
|
|
636
|
+
- All filter parameters are optional, allowing you to list all threads or filter as needed
|
|
637
|
+
- Full pagination and sorting support
|
|
638
|
+
|
|
639
|
+
**Example Usage**
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
// List all threads
|
|
643
|
+
const allThreads = await memory.listThreads({});
|
|
644
|
+
|
|
645
|
+
// Filter by resourceId only
|
|
646
|
+
const userThreads = await memory.listThreads({
|
|
647
|
+
filter: { resourceId: 'user-123' },
|
|
648
|
+
});
|
|
649
|
+
|
|
650
|
+
// Filter by metadata only
|
|
651
|
+
const supportThreads = await memory.listThreads({
|
|
652
|
+
filter: { metadata: { category: 'support' } },
|
|
653
|
+
});
|
|
654
|
+
|
|
655
|
+
// Filter by both with pagination
|
|
656
|
+
const filteredThreads = await memory.listThreads({
|
|
657
|
+
filter: {
|
|
658
|
+
resourceId: 'user-123',
|
|
659
|
+
metadata: { priority: 'high', status: 'open' },
|
|
660
|
+
},
|
|
661
|
+
orderBy: { field: 'updatedAt', direction: 'DESC' },
|
|
662
|
+
page: 0,
|
|
663
|
+
perPage: 20,
|
|
664
|
+
});
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
**Security Improvements**
|
|
668
|
+
- Added validation to prevent SQL injection via malicious metadata keys
|
|
669
|
+
- Added pagination parameter validation to prevent integer overflow attacks
|
|
670
|
+
|
|
671
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
672
|
+
|
|
673
|
+
- 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))
|
|
674
|
+
|
|
675
|
+
**What changed:**
|
|
676
|
+
- `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
|
|
677
|
+
- Added optional `fields` parameter to request only specific fields for better performance
|
|
678
|
+
- Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
|
|
679
|
+
- Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
|
|
680
|
+
- Removed `/execution-result` API endpoints from server (breaking change)
|
|
681
|
+
- Removed `runExecutionResult()` method from client SDK (breaking change)
|
|
682
|
+
- Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
|
|
683
|
+
|
|
684
|
+
**Before:**
|
|
685
|
+
|
|
686
|
+
```typescript
|
|
687
|
+
// Had to call two different methods for different data
|
|
688
|
+
const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
|
|
689
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
**After:**
|
|
693
|
+
|
|
694
|
+
```typescript
|
|
695
|
+
// Single method returns everything
|
|
696
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
697
|
+
// Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
|
|
698
|
+
|
|
699
|
+
// Request only specific fields for better performance (avoids expensive step fetching)
|
|
700
|
+
const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
|
|
701
|
+
|
|
702
|
+
// Skip nested workflow steps for faster response
|
|
703
|
+
const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
**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.
|
|
707
|
+
|
|
708
|
+
### Patch Changes
|
|
709
|
+
|
|
710
|
+
- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
|
|
711
|
+
|
|
712
|
+
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`.
|
|
713
|
+
|
|
714
|
+
Each package includes:
|
|
715
|
+
- **SKILL.md** - Entry point explaining the package's purpose and capabilities
|
|
716
|
+
- **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
|
|
717
|
+
- **Topic folders** - Conceptual documentation organized by feature area
|
|
718
|
+
|
|
719
|
+
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.
|
|
720
|
+
|
|
721
|
+
- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
|
|
722
|
+
|
|
723
|
+
```diff
|
|
724
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
725
|
+
- const stream = await run.streamVNext({ inputData: { ... } });
|
|
726
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
730
|
+
|
|
731
|
+
- Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
|
|
732
|
+
|
|
733
|
+
- 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))
|
|
734
|
+
|
|
735
|
+
- Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
|
|
736
|
+
New packages:
|
|
737
|
+
- @mastra/express
|
|
738
|
+
- @mastra/hono
|
|
739
|
+
|
|
740
|
+
These packages support mastra server routes on express and hono respectively.
|
|
741
|
+
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.
|
|
742
|
+
|
|
743
|
+
- Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
|
|
744
|
+
|
|
745
|
+
- Fix type safety for message ordering - restrict `orderBy` to only accept `'createdAt'` field ([#11069](https://github.com/mastra-ai/mastra/pull/11069))
|
|
746
|
+
|
|
747
|
+
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.
|
|
748
|
+
|
|
749
|
+
- Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
|
|
750
|
+
|
|
751
|
+
- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
752
|
+
|
|
753
|
+
**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.
|
|
754
|
+
|
|
755
|
+
**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.
|
|
756
|
+
|
|
757
|
+
**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.
|
|
758
|
+
|
|
759
|
+
- Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
|
|
760
|
+
|
|
761
|
+
- 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))
|
|
762
|
+
|
|
763
|
+
- Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
|
|
764
|
+
|
|
765
|
+
Consolidated the 3 different execution contexts to one
|
|
766
|
+
|
|
767
|
+
```typescript
|
|
768
|
+
// before depending on the context the tool was executed in
|
|
769
|
+
tool.execute({ context: data });
|
|
770
|
+
tool.execute({ context: { inputData: data } });
|
|
771
|
+
tool.execute(data);
|
|
772
|
+
|
|
773
|
+
// now, for all contexts
|
|
774
|
+
tool.execute(data, context);
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
**Before:**
|
|
778
|
+
|
|
779
|
+
```typescript
|
|
780
|
+
inputSchema: z.object({ something: z.string() }),
|
|
781
|
+
execute: async ({ context, tracingContext, runId, ... }) => {
|
|
782
|
+
return doSomething(context.string);
|
|
783
|
+
}
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
**After:**
|
|
787
|
+
|
|
788
|
+
```typescript
|
|
789
|
+
inputSchema: z.object({ something: z.string() }),
|
|
790
|
+
execute: async (inputData, context) => {
|
|
791
|
+
const { agent, mcp, workflow, ...sharedContext } = context
|
|
792
|
+
|
|
793
|
+
// context that only an agent would get like toolCallId, messages, suspend, resume, etc
|
|
794
|
+
if (agent) {
|
|
795
|
+
doSomething(inputData.something, agent)
|
|
796
|
+
// context that only a workflow would get like runId, state, suspend, resume, etc
|
|
797
|
+
} else if (workflow) {
|
|
798
|
+
doSomething(inputData.something, workflow)
|
|
799
|
+
// context that only a workflow would get like "extra", "elicitation"
|
|
800
|
+
} else if (mcp) {
|
|
801
|
+
doSomething(inputData.something, mcp)
|
|
802
|
+
} else {
|
|
803
|
+
// Running a tool in no execution context
|
|
804
|
+
return doSomething(inputData.something);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
```
|
|
808
|
+
|
|
809
|
+
- 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))
|
|
810
|
+
|
|
811
|
+
### Breaking Changes
|
|
812
|
+
|
|
813
|
+
#### `@mastra/core`
|
|
814
|
+
|
|
815
|
+
The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
|
|
816
|
+
|
|
817
|
+
```ts
|
|
818
|
+
// Before
|
|
819
|
+
await agent.stream('Hello', {
|
|
820
|
+
threadId: 'thread-123',
|
|
821
|
+
resourceId: 'user-456',
|
|
822
|
+
});
|
|
823
|
+
|
|
824
|
+
// After
|
|
825
|
+
await agent.stream('Hello', {
|
|
826
|
+
memory: {
|
|
827
|
+
thread: 'thread-123',
|
|
828
|
+
resource: 'user-456',
|
|
829
|
+
},
|
|
830
|
+
});
|
|
831
|
+
```
|
|
832
|
+
|
|
833
|
+
#### `@mastra/server`
|
|
834
|
+
|
|
835
|
+
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.
|
|
836
|
+
|
|
837
|
+
#### `@mastra/react`
|
|
838
|
+
|
|
839
|
+
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.
|
|
840
|
+
|
|
841
|
+
#### `@mastra/client-js`
|
|
842
|
+
|
|
843
|
+
When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
|
|
844
|
+
|
|
845
|
+
```ts
|
|
846
|
+
const agent = client.getAgent('my-agent');
|
|
847
|
+
|
|
848
|
+
// Before
|
|
849
|
+
await agent.generate([...], {
|
|
850
|
+
threadId: 'thread-123',
|
|
851
|
+
resourceId: 'user-456',
|
|
852
|
+
});
|
|
853
|
+
|
|
854
|
+
// After
|
|
855
|
+
await agent.generate([...], {
|
|
856
|
+
memory: {
|
|
857
|
+
thread: 'thread-123',
|
|
858
|
+
resource: 'user-456',
|
|
859
|
+
},
|
|
860
|
+
});
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
- 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))
|
|
864
|
+
|
|
865
|
+
- Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
|
|
866
|
+
- Add suspend/resume capabilities to agent network
|
|
867
|
+
- Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
|
|
868
|
+
|
|
869
|
+
`agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
|
|
870
|
+
|
|
871
|
+
- Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
|
|
872
|
+
|
|
873
|
+
- Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
874
|
+
|
|
875
|
+
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.
|
|
876
|
+
|
|
877
|
+
The fix addresses two issues:
|
|
878
|
+
- Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
|
|
879
|
+
- Ensures compatibility with both zod v3 and v4
|
|
880
|
+
|
|
881
|
+
- 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))
|
|
882
|
+
|
|
883
|
+
- Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
|
|
884
|
+
|
|
885
|
+
- Fixes issue #11185 where `MastraServer.tools` was rejecting tools created with `createTool({ inputSchema })`. Changed the tools property type from `Record<string, Tool>` to `ToolsInput` to accept tools with any schema types (input, output, or none), as well as Vercel AI SDK tools and provider-defined tools. ([`5118f38`](https://github.com/mastra-ai/mastra/commit/5118f384a70b1166012fde3b901f3227870b1009))
|
|
886
|
+
|
|
887
|
+
Tools created with `createTool({ inputSchema: z.object(...) })` now work without TypeScript errors.
|
|
888
|
+
|
|
889
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
890
|
+
|
|
891
|
+
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`.
|
|
892
|
+
|
|
893
|
+
**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.
|
|
894
|
+
|
|
895
|
+
**Solution**:
|
|
896
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
897
|
+
- Kept handler transformation for defense in depth
|
|
898
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
899
|
+
|
|
900
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
901
|
+
|
|
902
|
+
Fixes #11412
|
|
903
|
+
|
|
904
|
+
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
905
|
+
|
|
906
|
+
- Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
|
|
907
|
+
|
|
908
|
+
- feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
|
|
909
|
+
|
|
910
|
+
Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
|
|
911
|
+
- `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
|
|
912
|
+
- `withNestedWorkflows`: Control whether to fetch nested workflow data
|
|
913
|
+
|
|
914
|
+
This significantly reduces response payload size and improves response times for large workflows.
|
|
915
|
+
|
|
916
|
+
## Server Endpoint Usage
|
|
917
|
+
|
|
918
|
+
```http
|
|
919
|
+
# Get only status (minimal payload - fastest)
|
|
920
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
|
|
921
|
+
|
|
922
|
+
# Get status and result
|
|
923
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
|
|
924
|
+
|
|
925
|
+
# Get all fields but without nested workflow data (faster)
|
|
926
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
|
|
927
|
+
|
|
928
|
+
# Get only specific fields without nested workflow data
|
|
929
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
|
|
930
|
+
|
|
931
|
+
# Get full data (default behavior)
|
|
932
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
## Client SDK Usage
|
|
936
|
+
|
|
937
|
+
```typescript
|
|
938
|
+
import { MastraClient } from '@mastra/client-js';
|
|
939
|
+
|
|
940
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
941
|
+
const workflow = client.getWorkflow('myWorkflow');
|
|
942
|
+
|
|
943
|
+
// Get only status (minimal payload - fastest)
|
|
944
|
+
const statusOnly = await workflow.runExecutionResult(runId, {
|
|
945
|
+
fields: ['status'],
|
|
946
|
+
});
|
|
947
|
+
console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
|
|
948
|
+
|
|
949
|
+
// Get status and result
|
|
950
|
+
const statusAndResult = await workflow.runExecutionResult(runId, {
|
|
951
|
+
fields: ['status', 'result'],
|
|
952
|
+
});
|
|
953
|
+
|
|
954
|
+
// Get all fields but without nested workflow data (faster)
|
|
955
|
+
const resultWithoutNested = await workflow.runExecutionResult(runId, {
|
|
956
|
+
withNestedWorkflows: false,
|
|
957
|
+
});
|
|
958
|
+
|
|
959
|
+
// Get specific fields without nested workflow data
|
|
960
|
+
const optimized = await workflow.runExecutionResult(runId, {
|
|
961
|
+
fields: ['status', 'steps'],
|
|
962
|
+
withNestedWorkflows: false,
|
|
963
|
+
});
|
|
964
|
+
|
|
965
|
+
// Get full execution result (default behavior)
|
|
966
|
+
const fullResult = await workflow.runExecutionResult(runId);
|
|
967
|
+
```
|
|
968
|
+
|
|
969
|
+
## Core API Changes
|
|
970
|
+
|
|
971
|
+
The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
|
|
972
|
+
|
|
973
|
+
```typescript
|
|
974
|
+
await workflow.getWorkflowRunExecutionResult(runId, {
|
|
975
|
+
withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
|
|
976
|
+
fields: ['status', 'result'], // optional field filtering
|
|
977
|
+
});
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
## Inngest Compatibility
|
|
981
|
+
|
|
982
|
+
The `@mastra/inngest` package has been updated to use the new options object API. This is a non-breaking internal change - no action required from inngest workflow users.
|
|
983
|
+
|
|
984
|
+
## Performance Impact
|
|
985
|
+
|
|
986
|
+
For workflows with large step outputs:
|
|
987
|
+
- Requesting only `status`: ~99% reduction in payload size
|
|
988
|
+
- Requesting `status,result,error`: ~95% reduction in payload size
|
|
989
|
+
- Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
|
|
990
|
+
- Combining both: Maximum performance optimization
|
|
991
|
+
|
|
992
|
+
- Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
|
|
993
|
+
|
|
994
|
+
### Summary
|
|
995
|
+
|
|
996
|
+
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.
|
|
997
|
+
|
|
998
|
+
### Migration Guide
|
|
999
|
+
|
|
1000
|
+
All direct method calls on storage instances should be updated to use `getStore()`:
|
|
1001
|
+
|
|
1002
|
+
```typescript
|
|
1003
|
+
// Before
|
|
1004
|
+
const thread = await storage.getThreadById({ threadId });
|
|
1005
|
+
await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1006
|
+
await storage.createSpan(span);
|
|
1007
|
+
|
|
1008
|
+
// After
|
|
1009
|
+
const memory = await storage.getStore('memory');
|
|
1010
|
+
const thread = await memory?.getThreadById({ threadId });
|
|
1011
|
+
|
|
1012
|
+
const workflows = await storage.getStore('workflows');
|
|
1013
|
+
await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1014
|
+
|
|
1015
|
+
const observability = await storage.getStore('observability');
|
|
1016
|
+
await observability?.createSpan(span);
|
|
1017
|
+
```
|
|
1018
|
+
|
|
1019
|
+
### Available Domains
|
|
1020
|
+
- **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
|
|
1021
|
+
- **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
|
|
1022
|
+
- **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
|
|
1023
|
+
- **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
|
|
1024
|
+
- **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
|
|
1025
|
+
|
|
1026
|
+
### Breaking Changes
|
|
1027
|
+
- Passthrough methods have been removed from `MastraStorage` base class
|
|
1028
|
+
- All storage adapters now require accessing domains via `getStore()`
|
|
1029
|
+
- The `stores` property on storage instances is now the canonical way to access domain storage
|
|
1030
|
+
|
|
1031
|
+
### Internal Changes
|
|
1032
|
+
- Each storage adapter now initializes domain-specific stores in its constructor
|
|
1033
|
+
- Domain stores share database connections and handle their own table initialization
|
|
1034
|
+
|
|
1035
|
+
- Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
1036
|
+
|
|
1037
|
+
- Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
|
|
1038
|
+
|
|
1039
|
+
- **Breaking Changes** ([#11028](https://github.com/mastra-ai/mastra/pull/11028))
|
|
1040
|
+
- Renamed `RuntimeContext` type to `ServerContext` to avoid confusion with the user-facing `RequestContext` (previously called `RuntimeContext`)
|
|
1041
|
+
- Removed `playground` and `isDev` options from server adapter constructors - these only set context variables without any actual functionality
|
|
1042
|
+
|
|
1043
|
+
**Changes**
|
|
1044
|
+
|
|
1045
|
+
**@mastra/server**
|
|
1046
|
+
- Renamed `RuntimeContext` type to `ServerContext` in route handler types
|
|
1047
|
+
- Renamed `createTestRuntimeContext` to `createTestServerContext` in test utilities
|
|
1048
|
+
- Renamed `isPlayground` parameter to `isStudio` in `formatAgent` function
|
|
1049
|
+
|
|
1050
|
+
**@mastra/hono**
|
|
1051
|
+
- Removed `playground` and `isDev` from `HonoVariables` type
|
|
1052
|
+
- Removed setting of `playground` and `isDev` context variables in middleware
|
|
1053
|
+
|
|
1054
|
+
**@mastra/express**
|
|
1055
|
+
- Removed `playground` and `isDev` from `Express.Locals` interface
|
|
1056
|
+
- Removed setting of `playground` and `isDev` in response locals
|
|
1057
|
+
|
|
1058
|
+
- Fixes issue where clicking the reset button in the model picker would fail to restore the original LanguageModelV2 (or any other types) object that was passed during agent construction. ([#9481](https://github.com/mastra-ai/mastra/pull/9481))
|
|
1059
|
+
|
|
1060
|
+
- Unified MastraServer API with MCP transport routes ([#10644](https://github.com/mastra-ai/mastra/pull/10644))
|
|
1061
|
+
|
|
1062
|
+
**Breaking Changes:**
|
|
1063
|
+
- Renamed `HonoServerAdapter` to `MastraServer` in `@mastra/hono`
|
|
1064
|
+
- Renamed `ExpressServerAdapter` to `MastraServer` in `@mastra/express`
|
|
1065
|
+
- Configuration now passed to constructor instead of separate method calls
|
|
1066
|
+
- Renamed base class from `ServerAdapter` to `MastraServerBase` in `@mastra/server`
|
|
1067
|
+
|
|
1068
|
+
**New Features:**
|
|
1069
|
+
- Added MCP transport routes (HTTP and SSE) to server adapters
|
|
1070
|
+
- MCP endpoints available at `/api/mcp/:serverId/mcp` (HTTP) and `/api/mcp/:serverId/sse` (SSE)
|
|
1071
|
+
- Added `express.json()` middleware compatibility for MCP routes
|
|
1072
|
+
- Moved authentication helpers from deployer to `@mastra/server/auth`
|
|
1073
|
+
|
|
1074
|
+
**Testing:**
|
|
1075
|
+
- Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
|
|
1076
|
+
- Added comprehensive MCP endpoint tests for both Hono and Express adapters
|
|
1077
|
+
- Added GitHub Actions workflow for server adapter CI testing
|
|
1078
|
+
|
|
1079
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
1080
|
+
|
|
1081
|
+
`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.
|
|
1082
|
+
|
|
1083
|
+
```typescript
|
|
1084
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
1085
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
1086
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
1087
|
+
|
|
1088
|
+
// Compose domains from different stores
|
|
1089
|
+
const storage = new MastraStorage({
|
|
1090
|
+
id: 'composite',
|
|
1091
|
+
domains: {
|
|
1092
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
1093
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
1094
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
1095
|
+
},
|
|
1096
|
+
});
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
**Breaking changes:**
|
|
1100
|
+
- `storage.supports` property no longer exists
|
|
1101
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
1102
|
+
|
|
1103
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
1104
|
+
|
|
1105
|
+
```typescript
|
|
1106
|
+
const store = await storage.getStore('memory');
|
|
1107
|
+
if (store) {
|
|
1108
|
+
// domain is available
|
|
1109
|
+
}
|
|
1110
|
+
```
|
|
1111
|
+
|
|
1112
|
+
- Remove deprecated playground-only prompt generation handler (functionality moved to @mastra/server) ([#11074](https://github.com/mastra-ai/mastra/pull/11074))
|
|
1113
|
+
|
|
1114
|
+
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
|
|
1115
|
+
|
|
1116
|
+
Add missing `/api/agents/:agentId/instructions/enhance` endpoint that was referenced by `@mastra/client-js` and `@mastra/playground-ui`
|
|
1117
|
+
|
|
1118
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
|
|
1119
|
+
|
|
1120
|
+
- Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
|
|
1121
|
+
|
|
1122
|
+
```typescript
|
|
1123
|
+
await workflow.deleteWorkflowRunById(runId);
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
|
|
1127
|
+
|
|
1128
|
+
- 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))
|
|
1129
|
+
|
|
1130
|
+
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.
|
|
1131
|
+
|
|
1132
|
+
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.
|
|
1133
|
+
|
|
1134
|
+
- Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
|
|
1135
|
+
|
|
1136
|
+
```ts
|
|
1137
|
+
// Before: HTTP request to localhost
|
|
1138
|
+
const response = await fetch(`http://localhost:5000/api/tools`);
|
|
1139
|
+
|
|
1140
|
+
// After: Direct call via app.fetch()
|
|
1141
|
+
const app = mastra.getServerApp<Hono>();
|
|
1142
|
+
const response = await app.fetch(new Request('http://internal/api/tools'));
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
- Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
|
|
1146
|
+
- Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
|
|
1147
|
+
- Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
|
|
1148
|
+
- Server adapters now auto-register with Mastra in their constructor
|
|
1149
|
+
|
|
1150
|
+
- 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))
|
|
1151
|
+
|
|
1152
|
+
- 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))
|
|
1153
|
+
|
|
1154
|
+
- Standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
|
|
1155
|
+
- Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
|
|
1156
|
+
- Client SDK sends both param formats to support older server versions
|
|
1157
|
+
- Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
|
|
1158
|
+
- Marked `limit` and `offset` as deprecated in client types
|
|
1159
|
+
|
|
1160
|
+
- Fixed server handler bugs: filter parsing now handles colons in values (timestamps, URLs), dateRange validation now converts JSON strings to Date objects, deleteMessages schema accepts object forms, and added missing responseSchema for legacy stream route ([#10362](https://github.com/mastra-ai/mastra/pull/10362))
|
|
1161
|
+
|
|
1162
|
+
- **Client (`@mastra/client-js`):** ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
|
|
1163
|
+
- Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
|
|
1164
|
+
|
|
1165
|
+
**Server (`@mastra/server`):**
|
|
1166
|
+
- Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
|
|
1167
|
+
- Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
|
|
1168
|
+
|
|
1169
|
+
- Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
|
|
1170
|
+
|
|
1171
|
+
- Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
|
|
1172
|
+
|
|
1173
|
+
- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
|
|
1174
|
+
|
|
1175
|
+
```typescript
|
|
1176
|
+
// Clone a thread
|
|
1177
|
+
const { thread, clonedMessages } = await memory.cloneThread({
|
|
1178
|
+
sourceThreadId: 'thread-123',
|
|
1179
|
+
title: 'My Clone',
|
|
1180
|
+
options: {
|
|
1181
|
+
messageLimit: 10, // optional: only copy last N messages
|
|
1182
|
+
},
|
|
1183
|
+
});
|
|
1184
|
+
|
|
1185
|
+
// Check if a thread is a clone
|
|
1186
|
+
if (memory.isClone(thread)) {
|
|
1187
|
+
const source = await memory.getSourceThread(thread.id);
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
// List all clones of a thread
|
|
1191
|
+
const clones = await memory.listClones('thread-123');
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
Includes:
|
|
1195
|
+
- Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
|
|
1196
|
+
- API endpoint: `POST /api/memory/threads/:threadId/clone`
|
|
1197
|
+
- Embeddings created for cloned messages (semantic recall)
|
|
1198
|
+
- Clone button in playground UI Memory tab
|
|
1199
|
+
|
|
1200
|
+
- 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))
|
|
1201
|
+
|
|
1202
|
+
- 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))
|
|
1203
|
+
|
|
1204
|
+
- Add optional `partial` query parameter to `/api/agents` and `/api/workflows` endpoints to return minimal data without schemas, reducing payload size for list views: ([#10886](https://github.com/mastra-ai/mastra/pull/10886))
|
|
1205
|
+
- When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
|
|
1206
|
+
- When `partial=true`: workflow steps are replaced with stepCount integer
|
|
1207
|
+
- When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
|
|
1208
|
+
- Maintains backward compatibility when partial parameter is not provided
|
|
1209
|
+
|
|
1210
|
+
**Server Endpoint Usage**
|
|
1211
|
+
|
|
1212
|
+
```bash
|
|
1213
|
+
# Get partial agent data (no tool schemas)
|
|
1214
|
+
GET /api/agents?partial=true
|
|
1215
|
+
|
|
1216
|
+
# Get full agent data (default behavior)
|
|
1217
|
+
GET /api/agents
|
|
1218
|
+
|
|
1219
|
+
# Get partial workflow data (stepCount instead of steps, no schemas)
|
|
1220
|
+
GET /api/workflows?partial=true
|
|
1221
|
+
|
|
1222
|
+
# Get full workflow data (default behavior)
|
|
1223
|
+
GET /api/workflows
|
|
1224
|
+
```
|
|
1225
|
+
|
|
1226
|
+
**Client SDK Usage**
|
|
1227
|
+
|
|
1228
|
+
```typescript
|
|
1229
|
+
import { MastraClient } from '@mastra/client-js';
|
|
1230
|
+
|
|
1231
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
1232
|
+
|
|
1233
|
+
// Get partial agent list (smaller payload)
|
|
1234
|
+
const partialAgents = await client.listAgents({ partial: true });
|
|
1235
|
+
|
|
1236
|
+
// Get full agent list with tool schemas
|
|
1237
|
+
const fullAgents = await client.listAgents();
|
|
1238
|
+
|
|
1239
|
+
// Get partial workflow list (smaller payload)
|
|
1240
|
+
const partialWorkflows = await client.listWorkflows({ partial: true });
|
|
1241
|
+
|
|
1242
|
+
// Get full workflow list with steps and schemas
|
|
1243
|
+
const fullWorkflows = await client.listWorkflows();
|
|
1244
|
+
```
|
|
1245
|
+
|
|
1246
|
+
- Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
|
|
1247
|
+
|
|
1248
|
+
- Support new Workflow tripwire run status. Tripwires that are thrown from within a workflow will now bubble up and return a graceful state with information about tripwires. ([#10947](https://github.com/mastra-ai/mastra/pull/10947))
|
|
1249
|
+
|
|
1250
|
+
When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
|
|
1251
|
+
|
|
1252
|
+
```typescript
|
|
1253
|
+
const run = await workflow.createRun();
|
|
1254
|
+
const result = await run.start({ inputData: { message: 'Hello' } });
|
|
1255
|
+
|
|
1256
|
+
if (result.status === 'tripwire') {
|
|
1257
|
+
console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
|
|
1258
|
+
console.log('Processor ID:', result.tripwire?.processorId);
|
|
1259
|
+
console.log('Retry requested:', result.tripwire?.retry);
|
|
1260
|
+
}
|
|
1261
|
+
```
|
|
1262
|
+
|
|
1263
|
+
Adds new UI state for tripwire in agent chat and workflow UI.
|
|
1264
|
+
|
|
1265
|
+
This is distinct from `status: 'failed'` which indicates an unexpected error. A tripwire status means a processor intentionally stopped execution (e.g., for content moderation).
|
|
1266
|
+
|
|
1267
|
+
- Network handler now accesses thread and resource parameters from the nested memory object instead of directly from request body. ([#10294](https://github.com/mastra-ai/mastra/pull/10294))
|
|
1268
|
+
|
|
1269
|
+
- Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
|
|
1270
|
+
|
|
1271
|
+
- Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
|
|
1272
|
+
|
|
1273
|
+
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.
|
|
1274
|
+
|
|
1275
|
+
- Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
|
|
1276
|
+
|
|
1277
|
+
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.
|
|
1278
|
+
|
|
1279
|
+
Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
|
|
1280
|
+
|
|
1281
|
+
**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`.
|
|
1282
|
+
|
|
1283
|
+
- 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)]:
|
|
1284
|
+
- @mastra/core@1.0.0
|
|
1285
|
+
|
|
1286
|
+
## 1.0.0-beta.27
|
|
1287
|
+
|
|
1288
|
+
### Patch Changes
|
|
1289
|
+
|
|
1290
|
+
- Updated dependencies [[`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a)]:
|
|
1291
|
+
- @mastra/core@1.0.0-beta.27
|
|
1292
|
+
|
|
1293
|
+
## 1.0.0-beta.26
|
|
1294
|
+
|
|
1295
|
+
### Patch Changes
|
|
1296
|
+
|
|
1297
|
+
- Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
|
|
1298
|
+
|
|
1299
|
+
- Updated dependencies [[`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897)]:
|
|
1300
|
+
- @mastra/core@1.0.0-beta.26
|
|
1301
|
+
|
|
1302
|
+
## 1.0.0-beta.25
|
|
1303
|
+
|
|
1304
|
+
### Minor Changes
|
|
1305
|
+
|
|
1306
|
+
- Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
|
|
1307
|
+
|
|
1308
|
+
**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.
|
|
1309
|
+
|
|
1310
|
+
Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
|
|
1311
|
+
|
|
1312
|
+
**Using tool approval with generate()**
|
|
1313
|
+
|
|
1314
|
+
```typescript
|
|
1315
|
+
const output = await agent.generate('Find user John', {
|
|
1316
|
+
requireToolApproval: true,
|
|
1317
|
+
});
|
|
1318
|
+
|
|
1319
|
+
// Check if a tool is waiting for approval
|
|
1320
|
+
if (output.finishReason === 'suspended') {
|
|
1321
|
+
console.log('Tool requires approval:', output.suspendPayload.toolName);
|
|
1322
|
+
|
|
1323
|
+
// Approve the tool call
|
|
1324
|
+
const result = await agent.approveToolCallGenerate({
|
|
1325
|
+
runId: output.runId,
|
|
1326
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
1327
|
+
});
|
|
1328
|
+
|
|
1329
|
+
console.log(result.text);
|
|
1330
|
+
}
|
|
1331
|
+
```
|
|
1332
|
+
|
|
1333
|
+
**Declining a tool call**
|
|
1334
|
+
|
|
1335
|
+
```typescript
|
|
1336
|
+
if (output.finishReason === 'suspended') {
|
|
1337
|
+
const result = await agent.declineToolCallGenerate({
|
|
1338
|
+
runId: output.runId,
|
|
1339
|
+
toolCallId: output.suspendPayload.toolCallId,
|
|
1340
|
+
});
|
|
1341
|
+
}
|
|
1342
|
+
```
|
|
1343
|
+
|
|
1344
|
+
**New methods added:**
|
|
1345
|
+
- `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
|
|
1346
|
+
- `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
|
|
1347
|
+
|
|
1348
|
+
**Server routes added:**
|
|
1349
|
+
- `POST /api/agents/:agentId/approve-tool-call-generate`
|
|
1350
|
+
- `POST /api/agents/:agentId/decline-tool-call-generate`
|
|
1351
|
+
|
|
1352
|
+
The playground UI now also supports tool approval when using generate mode.
|
|
1353
|
+
|
|
1354
|
+
- Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
|
|
1355
|
+
|
|
1356
|
+
**New Features**
|
|
1357
|
+
- Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
|
|
1358
|
+
- All filter parameters are optional, allowing you to list all threads or filter as needed
|
|
1359
|
+
- Full pagination and sorting support
|
|
1360
|
+
|
|
1361
|
+
**Example Usage**
|
|
1362
|
+
|
|
1363
|
+
```typescript
|
|
1364
|
+
// List all threads
|
|
1365
|
+
const allThreads = await memory.listThreads({});
|
|
1366
|
+
|
|
1367
|
+
// Filter by resourceId only
|
|
1368
|
+
const userThreads = await memory.listThreads({
|
|
1369
|
+
filter: { resourceId: 'user-123' },
|
|
1370
|
+
});
|
|
1371
|
+
|
|
1372
|
+
// Filter by metadata only
|
|
1373
|
+
const supportThreads = await memory.listThreads({
|
|
1374
|
+
filter: { metadata: { category: 'support' } },
|
|
1375
|
+
});
|
|
1376
|
+
|
|
1377
|
+
// Filter by both with pagination
|
|
1378
|
+
const filteredThreads = await memory.listThreads({
|
|
1379
|
+
filter: {
|
|
1380
|
+
resourceId: 'user-123',
|
|
1381
|
+
metadata: { priority: 'high', status: 'open' },
|
|
1382
|
+
},
|
|
1383
|
+
orderBy: { field: 'updatedAt', direction: 'DESC' },
|
|
1384
|
+
page: 0,
|
|
1385
|
+
perPage: 20,
|
|
1386
|
+
});
|
|
1387
|
+
```
|
|
1388
|
+
|
|
1389
|
+
**Security Improvements**
|
|
1390
|
+
- Added validation to prevent SQL injection via malicious metadata keys
|
|
1391
|
+
- Added pagination parameter validation to prevent integer overflow attacks
|
|
1392
|
+
|
|
1393
|
+
### Patch Changes
|
|
1394
|
+
|
|
1395
|
+
- Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
|
|
1396
|
+
|
|
1397
|
+
- 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))
|
|
1398
|
+
|
|
1399
|
+
- 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)]:
|
|
1400
|
+
- @mastra/core@1.0.0-beta.25
|
|
1401
|
+
|
|
1402
|
+
## 1.0.0-beta.24
|
|
1403
|
+
|
|
1404
|
+
### Patch Changes
|
|
1405
|
+
|
|
1406
|
+
- 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)]:
|
|
1407
|
+
- @mastra/core@1.0.0-beta.24
|
|
1408
|
+
|
|
1409
|
+
## 1.0.0-beta.23
|
|
1410
|
+
|
|
1411
|
+
### Patch Changes
|
|
1412
|
+
|
|
1413
|
+
- Updated dependencies [[`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8)]:
|
|
1414
|
+
- @mastra/core@1.0.0-beta.23
|
|
1415
|
+
|
|
1416
|
+
## 1.0.0-beta.22
|
|
1417
|
+
|
|
1418
|
+
### Major Changes
|
|
1419
|
+
|
|
1420
|
+
- **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
|
|
1421
|
+
|
|
1422
|
+
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.
|
|
1423
|
+
- All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
|
|
1424
|
+
- Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
|
|
1425
|
+
- `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
|
|
1426
|
+
- `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
|
|
1427
|
+
- Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
|
|
1428
|
+
- Added `FullOutput<OUTPUT>` type representing complete output with all fields
|
|
1429
|
+
- Added `AgentExecutionOptionsBase<OUTPUT>` type
|
|
1430
|
+
- `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
|
|
1431
|
+
- `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
|
|
1432
|
+
- `agent.generate()` and `agent.stream()` methods have updated signatures
|
|
1433
|
+
- `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
|
|
1434
|
+
- Network route and streaming APIs updated to use plain OUTPUT generic
|
|
1435
|
+
|
|
1436
|
+
**Before:**
|
|
1437
|
+
|
|
1438
|
+
```typescript
|
|
1439
|
+
const output = await agent.generate<z.ZodType>({
|
|
1440
|
+
messages: [...],
|
|
1441
|
+
structuredOutput: { schema: mySchema }
|
|
1442
|
+
});
|
|
1443
|
+
|
|
1444
|
+
**After:**
|
|
1445
|
+
const output = await agent.generate<z.infer<typeof mySchema>>({
|
|
1446
|
+
messages: [...],
|
|
1447
|
+
structuredOutput: { schema: mySchema }
|
|
1448
|
+
});
|
|
1449
|
+
// Or rely on type inference:
|
|
1450
|
+
const output = await agent.generate({
|
|
1451
|
+
messages: [...],
|
|
1452
|
+
structuredOutput: { schema: mySchema }
|
|
1453
|
+
});
|
|
1454
|
+
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
### Patch Changes
|
|
1458
|
+
|
|
1459
|
+
- 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))
|
|
1460
|
+
|
|
1461
|
+
### Breaking Changes
|
|
1462
|
+
|
|
1463
|
+
#### `@mastra/core`
|
|
1464
|
+
|
|
1465
|
+
The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
|
|
1466
|
+
|
|
1467
|
+
```ts
|
|
1468
|
+
// Before
|
|
1469
|
+
await agent.stream('Hello', {
|
|
1470
|
+
threadId: 'thread-123',
|
|
1471
|
+
resourceId: 'user-456',
|
|
1472
|
+
});
|
|
1473
|
+
|
|
1474
|
+
// After
|
|
1475
|
+
await agent.stream('Hello', {
|
|
1476
|
+
memory: {
|
|
1477
|
+
thread: 'thread-123',
|
|
1478
|
+
resource: 'user-456',
|
|
1479
|
+
},
|
|
1480
|
+
});
|
|
1481
|
+
```
|
|
1482
|
+
|
|
1483
|
+
#### `@mastra/server`
|
|
1484
|
+
|
|
1485
|
+
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.
|
|
1486
|
+
|
|
1487
|
+
#### `@mastra/react`
|
|
1488
|
+
|
|
1489
|
+
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.
|
|
1490
|
+
|
|
1491
|
+
#### `@mastra/client-js`
|
|
1492
|
+
|
|
1493
|
+
When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
|
|
1494
|
+
|
|
1495
|
+
```ts
|
|
1496
|
+
const agent = client.getAgent('my-agent');
|
|
1497
|
+
|
|
1498
|
+
// Before
|
|
1499
|
+
await agent.generate({
|
|
1500
|
+
messages: [...],
|
|
1501
|
+
threadId: 'thread-123',
|
|
1502
|
+
resourceId: 'user-456',
|
|
1503
|
+
});
|
|
1504
|
+
|
|
1505
|
+
// After
|
|
1506
|
+
await agent.generate({
|
|
1507
|
+
messages: [...],
|
|
1508
|
+
memory: {
|
|
1509
|
+
thread: 'thread-123',
|
|
1510
|
+
resource: 'user-456',
|
|
1511
|
+
},
|
|
1512
|
+
});
|
|
1513
|
+
```
|
|
1514
|
+
|
|
1515
|
+
- 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))
|
|
1516
|
+
|
|
1517
|
+
- Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
|
|
1518
|
+
- Add suspend/resume capabilities to agent network
|
|
1519
|
+
- Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
|
|
1520
|
+
|
|
1521
|
+
`agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
|
|
1522
|
+
|
|
1523
|
+
- 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))
|
|
1524
|
+
|
|
1525
|
+
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.
|
|
1526
|
+
|
|
1527
|
+
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.
|
|
1528
|
+
|
|
1529
|
+
- 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)]:
|
|
1530
|
+
- @mastra/core@1.0.0-beta.22
|
|
1531
|
+
|
|
1532
|
+
## 1.0.0-beta.21
|
|
1533
|
+
|
|
1534
|
+
### Patch Changes
|
|
1535
|
+
|
|
1536
|
+
- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
1537
|
+
|
|
1538
|
+
- Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
|
|
1539
|
+
|
|
1540
|
+
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.
|
|
1541
|
+
|
|
1542
|
+
The fix addresses two issues:
|
|
1543
|
+
- Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
|
|
1544
|
+
- Ensures compatibility with both zod v3 and v4
|
|
1545
|
+
|
|
1546
|
+
- 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)]:
|
|
1547
|
+
- @mastra/core@1.0.0-beta.21
|
|
1548
|
+
|
|
1549
|
+
## 1.0.0-beta.20
|
|
1550
|
+
|
|
1551
|
+
### Minor Changes
|
|
1552
|
+
|
|
1553
|
+
- 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))
|
|
1554
|
+
|
|
1555
|
+
**What changed:**
|
|
1556
|
+
- `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
|
|
1557
|
+
- Added optional `fields` parameter to request only specific fields for better performance
|
|
1558
|
+
- Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
|
|
1559
|
+
- Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
|
|
1560
|
+
- Removed `/execution-result` API endpoints from server (breaking change)
|
|
1561
|
+
- Removed `runExecutionResult()` method from client SDK (breaking change)
|
|
1562
|
+
- Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
|
|
1563
|
+
|
|
1564
|
+
**Before:**
|
|
1565
|
+
|
|
1566
|
+
```typescript
|
|
1567
|
+
// Had to call two different methods for different data
|
|
1568
|
+
const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
|
|
1569
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
|
|
1570
|
+
```
|
|
1571
|
+
|
|
1572
|
+
**After:**
|
|
1573
|
+
|
|
1574
|
+
```typescript
|
|
1575
|
+
// Single method returns everything
|
|
1576
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
1577
|
+
// Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
|
|
1578
|
+
|
|
1579
|
+
// Request only specific fields for better performance (avoids expensive step fetching)
|
|
1580
|
+
const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
|
|
1581
|
+
|
|
1582
|
+
// Skip nested workflow steps for faster response
|
|
1583
|
+
const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
|
|
1584
|
+
```
|
|
1585
|
+
|
|
1586
|
+
**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.
|
|
1587
|
+
|
|
1588
|
+
### Patch Changes
|
|
1589
|
+
|
|
1590
|
+
- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
|
|
1591
|
+
|
|
1592
|
+
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`.
|
|
1593
|
+
|
|
1594
|
+
Each package includes:
|
|
1595
|
+
- **SKILL.md** - Entry point explaining the package's purpose and capabilities
|
|
1596
|
+
- **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
|
|
1597
|
+
- **Topic folders** - Conceptual documentation organized by feature area
|
|
1598
|
+
|
|
1599
|
+
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.
|
|
1600
|
+
|
|
1601
|
+
- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
|
|
1602
|
+
|
|
1603
|
+
```diff
|
|
1604
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
1605
|
+
- const stream = await run.streamVNext({ inputData: { ... } });
|
|
1606
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
1607
|
+
```
|
|
1608
|
+
|
|
1609
|
+
- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
|
|
1610
|
+
|
|
1611
|
+
**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.
|
|
1612
|
+
|
|
1613
|
+
**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.
|
|
1614
|
+
|
|
1615
|
+
**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.
|
|
1616
|
+
|
|
1617
|
+
- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
|
|
1618
|
+
|
|
1619
|
+
- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
|
|
1620
|
+
|
|
1621
|
+
```typescript
|
|
1622
|
+
// Clone a thread
|
|
1623
|
+
const { thread, clonedMessages } = await memory.cloneThread({
|
|
1624
|
+
sourceThreadId: 'thread-123',
|
|
1625
|
+
title: 'My Clone',
|
|
1626
|
+
options: {
|
|
1627
|
+
messageLimit: 10, // optional: only copy last N messages
|
|
1628
|
+
},
|
|
1629
|
+
});
|
|
1630
|
+
|
|
1631
|
+
// Check if a thread is a clone
|
|
1632
|
+
if (memory.isClone(thread)) {
|
|
1633
|
+
const source = await memory.getSourceThread(thread.id);
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
// List all clones of a thread
|
|
1637
|
+
const clones = await memory.listClones('thread-123');
|
|
1638
|
+
```
|
|
1639
|
+
|
|
1640
|
+
Includes:
|
|
1641
|
+
- Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
|
|
1642
|
+
- API endpoint: `POST /api/memory/threads/:threadId/clone`
|
|
1643
|
+
- Embeddings created for cloned messages (semantic recall)
|
|
1644
|
+
- Clone button in playground UI Memory tab
|
|
1645
|
+
|
|
1646
|
+
- Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
|
|
1647
|
+
|
|
1648
|
+
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.
|
|
1649
|
+
|
|
1650
|
+
- 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)]:
|
|
1651
|
+
- @mastra/core@1.0.0-beta.20
|
|
1652
|
+
|
|
1653
|
+
## 1.0.0-beta.19
|
|
1654
|
+
|
|
1655
|
+
### Patch Changes
|
|
1656
|
+
|
|
1657
|
+
- 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)]:
|
|
1658
|
+
- @mastra/core@1.0.0-beta.19
|
|
1659
|
+
|
|
1660
|
+
## 1.0.0-beta.18
|
|
1661
|
+
|
|
1662
|
+
### Patch Changes
|
|
1663
|
+
|
|
1664
|
+
- Updated dependencies [[`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93)]:
|
|
1665
|
+
- @mastra/core@1.0.0-beta.18
|
|
1666
|
+
|
|
1667
|
+
## 1.0.0-beta.17
|
|
1668
|
+
|
|
1669
|
+
### Patch Changes
|
|
1670
|
+
|
|
1671
|
+
- Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318)]:
|
|
1672
|
+
- @mastra/core@1.0.0-beta.17
|
|
1673
|
+
|
|
1674
|
+
## 1.0.0-beta.16
|
|
1675
|
+
|
|
1676
|
+
### Patch Changes
|
|
1677
|
+
|
|
1678
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
1679
|
+
|
|
1680
|
+
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`.
|
|
1681
|
+
|
|
1682
|
+
**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.
|
|
1683
|
+
|
|
1684
|
+
**Solution**:
|
|
1685
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
1686
|
+
- Kept handler transformation for defense in depth
|
|
1687
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
1688
|
+
|
|
1689
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
1690
|
+
|
|
1691
|
+
Fixes #11412
|
|
1692
|
+
|
|
1693
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
1694
|
+
|
|
1695
|
+
`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.
|
|
1696
|
+
|
|
1697
|
+
```typescript
|
|
1698
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
1699
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
1700
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
1701
|
+
|
|
1702
|
+
// Compose domains from different stores
|
|
1703
|
+
const storage = new MastraStorage({
|
|
1704
|
+
id: 'composite',
|
|
1705
|
+
domains: {
|
|
1706
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
1707
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
1708
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
1709
|
+
},
|
|
1710
|
+
});
|
|
1711
|
+
```
|
|
1712
|
+
|
|
1713
|
+
**Breaking changes:**
|
|
1714
|
+
- `storage.supports` property no longer exists
|
|
1715
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
1716
|
+
|
|
1717
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
1718
|
+
|
|
1719
|
+
```typescript
|
|
1720
|
+
const store = await storage.getStore('memory');
|
|
1721
|
+
if (store) {
|
|
1722
|
+
// domain is available
|
|
1723
|
+
}
|
|
1724
|
+
```
|
|
1725
|
+
|
|
1726
|
+
- 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)]:
|
|
1727
|
+
- @mastra/core@1.0.0-beta.16
|
|
1728
|
+
|
|
1729
|
+
## 1.0.0-beta.15
|
|
1730
|
+
|
|
1731
|
+
### Minor Changes
|
|
1732
|
+
|
|
1733
|
+
- Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
|
|
1734
|
+
|
|
1735
|
+
## What changed
|
|
1736
|
+
|
|
1737
|
+
Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
|
|
1738
|
+
|
|
1739
|
+
**Before:**
|
|
1740
|
+
|
|
1741
|
+
```typescript
|
|
1742
|
+
// Old span structure
|
|
1743
|
+
span.agentId; // 'my-agent'
|
|
1744
|
+
span.toolId; // undefined
|
|
1745
|
+
span.workflowId; // undefined
|
|
1746
|
+
```
|
|
1747
|
+
|
|
1748
|
+
**After:**
|
|
1749
|
+
|
|
1750
|
+
```typescript
|
|
1751
|
+
// New span structure
|
|
1752
|
+
span.entityType; // EntityType.AGENT
|
|
1753
|
+
span.entityId; // 'my-agent'
|
|
1754
|
+
span.entityName; // 'My Agent'
|
|
1755
|
+
```
|
|
1756
|
+
|
|
1757
|
+
## New `listTraces()` API
|
|
1758
|
+
|
|
1759
|
+
Query traces with filtering, pagination, and sorting:
|
|
1760
|
+
|
|
1761
|
+
```typescript
|
|
1762
|
+
const { spans, pagination } = await storage.listTraces({
|
|
1763
|
+
filters: {
|
|
1764
|
+
entityType: EntityType.AGENT,
|
|
1765
|
+
entityId: 'my-agent',
|
|
1766
|
+
userId: 'user-123',
|
|
1767
|
+
environment: 'production',
|
|
1768
|
+
status: TraceStatus.SUCCESS,
|
|
1769
|
+
startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
|
|
1770
|
+
},
|
|
1771
|
+
pagination: { page: 0, perPage: 50 },
|
|
1772
|
+
orderBy: { field: 'startedAt', direction: 'DESC' },
|
|
1773
|
+
});
|
|
1774
|
+
```
|
|
1775
|
+
|
|
1776
|
+
**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`.
|
|
1777
|
+
|
|
1778
|
+
## New retrieval methods
|
|
1779
|
+
- `getSpan({ traceId, spanId })` - Get a single span
|
|
1780
|
+
- `getRootSpan({ traceId })` - Get the root span of a trace
|
|
1781
|
+
- `getTrace({ traceId })` - Get all spans for a trace
|
|
1782
|
+
|
|
1783
|
+
## Backward compatibility
|
|
1784
|
+
|
|
1785
|
+
The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
|
|
1786
|
+
|
|
1787
|
+
## Migration
|
|
1788
|
+
|
|
1789
|
+
**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`.
|
|
1790
|
+
|
|
1791
|
+
**No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
|
|
1792
|
+
|
|
1793
|
+
### Patch Changes
|
|
1794
|
+
|
|
1795
|
+
- Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
|
|
1796
|
+
|
|
1797
|
+
### Summary
|
|
1798
|
+
|
|
1799
|
+
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.
|
|
1800
|
+
|
|
1801
|
+
### Migration Guide
|
|
1802
|
+
|
|
1803
|
+
All direct method calls on storage instances should be updated to use `getStore()`:
|
|
1804
|
+
|
|
1805
|
+
```typescript
|
|
1806
|
+
// Before
|
|
1807
|
+
const thread = await storage.getThreadById({ threadId });
|
|
1808
|
+
await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1809
|
+
await storage.createSpan(span);
|
|
1810
|
+
|
|
1811
|
+
// After
|
|
1812
|
+
const memory = await storage.getStore('memory');
|
|
1813
|
+
const thread = await memory?.getThreadById({ threadId });
|
|
1814
|
+
|
|
1815
|
+
const workflows = await storage.getStore('workflows');
|
|
1816
|
+
await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
1817
|
+
|
|
1818
|
+
const observability = await storage.getStore('observability');
|
|
1819
|
+
await observability?.createSpan(span);
|
|
1820
|
+
```
|
|
1821
|
+
|
|
1822
|
+
### Available Domains
|
|
1823
|
+
- **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
|
|
1824
|
+
- **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
|
|
1825
|
+
- **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
|
|
1826
|
+
- **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
|
|
1827
|
+
- **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
|
|
1828
|
+
|
|
1829
|
+
### Breaking Changes
|
|
1830
|
+
- Passthrough methods have been removed from `MastraStorage` base class
|
|
1831
|
+
- All storage adapters now require accessing domains via `getStore()`
|
|
1832
|
+
- The `stores` property on storage instances is now the canonical way to access domain storage
|
|
1833
|
+
|
|
1834
|
+
### Internal Changes
|
|
1835
|
+
- Each storage adapter now initializes domain-specific stores in its constructor
|
|
1836
|
+
- Domain stores share database connections and handle their own table initialization
|
|
1837
|
+
|
|
1838
|
+
- 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))
|
|
1839
|
+
|
|
1840
|
+
- 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))
|
|
1841
|
+
|
|
1842
|
+
- Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
|
|
1843
|
+
|
|
1844
|
+
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.
|
|
1845
|
+
|
|
1846
|
+
Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
|
|
1847
|
+
|
|
1848
|
+
**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`.
|
|
1849
|
+
|
|
1850
|
+
- 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)]:
|
|
1851
|
+
- @mastra/core@1.0.0-beta.15
|
|
1852
|
+
|
|
1853
|
+
## 1.0.0-beta.14
|
|
1854
|
+
|
|
1855
|
+
### Patch Changes
|
|
1856
|
+
|
|
1857
|
+
- 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))
|
|
1858
|
+
|
|
1859
|
+
- feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
|
|
1860
|
+
|
|
1861
|
+
Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
|
|
1862
|
+
- `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
|
|
1863
|
+
- `withNestedWorkflows`: Control whether to fetch nested workflow data
|
|
1864
|
+
|
|
1865
|
+
This significantly reduces response payload size and improves response times for large workflows.
|
|
1866
|
+
|
|
1867
|
+
## Server Endpoint Usage
|
|
1868
|
+
|
|
1869
|
+
```http
|
|
1870
|
+
# Get only status (minimal payload - fastest)
|
|
1871
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
|
|
1872
|
+
|
|
1873
|
+
# Get status and result
|
|
1874
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
|
|
1875
|
+
|
|
1876
|
+
# Get all fields but without nested workflow data (faster)
|
|
1877
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
|
|
1878
|
+
|
|
1879
|
+
# Get only specific fields without nested workflow data
|
|
1880
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
|
|
1881
|
+
|
|
1882
|
+
# Get full data (default behavior)
|
|
1883
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result
|
|
1884
|
+
```
|
|
1885
|
+
|
|
1886
|
+
## Client SDK Usage
|
|
1887
|
+
|
|
1888
|
+
```typescript
|
|
1889
|
+
import { MastraClient } from '@mastra/client-js';
|
|
1890
|
+
|
|
1891
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
1892
|
+
const workflow = client.getWorkflow('myWorkflow');
|
|
1893
|
+
|
|
1894
|
+
// Get only status (minimal payload - fastest)
|
|
1895
|
+
const statusOnly = await workflow.runExecutionResult(runId, {
|
|
1896
|
+
fields: ['status'],
|
|
1897
|
+
});
|
|
1898
|
+
console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
|
|
1899
|
+
|
|
1900
|
+
// Get status and result
|
|
1901
|
+
const statusAndResult = await workflow.runExecutionResult(runId, {
|
|
1902
|
+
fields: ['status', 'result'],
|
|
1903
|
+
});
|
|
1904
|
+
|
|
1905
|
+
// Get all fields but without nested workflow data (faster)
|
|
1906
|
+
const resultWithoutNested = await workflow.runExecutionResult(runId, {
|
|
1907
|
+
withNestedWorkflows: false,
|
|
1908
|
+
});
|
|
1909
|
+
|
|
1910
|
+
// Get specific fields without nested workflow data
|
|
1911
|
+
const optimized = await workflow.runExecutionResult(runId, {
|
|
1912
|
+
fields: ['status', 'steps'],
|
|
1913
|
+
withNestedWorkflows: false,
|
|
1914
|
+
});
|
|
1915
|
+
|
|
1916
|
+
// Get full execution result (default behavior)
|
|
1917
|
+
const fullResult = await workflow.runExecutionResult(runId);
|
|
1918
|
+
```
|
|
1919
|
+
|
|
1920
|
+
## Core API Changes
|
|
1921
|
+
|
|
1922
|
+
The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
|
|
1923
|
+
|
|
1924
|
+
```typescript
|
|
1925
|
+
await workflow.getWorkflowRunExecutionResult(runId, {
|
|
1926
|
+
withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
|
|
1927
|
+
fields: ['status', 'result'], // optional field filtering
|
|
1928
|
+
});
|
|
1929
|
+
```
|
|
1930
|
+
|
|
1931
|
+
## Inngest Compatibility
|
|
1932
|
+
|
|
1933
|
+
The `@mastra/inngest` package has been updated to use the new options object API. This is a non-breaking internal change - no action required from inngest workflow users.
|
|
1934
|
+
|
|
1935
|
+
## Performance Impact
|
|
1936
|
+
|
|
1937
|
+
For workflows with large step outputs:
|
|
1938
|
+
- Requesting only `status`: ~99% reduction in payload size
|
|
1939
|
+
- Requesting `status,result,error`: ~95% reduction in payload size
|
|
1940
|
+
- Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
|
|
1941
|
+
- Combining both: Maximum performance optimization
|
|
1942
|
+
|
|
1943
|
+
- Updated dependencies [[`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7)]:
|
|
1944
|
+
- @mastra/core@1.0.0-beta.14
|
|
1945
|
+
|
|
1946
|
+
## 1.0.0-beta.13
|
|
1947
|
+
|
|
1948
|
+
### Patch Changes
|
|
1949
|
+
|
|
1950
|
+
- Updated dependencies [[`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497)]:
|
|
1951
|
+
- @mastra/core@1.0.0-beta.13
|
|
1952
|
+
|
|
1953
|
+
## 1.0.0-beta.12
|
|
1954
|
+
|
|
1955
|
+
### Patch Changes
|
|
1956
|
+
|
|
1957
|
+
- Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
|
|
1958
|
+
|
|
1959
|
+
- Fix MastraServer.tools typing to accept tools with input schemas ([`5118f38`](https://github.com/mastra-ai/mastra/commit/5118f384a70b1166012fde3b901f3227870b1009))
|
|
1960
|
+
|
|
1961
|
+
Fixes issue #11185 where `MastraServer.tools` was rejecting tools created with `createTool({ inputSchema })`. Changed the tools property type from `Record<string, Tool>` to `ToolsInput` to accept tools with any schema types (input, output, or none), as well as Vercel AI SDK tools and provider-defined tools.
|
|
1962
|
+
|
|
1963
|
+
Tools created with `createTool({ inputSchema: z.object(...) })` now work without TypeScript errors.
|
|
1964
|
+
|
|
1965
|
+
- Remove deprecated playground-only prompt generation handler (functionality moved to @mastra/server) ([#11074](https://github.com/mastra-ai/mastra/pull/11074))
|
|
1966
|
+
|
|
1967
|
+
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
|
|
1968
|
+
|
|
1969
|
+
Add missing `/api/agents/:agentId/instructions/enhance` endpoint that was referenced by `@mastra/client-js` and `@mastra/playground-ui`
|
|
1970
|
+
|
|
1971
|
+
- Updated dependencies [[`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176)]:
|
|
1972
|
+
- @mastra/core@1.0.0-beta.12
|
|
1973
|
+
|
|
1974
|
+
## 1.0.0-beta.11
|
|
1975
|
+
|
|
1976
|
+
### Patch Changes
|
|
1977
|
+
|
|
1978
|
+
- Fix type safety for message ordering - restrict `orderBy` to only accept `'createdAt'` field ([#11069](https://github.com/mastra-ai/mastra/pull/11069))
|
|
1979
|
+
|
|
1980
|
+
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.
|
|
1981
|
+
|
|
1982
|
+
- Support new Workflow tripwire run status. Tripwires that are thrown from within a workflow will now bubble up and return a graceful state with information about tripwires. ([#10947](https://github.com/mastra-ai/mastra/pull/10947))
|
|
1983
|
+
|
|
1984
|
+
When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
|
|
1985
|
+
|
|
1986
|
+
```typescript showLineNumbers copy
|
|
1987
|
+
const run = await workflow.createRun();
|
|
1988
|
+
const result = await run.start({ inputData: { message: 'Hello' } });
|
|
1989
|
+
|
|
1990
|
+
if (result.status === 'tripwire') {
|
|
1991
|
+
console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
|
|
1992
|
+
console.log('Processor ID:', result.tripwire?.processorId);
|
|
1993
|
+
console.log('Retry requested:', result.tripwire?.retry);
|
|
1994
|
+
}
|
|
1995
|
+
```
|
|
1996
|
+
|
|
1997
|
+
Adds new UI state for tripwire in agent chat and workflow UI.
|
|
1998
|
+
|
|
1999
|
+
This is distinct from `status: 'failed'` which indicates an unexpected error. A tripwire status means a processor intentionally stopped execution (e.g., for content moderation).
|
|
2000
|
+
|
|
2001
|
+
- Updated dependencies [[`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
|
|
2002
|
+
- @mastra/core@1.0.0-beta.11
|
|
2003
|
+
|
|
2004
|
+
## 1.0.0-beta.10
|
|
2005
|
+
|
|
2006
|
+
### Patch Changes
|
|
2007
|
+
|
|
2008
|
+
- ### Breaking Changes ([#11028](https://github.com/mastra-ai/mastra/pull/11028))
|
|
2009
|
+
- Renamed `RuntimeContext` type to `ServerContext` to avoid confusion with the user-facing `RequestContext` (previously called `RuntimeContext`)
|
|
2010
|
+
- Removed `playground` and `isDev` options from server adapter constructors - these only set context variables without any actual functionality
|
|
2011
|
+
|
|
2012
|
+
### Changes
|
|
2013
|
+
|
|
2014
|
+
**@mastra/server**
|
|
2015
|
+
- Renamed `RuntimeContext` type to `ServerContext` in route handler types
|
|
2016
|
+
- Renamed `createTestRuntimeContext` to `createTestServerContext` in test utilities
|
|
2017
|
+
- Renamed `isPlayground` parameter to `isStudio` in `formatAgent` function
|
|
2018
|
+
|
|
2019
|
+
**@mastra/hono**
|
|
2020
|
+
- Removed `playground` and `isDev` from `HonoVariables` type
|
|
2021
|
+
- Removed setting of `playground` and `isDev` context variables in middleware
|
|
2022
|
+
|
|
2023
|
+
**@mastra/express**
|
|
2024
|
+
- Removed `playground` and `isDev` from `Express.Locals` interface
|
|
2025
|
+
- Removed setting of `playground` and `isDev` in response locals
|
|
2026
|
+
|
|
2027
|
+
- Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
|
|
2028
|
+
|
|
2029
|
+
```typescript
|
|
2030
|
+
await workflow.deleteWorkflowRunById(runId);
|
|
2031
|
+
```
|
|
2032
|
+
|
|
2033
|
+
- Updated dependencies [[`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393)]:
|
|
2034
|
+
- @mastra/core@1.0.0-beta.10
|
|
2035
|
+
|
|
2036
|
+
## 1.0.0-beta.9
|
|
2037
|
+
|
|
2038
|
+
### Minor Changes
|
|
2039
|
+
|
|
2040
|
+
- Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
|
|
2041
|
+
|
|
2042
|
+
Agents can now be stored in the database and loaded at runtime. This lets you persist agent configurations and dynamically create executable Agent instances from storage.
|
|
2043
|
+
|
|
2044
|
+
```typescript
|
|
2045
|
+
import { Mastra } from '@mastra/core';
|
|
2046
|
+
import { LibSQLStore } from '@mastra/libsql';
|
|
2047
|
+
|
|
2048
|
+
const mastra = new Mastra({
|
|
2049
|
+
storage: new LibSQLStore({ url: ':memory:' }),
|
|
2050
|
+
tools: { myTool },
|
|
2051
|
+
scorers: { myScorer },
|
|
2052
|
+
});
|
|
2053
|
+
|
|
2054
|
+
// Create agent in storage via API or directly
|
|
2055
|
+
await mastra.getStorage().createAgent({
|
|
2056
|
+
agent: {
|
|
2057
|
+
id: 'my-agent',
|
|
2058
|
+
name: 'My Agent',
|
|
2059
|
+
instructions: 'You are helpful',
|
|
2060
|
+
model: { provider: 'openai', name: 'gpt-4' },
|
|
2061
|
+
tools: { myTool: {} },
|
|
2062
|
+
scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
|
|
2063
|
+
},
|
|
2064
|
+
});
|
|
2065
|
+
|
|
2066
|
+
// Load and use the agent
|
|
2067
|
+
const agent = await mastra.getStoredAgentById('my-agent');
|
|
2068
|
+
const response = await agent.generate({ messages: 'Hello!' });
|
|
2069
|
+
|
|
2070
|
+
// List all stored agents with pagination
|
|
2071
|
+
const { agents, total, hasMore } = await mastra.listStoredAgents({
|
|
2072
|
+
page: 0,
|
|
2073
|
+
perPage: 10,
|
|
2074
|
+
});
|
|
2075
|
+
```
|
|
2076
|
+
|
|
2077
|
+
Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
|
|
2078
|
+
|
|
2079
|
+
### Patch Changes
|
|
2080
|
+
|
|
2081
|
+
- Updated dependencies [[`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3)]:
|
|
2082
|
+
- @mastra/core@1.0.0-beta.9
|
|
2083
|
+
|
|
2084
|
+
## 1.0.0-beta.8
|
|
2085
|
+
|
|
2086
|
+
### Patch Changes
|
|
2087
|
+
|
|
2088
|
+
- Updated dependencies [[`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b)]:
|
|
2089
|
+
- @mastra/core@1.0.0-beta.8
|
|
2090
|
+
|
|
2091
|
+
## 1.0.0-beta.7
|
|
2092
|
+
|
|
2093
|
+
### Patch Changes
|
|
2094
|
+
|
|
2095
|
+
- fix: standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
|
|
2096
|
+
- Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
|
|
2097
|
+
- Client SDK sends both param formats to support older server versions
|
|
2098
|
+
- Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
|
|
2099
|
+
- Marked `limit` and `offset` as deprecated in client types
|
|
2100
|
+
|
|
2101
|
+
- feat: Add partial response support for agent and workflow list endpoints ([#10886](https://github.com/mastra-ai/mastra/pull/10886))
|
|
2102
|
+
|
|
2103
|
+
Add optional `partial` query parameter to `/api/agents` and `/api/workflows` endpoints to return minimal data without schemas, reducing payload size for list views:
|
|
2104
|
+
- When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
|
|
2105
|
+
- When `partial=true`: workflow steps are replaced with stepCount integer
|
|
2106
|
+
- When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
|
|
2107
|
+
- Maintains backward compatibility when partial parameter is not provided
|
|
2108
|
+
|
|
2109
|
+
## Server Endpoint Usage
|
|
2110
|
+
|
|
2111
|
+
```http
|
|
2112
|
+
# Get partial agent data (no tool schemas)
|
|
2113
|
+
GET /api/agents?partial=true
|
|
2114
|
+
|
|
2115
|
+
# Get full agent data (default behavior)
|
|
2116
|
+
GET /api/agents
|
|
2117
|
+
|
|
2118
|
+
# Get partial workflow data (stepCount instead of steps, no schemas)
|
|
2119
|
+
GET /api/workflows?partial=true
|
|
2120
|
+
|
|
2121
|
+
# Get full workflow data (default behavior)
|
|
2122
|
+
GET /api/workflows
|
|
2123
|
+
```
|
|
2124
|
+
|
|
2125
|
+
## Client SDK Usage
|
|
2126
|
+
|
|
2127
|
+
```typescript
|
|
2128
|
+
import { MastraClient } from '@mastra/client-js';
|
|
2129
|
+
|
|
2130
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
2131
|
+
|
|
2132
|
+
// Get partial agent list (smaller payload)
|
|
2133
|
+
const partialAgents = await client.listAgents({ partial: true });
|
|
2134
|
+
|
|
2135
|
+
// Get full agent list with tool schemas
|
|
2136
|
+
const fullAgents = await client.listAgents();
|
|
2137
|
+
|
|
2138
|
+
// Get partial workflow list (smaller payload)
|
|
2139
|
+
const partialWorkflows = await client.listWorkflows({ partial: true });
|
|
2140
|
+
|
|
2141
|
+
// Get full workflow list with steps and schemas
|
|
2142
|
+
const fullWorkflows = await client.listWorkflows();
|
|
2143
|
+
```
|
|
2144
|
+
|
|
2145
|
+
- Updated dependencies [[`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b)]:
|
|
2146
|
+
- @mastra/core@1.0.0-beta.7
|
|
2147
|
+
|
|
2148
|
+
## 1.0.0-beta.6
|
|
2149
|
+
|
|
2150
|
+
### Patch Changes
|
|
2151
|
+
|
|
2152
|
+
- Unified MastraServer API with MCP transport routes ([#10644](https://github.com/mastra-ai/mastra/pull/10644))
|
|
2153
|
+
|
|
2154
|
+
**Breaking Changes:**
|
|
2155
|
+
- Renamed `HonoServerAdapter` to `MastraServer` in `@mastra/hono`
|
|
2156
|
+
- Renamed `ExpressServerAdapter` to `MastraServer` in `@mastra/express`
|
|
2157
|
+
- Configuration now passed to constructor instead of separate method calls
|
|
2158
|
+
- Renamed base class from `ServerAdapter` to `MastraServerBase` in `@mastra/server`
|
|
2159
|
+
|
|
2160
|
+
**New Features:**
|
|
2161
|
+
- Added MCP transport routes (HTTP and SSE) to server adapters
|
|
2162
|
+
- MCP endpoints available at `/api/mcp/:serverId/mcp` (HTTP) and `/api/mcp/:serverId/sse` (SSE)
|
|
2163
|
+
- Added `express.json()` middleware compatibility for MCP routes
|
|
2164
|
+
- Moved authentication helpers from deployer to `@mastra/server/auth`
|
|
2165
|
+
|
|
2166
|
+
**Testing:**
|
|
2167
|
+
- Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
|
|
2168
|
+
- Added comprehensive MCP endpoint tests for both Hono and Express adapters
|
|
2169
|
+
- Added GitHub Actions workflow for server adapter CI testing
|
|
2170
|
+
|
|
2171
|
+
- Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
|
|
2172
|
+
|
|
2173
|
+
```ts
|
|
2174
|
+
// Before: HTTP request to localhost
|
|
2175
|
+
const response = await fetch(`http://localhost:5000/api/tools`);
|
|
2176
|
+
|
|
2177
|
+
// After: Direct call via app.fetch()
|
|
2178
|
+
const app = mastra.getServerApp<Hono>();
|
|
2179
|
+
const response = await app.fetch(new Request('http://internal/api/tools'));
|
|
2180
|
+
```
|
|
2181
|
+
|
|
2182
|
+
- Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
|
|
2183
|
+
- Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
|
|
2184
|
+
- Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
|
|
2185
|
+
- Server adapters now auto-register with Mastra in their constructor
|
|
2186
|
+
|
|
2187
|
+
- fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
|
|
2188
|
+
|
|
2189
|
+
**Client (`@mastra/client-js`):**
|
|
2190
|
+
- Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
|
|
2191
|
+
|
|
2192
|
+
**Server (`@mastra/server`):**
|
|
2193
|
+
- Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
|
|
2194
|
+
- Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
|
|
2195
|
+
|
|
2196
|
+
- Add stream data redaction to prevent sensitive information leaks in agent stream API responses. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
|
|
2197
|
+
|
|
2198
|
+
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`.
|
|
2199
|
+
|
|
2200
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`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), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749)]:
|
|
2201
|
+
- @mastra/core@1.0.0-beta.6
|
|
2202
|
+
|
|
2203
|
+
## 1.0.0-beta.5
|
|
2204
|
+
|
|
2205
|
+
### Patch Changes
|
|
2206
|
+
|
|
2207
|
+
- Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
|
|
2208
|
+
New packages:
|
|
2209
|
+
- @mastra/express
|
|
2210
|
+
- @mastra/hono
|
|
2211
|
+
|
|
2212
|
+
These packages support mastra server routes on express and hono respectively.
|
|
2213
|
+
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.
|
|
2214
|
+
|
|
2215
|
+
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
2216
|
+
|
|
2217
|
+
- Fixed server handler bugs: filter parsing now handles colons in values (timestamps, URLs), dateRange validation now converts JSON strings to Date objects, deleteMessages schema accepts object forms, and added missing responseSchema for legacy stream route ([#10362](https://github.com/mastra-ai/mastra/pull/10362))
|
|
2218
|
+
|
|
2219
|
+
- Updated dependencies [[`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc)]:
|
|
2220
|
+
- @mastra/core@1.0.0-beta.5
|
|
2221
|
+
|
|
2222
|
+
## 1.0.0-beta.4
|
|
2223
|
+
|
|
2224
|
+
### Patch Changes
|
|
2225
|
+
|
|
2226
|
+
- Network handler now accesses thread and resource parameters from the nested memory object instead of directly from request body. ([#10294](https://github.com/mastra-ai/mastra/pull/10294))
|
|
2227
|
+
|
|
2228
|
+
- Updated dependencies [[`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908)]:
|
|
2229
|
+
- @mastra/core@1.0.0-beta.4
|
|
2230
|
+
|
|
2231
|
+
## 1.0.0-beta.3
|
|
2232
|
+
|
|
2233
|
+
### Patch Changes
|
|
2234
|
+
|
|
2235
|
+
- 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))
|
|
2236
|
+
|
|
2237
|
+
- Updated dependencies [[`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4)]:
|
|
2238
|
+
- @mastra/core@1.0.0-beta.3
|
|
2239
|
+
|
|
2240
|
+
## 1.0.0-beta.2
|
|
2241
|
+
|
|
2242
|
+
### Patch Changes
|
|
2243
|
+
|
|
2244
|
+
- Updated dependencies [[`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46)]:
|
|
2245
|
+
- @mastra/core@1.0.0-beta.2
|
|
2246
|
+
|
|
2247
|
+
## 1.0.0-beta.1
|
|
2248
|
+
|
|
2249
|
+
### Patch Changes
|
|
2250
|
+
|
|
2251
|
+
- Updated dependencies [[`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d)]:
|
|
2252
|
+
- @mastra/core@1.0.0-beta.1
|
|
2253
|
+
|
|
2254
|
+
## 1.0.0-beta.0
|
|
2255
|
+
|
|
2256
|
+
### Major Changes
|
|
2257
|
+
|
|
2258
|
+
- Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
|
|
2259
|
+
|
|
2260
|
+
- Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
|
|
2261
|
+
|
|
2262
|
+
Primitives that are added to other primitives are also automatically added to the Mastra instance
|
|
2263
|
+
|
|
2264
|
+
- Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
|
|
2265
|
+
|
|
2266
|
+
- **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
2267
|
+
|
|
2268
|
+
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
2269
|
+
|
|
2270
|
+
**Storage changes:**
|
|
2271
|
+
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
2272
|
+
- All storage implementations support `perPage: false`:
|
|
2273
|
+
- Memory: `listMessages()`
|
|
2274
|
+
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
2275
|
+
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
2276
|
+
|
|
2277
|
+
**Memory changes:**
|
|
2278
|
+
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
2279
|
+
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
2280
|
+
|
|
2281
|
+
**Stricter validation:**
|
|
2282
|
+
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
2283
|
+
|
|
2284
|
+
**Migration:**
|
|
2285
|
+
|
|
2286
|
+
```typescript
|
|
2287
|
+
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
2288
|
+
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
2289
|
+
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
2290
|
+
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
2291
|
+
|
|
2292
|
+
// Memory: Replace selectBy with flat parameters
|
|
2293
|
+
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
2294
|
+
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
2295
|
+
|
|
2296
|
+
// Client SDK
|
|
2297
|
+
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
2298
|
+
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
2299
|
+
```
|
|
2300
|
+
|
|
2301
|
+
- # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
|
|
2302
|
+
|
|
2303
|
+
## Storage Layer
|
|
2304
|
+
|
|
2305
|
+
### BREAKING: Removed `storage.getMessages()`
|
|
2306
|
+
|
|
2307
|
+
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
2308
|
+
|
|
2309
|
+
**Migration:**
|
|
2310
|
+
|
|
2311
|
+
```typescript
|
|
2312
|
+
// Before
|
|
2313
|
+
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
2314
|
+
|
|
2315
|
+
// After
|
|
2316
|
+
const result = await storage.listMessages({
|
|
2317
|
+
threadId: 'thread-1',
|
|
2318
|
+
page: 0,
|
|
2319
|
+
perPage: 50,
|
|
2320
|
+
});
|
|
2321
|
+
const messages = result.messages; // Access messages array
|
|
2322
|
+
console.log(result.total); // Total count
|
|
2323
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
2324
|
+
```
|
|
2325
|
+
|
|
2326
|
+
### Message ordering default
|
|
2327
|
+
|
|
2328
|
+
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
2329
|
+
|
|
2330
|
+
**To use DESC ordering (newest first):**
|
|
2331
|
+
|
|
2332
|
+
```typescript
|
|
2333
|
+
const result = await storage.listMessages({
|
|
2334
|
+
threadId: 'thread-1',
|
|
2335
|
+
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
2336
|
+
});
|
|
2337
|
+
```
|
|
2338
|
+
|
|
2339
|
+
## Client SDK
|
|
2340
|
+
|
|
2341
|
+
### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
|
|
2342
|
+
|
|
2343
|
+
**Migration:**
|
|
2344
|
+
|
|
2345
|
+
```typescript
|
|
2346
|
+
// Before
|
|
2347
|
+
const response = await client.getThreadMessages(threadId, { agentId });
|
|
2348
|
+
|
|
2349
|
+
// After
|
|
2350
|
+
const response = await client.listThreadMessages(threadId, { agentId });
|
|
2351
|
+
```
|
|
2352
|
+
|
|
2353
|
+
The response format remains the same.
|
|
2354
|
+
|
|
2355
|
+
## Type Changes
|
|
2356
|
+
|
|
2357
|
+
### BREAKING: Removed `StorageGetMessagesArg` type
|
|
2358
|
+
|
|
2359
|
+
Use `StorageListMessagesInput` instead:
|
|
2360
|
+
|
|
2361
|
+
```typescript
|
|
2362
|
+
// Before
|
|
2363
|
+
import type { StorageGetMessagesArg } from '@mastra/core';
|
|
2364
|
+
|
|
2365
|
+
// After
|
|
2366
|
+
import type { StorageListMessagesInput } from '@mastra/core';
|
|
2367
|
+
```
|
|
2368
|
+
|
|
2369
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
2370
|
+
|
|
2371
|
+
- Replace `getThreadsByResourceIdPaginated` with `listThreadsByResourceId` across memory handlers. Update client SDK to use `listThreads()` with `offset`/`limit` parameters instead of deprecated `getMemoryThreads()`. Consolidate `/api/memory/threads` routes to single paginated endpoint. ([#9508](https://github.com/mastra-ai/mastra/pull/9508))
|
|
2372
|
+
|
|
2373
|
+
- This simplifies the Memory API by removing the confusing rememberMessages method and renaming query to recall for better clarity. ([#9701](https://github.com/mastra-ai/mastra/pull/9701))
|
|
2374
|
+
|
|
2375
|
+
The rememberMessages method name implied it might persist data when it was actually just retrieving messages, same as query. Having two methods that did essentially the same thing was unnecessary.
|
|
2376
|
+
|
|
2377
|
+
Before:
|
|
2378
|
+
|
|
2379
|
+
```typescript
|
|
2380
|
+
// Two methods that did the same thing
|
|
2381
|
+
memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
|
|
2382
|
+
memory.query({ threadId, resourceId, perPage, vectorSearchString });
|
|
2383
|
+
```
|
|
2384
|
+
|
|
2385
|
+
After:
|
|
2386
|
+
|
|
2387
|
+
```typescript
|
|
2388
|
+
// Single unified method with clear purpose
|
|
2389
|
+
memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
|
|
2390
|
+
```
|
|
2391
|
+
|
|
2392
|
+
All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
|
|
2393
|
+
|
|
2394
|
+
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
2395
|
+
|
|
2396
|
+
- 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))
|
|
2397
|
+
|
|
2398
|
+
- 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))
|
|
2399
|
+
|
|
2400
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
2401
|
+
|
|
2402
|
+
- **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
|
|
2403
|
+
|
|
2404
|
+
This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
|
|
2405
|
+
|
|
2406
|
+
### What's Changed
|
|
2407
|
+
- Removed legacy v1 watch event handlers and types
|
|
2408
|
+
- Renamed `watch-v2` to `watch` throughout the codebase
|
|
2409
|
+
- Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
|
|
2410
|
+
- Removed `/watch` HTTP endpoints from server and deployer
|
|
2411
|
+
- Removed `WorkflowWatchResult` and v1 `WatchEvent` types
|
|
2412
|
+
|
|
2413
|
+
- **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
2414
|
+
|
|
2415
|
+
All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
|
|
2416
|
+
|
|
2417
|
+
**Affected APIs:**
|
|
2418
|
+
- `Memory.listThreadsByResourceId()`
|
|
2419
|
+
- `Memory.listMessages()`
|
|
2420
|
+
- `Storage.listWorkflowRuns()`
|
|
2421
|
+
|
|
2422
|
+
**Migration:**
|
|
2423
|
+
|
|
2424
|
+
```typescript
|
|
2425
|
+
// Before
|
|
2426
|
+
await memory.listThreadsByResourceId({
|
|
2427
|
+
resourceId: 'user-123',
|
|
2428
|
+
offset: 20,
|
|
2429
|
+
limit: 10,
|
|
2430
|
+
});
|
|
2431
|
+
|
|
2432
|
+
// After
|
|
2433
|
+
await memory.listThreadsByResourceId({
|
|
2434
|
+
resourceId: 'user-123',
|
|
2435
|
+
page: 2, // page = Math.floor(offset / limit)
|
|
2436
|
+
perPage: 10,
|
|
2437
|
+
});
|
|
2438
|
+
|
|
2439
|
+
// Before
|
|
2440
|
+
await memory.listMessages({
|
|
2441
|
+
threadId: 'thread-456',
|
|
2442
|
+
offset: 20,
|
|
2443
|
+
limit: 10,
|
|
2444
|
+
});
|
|
2445
|
+
|
|
2446
|
+
// After
|
|
2447
|
+
await memory.listMessages({
|
|
2448
|
+
threadId: 'thread-456',
|
|
2449
|
+
page: 2,
|
|
2450
|
+
perPage: 10,
|
|
2451
|
+
});
|
|
2452
|
+
|
|
2453
|
+
// Before
|
|
2454
|
+
await storage.listWorkflowRuns({
|
|
2455
|
+
workflowName: 'my-workflow',
|
|
2456
|
+
offset: 20,
|
|
2457
|
+
limit: 10,
|
|
2458
|
+
});
|
|
2459
|
+
|
|
2460
|
+
// After
|
|
2461
|
+
await storage.listWorkflowRuns({
|
|
2462
|
+
workflowName: 'my-workflow',
|
|
2463
|
+
page: 2,
|
|
2464
|
+
perPage: 10,
|
|
2465
|
+
});
|
|
2466
|
+
```
|
|
2467
|
+
|
|
2468
|
+
**Additional improvements:**
|
|
2469
|
+
- Added validation for negative `page` values in all storage implementations
|
|
2470
|
+
- Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
|
|
2471
|
+
- Added reusable query parser utilities for consistent validation in handlers
|
|
2472
|
+
|
|
2473
|
+
- Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
2474
|
+
|
|
2475
|
+
- Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
2476
|
+
|
|
2477
|
+
- Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
|
|
2478
|
+
|
|
2479
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
2480
|
+
|
|
2481
|
+
- Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
|
|
2482
|
+
|
|
2483
|
+
- Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
|
|
2484
|
+
Made the return format of all methods that return db messages consistent. It's always `{ messages: MastraDBMessage[] }` now, and messages can be converted after that using `@mastra/ai-sdk/ui`'s `toAISdkV4/5Messages()` function
|
|
2485
|
+
|
|
2486
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
2487
|
+
|
|
2488
|
+
- Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
2489
|
+
|
|
2490
|
+
### Minor Changes
|
|
2491
|
+
|
|
2492
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
2493
|
+
|
|
2494
|
+
- **BREAKING CHANGE**: Memory scope defaults changed from 'thread' to 'resource' ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
2495
|
+
|
|
2496
|
+
Both `workingMemory.scope` and `semanticRecall.scope` now default to `'resource'` instead of `'thread'`. This means:
|
|
2497
|
+
- Working memory persists across all conversations for the same user/resource
|
|
2498
|
+
- Semantic recall searches across all threads for the same user/resource
|
|
2499
|
+
|
|
2500
|
+
**Migration**: To maintain the previous thread-scoped behavior, explicitly set `scope: 'thread'`:
|
|
2501
|
+
|
|
2502
|
+
```typescript
|
|
2503
|
+
memory: new Memory({
|
|
2504
|
+
storage,
|
|
2505
|
+
workingMemory: {
|
|
2506
|
+
enabled: true,
|
|
2507
|
+
scope: 'thread', // Explicitly set for thread-scoped behavior
|
|
2508
|
+
},
|
|
2509
|
+
semanticRecall: {
|
|
2510
|
+
scope: 'thread', // Explicitly set for thread-scoped behavior
|
|
2511
|
+
},
|
|
2512
|
+
}),
|
|
2513
|
+
```
|
|
2514
|
+
|
|
2515
|
+
See the [migration guide](https://mastra.ai/docs/guides/migrations/memory-scope-defaults) for more details.
|
|
2516
|
+
|
|
2517
|
+
Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
|
|
2518
|
+
|
|
2519
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
2520
|
+
|
|
2521
|
+
- Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
2522
|
+
|
|
2523
|
+
- Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
|
|
2524
|
+
- Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
|
|
2525
|
+
- Add corresponding server handlers and deployer routes for observe streaming
|
|
2526
|
+
- Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
|
|
2527
|
+
- Update template installation processor to support both legacy and VNext streaming event formats
|
|
2528
|
+
|
|
2529
|
+
- Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
|
|
2530
|
+
|
|
2531
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
2532
|
+
|
|
2533
|
+
### Patch Changes
|
|
2534
|
+
|
|
2535
|
+
- Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
|
|
2536
|
+
|
|
2537
|
+
- Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
|
|
2538
|
+
|
|
2539
|
+
- Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
|
|
2540
|
+
|
|
2541
|
+
Consolidated the 3 different execution contexts to one
|
|
2542
|
+
|
|
2543
|
+
```typescript
|
|
2544
|
+
// before depending on the context the tool was executed in
|
|
2545
|
+
tool.execute({ context: data });
|
|
2546
|
+
tool.execute({ context: { inputData: data } });
|
|
2547
|
+
tool.execute(data);
|
|
2548
|
+
|
|
2549
|
+
// now, for all contexts
|
|
2550
|
+
tool.execute(data, context);
|
|
2551
|
+
```
|
|
2552
|
+
|
|
2553
|
+
**Before:**
|
|
2554
|
+
|
|
2555
|
+
```typescript
|
|
2556
|
+
inputSchema: z.object({ something: z.string() }),
|
|
2557
|
+
execute: async ({ context, tracingContext, runId, ... }) => {
|
|
2558
|
+
return doSomething(context.string);
|
|
2559
|
+
}
|
|
2560
|
+
```
|
|
2561
|
+
|
|
2562
|
+
**After:**
|
|
2563
|
+
|
|
2564
|
+
```typescript
|
|
2565
|
+
inputSchema: z.object({ something: z.string() }),
|
|
2566
|
+
execute: async (inputData, context) => {
|
|
2567
|
+
const { agent, mcp, workflow, ...sharedContext } = context
|
|
2568
|
+
|
|
2569
|
+
// context that only an agent would get like toolCallId, messages, suspend, resume, etc
|
|
2570
|
+
if (agent) {
|
|
2571
|
+
doSomething(inputData.something, agent)
|
|
2572
|
+
// context that only a workflow would get like runId, state, suspend, resume, etc
|
|
2573
|
+
} else if (workflow) {
|
|
2574
|
+
doSomething(inputData.something, workflow)
|
|
2575
|
+
// context that only a workflow would get like "extra", "elicitation"
|
|
2576
|
+
} else if (mcp) {
|
|
2577
|
+
doSomething(inputData.something, mcp)
|
|
2578
|
+
} else {
|
|
2579
|
+
// Running a tool in no execution context
|
|
2580
|
+
return doSomething(inputData.something);
|
|
2581
|
+
}
|
|
2582
|
+
}
|
|
2583
|
+
```
|
|
2584
|
+
|
|
2585
|
+
- Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
|
|
2586
|
+
|
|
2587
|
+
- Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
|
|
2588
|
+
|
|
2589
|
+
- Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
2590
|
+
|
|
2591
|
+
- Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
|
|
2592
|
+
|
|
2593
|
+
- Fixes issue where clicking the reset button in the model picker would fail to restore the original LanguageModelV2 (or any other types) object that was passed during agent construction. ([#9481](https://github.com/mastra-ai/mastra/pull/9481))
|
|
2594
|
+
|
|
2595
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
|
|
2596
|
+
|
|
2597
|
+
- Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
|
|
2598
|
+
|
|
2599
|
+
- Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
|
|
2600
|
+
|
|
2601
|
+
- 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))
|
|
2602
|
+
|
|
2603
|
+
- Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
|
|
2604
|
+
|
|
2605
|
+
- Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
|
|
2606
|
+
|
|
2607
|
+
- Updated dependencies [[`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`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), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`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), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`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), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`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), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`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), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`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), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
|
|
2608
|
+
- @mastra/core@1.0.0-beta.0
|
|
2609
|
+
|
|
2610
|
+
## 0.22.2
|
|
2611
|
+
|
|
2612
|
+
### Patch Changes
|
|
2613
|
+
|
|
2614
|
+
- Updated dependencies [[`2b031e2`](https://github.com/mastra-ai/mastra/commit/2b031e25ca10cd3e4d63e6a27f909cba26d91405)]:
|
|
2615
|
+
- @mastra/core@0.22.2
|
|
2616
|
+
|
|
2617
|
+
## 0.22.2-alpha.0
|
|
2618
|
+
|
|
2619
|
+
### Patch Changes
|
|
2620
|
+
|
|
2621
|
+
- Updated dependencies [[`2b031e2`](https://github.com/mastra-ai/mastra/commit/2b031e25ca10cd3e4d63e6a27f909cba26d91405)]:
|
|
2622
|
+
- @mastra/core@0.22.2-alpha.0
|
|
2623
|
+
|
|
2624
|
+
## 0.22.1
|
|
2625
|
+
|
|
2626
|
+
### Patch Changes
|
|
2627
|
+
|
|
2628
|
+
- Get agent registered on a parent agent via API ([#9106](https://github.com/mastra-ai/mastra/pull/9106))
|
|
2629
|
+
|
|
2630
|
+
- Updated dependencies []:
|
|
2631
|
+
- @mastra/core@0.22.1
|
|
2632
|
+
|
|
2633
|
+
## 0.22.1-alpha.0
|
|
2634
|
+
|
|
2635
|
+
### Patch Changes
|
|
2636
|
+
|
|
2637
|
+
- Get agent registered on a parent agent via API ([#9106](https://github.com/mastra-ai/mastra/pull/9106))
|
|
2638
|
+
|
|
2639
|
+
- Updated dependencies []:
|
|
2640
|
+
- @mastra/core@0.22.1-alpha.0
|
|
2641
|
+
|
|
2642
|
+
## 0.22.0
|
|
2643
|
+
|
|
2644
|
+
### Minor Changes
|
|
2645
|
+
|
|
2646
|
+
- Consolidate streamVNext logic into stream, move old stream function into streamLegacy ([#9092](https://github.com/mastra-ai/mastra/pull/9092))
|
|
2647
|
+
|
|
2648
|
+
- Update peer dependencies to match core package version bump (0.21.2) ([#9038](https://github.com/mastra-ai/mastra/pull/9038))
|
|
2649
|
+
|
|
2650
|
+
- Update peer dependencies to match core package version bump (0.22.0) ([#9092](https://github.com/mastra-ai/mastra/pull/9092))
|
|
2651
|
+
|
|
2652
|
+
- Update peer dependencies to match core package version bump (0.21.2) ([#9021](https://github.com/mastra-ai/mastra/pull/9021))
|
|
2653
|
+
|
|
2654
|
+
### Patch Changes
|
|
2655
|
+
|
|
2656
|
+
- Updated `watch` and `watchAsync` methods to use proper function overloads instead of generic conditional types, ensuring compatibility with the base Run class signatures. ([#9048](https://github.com/mastra-ai/mastra/pull/9048))
|
|
2657
|
+
|
|
2658
|
+
- Generate a title for Agent.network() threads ([#8853](https://github.com/mastra-ai/mastra/pull/8853))
|
|
2659
|
+
|
|
2660
|
+
- Fix custom metadata preservation in UIMessages when loading threads. The `getMessagesHandler` now converts `messagesV2` (V2 format with metadata) instead of `messages` (V1 format without metadata) to AIV5.UI format. Also updates the abstract `MastraMemory.query()` return type to include `messagesV2` for proper type safety. ([#9029](https://github.com/mastra-ai/mastra/pull/9029))
|
|
2661
|
+
|
|
2662
|
+
- Fix provider tools for popular providers and add support for anthropic/claude skills. ([#9038](https://github.com/mastra-ai/mastra/pull/9038))
|
|
2663
|
+
|
|
2664
|
+
- Show agent tool output better in playground ([#9021](https://github.com/mastra-ai/mastra/pull/9021))
|
|
2665
|
+
|
|
2666
|
+
- Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
|
|
2667
|
+
|
|
2668
|
+
- Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
|
|
2669
|
+
- @mastra/core@0.22.0
|
|
2670
|
+
|
|
2671
|
+
## 0.22.0-alpha.1
|
|
2672
|
+
|
|
2673
|
+
### Minor Changes
|
|
2674
|
+
|
|
2675
|
+
- Consolidate streamVNext logic into stream, move old stream function into streamLegacy ([#9092](https://github.com/mastra-ai/mastra/pull/9092))
|
|
2676
|
+
|
|
2677
|
+
- Update peer dependencies to match core package version bump (0.21.2) ([#9038](https://github.com/mastra-ai/mastra/pull/9038))
|
|
2678
|
+
|
|
2679
|
+
- Update peer dependencies to match core package version bump (0.22.0) ([#9092](https://github.com/mastra-ai/mastra/pull/9092))
|
|
2680
|
+
|
|
2681
|
+
- Update peer dependencies to match core package version bump (0.21.2) ([#9021](https://github.com/mastra-ai/mastra/pull/9021))
|
|
2682
|
+
|
|
2683
|
+
### Patch Changes
|
|
2684
|
+
|
|
2685
|
+
- Updated `watch` and `watchAsync` methods to use proper function overloads instead of generic conditional types, ensuring compatibility with the base Run class signatures. ([#9048](https://github.com/mastra-ai/mastra/pull/9048))
|
|
2686
|
+
|
|
2687
|
+
- Fix custom metadata preservation in UIMessages when loading threads. The `getMessagesHandler` now converts `messagesV2` (V2 format with metadata) instead of `messages` (V1 format without metadata) to AIV5.UI format. Also updates the abstract `MastraMemory.query()` return type to include `messagesV2` for proper type safety. ([#9029](https://github.com/mastra-ai/mastra/pull/9029))
|
|
2688
|
+
|
|
2689
|
+
- Fix provider tools for popular providers and add support for anthropic/claude skills. ([#9038](https://github.com/mastra-ai/mastra/pull/9038))
|
|
2690
|
+
|
|
2691
|
+
- Show agent tool output better in playground ([#9021](https://github.com/mastra-ai/mastra/pull/9021))
|
|
2692
|
+
|
|
2693
|
+
- Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
|
|
2694
|
+
|
|
2695
|
+
- Updated dependencies [[`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb)]:
|
|
2696
|
+
- @mastra/core@0.22.0-alpha.1
|
|
2697
|
+
|
|
2698
|
+
## 0.21.2-alpha.0
|
|
2699
|
+
|
|
2700
|
+
### Patch Changes
|
|
2701
|
+
|
|
2702
|
+
- Generate a title for Agent.network() threads ([#8853](https://github.com/mastra-ai/mastra/pull/8853))
|
|
2703
|
+
|
|
2704
|
+
- Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
|
|
2705
|
+
- @mastra/core@0.21.2-alpha.0
|
|
2706
|
+
|
|
2707
|
+
## 0.21.1
|
|
2708
|
+
|
|
2709
|
+
### Patch Changes
|
|
2710
|
+
|
|
2711
|
+
- Updated dependencies [[`ca85c93`](https://github.com/mastra-ai/mastra/commit/ca85c932b232e6ad820c811ec176d98e68c59b0a), [`a1d40f8`](https://github.com/mastra-ai/mastra/commit/a1d40f88d4ce42c4508774ad22e38ac582157af2), [`01c4a25`](https://github.com/mastra-ai/mastra/commit/01c4a2506c514d5e861c004d3d2fb3791c6391f3), [`cce8aad`](https://github.com/mastra-ai/mastra/commit/cce8aad878a0dd98e5647680f3765caba0b1701c)]:
|
|
2712
|
+
- @mastra/core@0.21.1
|
|
2713
|
+
|
|
2714
|
+
## 0.21.1-alpha.0
|
|
2715
|
+
|
|
2716
|
+
### Patch Changes
|
|
2717
|
+
|
|
2718
|
+
- Updated dependencies [[`ca85c93`](https://github.com/mastra-ai/mastra/commit/ca85c932b232e6ad820c811ec176d98e68c59b0a), [`a1d40f8`](https://github.com/mastra-ai/mastra/commit/a1d40f88d4ce42c4508774ad22e38ac582157af2), [`01c4a25`](https://github.com/mastra-ai/mastra/commit/01c4a2506c514d5e861c004d3d2fb3791c6391f3), [`cce8aad`](https://github.com/mastra-ai/mastra/commit/cce8aad878a0dd98e5647680f3765caba0b1701c)]:
|
|
2719
|
+
- @mastra/core@0.21.1-alpha.0
|
|
2720
|
+
|
|
2721
|
+
## 0.21.0
|
|
2722
|
+
|
|
2723
|
+
### Minor Changes
|
|
2724
|
+
|
|
2725
|
+
- Update structuredOutput to use response format by default with an opt in to json prompt injection. ([#8557](https://github.com/mastra-ai/mastra/pull/8557))
|
|
2726
|
+
Replaced internal usage of output with structuredOutput.
|
|
2727
|
+
|
|
2728
|
+
- Update peer dependencies to match core package version bump (0.21.0) ([#8557](https://github.com/mastra-ai/mastra/pull/8557))
|
|
2729
|
+
|
|
2730
|
+
### Patch Changes
|
|
2731
|
+
|
|
2732
|
+
- Update peer dependencies to match core package version bump (0.21.0) ([#8619](https://github.com/mastra-ai/mastra/pull/8619))
|
|
2733
|
+
|
|
2734
|
+
- Include span id and trace id when running live scorers ([#8842](https://github.com/mastra-ai/mastra/pull/8842))
|
|
2735
|
+
|
|
2736
|
+
- Update peer dependencies to match core package version bump (0.21.0) ([#8626](https://github.com/mastra-ai/mastra/pull/8626))
|
|
2737
|
+
|
|
2738
|
+
- Update peer dependencies to match core package version bump (0.21.0) ([#8686](https://github.com/mastra-ai/mastra/pull/8686))
|
|
2739
|
+
|
|
2740
|
+
- Updated dependencies [[`1ed9670`](https://github.com/mastra-ai/mastra/commit/1ed9670d3ca50cb60dc2e517738c5eef3968ed27), [`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`f59fc1e`](https://github.com/mastra-ai/mastra/commit/f59fc1e406b8912e692f6bff6cfd4754cc8d165c), [`158381d`](https://github.com/mastra-ai/mastra/commit/158381d39335be934b81ef8a1947bccace492c25), [`a1799bc`](https://github.com/mastra-ai/mastra/commit/a1799bcc1b5a1cdc188f2ac0165f17a1c4ac6f7b), [`6ff6094`](https://github.com/mastra-ai/mastra/commit/6ff60946f4ecfebdeef6e21d2b230c2204f2c9b8), [`fb703b9`](https://github.com/mastra-ai/mastra/commit/fb703b9634eeaff1a6eb2b5531ce0f9e8fb04727), [`37a2314`](https://github.com/mastra-ai/mastra/commit/37a23148e0e5a3b40d4f9f098b194671a8a49faf), [`7b1ef57`](https://github.com/mastra-ai/mastra/commit/7b1ef57fc071c2aa2a2e32905b18cd88719c5a39), [`05a9dee`](https://github.com/mastra-ai/mastra/commit/05a9dee3d355694d28847bfffb6289657fcf7dfa), [`e3c1077`](https://github.com/mastra-ai/mastra/commit/e3c107763aedd1643d3def5df450c235da9ff76c), [`1908ca0`](https://github.com/mastra-ai/mastra/commit/1908ca0521f90e43779cc29ab590173ca560443c), [`1bccdb3`](https://github.com/mastra-ai/mastra/commit/1bccdb33eb90cbeba2dc5ece1c2561fb774b26b6), [`5ef944a`](https://github.com/mastra-ai/mastra/commit/5ef944a3721d93105675cac2b2311432ff8cc393), [`d6b186f`](https://github.com/mastra-ai/mastra/commit/d6b186fb08f1caf1b86f73d3a5ee88fb999ca3be), [`ee68e82`](https://github.com/mastra-ai/mastra/commit/ee68e8289ea4408d29849e899bc6e78b3bd4e843), [`228228b`](https://github.com/mastra-ai/mastra/commit/228228b0b1de9291cb8887587f5cea1a8757ebad), [`ea33930`](https://github.com/mastra-ai/mastra/commit/ea339301e82d6318257720d811b043014ee44064), [`65493b3`](https://github.com/mastra-ai/mastra/commit/65493b31c36f6fdb78f9679f7e1ecf0c250aa5ee), [`a998b8f`](https://github.com/mastra-ai/mastra/commit/a998b8f858091c2ec47683e60766cf12d03001e4), [`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`8a37bdd`](https://github.com/mastra-ai/mastra/commit/8a37bddb6d8614a32c5b70303d583d80c620ea61), [`135d6f2`](https://github.com/mastra-ai/mastra/commit/135d6f22a326ed1dffff858700669dff09d2c9eb)]:
|
|
2741
|
+
- @mastra/core@0.21.0
|
|
2742
|
+
|
|
2743
|
+
## 0.21.0-alpha.4
|
|
2744
|
+
|
|
2745
|
+
### Patch Changes
|
|
2746
|
+
|
|
2747
|
+
- Include span id and trace id when running live scorers ([#8842](https://github.com/mastra-ai/mastra/pull/8842))
|
|
2748
|
+
|
|
2749
|
+
- Updated dependencies [[`1908ca0`](https://github.com/mastra-ai/mastra/commit/1908ca0521f90e43779cc29ab590173ca560443c)]:
|
|
2750
|
+
- @mastra/core@0.21.0-alpha.4
|
|
2751
|
+
|
|
2752
|
+
## 0.21.0-alpha.3
|
|
2753
|
+
|
|
2754
|
+
### Patch Changes
|
|
2755
|
+
|
|
2756
|
+
- Updated dependencies [[`a1799bc`](https://github.com/mastra-ai/mastra/commit/a1799bcc1b5a1cdc188f2ac0165f17a1c4ac6f7b), [`6ff6094`](https://github.com/mastra-ai/mastra/commit/6ff60946f4ecfebdeef6e21d2b230c2204f2c9b8)]:
|
|
2757
|
+
- @mastra/core@0.21.0-alpha.3
|
|
2758
|
+
|
|
2759
|
+
## 0.21.0-alpha.2
|
|
2760
|
+
|
|
2761
|
+
### Patch Changes
|
|
2762
|
+
|
|
2763
|
+
- Updated dependencies [[`f59fc1e`](https://github.com/mastra-ai/mastra/commit/f59fc1e406b8912e692f6bff6cfd4754cc8d165c)]:
|
|
2764
|
+
- @mastra/core@0.21.0-alpha.2
|
|
2765
|
+
|
|
2766
|
+
## 0.21.0-alpha.1
|
|
2767
|
+
|
|
2768
|
+
### Patch Changes
|
|
2769
|
+
|
|
2770
|
+
- Updated dependencies [[`1ed9670`](https://github.com/mastra-ai/mastra/commit/1ed9670d3ca50cb60dc2e517738c5eef3968ed27), [`158381d`](https://github.com/mastra-ai/mastra/commit/158381d39335be934b81ef8a1947bccace492c25), [`fb703b9`](https://github.com/mastra-ai/mastra/commit/fb703b9634eeaff1a6eb2b5531ce0f9e8fb04727), [`37a2314`](https://github.com/mastra-ai/mastra/commit/37a23148e0e5a3b40d4f9f098b194671a8a49faf), [`05a9dee`](https://github.com/mastra-ai/mastra/commit/05a9dee3d355694d28847bfffb6289657fcf7dfa), [`e3c1077`](https://github.com/mastra-ai/mastra/commit/e3c107763aedd1643d3def5df450c235da9ff76c), [`1bccdb3`](https://github.com/mastra-ai/mastra/commit/1bccdb33eb90cbeba2dc5ece1c2561fb774b26b6), [`5ef944a`](https://github.com/mastra-ai/mastra/commit/5ef944a3721d93105675cac2b2311432ff8cc393), [`d6b186f`](https://github.com/mastra-ai/mastra/commit/d6b186fb08f1caf1b86f73d3a5ee88fb999ca3be), [`65493b3`](https://github.com/mastra-ai/mastra/commit/65493b31c36f6fdb78f9679f7e1ecf0c250aa5ee), [`a998b8f`](https://github.com/mastra-ai/mastra/commit/a998b8f858091c2ec47683e60766cf12d03001e4), [`8a37bdd`](https://github.com/mastra-ai/mastra/commit/8a37bddb6d8614a32c5b70303d583d80c620ea61)]:
|
|
2771
|
+
- @mastra/core@0.21.0-alpha.1
|
|
2772
|
+
|
|
2773
|
+
## 0.21.0-alpha.0
|
|
4
2774
|
|
|
5
2775
|
### Minor Changes
|
|
6
2776
|
|
|
@@ -11,12 +2781,14 @@
|
|
|
11
2781
|
|
|
12
2782
|
### Patch Changes
|
|
13
2783
|
|
|
2784
|
+
- Update peer dependencies to match core package version bump (0.21.0) ([#8619](https://github.com/mastra-ai/mastra/pull/8619))
|
|
2785
|
+
|
|
14
2786
|
- Update peer dependencies to match core package version bump (0.21.0) ([#8626](https://github.com/mastra-ai/mastra/pull/8626))
|
|
15
2787
|
|
|
16
2788
|
- Update peer dependencies to match core package version bump (0.21.0) ([#8686](https://github.com/mastra-ai/mastra/pull/8686))
|
|
17
2789
|
|
|
18
|
-
- Updated dependencies [[`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`7b1ef57`](https://github.com/mastra-ai/mastra/commit/7b1ef57fc071c2aa2a2e32905b18cd88719c5a39), [`ee68e82`](https://github.com/mastra-ai/mastra/commit/ee68e8289ea4408d29849e899bc6e78b3bd4e843), [`228228b`](https://github.com/mastra-ai/mastra/commit/228228b0b1de9291cb8887587f5cea1a8757ebad), [`ea33930`](https://github.com/mastra-ai/mastra/commit/ea339301e82d6318257720d811b043014ee44064), [`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`135d6f2`](https://github.com/mastra-ai/mastra/commit/135d6f22a326ed1dffff858700669dff09d2c9eb)]:
|
|
19
|
-
- @mastra/core@0.0.0
|
|
2790
|
+
- Updated dependencies [[`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`7b1ef57`](https://github.com/mastra-ai/mastra/commit/7b1ef57fc071c2aa2a2e32905b18cd88719c5a39), [`ee68e82`](https://github.com/mastra-ai/mastra/commit/ee68e8289ea4408d29849e899bc6e78b3bd4e843), [`228228b`](https://github.com/mastra-ai/mastra/commit/228228b0b1de9291cb8887587f5cea1a8757ebad), [`ea33930`](https://github.com/mastra-ai/mastra/commit/ea339301e82d6318257720d811b043014ee44064), [`b5a66b7`](https://github.com/mastra-ai/mastra/commit/b5a66b748a14fc8b3f63b04642ddb9621fbcc9e0), [`135d6f2`](https://github.com/mastra-ai/mastra/commit/135d6f22a326ed1dffff858700669dff09d2c9eb), [`59d036d`](https://github.com/mastra-ai/mastra/commit/59d036d4c2706b430b0e3f1f1e0ee853ce16ca04)]:
|
|
2791
|
+
- @mastra/core@0.21.0-alpha.0
|
|
20
2792
|
|
|
21
2793
|
## 0.20.2
|
|
22
2794
|
|