@mastra/server 0.0.0-bundle-recursion-20251030002519 → 0.0.0-bundle-version-20260121091645

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/CHANGELOG.md +2396 -3
  2. package/README.md +2 -2
  3. package/dist/chunk-2CLS2PYJ.js +1030 -0
  4. package/dist/chunk-2CLS2PYJ.js.map +1 -0
  5. package/dist/chunk-2CYGIE3E.js +1075 -0
  6. package/dist/chunk-2CYGIE3E.js.map +1 -0
  7. package/dist/{chunk-KIHM7IDM.cjs → chunk-33CKPQS4.cjs} +58 -17
  8. package/dist/chunk-33CKPQS4.cjs.map +1 -0
  9. package/dist/chunk-3FEYUHHJ.js +116 -0
  10. package/dist/chunk-3FEYUHHJ.js.map +1 -0
  11. package/dist/{chunk-SHWNNZBL.js → chunk-3REGEJEN.js} +13 -17
  12. package/dist/chunk-3REGEJEN.js.map +1 -0
  13. package/dist/chunk-3W67K7YE.js +13 -0
  14. package/dist/chunk-3W67K7YE.js.map +1 -0
  15. package/dist/chunk-4DJ7EJRB.cjs +186 -0
  16. package/dist/chunk-4DJ7EJRB.cjs.map +1 -0
  17. package/dist/chunk-4EYONQIW.cjs +82 -0
  18. package/dist/chunk-4EYONQIW.cjs.map +1 -0
  19. package/dist/chunk-4R2Z655M.js +1075 -0
  20. package/dist/chunk-4R2Z655M.js.map +1 -0
  21. package/dist/chunk-5NFRDYFN.js +77 -0
  22. package/dist/chunk-5NFRDYFN.js.map +1 -0
  23. package/dist/chunk-5VDI75UV.js +44 -0
  24. package/dist/chunk-5VDI75UV.js.map +1 -0
  25. package/dist/chunk-5W4RPVTK.cjs +49 -0
  26. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  27. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  28. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  29. package/dist/chunk-6MP2S6VI.cjs +211 -0
  30. package/dist/chunk-6MP2S6VI.cjs.map +1 -0
  31. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  32. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  33. package/dist/chunk-7S7ALPCY.js +225 -0
  34. package/dist/chunk-7S7ALPCY.js.map +1 -0
  35. package/dist/chunk-7XPMKW4Y.cjs +447 -0
  36. package/dist/chunk-7XPMKW4Y.cjs.map +1 -0
  37. package/dist/{chunk-2PLXW4ZX.cjs → chunk-AQI6GLTN.cjs} +74 -74
  38. package/dist/{chunk-2PLXW4ZX.cjs.map → chunk-AQI6GLTN.cjs.map} +1 -1
  39. package/dist/chunk-AV3CN5ZR.cjs +326 -0
  40. package/dist/chunk-AV3CN5ZR.cjs.map +1 -0
  41. package/dist/chunk-AVRO3FIN.cjs +231 -0
  42. package/dist/chunk-AVRO3FIN.cjs.map +1 -0
  43. package/dist/chunk-BRI4GUZ2.cjs +280 -0
  44. package/dist/chunk-BRI4GUZ2.cjs.map +1 -0
  45. package/dist/chunk-CGIGPJRU.js +279 -0
  46. package/dist/chunk-CGIGPJRU.js.map +1 -0
  47. package/dist/{chunk-X3G3KC47.cjs → chunk-CLAEGIP5.cjs} +235 -37
  48. package/dist/chunk-CLAEGIP5.cjs.map +1 -0
  49. package/dist/chunk-DVSCJECS.js +250 -0
  50. package/dist/chunk-DVSCJECS.js.map +1 -0
  51. package/dist/chunk-EUBTCHQC.js +83 -0
  52. package/dist/chunk-EUBTCHQC.js.map +1 -0
  53. package/dist/chunk-FLLJIPD4.cjs +46 -0
  54. package/dist/chunk-FLLJIPD4.cjs.map +1 -0
  55. package/dist/chunk-FWSKVWS7.cjs +88 -0
  56. package/dist/chunk-FWSKVWS7.cjs.map +1 -0
  57. package/dist/chunk-G2AMUTU4.js +250 -0
  58. package/dist/chunk-G2AMUTU4.js.map +1 -0
  59. package/dist/chunk-GHQZIEPS.js +33118 -0
  60. package/dist/chunk-GHQZIEPS.js.map +1 -0
  61. package/dist/{chunk-AQCEVRZV.js → chunk-GNCALVLC.js} +49 -8
  62. package/dist/chunk-GNCALVLC.js.map +1 -0
  63. package/dist/{chunk-LZKJT7QP.cjs → chunk-GU4EWMZB.cjs} +34 -64
  64. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  65. package/dist/chunk-H34VRYSF.js +196 -0
  66. package/dist/chunk-H34VRYSF.js.map +1 -0
  67. package/dist/{chunk-RQK4FQUD.js → chunk-H66LLFDL.js} +4 -46
  68. package/dist/chunk-H66LLFDL.js.map +1 -0
  69. package/dist/chunk-HCVDHEDD.cjs +33157 -0
  70. package/dist/chunk-HCVDHEDD.cjs.map +1 -0
  71. package/dist/chunk-HT4LP3BO.js +75 -0
  72. package/dist/chunk-HT4LP3BO.js.map +1 -0
  73. package/dist/chunk-I27H7BEB.js +439 -0
  74. package/dist/chunk-I27H7BEB.js.map +1 -0
  75. package/dist/chunk-IVGQTL3T.js +204 -0
  76. package/dist/chunk-IVGQTL3T.js.map +1 -0
  77. package/dist/chunk-KKY4MSZO.js +314 -0
  78. package/dist/chunk-KKY4MSZO.js.map +1 -0
  79. package/dist/{chunk-QU6N55W6.cjs → chunk-L2E5RUVT.cjs} +17 -21
  80. package/dist/chunk-L2E5RUVT.cjs.map +1 -0
  81. package/dist/{chunk-GQRJOUV7.js → chunk-LF2ZLOFP.js} +34 -64
  82. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  83. package/dist/chunk-LJ6YRVDI.cjs +15 -0
  84. package/dist/chunk-LJ6YRVDI.cjs.map +1 -0
  85. package/dist/{chunk-ZULZ2752.js → chunk-LOA7RQYO.js} +3 -3
  86. package/dist/{chunk-ZULZ2752.js.map → chunk-LOA7RQYO.js.map} +1 -1
  87. package/dist/chunk-MCYD5LW7.cjs +90 -0
  88. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  89. package/dist/chunk-MPUVSOEU.cjs +346 -0
  90. package/dist/chunk-MPUVSOEU.cjs.map +1 -0
  91. package/dist/chunk-N4EIZSG2.js +180 -0
  92. package/dist/chunk-N4EIZSG2.js.map +1 -0
  93. package/dist/chunk-NUO7HPOV.cjs +1105 -0
  94. package/dist/chunk-NUO7HPOV.cjs.map +1 -0
  95. package/dist/chunk-ONN5EA7E.js +26 -0
  96. package/dist/chunk-ONN5EA7E.js.map +1 -0
  97. package/dist/chunk-P3H4AZKI.cjs +252 -0
  98. package/dist/chunk-P3H4AZKI.cjs.map +1 -0
  99. package/dist/chunk-PNZQCQY4.cjs +252 -0
  100. package/dist/chunk-PNZQCQY4.cjs.map +1 -0
  101. package/dist/chunk-QPFYN6B5.cjs +125 -0
  102. package/dist/chunk-QPFYN6B5.cjs.map +1 -0
  103. package/dist/chunk-SUKFO7UM.cjs +29 -0
  104. package/dist/chunk-SUKFO7UM.cjs.map +1 -0
  105. package/dist/chunk-T4SPG2GP.cjs +82 -0
  106. package/dist/chunk-T4SPG2GP.cjs.map +1 -0
  107. package/dist/chunk-TMS4LS2J.js +302 -0
  108. package/dist/chunk-TMS4LS2J.js.map +1 -0
  109. package/dist/chunk-UK4FZWNW.cjs +205 -0
  110. package/dist/chunk-UK4FZWNW.cjs.map +1 -0
  111. package/dist/{chunk-LPM6BBAX.cjs → chunk-VX3VN7FN.cjs} +3 -54
  112. package/dist/chunk-VX3VN7FN.cjs.map +1 -0
  113. package/dist/chunk-WJ6DNHLW.cjs +312 -0
  114. package/dist/chunk-WJ6DNHLW.cjs.map +1 -0
  115. package/dist/chunk-WLGJVDH4.js +242 -0
  116. package/dist/chunk-WLGJVDH4.js.map +1 -0
  117. package/dist/chunk-XB27LCKO.js +328 -0
  118. package/dist/chunk-XB27LCKO.js.map +1 -0
  119. package/dist/chunk-XCEQ4GQW.cjs +289 -0
  120. package/dist/chunk-XCEQ4GQW.cjs.map +1 -0
  121. package/dist/chunk-XOUK3IYU.js +77 -0
  122. package/dist/chunk-XOUK3IYU.js.map +1 -0
  123. package/dist/chunk-XWGAT2DA.js +44 -0
  124. package/dist/chunk-XWGAT2DA.js.map +1 -0
  125. package/dist/chunk-YK63KHHB.cjs +1059 -0
  126. package/dist/chunk-YK63KHHB.cjs.map +1 -0
  127. package/dist/{chunk-THWIEXQQ.js → chunk-YN3FWKVQ.js} +229 -37
  128. package/dist/chunk-YN3FWKVQ.js.map +1 -0
  129. package/dist/chunk-ZQ2G6QKS.cjs +1117 -0
  130. package/dist/chunk-ZQ2G6QKS.cjs.map +1 -0
  131. package/dist/{dist-G2BYZJOC.cjs → dist-7NTDEVLP.cjs} +28 -28
  132. package/dist/{dist-G2BYZJOC.cjs.map → dist-7NTDEVLP.cjs.map} +1 -1
  133. package/dist/{dist-X7XR3M3Z.js → dist-B5GMANA6.js} +3 -3
  134. package/dist/{dist-X7XR3M3Z.js.map → dist-B5GMANA6.js.map} +1 -1
  135. package/dist/dist-EDO7GEGI.js +3 -0
  136. package/dist/{dist-YREX2TJT.js.map → dist-EDO7GEGI.js.map} +1 -1
  137. package/dist/{dist-RFMYFILX.cjs → dist-OF24ZMHH.cjs} +30 -30
  138. package/dist/{dist-RFMYFILX.cjs.map → dist-OF24ZMHH.cjs.map} +1 -1
  139. package/dist/{dist-4MVGNSRL.cjs → dist-P6YSNLL3.cjs} +20 -20
  140. package/dist/{dist-4MVGNSRL.cjs.map → dist-P6YSNLL3.cjs.map} +1 -1
  141. package/dist/{dist-PQZUVLPC.js → dist-SMBO5KVB.js} +3 -3
  142. package/dist/{dist-PQZUVLPC.js.map → dist-SMBO5KVB.js.map} +1 -1
  143. package/dist/{dist-XVBSOGFK.js → dist-THPMW5QR.js} +3 -3
  144. package/dist/{dist-XVBSOGFK.js.map → dist-THPMW5QR.js.map} +1 -1
  145. package/dist/{dist-FZYCV3VB.cjs → dist-VZTG56X2.cjs} +26 -26
  146. package/dist/{dist-FZYCV3VB.cjs.map → dist-VZTG56X2.cjs.map} +1 -1
  147. package/dist/dist-ZLC23RVC.cjs +16 -0
  148. package/dist/{dist-P4MXBQ3U.cjs.map → dist-ZLC23RVC.cjs.map} +1 -1
  149. package/dist/{dist-R7WYX6LC.js → dist-ZOZ6MHJH.js} +3 -3
  150. package/dist/{dist-R7WYX6LC.js.map → dist-ZOZ6MHJH.js.map} +1 -1
  151. package/dist/docs/README.md +31 -0
  152. package/dist/docs/SKILL.md +32 -0
  153. package/dist/docs/SOURCE_MAP.json +6 -0
  154. package/dist/docs/server/01-custom-adapters.md +380 -0
  155. package/dist/docs/server/02-reference.md +819 -0
  156. package/dist/server/auth/defaults.d.ts +3 -0
  157. package/dist/server/auth/defaults.d.ts.map +1 -0
  158. package/dist/server/auth/helpers.d.ts +14 -0
  159. package/dist/server/auth/helpers.d.ts.map +1 -0
  160. package/dist/server/auth/index.cjs +137 -0
  161. package/dist/server/auth/index.cjs.map +1 -0
  162. package/dist/server/auth/index.d.ts +3 -0
  163. package/dist/server/auth/index.d.ts.map +1 -0
  164. package/dist/server/auth/index.js +127 -0
  165. package/dist/server/auth/index.js.map +1 -0
  166. package/dist/server/handlers/a2a.cjs +15 -7
  167. package/dist/server/handlers/a2a.d.ts +492 -10
  168. package/dist/server/handlers/a2a.d.ts.map +1 -1
  169. package/dist/server/handlers/a2a.js +1 -1
  170. package/dist/server/handlers/agent-builder.cjs +31 -51
  171. package/dist/server/handlers/agent-builder.d.ts +621 -99
  172. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  173. package/dist/server/handlers/agent-builder.js +1 -1
  174. package/dist/server/handlers/agents.cjs +71 -39
  175. package/dist/server/handlers/agents.d.ts +3330 -151
  176. package/dist/server/handlers/agents.d.ts.map +1 -1
  177. package/dist/server/handlers/agents.js +1 -1
  178. package/dist/server/handlers/error.cjs +6 -2
  179. package/dist/server/handlers/error.d.ts +12 -0
  180. package/dist/server/handlers/error.d.ts.map +1 -1
  181. package/dist/server/handlers/error.js +1 -1
  182. package/dist/server/handlers/logs.cjs +7 -7
  183. package/dist/server/handlers/logs.d.ts +135 -27
  184. package/dist/server/handlers/logs.d.ts.map +1 -1
  185. package/dist/server/handlers/logs.js +1 -1
  186. package/dist/server/handlers/mcp.cjs +40 -0
  187. package/dist/server/handlers/mcp.cjs.map +1 -0
  188. package/dist/server/handlers/mcp.d.ts +110 -0
  189. package/dist/server/handlers/mcp.d.ts.map +1 -0
  190. package/dist/server/handlers/mcp.js +3 -0
  191. package/dist/server/handlers/mcp.js.map +1 -0
  192. package/dist/server/handlers/memory.cjs +67 -31
  193. package/dist/server/handlers/memory.d.ts +1049 -102
  194. package/dist/server/handlers/memory.d.ts.map +1 -1
  195. package/dist/server/handlers/memory.js +1 -1
  196. package/dist/server/handlers/observability.cjs +9 -9
  197. package/dist/server/handlers/observability.d.ts +146 -42
  198. package/dist/server/handlers/observability.d.ts.map +1 -1
  199. package/dist/server/handlers/observability.js +1 -1
  200. package/dist/server/handlers/processors.cjs +20 -0
  201. package/dist/server/handlers/processors.cjs.map +1 -0
  202. package/dist/server/handlers/processors.d.ts +181 -0
  203. package/dist/server/handlers/processors.d.ts.map +1 -0
  204. package/dist/server/handlers/processors.js +3 -0
  205. package/dist/server/handlers/processors.js.map +1 -0
  206. package/dist/server/handlers/scores.cjs +13 -13
  207. package/dist/server/handlers/scores.d.ts +110 -141
  208. package/dist/server/handlers/scores.d.ts.map +1 -1
  209. package/dist/server/handlers/scores.js +1 -1
  210. package/dist/server/handlers/stored-agents.cjs +28 -0
  211. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  212. package/dist/server/handlers/stored-agents.d.ts +289 -0
  213. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  214. package/dist/server/handlers/stored-agents.js +3 -0
  215. package/dist/server/handlers/stored-agents.js.map +1 -0
  216. package/dist/server/handlers/system.cjs +12 -0
  217. package/dist/server/handlers/system.cjs.map +1 -0
  218. package/dist/server/handlers/system.d.ts +7 -0
  219. package/dist/server/handlers/system.d.ts.map +1 -0
  220. package/dist/server/handlers/system.js +3 -0
  221. package/dist/server/handlers/system.js.map +1 -0
  222. package/dist/server/handlers/test-utils.cjs +15 -0
  223. package/dist/server/handlers/test-utils.cjs.map +1 -0
  224. package/dist/server/handlers/test-utils.d.ts +6 -0
  225. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  226. package/dist/server/handlers/test-utils.js +13 -0
  227. package/dist/server/handlers/test-utils.js.map +1 -0
  228. package/dist/server/handlers/tools.cjs +11 -11
  229. package/dist/server/handlers/tools.d.ts +69 -23
  230. package/dist/server/handlers/tools.d.ts.map +1 -1
  231. package/dist/server/handlers/tools.js +1 -1
  232. package/dist/server/handlers/utils.cjs +11 -3
  233. package/dist/server/handlers/utils.d.ts +5 -0
  234. package/dist/server/handlers/utils.d.ts.map +1 -1
  235. package/dist/server/handlers/utils.js +1 -1
  236. package/dist/server/handlers/vector.cjs +31 -7
  237. package/dist/server/handlers/vector.d.ts +93 -9
  238. package/dist/server/handlers/vector.d.ts.map +1 -1
  239. package/dist/server/handlers/vector.js +1 -1
  240. package/dist/server/handlers/voice.cjs +21 -9
  241. package/dist/server/handlers/voice.d.ts +81 -40
  242. package/dist/server/handlers/voice.d.ts.map +1 -1
  243. package/dist/server/handlers/voice.js +1 -1
  244. package/dist/server/handlers/workflows.cjs +53 -41
  245. package/dist/server/handlers/workflows.d.ts +980 -83
  246. package/dist/server/handlers/workflows.d.ts.map +1 -1
  247. package/dist/server/handlers/workflows.js +1 -1
  248. package/dist/server/handlers.cjs +34 -34
  249. package/dist/server/handlers.d.ts +1 -1
  250. package/dist/server/handlers.d.ts.map +1 -1
  251. package/dist/server/handlers.js +12 -12
  252. package/dist/server/http-exception.d.ts +0 -5
  253. package/dist/server/http-exception.d.ts.map +1 -1
  254. package/dist/server/schemas/a2a.d.ts +786 -0
  255. package/dist/server/schemas/a2a.d.ts.map +1 -0
  256. package/dist/server/schemas/agent-builder.d.ts +225 -0
  257. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  258. package/dist/server/schemas/agents.d.ts +1804 -0
  259. package/dist/server/schemas/agents.d.ts.map +1 -0
  260. package/dist/server/schemas/common.d.ts +179 -0
  261. package/dist/server/schemas/common.d.ts.map +1 -0
  262. package/dist/server/schemas/logs.d.ts +124 -0
  263. package/dist/server/schemas/logs.d.ts.map +1 -0
  264. package/dist/server/schemas/mcp.d.ts +299 -0
  265. package/dist/server/schemas/mcp.d.ts.map +1 -0
  266. package/dist/server/schemas/memory.d.ts +1164 -0
  267. package/dist/server/schemas/memory.d.ts.map +1 -0
  268. package/dist/server/schemas/processors.d.ts +519 -0
  269. package/dist/server/schemas/processors.d.ts.map +1 -0
  270. package/dist/server/schemas/scores.d.ts +259 -0
  271. package/dist/server/schemas/scores.d.ts.map +1 -0
  272. package/dist/server/schemas/stored-agents.d.ts +792 -0
  273. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  274. package/dist/server/schemas/system.d.ts +36 -0
  275. package/dist/server/schemas/system.d.ts.map +1 -0
  276. package/dist/server/schemas/vectors.d.ts +107 -0
  277. package/dist/server/schemas/vectors.d.ts.map +1 -0
  278. package/dist/server/schemas/workflows.d.ts +863 -0
  279. package/dist/server/schemas/workflows.d.ts.map +1 -0
  280. package/dist/server/server-adapter/index.cjs +523 -0
  281. package/dist/server/server-adapter/index.cjs.map +1 -0
  282. package/dist/server/server-adapter/index.d.ts +109 -0
  283. package/dist/server/server-adapter/index.d.ts.map +1 -0
  284. package/dist/server/server-adapter/index.js +495 -0
  285. package/dist/server/server-adapter/index.js.map +1 -0
  286. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  287. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  288. package/dist/server/server-adapter/redact.d.ts +26 -0
  289. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  290. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  291. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  292. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  293. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  294. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  295. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  296. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  297. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  298. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  299. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  300. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  301. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  302. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  303. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  304. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  305. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  306. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  307. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  308. package/dist/server/server-adapter/routes/processors.d.ts +3 -0
  309. package/dist/server/server-adapter/routes/processors.d.ts.map +1 -0
  310. package/dist/server/server-adapter/routes/route-builder.d.ts +111 -0
  311. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  312. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  313. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  314. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  315. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  316. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  317. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  318. package/dist/server/server-adapter/routes/system.d.ts +12 -0
  319. package/dist/server/server-adapter/routes/system.d.ts.map +1 -0
  320. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  321. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  322. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  323. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  324. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  325. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  326. package/dist/server/utils.d.ts +4 -3
  327. package/dist/server/utils.d.ts.map +1 -1
  328. package/dist/{token-375W3LEI.cjs → token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs} +11 -12
  329. package/dist/token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs.map +1 -0
  330. package/dist/{token-C3IMNCC4.js → token-6GSAFR2W-K2BTU23I-NW33N3NU.js} +8 -9
  331. package/dist/token-6GSAFR2W-K2BTU23I-NW33N3NU.js.map +1 -0
  332. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs +63 -0
  333. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs.map +1 -0
  334. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js +61 -0
  335. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js.map +1 -0
  336. package/dist/token-6GSAFR2W-VLY2XUPA-NCSASMWN.js +61 -0
  337. package/dist/token-6GSAFR2W-VLY2XUPA-NCSASMWN.js.map +1 -0
  338. package/dist/token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs +63 -0
  339. package/dist/token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs.map +1 -0
  340. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs +10 -0
  341. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs.map +1 -0
  342. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js +8 -0
  343. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js.map +1 -0
  344. package/dist/token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs +10 -0
  345. package/dist/token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs.map +1 -0
  346. package/dist/token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js +8 -0
  347. package/dist/token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js.map +1 -0
  348. package/dist/token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs +10 -0
  349. package/dist/token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs.map +1 -0
  350. package/dist/token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js +8 -0
  351. package/dist/token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js.map +1 -0
  352. package/package.json +41 -13
  353. package/dist/chunk-2P4VRXBT.js +0 -533
  354. package/dist/chunk-2P4VRXBT.js.map +0 -1
  355. package/dist/chunk-2S4IMB6E.cjs +0 -130
  356. package/dist/chunk-2S4IMB6E.cjs.map +0 -1
  357. package/dist/chunk-3PXWQX3J.js +0 -692
  358. package/dist/chunk-3PXWQX3J.js.map +0 -1
  359. package/dist/chunk-3SNGNFUJ.cjs +0 -128
  360. package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
  361. package/dist/chunk-4AKQUEI2.js +0 -698
  362. package/dist/chunk-4AKQUEI2.js.map +0 -1
  363. package/dist/chunk-4APSL4XM.cjs +0 -713
  364. package/dist/chunk-4APSL4XM.cjs.map +0 -1
  365. package/dist/chunk-4QCXUEAT.js +0 -25
  366. package/dist/chunk-4QCXUEAT.js.map +0 -1
  367. package/dist/chunk-ABRFV4XP.js +0 -83
  368. package/dist/chunk-ABRFV4XP.js.map +0 -1
  369. package/dist/chunk-AQCEVRZV.js.map +0 -1
  370. package/dist/chunk-AW5BU3RQ.js +0 -192
  371. package/dist/chunk-AW5BU3RQ.js.map +0 -1
  372. package/dist/chunk-BATEJLED.js +0 -124
  373. package/dist/chunk-BATEJLED.js.map +0 -1
  374. package/dist/chunk-CY4TP3FK.js +0 -16
  375. package/dist/chunk-CY4TP3FK.js.map +0 -1
  376. package/dist/chunk-EP3JQDPD.cjs +0 -131
  377. package/dist/chunk-EP3JQDPD.cjs.map +0 -1
  378. package/dist/chunk-EVI5NLZG.js +0 -323
  379. package/dist/chunk-EVI5NLZG.js.map +0 -1
  380. package/dist/chunk-FTBY7JHX.js +0 -19460
  381. package/dist/chunk-FTBY7JHX.js.map +0 -1
  382. package/dist/chunk-G4PUALCE.cjs +0 -28
  383. package/dist/chunk-G4PUALCE.cjs.map +0 -1
  384. package/dist/chunk-GDUKGVFI.cjs +0 -550
  385. package/dist/chunk-GDUKGVFI.cjs.map +0 -1
  386. package/dist/chunk-GQRJOUV7.js.map +0 -1
  387. package/dist/chunk-HQYKLJHG.cjs +0 -19501
  388. package/dist/chunk-HQYKLJHG.cjs.map +0 -1
  389. package/dist/chunk-KIHM7IDM.cjs.map +0 -1
  390. package/dist/chunk-LPM6BBAX.cjs.map +0 -1
  391. package/dist/chunk-LZKJT7QP.cjs.map +0 -1
  392. package/dist/chunk-MMROOK5J.js.map +0 -1
  393. package/dist/chunk-MYR4PVGN.js +0 -123
  394. package/dist/chunk-MYR4PVGN.js.map +0 -1
  395. package/dist/chunk-QQXMIP6C.js +0 -122
  396. package/dist/chunk-QQXMIP6C.js.map +0 -1
  397. package/dist/chunk-QU6N55W6.cjs.map +0 -1
  398. package/dist/chunk-RC5UZM7H.js +0 -160
  399. package/dist/chunk-RC5UZM7H.js.map +0 -1
  400. package/dist/chunk-RE4RPXT2.cjs +0 -18
  401. package/dist/chunk-RE4RPXT2.cjs.map +0 -1
  402. package/dist/chunk-RQK4FQUD.js.map +0 -1
  403. package/dist/chunk-SHWNNZBL.js.map +0 -1
  404. package/dist/chunk-SPRRK3P7.cjs +0 -200
  405. package/dist/chunk-SPRRK3P7.cjs.map +0 -1
  406. package/dist/chunk-THWIEXQQ.js.map +0 -1
  407. package/dist/chunk-TOCYBDP2.js +0 -46
  408. package/dist/chunk-TOCYBDP2.js.map +0 -1
  409. package/dist/chunk-X3G3KC47.cjs.map +0 -1
  410. package/dist/chunk-X6C7BUWN.cjs +0 -48
  411. package/dist/chunk-X6C7BUWN.cjs.map +0 -1
  412. package/dist/chunk-XN74I6VW.cjs +0 -88
  413. package/dist/chunk-XN74I6VW.cjs.map +0 -1
  414. package/dist/chunk-XUOE3PBE.cjs +0 -720
  415. package/dist/chunk-XUOE3PBE.cjs.map +0 -1
  416. package/dist/chunk-YAYIYIMS.cjs +0 -335
  417. package/dist/chunk-YAYIYIMS.cjs.map +0 -1
  418. package/dist/chunk-YYXITBYY.cjs +0 -167
  419. package/dist/chunk-YYXITBYY.cjs.map +0 -1
  420. package/dist/dist-P4MXBQ3U.cjs +0 -16
  421. package/dist/dist-YREX2TJT.js +0 -3
  422. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  423. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  424. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  425. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  426. package/dist/server/handlers/legacyWorkflows.js +0 -3
  427. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
  428. package/dist/token-375W3LEI.cjs.map +0 -1
  429. package/dist/token-C3IMNCC4.js.map +0 -1
  430. package/dist/token-util-CV3RRG6K.cjs +0 -9
  431. package/dist/token-util-CV3RRG6K.cjs.map +0 -1
  432. package/dist/token-util-E5QO2RCL.js +0 -7
  433. package/dist/token-util-E5QO2RCL.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,11 +1,2336 @@
1
1
  # @mastra/server
2
2
 
3
- ## 0.0.0-bundle-recursion-20251030002519
3
+ ## 0.0.0-bundle-version-20260121091645
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b)]:
8
+ - @mastra/core@0.0.0-bundle-version-20260121091645
9
+
10
+ ## 1.0.4
11
+
12
+ ### Patch Changes
13
+
14
+ - Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
15
+
16
+ - Updated dependencies:
17
+ - @mastra/core@1.0.4
18
+
19
+ ## 1.0.4-alpha.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Release stable ([#12102](https://github.com/mastra-ai/mastra/pull/12102))
24
+
25
+ - Updated dependencies:
26
+ - @mastra/core@1.0.4-alpha.0
27
+
28
+ ## 1.0.0
29
+
30
+ ### Major Changes
31
+
32
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
33
+
34
+ - 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))
35
+
36
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
37
+
38
+ - 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))
39
+
40
+ - Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
41
+
42
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
43
+
44
+ **Storage changes:**
45
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
46
+ - All storage implementations support `perPage: false`:
47
+ - Memory: `listMessages()`
48
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
49
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
50
+
51
+ **Memory changes:**
52
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
53
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
54
+
55
+ **Stricter validation:**
56
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
57
+
58
+ **Migration:**
59
+
60
+ ```typescript
61
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
62
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
63
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
64
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
65
+
66
+ // Memory: Replace selectBy with flat parameters
67
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
68
+ + memory.query({ threadId, perPage: 20, include: [...] })
69
+
70
+ // Client SDK
71
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
72
+ + thread.listMessages({ page: 0, perPage: 20 })
73
+ ```
74
+
75
+ - **Removed `storage.getMessages()`** ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
76
+
77
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
78
+
79
+ **Migration:**
80
+
81
+ ```typescript
82
+ // Before
83
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
84
+
85
+ // After
86
+ const result = await storage.listMessages({
87
+ threadId: 'thread-1',
88
+ page: 0,
89
+ perPage: 50,
90
+ });
91
+ const messages = result.messages; // Access messages array
92
+ console.log(result.total); // Total count
93
+ console.log(result.hasMore); // Whether more pages exist
94
+ ```
95
+
96
+ **Message ordering default**
97
+
98
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
99
+
100
+ **To use DESC ordering (newest first):**
101
+
102
+ ```typescript
103
+ const result = await storage.listMessages({
104
+ threadId: 'thread-1',
105
+ orderBy: { field: 'createdAt', direction: 'DESC' },
106
+ });
107
+ ```
108
+
109
+ **Renamed `client.getThreadMessages()` → `client.listThreadMessages()`**
110
+
111
+ **Migration:**
112
+
113
+ ```typescript
114
+ // Before
115
+ const response = await client.getThreadMessages(threadId, { agentId });
116
+
117
+ // After
118
+ const response = await client.listThreadMessages(threadId, { agentId });
119
+ ```
120
+
121
+ The response format remains the same.
122
+
123
+ **Removed `StorageGetMessagesArg` type**
124
+
125
+ Use `StorageListMessagesInput` instead:
126
+
127
+ ```typescript
128
+ // Before
129
+ import type { StorageGetMessagesArg } from '@mastra/core';
130
+
131
+ // After
132
+ import type { StorageListMessagesInput } from '@mastra/core';
133
+ ```
134
+
135
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
136
+
137
+ - 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))
138
+
139
+ - 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))
140
+
141
+ 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.
142
+
143
+ Before:
144
+
145
+ ```typescript
146
+ // Two methods that did the same thing
147
+ memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
148
+ memory.query({ threadId, resourceId, perPage, vectorSearchString });
149
+ ```
150
+
151
+ After:
152
+
153
+ ```typescript
154
+ // Single unified method with clear purpose
155
+ memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
156
+ ```
157
+
158
+ All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
159
+
160
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
161
+
162
+ - Rename `defaultVNextStreamOptions` to `defaultOptions`. Add "Legacy" suffix to v1 option properties and methods (`defaultGenerateOptions` → `defaultGenerateOptionsLegacy`, `defaultStreamOptions` → `defaultStreamOptionsLegacy`). ([#9535](https://github.com/mastra-ai/mastra/pull/9535))
163
+
164
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
165
+
166
+ This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
167
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
168
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
169
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
170
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
171
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
172
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
173
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
174
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
175
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
176
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
177
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
178
+ - Network route and streaming APIs updated to use plain OUTPUT generic
179
+
180
+ **Before:**
181
+
182
+ ```typescript
183
+ const output = await agent.generate<z.ZodType>([...], {
184
+ structuredOutput: { schema: mySchema }
185
+ });
186
+
187
+ **After:**
188
+ const output = await agent.generate<z.infer<typeof mySchema>>([...], {
189
+ structuredOutput: { schema: mySchema }
190
+ });
191
+ // Or rely on type inference:
192
+ const output = await agent.generate([...], {
193
+ structuredOutput: { schema: mySchema }
194
+ });
195
+
196
+ ```
197
+
198
+ - Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
199
+
200
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
201
+
202
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
203
+
204
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
205
+
206
+ **What's Changed**
207
+ - Removed legacy v1 watch event handlers and types
208
+ - Renamed `watch-v2` to `watch` throughout the codebase
209
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
210
+ - Removed `/watch` HTTP endpoints from server and deployer
211
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
212
+
213
+ - Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
214
+
215
+ 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.
216
+
217
+ **Affected APIs:**
218
+ - `Memory.listThreadsByResourceId()`
219
+ - `Memory.listMessages()`
220
+ - `Storage.listWorkflowRuns()`
221
+
222
+ **Migration:**
223
+
224
+ ```typescript
225
+ // Before
226
+ await memory.listThreadsByResourceId({
227
+ resourceId: 'user-123',
228
+ offset: 20,
229
+ limit: 10,
230
+ });
231
+
232
+ // After
233
+ await memory.listThreadsByResourceId({
234
+ resourceId: 'user-123',
235
+ page: 2, // page = Math.floor(offset / limit)
236
+ perPage: 10,
237
+ });
238
+
239
+ // Before
240
+ await memory.listMessages({
241
+ threadId: 'thread-456',
242
+ offset: 20,
243
+ limit: 10,
244
+ });
245
+
246
+ // After
247
+ await memory.listMessages({
248
+ threadId: 'thread-456',
249
+ page: 2,
250
+ perPage: 10,
251
+ });
252
+
253
+ // Before
254
+ await storage.listWorkflowRuns({
255
+ workflowName: 'my-workflow',
256
+ offset: 20,
257
+ limit: 10,
258
+ });
259
+
260
+ // After
261
+ await storage.listWorkflowRuns({
262
+ workflowName: 'my-workflow',
263
+ page: 2,
264
+ perPage: 10,
265
+ });
266
+ ```
267
+
268
+ **Additional improvements:**
269
+ - Added validation for negative `page` values in all storage implementations
270
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
271
+ - Added reusable query parser utilities for consistent validation in handlers
272
+
273
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
274
+
275
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
276
+
277
+ - Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
278
+
279
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
280
+
281
+ - Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
282
+
283
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
284
+ 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
285
+
286
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
287
+
288
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
289
+
290
+ ### Minor Changes
291
+
292
+ - Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
293
+
294
+ 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.
295
+
296
+ ```typescript
297
+ import { Mastra } from '@mastra/core';
298
+ import { LibSQLStore } from '@mastra/libsql';
299
+
300
+ const mastra = new Mastra({
301
+ storage: new LibSQLStore({ url: ':memory:' }),
302
+ tools: { myTool },
303
+ scorers: { myScorer },
304
+ });
305
+
306
+ // Create agent in storage via API or directly
307
+ await mastra.getStorage().createAgent({
308
+ agent: {
309
+ id: 'my-agent',
310
+ name: 'My Agent',
311
+ instructions: 'You are helpful',
312
+ model: { provider: 'openai', name: 'gpt-4' },
313
+ tools: { myTool: {} },
314
+ scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
315
+ },
316
+ });
317
+
318
+ // Load and use the agent
319
+ const agent = await mastra.getStoredAgentById('my-agent');
320
+ const response = await agent.generate('Hello!');
321
+
322
+ // List all stored agents with pagination
323
+ const { agents, total, hasMore } = await mastra.listStoredAgents({
324
+ page: 0,
325
+ perPage: 10,
326
+ });
327
+ ```
328
+
329
+ Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
330
+
331
+ - Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
332
+
333
+ **Why:** This provides parity between `stream()` and `generate()` for tool approval flows, allowing non-streaming use cases to leverage `requireToolApproval` without needing to switch to streaming.
334
+
335
+ Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
336
+
337
+ **Using tool approval with generate()**
338
+
339
+ ```typescript
340
+ const output = await agent.generate('Find user John', {
341
+ requireToolApproval: true,
342
+ });
343
+
344
+ // Check if a tool is waiting for approval
345
+ if (output.finishReason === 'suspended') {
346
+ console.log('Tool requires approval:', output.suspendPayload.toolName);
347
+
348
+ // Approve the tool call
349
+ const result = await agent.approveToolCallGenerate({
350
+ runId: output.runId,
351
+ toolCallId: output.suspendPayload.toolCallId,
352
+ });
353
+
354
+ console.log(result.text);
355
+ }
356
+ ```
357
+
358
+ **Declining a tool call**
359
+
360
+ ```typescript
361
+ if (output.finishReason === 'suspended') {
362
+ const result = await agent.declineToolCallGenerate({
363
+ runId: output.runId,
364
+ toolCallId: output.suspendPayload.toolCallId,
365
+ });
366
+ }
367
+ ```
368
+
369
+ **New methods added:**
370
+ - `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
371
+ - `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
372
+
373
+ **Server routes added:**
374
+ - `POST /api/agents/:agentId/approve-tool-call-generate`
375
+ - `POST /api/agents/:agentId/decline-tool-call-generate`
376
+
377
+ The playground UI now also supports tool approval when using generate mode.
378
+
379
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
380
+
381
+ - Memory scope defaults changed from 'thread' to 'resource' ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
382
+
383
+ Both `workingMemory.scope` and `semanticRecall.scope` now default to `'resource'` instead of `'thread'`. This means:
384
+ - Working memory persists across all conversations for the same user/resource
385
+ - Semantic recall searches across all threads for the same user/resource
386
+
387
+ **Migration**: To maintain the previous thread-scoped behavior, explicitly set `scope: 'thread'`:
388
+
389
+ ```typescript
390
+ memory: new Memory({
391
+ storage,
392
+ workingMemory: {
393
+ enabled: true,
394
+ scope: 'thread', // Explicitly set for thread-scoped behavior
395
+ },
396
+ semanticRecall: {
397
+ scope: 'thread', // Explicitly set for thread-scoped behavior
398
+ },
399
+ }),
400
+ ```
401
+
402
+ Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
403
+
404
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
405
+
406
+ - Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
407
+
408
+ - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
409
+ - Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
410
+ - Add corresponding server handlers and deployer routes for observe streaming
411
+ - Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
412
+ - Update template installation processor to support both legacy and VNext streaming event formats
413
+
414
+ - Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
415
+
416
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
417
+
418
+ ## What changed
419
+
420
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
421
+
422
+ **Before:**
423
+
424
+ ```typescript
425
+ // Old span structure
426
+ span.agentId; // 'my-agent'
427
+ span.toolId; // undefined
428
+ span.workflowId; // undefined
429
+ ```
430
+
431
+ **After:**
432
+
433
+ ```typescript
434
+ // New span structure
435
+ span.entityType; // EntityType.AGENT
436
+ span.entityId; // 'my-agent'
437
+ span.entityName; // 'My Agent'
438
+ ```
439
+
440
+ ## New `listTraces()` API
441
+
442
+ Query traces with filtering, pagination, and sorting:
443
+
444
+ ```typescript
445
+ const { spans, pagination } = await storage.listTraces({
446
+ filters: {
447
+ entityType: EntityType.AGENT,
448
+ entityId: 'my-agent',
449
+ userId: 'user-123',
450
+ environment: 'production',
451
+ status: TraceStatus.SUCCESS,
452
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
453
+ },
454
+ pagination: { page: 0, perPage: 50 },
455
+ orderBy: { field: 'startedAt', direction: 'DESC' },
456
+ });
457
+ ```
458
+
459
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
460
+
461
+ ## New retrieval methods
462
+ - `getSpan({ traceId, spanId })` - Get a single span
463
+ - `getRootSpan({ traceId })` - Get the root span of a trace
464
+ - `getTrace({ traceId })` - Get all spans for a trace
465
+
466
+ ## Backward compatibility
467
+
468
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
469
+
470
+ ## Migration
471
+
472
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
473
+
474
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
475
+
476
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
477
+
478
+ **New Features**
479
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
480
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
481
+ - Full pagination and sorting support
482
+
483
+ **Example Usage**
484
+
485
+ ```typescript
486
+ // List all threads
487
+ const allThreads = await memory.listThreads({});
488
+
489
+ // Filter by resourceId only
490
+ const userThreads = await memory.listThreads({
491
+ filter: { resourceId: 'user-123' },
492
+ });
493
+
494
+ // Filter by metadata only
495
+ const supportThreads = await memory.listThreads({
496
+ filter: { metadata: { category: 'support' } },
497
+ });
498
+
499
+ // Filter by both with pagination
500
+ const filteredThreads = await memory.listThreads({
501
+ filter: {
502
+ resourceId: 'user-123',
503
+ metadata: { priority: 'high', status: 'open' },
504
+ },
505
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
506
+ page: 0,
507
+ perPage: 20,
508
+ });
509
+ ```
510
+
511
+ **Security Improvements**
512
+ - Added validation to prevent SQL injection via malicious metadata keys
513
+ - Added pagination parameter validation to prevent integer overflow attacks
514
+
515
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
516
+
517
+ - Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
518
+
519
+ **What changed:**
520
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
521
+ - Added optional `fields` parameter to request only specific fields for better performance
522
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
523
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
524
+ - Removed `/execution-result` API endpoints from server (breaking change)
525
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
526
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
527
+
528
+ **Before:**
529
+
530
+ ```typescript
531
+ // Had to call two different methods for different data
532
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
533
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
534
+ ```
535
+
536
+ **After:**
537
+
538
+ ```typescript
539
+ // Single method returns everything
540
+ const run = await workflow.getWorkflowRunById(runId);
541
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
542
+
543
+ // Request only specific fields for better performance (avoids expensive step fetching)
544
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
545
+
546
+ // Skip nested workflow steps for faster response
547
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
548
+ ```
549
+
550
+ **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.
551
+
552
+ ### Patch Changes
553
+
554
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
555
+
556
+ Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
557
+
558
+ Each package includes:
559
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
560
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
561
+ - **Topic folders** - Conceptual documentation organized by feature area
562
+
563
+ Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
564
+
565
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
566
+
567
+ ```diff
568
+ + const run = await workflow.createRun({ runId: '123' });
569
+ - const stream = await run.streamVNext({ inputData: { ... } });
570
+ + const stream = await run.stream({ inputData: { ... } });
571
+ ```
572
+
573
+ - Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
574
+
575
+ - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
576
+
577
+ - Fix semantic search endpoint to return results in the correct format. Also fix the delete messages endpoint to properly normalize ids in the expected format. ([#10032](https://github.com/mastra-ai/mastra/pull/10032))
578
+
579
+ - Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
580
+ New packages:
581
+ - @mastra/express
582
+ - @mastra/hono
583
+
584
+ These packages support mastra server routes on express and hono respectively.
585
+ Better abstractions will be built on top of these packages in the near future, enabling users to easily attach mastra routes to any existing server framework.
586
+
587
+ - Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
588
+
589
+ - Fix type safety for message ordering - restrict `orderBy` to only accept `'createdAt'` field ([#11069](https://github.com/mastra-ai/mastra/pull/11069))
590
+
591
+ Messages don't have an `updatedAt` field, but the previous type allowed ordering by it, which would return empty results. This change adds compile-time type safety by making `StorageOrderBy` generic and restricting `StorageListMessagesInput.orderBy` to only accept `'createdAt'`. The API validation schemas have also been updated to reject invalid orderBy values at runtime.
592
+
593
+ - Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
594
+
595
+ - Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
596
+
597
+ **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.
598
+
599
+ **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.
600
+
601
+ **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.
602
+
603
+ - Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
604
+
605
+ - Added new /api/processors endpoints to list, get details, and execute processors. Processor workflows are now auto-detected based on their schema. ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
606
+
607
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
608
+
609
+ Consolidated the 3 different execution contexts to one
610
+
611
+ ```typescript
612
+ // before depending on the context the tool was executed in
613
+ tool.execute({ context: data });
614
+ tool.execute({ context: { inputData: data } });
615
+ tool.execute(data);
616
+
617
+ // now, for all contexts
618
+ tool.execute(data, context);
619
+ ```
620
+
621
+ **Before:**
622
+
623
+ ```typescript
624
+ inputSchema: z.object({ something: z.string() }),
625
+ execute: async ({ context, tracingContext, runId, ... }) => {
626
+ return doSomething(context.string);
627
+ }
628
+ ```
629
+
630
+ **After:**
631
+
632
+ ```typescript
633
+ inputSchema: z.object({ something: z.string() }),
634
+ execute: async (inputData, context) => {
635
+ const { agent, mcp, workflow, ...sharedContext } = context
636
+
637
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
638
+ if (agent) {
639
+ doSomething(inputData.something, agent)
640
+ // context that only a workflow would get like runId, state, suspend, resume, etc
641
+ } else if (workflow) {
642
+ doSomething(inputData.something, workflow)
643
+ // context that only a workflow would get like "extra", "elicitation"
644
+ } else if (mcp) {
645
+ doSomething(inputData.something, mcp)
646
+ } else {
647
+ // Running a tool in no execution context
648
+ return doSomething(inputData.something);
649
+ }
650
+ }
651
+ ```
652
+
653
+ - Removes the deprecated `threadId` and `resourceId` options from `AgentExecutionOptions`. These have been deprecated for months in favour of the `memory` option. ([#11897](https://github.com/mastra-ai/mastra/pull/11897))
654
+
655
+ ### Breaking Changes
656
+
657
+ #### `@mastra/core`
658
+
659
+ The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
660
+
661
+ ```ts
662
+ // Before
663
+ await agent.stream('Hello', {
664
+ threadId: 'thread-123',
665
+ resourceId: 'user-456',
666
+ });
667
+
668
+ // After
669
+ await agent.stream('Hello', {
670
+ memory: {
671
+ thread: 'thread-123',
672
+ resource: 'user-456',
673
+ },
674
+ });
675
+ ```
676
+
677
+ #### `@mastra/server`
678
+
679
+ The `threadId`, `resourceId`, and `resourceid` fields have been removed from the main agent execution body schema. The server now expects the `memory` option format in request bodies. Legacy routes (`/api/agents/:agentId/generate-legacy` and `/api/agents/:agentId/stream-legacy`) continue to support the deprecated fields.
680
+
681
+ #### `@mastra/react`
682
+
683
+ The `useChat` hook now internally converts `threadId` to the `memory` option format when making API calls. No changes needed in component code - the hook handles the conversion automatically.
684
+
685
+ #### `@mastra/client-js`
686
+
687
+ When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
688
+
689
+ ```ts
690
+ const agent = client.getAgent('my-agent');
691
+
692
+ // Before
693
+ await agent.generate([...], {
694
+ threadId: 'thread-123',
695
+ resourceId: 'user-456',
696
+ });
697
+
698
+ // After
699
+ await agent.generate([...], {
700
+ memory: {
701
+ thread: 'thread-123',
702
+ resource: 'user-456',
703
+ },
704
+ });
705
+ ```
706
+
707
+ - Fixed orderBy query parameter parsing for memory endpoints. The listMessages and listThreads endpoints now correctly parse orderBy when passed as a JSON string in URL query parameters, matching the existing behavior for include and filter parameters. ([#11767](https://github.com/mastra-ai/mastra/pull/11767))
708
+
709
+ - Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
710
+ - Add suspend/resume capabilities to agent network
711
+ - Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
712
+
713
+ `agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
714
+
715
+ - Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
716
+
717
+ - Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
718
+
719
+ Fixes an issue where complex query parameters (like `startedAt` and `endedAt` date range filters) would fail with "Expected object, received string" errors when using the `listTraces` API.
720
+
721
+ The fix addresses two issues:
722
+ - Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
723
+ - Ensures compatibility with both zod v3 and v4
724
+
725
+ - Add execution metadata to A2A message/send responses. The A2A protocol now returns detailed execution information including tool calls, tool results, token usage, and finish reason in the task metadata. This allows clients to inspect which tools were invoked during agent execution and access execution statistics without additional queries. ([#11241](https://github.com/mastra-ai/mastra/pull/11241))
726
+
727
+ - Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
728
+
729
+ - 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))
730
+
731
+ Tools created with `createTool({ inputSchema: z.object(...) })` now work without TypeScript errors.
732
+
733
+ - Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
734
+
735
+ The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
736
+
737
+ **Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
738
+
739
+ **Solution**:
740
+ - Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
741
+ - Kept handler transformation for defense in depth
742
+ - Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
743
+
744
+ This maintains backward compatibility with legacy clients while fixing the validation error.
745
+
746
+ Fixes #11412
747
+
748
+ - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
749
+
750
+ - Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
751
+
752
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
753
+
754
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
755
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
756
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
757
+
758
+ This significantly reduces response payload size and improves response times for large workflows.
759
+
760
+ ## Server Endpoint Usage
761
+
762
+ ```http
763
+ # Get only status (minimal payload - fastest)
764
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
765
+
766
+ # Get status and result
767
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
768
+
769
+ # Get all fields but without nested workflow data (faster)
770
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
771
+
772
+ # Get only specific fields without nested workflow data
773
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
774
+
775
+ # Get full data (default behavior)
776
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
777
+ ```
778
+
779
+ ## Client SDK Usage
780
+
781
+ ```typescript
782
+ import { MastraClient } from '@mastra/client-js';
783
+
784
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
785
+ const workflow = client.getWorkflow('myWorkflow');
786
+
787
+ // Get only status (minimal payload - fastest)
788
+ const statusOnly = await workflow.runExecutionResult(runId, {
789
+ fields: ['status'],
790
+ });
791
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
792
+
793
+ // Get status and result
794
+ const statusAndResult = await workflow.runExecutionResult(runId, {
795
+ fields: ['status', 'result'],
796
+ });
797
+
798
+ // Get all fields but without nested workflow data (faster)
799
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
800
+ withNestedWorkflows: false,
801
+ });
802
+
803
+ // Get specific fields without nested workflow data
804
+ const optimized = await workflow.runExecutionResult(runId, {
805
+ fields: ['status', 'steps'],
806
+ withNestedWorkflows: false,
807
+ });
808
+
809
+ // Get full execution result (default behavior)
810
+ const fullResult = await workflow.runExecutionResult(runId);
811
+ ```
812
+
813
+ ## Core API Changes
814
+
815
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
816
+
817
+ ```typescript
818
+ await workflow.getWorkflowRunExecutionResult(runId, {
819
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
820
+ fields: ['status', 'result'], // optional field filtering
821
+ });
822
+ ```
823
+
824
+ ## Inngest Compatibility
825
+
826
+ 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.
827
+
828
+ ## Performance Impact
829
+
830
+ For workflows with large step outputs:
831
+ - Requesting only `status`: ~99% reduction in payload size
832
+ - Requesting `status,result,error`: ~95% reduction in payload size
833
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
834
+ - Combining both: Maximum performance optimization
835
+
836
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
837
+
838
+ ### Summary
839
+
840
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
841
+
842
+ ### Migration Guide
843
+
844
+ All direct method calls on storage instances should be updated to use `getStore()`:
845
+
846
+ ```typescript
847
+ // Before
848
+ const thread = await storage.getThreadById({ threadId });
849
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
850
+ await storage.createSpan(span);
851
+
852
+ // After
853
+ const memory = await storage.getStore('memory');
854
+ const thread = await memory?.getThreadById({ threadId });
855
+
856
+ const workflows = await storage.getStore('workflows');
857
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
858
+
859
+ const observability = await storage.getStore('observability');
860
+ await observability?.createSpan(span);
861
+ ```
862
+
863
+ ### Available Domains
864
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
865
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
866
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
867
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
868
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
869
+
870
+ ### Breaking Changes
871
+ - Passthrough methods have been removed from `MastraStorage` base class
872
+ - All storage adapters now require accessing domains via `getStore()`
873
+ - The `stores` property on storage instances is now the canonical way to access domain storage
874
+
875
+ ### Internal Changes
876
+ - Each storage adapter now initializes domain-specific stores in its constructor
877
+ - Domain stores share database connections and handle their own table initialization
878
+
879
+ - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
880
+
881
+ - Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
882
+
883
+ - **Breaking Changes** ([#11028](https://github.com/mastra-ai/mastra/pull/11028))
884
+ - Renamed `RuntimeContext` type to `ServerContext` to avoid confusion with the user-facing `RequestContext` (previously called `RuntimeContext`)
885
+ - Removed `playground` and `isDev` options from server adapter constructors - these only set context variables without any actual functionality
886
+
887
+ **Changes**
888
+
889
+ **@mastra/server**
890
+ - Renamed `RuntimeContext` type to `ServerContext` in route handler types
891
+ - Renamed `createTestRuntimeContext` to `createTestServerContext` in test utilities
892
+ - Renamed `isPlayground` parameter to `isStudio` in `formatAgent` function
893
+
894
+ **@mastra/hono**
895
+ - Removed `playground` and `isDev` from `HonoVariables` type
896
+ - Removed setting of `playground` and `isDev` context variables in middleware
897
+
898
+ **@mastra/express**
899
+ - Removed `playground` and `isDev` from `Express.Locals` interface
900
+ - Removed setting of `playground` and `isDev` in response locals
901
+
902
+ - 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))
903
+
904
+ - Unified MastraServer API with MCP transport routes ([#10644](https://github.com/mastra-ai/mastra/pull/10644))
905
+
906
+ **Breaking Changes:**
907
+ - Renamed `HonoServerAdapter` to `MastraServer` in `@mastra/hono`
908
+ - Renamed `ExpressServerAdapter` to `MastraServer` in `@mastra/express`
909
+ - Configuration now passed to constructor instead of separate method calls
910
+ - Renamed base class from `ServerAdapter` to `MastraServerBase` in `@mastra/server`
911
+
912
+ **New Features:**
913
+ - Added MCP transport routes (HTTP and SSE) to server adapters
914
+ - MCP endpoints available at `/api/mcp/:serverId/mcp` (HTTP) and `/api/mcp/:serverId/sse` (SSE)
915
+ - Added `express.json()` middleware compatibility for MCP routes
916
+ - Moved authentication helpers from deployer to `@mastra/server/auth`
917
+
918
+ **Testing:**
919
+ - Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
920
+ - Added comprehensive MCP endpoint tests for both Hono and Express adapters
921
+ - Added GitHub Actions workflow for server adapter CI testing
922
+
923
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
924
+
925
+ `MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
926
+
927
+ ```typescript
928
+ import { MastraStorage } from '@mastra/core/storage';
929
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
930
+ import { MemoryLibSQL } from '@mastra/libsql';
931
+
932
+ // Compose domains from different stores
933
+ const storage = new MastraStorage({
934
+ id: 'composite',
935
+ domains: {
936
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
937
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
938
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
939
+ },
940
+ });
941
+ ```
942
+
943
+ **Breaking changes:**
944
+ - `storage.supports` property no longer exists
945
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
946
+
947
+ All stores now support the same features. For domain availability, use `getStore()`:
948
+
949
+ ```typescript
950
+ const store = await storage.getStore('memory');
951
+ if (store) {
952
+ // domain is available
953
+ }
954
+ ```
955
+
956
+ - Remove deprecated playground-only prompt generation handler (functionality moved to @mastra/server) ([#11074](https://github.com/mastra-ai/mastra/pull/11074))
957
+
958
+ Improve prompt enhancement UX: show toast errors when enhancement fails, disable button when no model has a configured API key, and prevent users from disabling all models in the model list
959
+
960
+ Add missing `/api/agents/:agentId/instructions/enhance` endpoint that was referenced by `@mastra/client-js` and `@mastra/playground-ui`
961
+
962
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
963
+
964
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
965
+
966
+ ```typescript
967
+ await workflow.deleteWorkflowRunById(runId);
968
+ ```
969
+
970
+ - Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
971
+
972
+ - Fix 'Memory is not initialized' error in playground for agents with sub-agents but no memory ([#11780](https://github.com/mastra-ai/mastra/pull/11780))
973
+
974
+ When using agents with sub-agents (e.g., agent networks) but no memory configured, the playground UI would log HTTPException errors when fetching messages for sub-agents without memory.
975
+
976
+ Changed GET /api/memory/threads/:threadId/messages to return empty messages `{ messages: [], uiMessages: [] }` instead of throwing 400 error when memory is not configured for the requested agent.
977
+
978
+ - Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
979
+
980
+ ```ts
981
+ // Before: HTTP request to localhost
982
+ const response = await fetch(`http://localhost:5000/api/tools`);
983
+
984
+ // After: Direct call via app.fetch()
985
+ const app = mastra.getServerApp<Hono>();
986
+ const response = await app.fetch(new Request('http://internal/api/tools'));
987
+ ```
988
+
989
+ - Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
990
+ - Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
991
+ - Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
992
+ - Server adapters now auto-register with Mastra in their constructor
993
+
994
+ - Add `/api/system/packages` endpoint that returns installed Mastra packages and versions from the dev environment ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
995
+
996
+ - Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
997
+
998
+ - Standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
999
+ - Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
1000
+ - Client SDK sends both param formats to support older server versions
1001
+ - Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
1002
+ - Marked `limit` and `offset` as deprecated in client types
1003
+
1004
+ - 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))
1005
+
1006
+ - **Client (`@mastra/client-js`):** ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
1007
+ - Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
1008
+
1009
+ **Server (`@mastra/server`):**
1010
+ - Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
1011
+ - Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
1012
+
1013
+ - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
1014
+
1015
+ - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
1016
+
1017
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
1018
+
1019
+ ```typescript
1020
+ // Clone a thread
1021
+ const { thread, clonedMessages } = await memory.cloneThread({
1022
+ sourceThreadId: 'thread-123',
1023
+ title: 'My Clone',
1024
+ options: {
1025
+ messageLimit: 10, // optional: only copy last N messages
1026
+ },
1027
+ });
1028
+
1029
+ // Check if a thread is a clone
1030
+ if (memory.isClone(thread)) {
1031
+ const source = await memory.getSourceThread(thread.id);
1032
+ }
1033
+
1034
+ // List all clones of a thread
1035
+ const clones = await memory.listClones('thread-123');
1036
+ ```
1037
+
1038
+ Includes:
1039
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
1040
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
1041
+ - Embeddings created for cloned messages (semantic recall)
1042
+ - Clone button in playground UI Memory tab
1043
+
1044
+ - The `stream` API endpoint now automatically redacts `request` data from stream chunks (`step-start`, `step-finish`, `finish`) which could contain system prompts, tool definitions, and API keys. Redaction is enabled by default and can be disabled for debugging/internal services via `streamOptions.redact`. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
1045
+
1046
+ - Remove `waitForEvent` from workflows. `waitForEvent` is now removed, please use suspend & resume flow instead. See https://mastra.ai/en/docs/workflows/suspend-and-resume for more details on suspend & resume flow. ([#9214](https://github.com/mastra-ai/mastra/pull/9214))
1047
+
1048
+ - 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))
1049
+ - When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
1050
+ - When `partial=true`: workflow steps are replaced with stepCount integer
1051
+ - When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
1052
+ - Maintains backward compatibility when partial parameter is not provided
1053
+
1054
+ **Server Endpoint Usage**
1055
+
1056
+ ```bash
1057
+ # Get partial agent data (no tool schemas)
1058
+ GET /api/agents?partial=true
1059
+
1060
+ # Get full agent data (default behavior)
1061
+ GET /api/agents
1062
+
1063
+ # Get partial workflow data (stepCount instead of steps, no schemas)
1064
+ GET /api/workflows?partial=true
1065
+
1066
+ # Get full workflow data (default behavior)
1067
+ GET /api/workflows
1068
+ ```
1069
+
1070
+ **Client SDK Usage**
1071
+
1072
+ ```typescript
1073
+ import { MastraClient } from '@mastra/client-js';
1074
+
1075
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1076
+
1077
+ // Get partial agent list (smaller payload)
1078
+ const partialAgents = await client.listAgents({ partial: true });
1079
+
1080
+ // Get full agent list with tool schemas
1081
+ const fullAgents = await client.listAgents();
1082
+
1083
+ // Get partial workflow list (smaller payload)
1084
+ const partialWorkflows = await client.listWorkflows({ partial: true });
1085
+
1086
+ // Get full workflow list with steps and schemas
1087
+ const fullWorkflows = await client.listWorkflows();
1088
+ ```
1089
+
1090
+ - Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
1091
+
1092
+ - 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))
1093
+
1094
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
1095
+
1096
+ ```typescript
1097
+ const run = await workflow.createRun();
1098
+ const result = await run.start({ inputData: { message: 'Hello' } });
1099
+
1100
+ if (result.status === 'tripwire') {
1101
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
1102
+ console.log('Processor ID:', result.tripwire?.processorId);
1103
+ console.log('Retry requested:', result.tripwire?.retry);
1104
+ }
1105
+ ```
1106
+
1107
+ Adds new UI state for tripwire in agent chat and workflow UI.
1108
+
1109
+ 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).
1110
+
1111
+ - 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))
1112
+
1113
+ - Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
1114
+
1115
+ - Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
1116
+
1117
+ When workflows use multiple agents sharing the same threadId/resourceId, users can now retrieve threads and messages without specifying an agentId. The server falls back to using storage directly when agentId is not provided.
1118
+
1119
+ - Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
1120
+
1121
+ The voice transcription endpoint (`/api/agents/:agentId/voice/listen`) now correctly handles multipart/form-data requests for audio uploads rather than only parsing JSON request bodies.
1122
+
1123
+ Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
1124
+
1125
+ **Breaking change:** The server schema field for the transcription endpoint was renamed from `audioData` to `audio` to match the client SDK. If you are making direct API calls to the transcription endpoint (not using the SDK), you will need to update your request body to use `audio` instead of `audioData`.
1126
+
1127
+ - Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
1128
+ - @mastra/core@1.0.0
1129
+
1130
+ ## 1.0.0-beta.27
1131
+
1132
+ ### Patch Changes
1133
+
1134
+ - Updated dependencies [[`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a)]:
1135
+ - @mastra/core@1.0.0-beta.27
1136
+
1137
+ ## 1.0.0-beta.26
1138
+
1139
+ ### Patch Changes
1140
+
1141
+ - Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
1142
+
1143
+ - Updated dependencies [[`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897)]:
1144
+ - @mastra/core@1.0.0-beta.26
1145
+
1146
+ ## 1.0.0-beta.25
1147
+
1148
+ ### Minor Changes
1149
+
1150
+ - Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
1151
+
1152
+ **Why:** This provides parity between `stream()` and `generate()` for tool approval flows, allowing non-streaming use cases to leverage `requireToolApproval` without needing to switch to streaming.
1153
+
1154
+ Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
1155
+
1156
+ **Using tool approval with generate()**
1157
+
1158
+ ```typescript
1159
+ const output = await agent.generate('Find user John', {
1160
+ requireToolApproval: true,
1161
+ });
1162
+
1163
+ // Check if a tool is waiting for approval
1164
+ if (output.finishReason === 'suspended') {
1165
+ console.log('Tool requires approval:', output.suspendPayload.toolName);
1166
+
1167
+ // Approve the tool call
1168
+ const result = await agent.approveToolCallGenerate({
1169
+ runId: output.runId,
1170
+ toolCallId: output.suspendPayload.toolCallId,
1171
+ });
1172
+
1173
+ console.log(result.text);
1174
+ }
1175
+ ```
1176
+
1177
+ **Declining a tool call**
1178
+
1179
+ ```typescript
1180
+ if (output.finishReason === 'suspended') {
1181
+ const result = await agent.declineToolCallGenerate({
1182
+ runId: output.runId,
1183
+ toolCallId: output.suspendPayload.toolCallId,
1184
+ });
1185
+ }
1186
+ ```
1187
+
1188
+ **New methods added:**
1189
+ - `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
1190
+ - `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
1191
+
1192
+ **Server routes added:**
1193
+ - `POST /api/agents/:agentId/approve-tool-call-generate`
1194
+ - `POST /api/agents/:agentId/decline-tool-call-generate`
1195
+
1196
+ The playground UI now also supports tool approval when using generate mode.
1197
+
1198
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
1199
+
1200
+ **New Features**
1201
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
1202
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
1203
+ - Full pagination and sorting support
1204
+
1205
+ **Example Usage**
1206
+
1207
+ ```typescript
1208
+ // List all threads
1209
+ const allThreads = await memory.listThreads({});
1210
+
1211
+ // Filter by resourceId only
1212
+ const userThreads = await memory.listThreads({
1213
+ filter: { resourceId: 'user-123' },
1214
+ });
1215
+
1216
+ // Filter by metadata only
1217
+ const supportThreads = await memory.listThreads({
1218
+ filter: { metadata: { category: 'support' } },
1219
+ });
1220
+
1221
+ // Filter by both with pagination
1222
+ const filteredThreads = await memory.listThreads({
1223
+ filter: {
1224
+ resourceId: 'user-123',
1225
+ metadata: { priority: 'high', status: 'open' },
1226
+ },
1227
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
1228
+ page: 0,
1229
+ perPage: 20,
1230
+ });
1231
+ ```
1232
+
1233
+ **Security Improvements**
1234
+ - Added validation to prevent SQL injection via malicious metadata keys
1235
+ - Added pagination parameter validation to prevent integer overflow attacks
1236
+
1237
+ ### Patch Changes
1238
+
1239
+ - Fix navigation for processors Studio tab ([#12062](https://github.com/mastra-ai/mastra/pull/12062))
1240
+
1241
+ - Added new /api/processors endpoints to list, get details, and execute processors. Processor workflows are now auto-detected based on their schema. ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
1242
+
1243
+ - Updated dependencies [[`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5)]:
1244
+ - @mastra/core@1.0.0-beta.25
1245
+
1246
+ ## 1.0.0-beta.24
1247
+
1248
+ ### Patch Changes
1249
+
1250
+ - Updated dependencies [[`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d)]:
1251
+ - @mastra/core@1.0.0-beta.24
1252
+
1253
+ ## 1.0.0-beta.23
1254
+
1255
+ ### Patch Changes
1256
+
1257
+ - Updated dependencies [[`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8)]:
1258
+ - @mastra/core@1.0.0-beta.23
1259
+
1260
+ ## 1.0.0-beta.22
1261
+
1262
+ ### Major Changes
1263
+
1264
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
1265
+
1266
+ This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
1267
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
1268
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
1269
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
1270
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
1271
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
1272
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
1273
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
1274
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
1275
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
1276
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
1277
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
1278
+ - Network route and streaming APIs updated to use plain OUTPUT generic
1279
+
1280
+ **Before:**
1281
+
1282
+ ```typescript
1283
+ const output = await agent.generate<z.ZodType>({
1284
+ messages: [...],
1285
+ structuredOutput: { schema: mySchema }
1286
+ });
1287
+
1288
+ **After:**
1289
+ const output = await agent.generate<z.infer<typeof mySchema>>({
1290
+ messages: [...],
1291
+ structuredOutput: { schema: mySchema }
1292
+ });
1293
+ // Or rely on type inference:
1294
+ const output = await agent.generate({
1295
+ messages: [...],
1296
+ structuredOutput: { schema: mySchema }
1297
+ });
1298
+
1299
+ ```
1300
+
1301
+ ### Patch Changes
1302
+
1303
+ - Removes the deprecated `threadId` and `resourceId` options from `AgentExecutionOptions`. These have been deprecated for months in favour of the `memory` option. ([#11897](https://github.com/mastra-ai/mastra/pull/11897))
1304
+
1305
+ ### Breaking Changes
1306
+
1307
+ #### `@mastra/core`
1308
+
1309
+ The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
1310
+
1311
+ ```ts
1312
+ // Before
1313
+ await agent.stream('Hello', {
1314
+ threadId: 'thread-123',
1315
+ resourceId: 'user-456',
1316
+ });
1317
+
1318
+ // After
1319
+ await agent.stream('Hello', {
1320
+ memory: {
1321
+ thread: 'thread-123',
1322
+ resource: 'user-456',
1323
+ },
1324
+ });
1325
+ ```
1326
+
1327
+ #### `@mastra/server`
1328
+
1329
+ The `threadId`, `resourceId`, and `resourceid` fields have been removed from the main agent execution body schema. The server now expects the `memory` option format in request bodies. Legacy routes (`/api/agents/:agentId/generate-legacy` and `/api/agents/:agentId/stream-legacy`) continue to support the deprecated fields.
1330
+
1331
+ #### `@mastra/react`
1332
+
1333
+ The `useChat` hook now internally converts `threadId` to the `memory` option format when making API calls. No changes needed in component code - the hook handles the conversion automatically.
1334
+
1335
+ #### `@mastra/client-js`
1336
+
1337
+ When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
1338
+
1339
+ ```ts
1340
+ const agent = client.getAgent('my-agent');
1341
+
1342
+ // Before
1343
+ await agent.generate({
1344
+ messages: [...],
1345
+ threadId: 'thread-123',
1346
+ resourceId: 'user-456',
1347
+ });
1348
+
1349
+ // After
1350
+ await agent.generate({
1351
+ messages: [...],
1352
+ memory: {
1353
+ thread: 'thread-123',
1354
+ resource: 'user-456',
1355
+ },
1356
+ });
1357
+ ```
1358
+
1359
+ - Fixed orderBy query parameter parsing for memory endpoints. The listMessages and listThreads endpoints now correctly parse orderBy when passed as a JSON string in URL query parameters, matching the existing behavior for include and filter parameters. ([#11767](https://github.com/mastra-ai/mastra/pull/11767))
1360
+
1361
+ - Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
1362
+ - Add suspend/resume capabilities to agent network
1363
+ - Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
1364
+
1365
+ `agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
1366
+
1367
+ - Fix 'Memory is not initialized' error in playground for agents with sub-agents but no memory ([#11780](https://github.com/mastra-ai/mastra/pull/11780))
1368
+
1369
+ When using agents with sub-agents (e.g., agent networks) but no memory configured, the playground UI would log HTTPException errors when fetching messages for sub-agents without memory.
1370
+
1371
+ Changed GET /api/memory/threads/:threadId/messages to return empty messages `{ messages: [], uiMessages: [] }` instead of throwing 400 error when memory is not configured for the requested agent.
1372
+
1373
+ - Updated dependencies [[`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617)]:
1374
+ - @mastra/core@1.0.0-beta.22
1375
+
1376
+ ## 1.0.0-beta.21
1377
+
1378
+ ### Patch Changes
1379
+
1380
+ - Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
1381
+
1382
+ - Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))
1383
+
1384
+ Fixes an issue where complex query parameters (like `startedAt` and `endedAt` date range filters) would fail with "Expected object, received string" errors when using the `listTraces` API.
1385
+
1386
+ The fix addresses two issues:
1387
+ - Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)
1388
+ - Ensures compatibility with both zod v3 and v4
1389
+
1390
+ - Updated dependencies [[`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c)]:
1391
+ - @mastra/core@1.0.0-beta.21
1392
+
1393
+ ## 1.0.0-beta.20
1394
+
1395
+ ### Minor Changes
1396
+
1397
+ - Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
1398
+
1399
+ **What changed:**
1400
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
1401
+ - Added optional `fields` parameter to request only specific fields for better performance
1402
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
1403
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
1404
+ - Removed `/execution-result` API endpoints from server (breaking change)
1405
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
1406
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
1407
+
1408
+ **Before:**
1409
+
1410
+ ```typescript
1411
+ // Had to call two different methods for different data
1412
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
1413
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
1414
+ ```
1415
+
1416
+ **After:**
1417
+
1418
+ ```typescript
1419
+ // Single method returns everything
1420
+ const run = await workflow.getWorkflowRunById(runId);
1421
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
1422
+
1423
+ // Request only specific fields for better performance (avoids expensive step fetching)
1424
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
1425
+
1426
+ // Skip nested workflow steps for faster response
1427
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
1428
+ ```
1429
+
1430
+ **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.
1431
+
1432
+ ### Patch Changes
1433
+
1434
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
1435
+
1436
+ Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
1437
+
1438
+ Each package includes:
1439
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
1440
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
1441
+ - **Topic folders** - Conceptual documentation organized by feature area
1442
+
1443
+ Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
1444
+
1445
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
1446
+
1447
+ ```diff
1448
+ + const run = await workflow.createRun({ runId: '123' });
1449
+ - const stream = await run.streamVNext({ inputData: { ... } });
1450
+ + const stream = await run.stream({ inputData: { ... } });
1451
+ ```
1452
+
1453
+ - Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))
1454
+
1455
+ **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.
1456
+
1457
+ **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.
1458
+
1459
+ **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.
1460
+
1461
+ - Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
1462
+
1463
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
1464
+
1465
+ ```typescript
1466
+ // Clone a thread
1467
+ const { thread, clonedMessages } = await memory.cloneThread({
1468
+ sourceThreadId: 'thread-123',
1469
+ title: 'My Clone',
1470
+ options: {
1471
+ messageLimit: 10, // optional: only copy last N messages
1472
+ },
1473
+ });
1474
+
1475
+ // Check if a thread is a clone
1476
+ if (memory.isClone(thread)) {
1477
+ const source = await memory.getSourceThread(thread.id);
1478
+ }
1479
+
1480
+ // List all clones of a thread
1481
+ const clones = await memory.listClones('thread-123');
1482
+ ```
1483
+
1484
+ Includes:
1485
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
1486
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
1487
+ - Embeddings created for cloned messages (semantic recall)
1488
+ - Clone button in playground UI Memory tab
1489
+
1490
+ - Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
1491
+
1492
+ When workflows use multiple agents sharing the same threadId/resourceId, users can now retrieve threads and messages without specifying an agentId. The server falls back to using storage directly when agentId is not provided.
1493
+
1494
+ - Updated dependencies [[`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c)]:
1495
+ - @mastra/core@1.0.0-beta.20
1496
+
1497
+ ## 1.0.0-beta.19
1498
+
1499
+ ### Patch Changes
1500
+
1501
+ - Updated dependencies [[`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7)]:
1502
+ - @mastra/core@1.0.0-beta.19
1503
+
1504
+ ## 1.0.0-beta.18
1505
+
1506
+ ### Patch Changes
1507
+
1508
+ - Updated dependencies [[`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93)]:
1509
+ - @mastra/core@1.0.0-beta.18
1510
+
1511
+ ## 1.0.0-beta.17
1512
+
1513
+ ### Patch Changes
1514
+
1515
+ - Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318)]:
1516
+ - @mastra/core@1.0.0-beta.17
1517
+
1518
+ ## 1.0.0-beta.16
1519
+
1520
+ ### Patch Changes
1521
+
1522
+ - Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
1523
+
1524
+ The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
1525
+
1526
+ **Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
1527
+
1528
+ **Solution**:
1529
+ - Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
1530
+ - Kept handler transformation for defense in depth
1531
+ - Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
1532
+
1533
+ This maintains backward compatibility with legacy clients while fixing the validation error.
1534
+
1535
+ Fixes #11412
1536
+
1537
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
1538
+
1539
+ `MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
1540
+
1541
+ ```typescript
1542
+ import { MastraStorage } from '@mastra/core/storage';
1543
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
1544
+ import { MemoryLibSQL } from '@mastra/libsql';
1545
+
1546
+ // Compose domains from different stores
1547
+ const storage = new MastraStorage({
1548
+ id: 'composite',
1549
+ domains: {
1550
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
1551
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
1552
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
1553
+ },
1554
+ });
1555
+ ```
1556
+
1557
+ **Breaking changes:**
1558
+ - `storage.supports` property no longer exists
1559
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
1560
+
1561
+ All stores now support the same features. For domain availability, use `getStore()`:
1562
+
1563
+ ```typescript
1564
+ const store = await storage.getStore('memory');
1565
+ if (store) {
1566
+ // domain is available
1567
+ }
1568
+ ```
1569
+
1570
+ - Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
1571
+ - @mastra/core@1.0.0-beta.16
1572
+
1573
+ ## 1.0.0-beta.15
1574
+
1575
+ ### Minor Changes
1576
+
1577
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
1578
+
1579
+ ## What changed
1580
+
1581
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
1582
+
1583
+ **Before:**
1584
+
1585
+ ```typescript
1586
+ // Old span structure
1587
+ span.agentId; // 'my-agent'
1588
+ span.toolId; // undefined
1589
+ span.workflowId; // undefined
1590
+ ```
1591
+
1592
+ **After:**
1593
+
1594
+ ```typescript
1595
+ // New span structure
1596
+ span.entityType; // EntityType.AGENT
1597
+ span.entityId; // 'my-agent'
1598
+ span.entityName; // 'My Agent'
1599
+ ```
1600
+
1601
+ ## New `listTraces()` API
1602
+
1603
+ Query traces with filtering, pagination, and sorting:
1604
+
1605
+ ```typescript
1606
+ const { spans, pagination } = await storage.listTraces({
1607
+ filters: {
1608
+ entityType: EntityType.AGENT,
1609
+ entityId: 'my-agent',
1610
+ userId: 'user-123',
1611
+ environment: 'production',
1612
+ status: TraceStatus.SUCCESS,
1613
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
1614
+ },
1615
+ pagination: { page: 0, perPage: 50 },
1616
+ orderBy: { field: 'startedAt', direction: 'DESC' },
1617
+ });
1618
+ ```
1619
+
1620
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
1621
+
1622
+ ## New retrieval methods
1623
+ - `getSpan({ traceId, spanId })` - Get a single span
1624
+ - `getRootSpan({ traceId })` - Get the root span of a trace
1625
+ - `getTrace({ traceId })` - Get all spans for a trace
1626
+
1627
+ ## Backward compatibility
1628
+
1629
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
1630
+
1631
+ ## Migration
1632
+
1633
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
1634
+
1635
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
1636
+
1637
+ ### Patch Changes
1638
+
1639
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
1640
+
1641
+ ### Summary
1642
+
1643
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
1644
+
1645
+ ### Migration Guide
1646
+
1647
+ All direct method calls on storage instances should be updated to use `getStore()`:
1648
+
1649
+ ```typescript
1650
+ // Before
1651
+ const thread = await storage.getThreadById({ threadId });
1652
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1653
+ await storage.createSpan(span);
1654
+
1655
+ // After
1656
+ const memory = await storage.getStore('memory');
1657
+ const thread = await memory?.getThreadById({ threadId });
1658
+
1659
+ const workflows = await storage.getStore('workflows');
1660
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1661
+
1662
+ const observability = await storage.getStore('observability');
1663
+ await observability?.createSpan(span);
1664
+ ```
1665
+
1666
+ ### Available Domains
1667
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
1668
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
1669
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
1670
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
1671
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
1672
+
1673
+ ### Breaking Changes
1674
+ - Passthrough methods have been removed from `MastraStorage` base class
1675
+ - All storage adapters now require accessing domains via `getStore()`
1676
+ - The `stores` property on storage instances is now the canonical way to access domain storage
1677
+
1678
+ ### Internal Changes
1679
+ - Each storage adapter now initializes domain-specific stores in its constructor
1680
+ - Domain stores share database connections and handle their own table initialization
1681
+
1682
+ - Add `/api/system/packages` endpoint that returns installed Mastra packages and versions from the dev environment ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
1683
+
1684
+ - Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
1685
+
1686
+ - Fixed voice transcription endpoint ([#11348](https://github.com/mastra-ai/mastra/pull/11348))
1687
+
1688
+ The voice transcription endpoint (`/api/agents/:agentId/voice/listen`) now correctly handles multipart/form-data requests for audio uploads rather than only parsing JSON request bodies.
1689
+
1690
+ Both Express and Hono adapters now parse multipart/form-data bodies and handle JSON-encoded form fields.
1691
+
1692
+ **Breaking change:** The server schema field for the transcription endpoint was renamed from `audioData` to `audio` to match the client SDK. If you are making direct API calls to the transcription endpoint (not using the SDK), you will need to update your request body to use `audio` instead of `audioData`.
1693
+
1694
+ - Updated dependencies [[`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde)]:
1695
+ - @mastra/core@1.0.0-beta.15
1696
+
1697
+ ## 1.0.0-beta.14
1698
+
1699
+ ### Patch Changes
1700
+
1701
+ - 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))
1702
+
1703
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
1704
+
1705
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
1706
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
1707
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
1708
+
1709
+ This significantly reduces response payload size and improves response times for large workflows.
1710
+
1711
+ ## Server Endpoint Usage
1712
+
1713
+ ```http
1714
+ # Get only status (minimal payload - fastest)
1715
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
1716
+
1717
+ # Get status and result
1718
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
1719
+
1720
+ # Get all fields but without nested workflow data (faster)
1721
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
1722
+
1723
+ # Get only specific fields without nested workflow data
1724
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
1725
+
1726
+ # Get full data (default behavior)
1727
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
1728
+ ```
1729
+
1730
+ ## Client SDK Usage
1731
+
1732
+ ```typescript
1733
+ import { MastraClient } from '@mastra/client-js';
1734
+
1735
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1736
+ const workflow = client.getWorkflow('myWorkflow');
1737
+
1738
+ // Get only status (minimal payload - fastest)
1739
+ const statusOnly = await workflow.runExecutionResult(runId, {
1740
+ fields: ['status'],
1741
+ });
1742
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
1743
+
1744
+ // Get status and result
1745
+ const statusAndResult = await workflow.runExecutionResult(runId, {
1746
+ fields: ['status', 'result'],
1747
+ });
1748
+
1749
+ // Get all fields but without nested workflow data (faster)
1750
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
1751
+ withNestedWorkflows: false,
1752
+ });
1753
+
1754
+ // Get specific fields without nested workflow data
1755
+ const optimized = await workflow.runExecutionResult(runId, {
1756
+ fields: ['status', 'steps'],
1757
+ withNestedWorkflows: false,
1758
+ });
1759
+
1760
+ // Get full execution result (default behavior)
1761
+ const fullResult = await workflow.runExecutionResult(runId);
1762
+ ```
1763
+
1764
+ ## Core API Changes
1765
+
1766
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
1767
+
1768
+ ```typescript
1769
+ await workflow.getWorkflowRunExecutionResult(runId, {
1770
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
1771
+ fields: ['status', 'result'], // optional field filtering
1772
+ });
1773
+ ```
1774
+
1775
+ ## Inngest Compatibility
1776
+
1777
+ 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.
1778
+
1779
+ ## Performance Impact
1780
+
1781
+ For workflows with large step outputs:
1782
+ - Requesting only `status`: ~99% reduction in payload size
1783
+ - Requesting `status,result,error`: ~95% reduction in payload size
1784
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
1785
+ - Combining both: Maximum performance optimization
1786
+
1787
+ - 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)]:
1788
+ - @mastra/core@1.0.0-beta.14
1789
+
1790
+ ## 1.0.0-beta.13
1791
+
1792
+ ### Patch Changes
1793
+
1794
+ - Updated dependencies [[`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497)]:
1795
+ - @mastra/core@1.0.0-beta.13
1796
+
1797
+ ## 1.0.0-beta.12
1798
+
1799
+ ### Patch Changes
1800
+
1801
+ - Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
1802
+
1803
+ - Fix MastraServer.tools typing to accept tools with input schemas ([`5118f38`](https://github.com/mastra-ai/mastra/commit/5118f384a70b1166012fde3b901f3227870b1009))
1804
+
1805
+ 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.
1806
+
1807
+ Tools created with `createTool({ inputSchema: z.object(...) })` now work without TypeScript errors.
1808
+
1809
+ - Remove deprecated playground-only prompt generation handler (functionality moved to @mastra/server) ([#11074](https://github.com/mastra-ai/mastra/pull/11074))
1810
+
1811
+ 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
1812
+
1813
+ Add missing `/api/agents/:agentId/instructions/enhance` endpoint that was referenced by `@mastra/client-js` and `@mastra/playground-ui`
1814
+
1815
+ - 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)]:
1816
+ - @mastra/core@1.0.0-beta.12
1817
+
1818
+ ## 1.0.0-beta.11
1819
+
1820
+ ### Patch Changes
1821
+
1822
+ - Fix type safety for message ordering - restrict `orderBy` to only accept `'createdAt'` field ([#11069](https://github.com/mastra-ai/mastra/pull/11069))
1823
+
1824
+ 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.
1825
+
1826
+ - 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))
1827
+
1828
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
1829
+
1830
+ ```typescript showLineNumbers copy
1831
+ const run = await workflow.createRun();
1832
+ const result = await run.start({ inputData: { message: 'Hello' } });
1833
+
1834
+ if (result.status === 'tripwire') {
1835
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
1836
+ console.log('Processor ID:', result.tripwire?.processorId);
1837
+ console.log('Retry requested:', result.tripwire?.retry);
1838
+ }
1839
+ ```
1840
+
1841
+ Adds new UI state for tripwire in agent chat and workflow UI.
1842
+
1843
+ 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).
1844
+
1845
+ - 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)]:
1846
+ - @mastra/core@1.0.0-beta.11
1847
+
1848
+ ## 1.0.0-beta.10
1849
+
1850
+ ### Patch Changes
1851
+
1852
+ - ### Breaking Changes ([#11028](https://github.com/mastra-ai/mastra/pull/11028))
1853
+ - Renamed `RuntimeContext` type to `ServerContext` to avoid confusion with the user-facing `RequestContext` (previously called `RuntimeContext`)
1854
+ - Removed `playground` and `isDev` options from server adapter constructors - these only set context variables without any actual functionality
1855
+
1856
+ ### Changes
1857
+
1858
+ **@mastra/server**
1859
+ - Renamed `RuntimeContext` type to `ServerContext` in route handler types
1860
+ - Renamed `createTestRuntimeContext` to `createTestServerContext` in test utilities
1861
+ - Renamed `isPlayground` parameter to `isStudio` in `formatAgent` function
1862
+
1863
+ **@mastra/hono**
1864
+ - Removed `playground` and `isDev` from `HonoVariables` type
1865
+ - Removed setting of `playground` and `isDev` context variables in middleware
1866
+
1867
+ **@mastra/express**
1868
+ - Removed `playground` and `isDev` from `Express.Locals` interface
1869
+ - Removed setting of `playground` and `isDev` in response locals
1870
+
1871
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
1872
+
1873
+ ```typescript
1874
+ await workflow.deleteWorkflowRunById(runId);
1875
+ ```
1876
+
1877
+ - 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)]:
1878
+ - @mastra/core@1.0.0-beta.10
1879
+
1880
+ ## 1.0.0-beta.9
1881
+
1882
+ ### Minor Changes
1883
+
1884
+ - Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
1885
+
1886
+ 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.
1887
+
1888
+ ```typescript
1889
+ import { Mastra } from '@mastra/core';
1890
+ import { LibSQLStore } from '@mastra/libsql';
1891
+
1892
+ const mastra = new Mastra({
1893
+ storage: new LibSQLStore({ url: ':memory:' }),
1894
+ tools: { myTool },
1895
+ scorers: { myScorer },
1896
+ });
1897
+
1898
+ // Create agent in storage via API or directly
1899
+ await mastra.getStorage().createAgent({
1900
+ agent: {
1901
+ id: 'my-agent',
1902
+ name: 'My Agent',
1903
+ instructions: 'You are helpful',
1904
+ model: { provider: 'openai', name: 'gpt-4' },
1905
+ tools: { myTool: {} },
1906
+ scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
1907
+ },
1908
+ });
1909
+
1910
+ // Load and use the agent
1911
+ const agent = await mastra.getStoredAgentById('my-agent');
1912
+ const response = await agent.generate({ messages: 'Hello!' });
1913
+
1914
+ // List all stored agents with pagination
1915
+ const { agents, total, hasMore } = await mastra.listStoredAgents({
1916
+ page: 0,
1917
+ perPage: 10,
1918
+ });
1919
+ ```
1920
+
1921
+ Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
1922
+
1923
+ ### Patch Changes
1924
+
1925
+ - 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)]:
1926
+ - @mastra/core@1.0.0-beta.9
1927
+
1928
+ ## 1.0.0-beta.8
1929
+
1930
+ ### Patch Changes
1931
+
1932
+ - 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)]:
1933
+ - @mastra/core@1.0.0-beta.8
1934
+
1935
+ ## 1.0.0-beta.7
1936
+
1937
+ ### Patch Changes
1938
+
1939
+ - fix: standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
1940
+ - Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
1941
+ - Client SDK sends both param formats to support older server versions
1942
+ - Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
1943
+ - Marked `limit` and `offset` as deprecated in client types
1944
+
1945
+ - feat: Add partial response support for agent and workflow list endpoints ([#10886](https://github.com/mastra-ai/mastra/pull/10886))
1946
+
1947
+ Add optional `partial` query parameter to `/api/agents` and `/api/workflows` endpoints to return minimal data without schemas, reducing payload size for list views:
1948
+ - When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
1949
+ - When `partial=true`: workflow steps are replaced with stepCount integer
1950
+ - When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
1951
+ - Maintains backward compatibility when partial parameter is not provided
1952
+
1953
+ ## Server Endpoint Usage
1954
+
1955
+ ```http
1956
+ # Get partial agent data (no tool schemas)
1957
+ GET /api/agents?partial=true
1958
+
1959
+ # Get full agent data (default behavior)
1960
+ GET /api/agents
1961
+
1962
+ # Get partial workflow data (stepCount instead of steps, no schemas)
1963
+ GET /api/workflows?partial=true
1964
+
1965
+ # Get full workflow data (default behavior)
1966
+ GET /api/workflows
1967
+ ```
1968
+
1969
+ ## Client SDK Usage
1970
+
1971
+ ```typescript
1972
+ import { MastraClient } from '@mastra/client-js';
1973
+
1974
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1975
+
1976
+ // Get partial agent list (smaller payload)
1977
+ const partialAgents = await client.listAgents({ partial: true });
1978
+
1979
+ // Get full agent list with tool schemas
1980
+ const fullAgents = await client.listAgents();
1981
+
1982
+ // Get partial workflow list (smaller payload)
1983
+ const partialWorkflows = await client.listWorkflows({ partial: true });
1984
+
1985
+ // Get full workflow list with steps and schemas
1986
+ const fullWorkflows = await client.listWorkflows();
1987
+ ```
1988
+
1989
+ - 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)]:
1990
+ - @mastra/core@1.0.0-beta.7
1991
+
1992
+ ## 1.0.0-beta.6
1993
+
1994
+ ### Patch Changes
1995
+
1996
+ - Unified MastraServer API with MCP transport routes ([#10644](https://github.com/mastra-ai/mastra/pull/10644))
1997
+
1998
+ **Breaking Changes:**
1999
+ - Renamed `HonoServerAdapter` to `MastraServer` in `@mastra/hono`
2000
+ - Renamed `ExpressServerAdapter` to `MastraServer` in `@mastra/express`
2001
+ - Configuration now passed to constructor instead of separate method calls
2002
+ - Renamed base class from `ServerAdapter` to `MastraServerBase` in `@mastra/server`
2003
+
2004
+ **New Features:**
2005
+ - Added MCP transport routes (HTTP and SSE) to server adapters
2006
+ - MCP endpoints available at `/api/mcp/:serverId/mcp` (HTTP) and `/api/mcp/:serverId/sse` (SSE)
2007
+ - Added `express.json()` middleware compatibility for MCP routes
2008
+ - Moved authentication helpers from deployer to `@mastra/server/auth`
2009
+
2010
+ **Testing:**
2011
+ - Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
2012
+ - Added comprehensive MCP endpoint tests for both Hono and Express adapters
2013
+ - Added GitHub Actions workflow for server adapter CI testing
2014
+
2015
+ - Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
2016
+
2017
+ ```ts
2018
+ // Before: HTTP request to localhost
2019
+ const response = await fetch(`http://localhost:5000/api/tools`);
2020
+
2021
+ // After: Direct call via app.fetch()
2022
+ const app = mastra.getServerApp<Hono>();
2023
+ const response = await app.fetch(new Request('http://internal/api/tools'));
2024
+ ```
2025
+
2026
+ - Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
2027
+ - Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
2028
+ - Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
2029
+ - Server adapters now auto-register with Mastra in their constructor
2030
+
2031
+ - fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
2032
+
2033
+ **Client (`@mastra/client-js`):**
2034
+ - Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
2035
+
2036
+ **Server (`@mastra/server`):**
2037
+ - Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
2038
+ - Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
2039
+
2040
+ - Add stream data redaction to prevent sensitive information leaks in agent stream API responses. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
2041
+
2042
+ 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`.
2043
+
2044
+ - 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)]:
2045
+ - @mastra/core@1.0.0-beta.6
2046
+
2047
+ ## 1.0.0-beta.5
2048
+
2049
+ ### Patch Changes
2050
+
2051
+ - Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
2052
+ New packages:
2053
+ - @mastra/express
2054
+ - @mastra/hono
2055
+
2056
+ These packages support mastra server routes on express and hono respectively.
2057
+ 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.
2058
+
2059
+ - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
2060
+
2061
+ - 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))
2062
+
2063
+ - 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)]:
2064
+ - @mastra/core@1.0.0-beta.5
2065
+
2066
+ ## 1.0.0-beta.4
2067
+
2068
+ ### Patch Changes
2069
+
2070
+ - 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))
2071
+
2072
+ - 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)]:
2073
+ - @mastra/core@1.0.0-beta.4
2074
+
2075
+ ## 1.0.0-beta.3
2076
+
2077
+ ### Patch Changes
2078
+
2079
+ - 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))
2080
+
2081
+ - 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)]:
2082
+ - @mastra/core@1.0.0-beta.3
2083
+
2084
+ ## 1.0.0-beta.2
2085
+
2086
+ ### Patch Changes
2087
+
2088
+ - Updated dependencies [[`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46)]:
2089
+ - @mastra/core@1.0.0-beta.2
2090
+
2091
+ ## 1.0.0-beta.1
2092
+
2093
+ ### Patch Changes
2094
+
2095
+ - Updated dependencies [[`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d)]:
2096
+ - @mastra/core@1.0.0-beta.1
2097
+
2098
+ ## 1.0.0-beta.0
4
2099
 
5
2100
  ### Major Changes
6
2101
 
2102
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
2103
+
2104
+ - 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))
2105
+
2106
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
2107
+
2108
+ - 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))
2109
+
2110
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
2111
+
2112
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
2113
+
2114
+ **Storage changes:**
2115
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
2116
+ - All storage implementations support `perPage: false`:
2117
+ - Memory: `listMessages()`
2118
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
2119
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
2120
+
2121
+ **Memory changes:**
2122
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
2123
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
2124
+
2125
+ **Stricter validation:**
2126
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
2127
+
2128
+ **Migration:**
2129
+
2130
+ ```typescript
2131
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
2132
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
2133
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
2134
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
2135
+
2136
+ // Memory: Replace selectBy with flat parameters
2137
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
2138
+ + memory.query({ threadId, perPage: 20, include: [...] })
2139
+
2140
+ // Client SDK
2141
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
2142
+ + thread.listMessages({ page: 0, perPage: 20 })
2143
+ ```
2144
+
2145
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
2146
+
2147
+ ## Storage Layer
2148
+
2149
+ ### BREAKING: Removed `storage.getMessages()`
2150
+
2151
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
2152
+
2153
+ **Migration:**
2154
+
2155
+ ```typescript
2156
+ // Before
2157
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
2158
+
2159
+ // After
2160
+ const result = await storage.listMessages({
2161
+ threadId: 'thread-1',
2162
+ page: 0,
2163
+ perPage: 50,
2164
+ });
2165
+ const messages = result.messages; // Access messages array
2166
+ console.log(result.total); // Total count
2167
+ console.log(result.hasMore); // Whether more pages exist
2168
+ ```
2169
+
2170
+ ### Message ordering default
2171
+
2172
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
2173
+
2174
+ **To use DESC ordering (newest first):**
2175
+
2176
+ ```typescript
2177
+ const result = await storage.listMessages({
2178
+ threadId: 'thread-1',
2179
+ orderBy: { field: 'createdAt', direction: 'DESC' },
2180
+ });
2181
+ ```
2182
+
2183
+ ## Client SDK
2184
+
2185
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
2186
+
2187
+ **Migration:**
2188
+
2189
+ ```typescript
2190
+ // Before
2191
+ const response = await client.getThreadMessages(threadId, { agentId });
2192
+
2193
+ // After
2194
+ const response = await client.listThreadMessages(threadId, { agentId });
2195
+ ```
2196
+
2197
+ The response format remains the same.
2198
+
2199
+ ## Type Changes
2200
+
2201
+ ### BREAKING: Removed `StorageGetMessagesArg` type
2202
+
2203
+ Use `StorageListMessagesInput` instead:
2204
+
2205
+ ```typescript
2206
+ // Before
2207
+ import type { StorageGetMessagesArg } from '@mastra/core';
2208
+
2209
+ // After
2210
+ import type { StorageListMessagesInput } from '@mastra/core';
2211
+ ```
2212
+
2213
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
2214
+
2215
+ - 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))
2216
+
2217
+ - 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))
2218
+
2219
+ 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.
2220
+
2221
+ Before:
2222
+
2223
+ ```typescript
2224
+ // Two methods that did the same thing
2225
+ memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
2226
+ memory.query({ threadId, resourceId, perPage, vectorSearchString });
2227
+ ```
2228
+
2229
+ After:
2230
+
2231
+ ```typescript
2232
+ // Single unified method with clear purpose
2233
+ memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
2234
+ ```
2235
+
2236
+ All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
2237
+
2238
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
2239
+
2240
+ - 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))
2241
+
2242
+ - 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))
2243
+
2244
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
2245
+
2246
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
2247
+
2248
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
2249
+
2250
+ ### What's Changed
2251
+ - Removed legacy v1 watch event handlers and types
2252
+ - Renamed `watch-v2` to `watch` throughout the codebase
2253
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
2254
+ - Removed `/watch` HTTP endpoints from server and deployer
2255
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
2256
+
2257
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
2258
+
2259
+ 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.
2260
+
2261
+ **Affected APIs:**
2262
+ - `Memory.listThreadsByResourceId()`
2263
+ - `Memory.listMessages()`
2264
+ - `Storage.listWorkflowRuns()`
2265
+
2266
+ **Migration:**
2267
+
2268
+ ```typescript
2269
+ // Before
2270
+ await memory.listThreadsByResourceId({
2271
+ resourceId: 'user-123',
2272
+ offset: 20,
2273
+ limit: 10,
2274
+ });
2275
+
2276
+ // After
2277
+ await memory.listThreadsByResourceId({
2278
+ resourceId: 'user-123',
2279
+ page: 2, // page = Math.floor(offset / limit)
2280
+ perPage: 10,
2281
+ });
2282
+
2283
+ // Before
2284
+ await memory.listMessages({
2285
+ threadId: 'thread-456',
2286
+ offset: 20,
2287
+ limit: 10,
2288
+ });
2289
+
2290
+ // After
2291
+ await memory.listMessages({
2292
+ threadId: 'thread-456',
2293
+ page: 2,
2294
+ perPage: 10,
2295
+ });
2296
+
2297
+ // Before
2298
+ await storage.listWorkflowRuns({
2299
+ workflowName: 'my-workflow',
2300
+ offset: 20,
2301
+ limit: 10,
2302
+ });
2303
+
2304
+ // After
2305
+ await storage.listWorkflowRuns({
2306
+ workflowName: 'my-workflow',
2307
+ page: 2,
2308
+ perPage: 10,
2309
+ });
2310
+ ```
2311
+
2312
+ **Additional improvements:**
2313
+ - Added validation for negative `page` values in all storage implementations
2314
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
2315
+ - Added reusable query parser utilities for consistent validation in handlers
2316
+
2317
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
2318
+
7
2319
  - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
8
2320
 
2321
+ - Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
2322
+
2323
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
2324
+
2325
+ - Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
2326
+
2327
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
2328
+ 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
2329
+
2330
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
2331
+
2332
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
2333
+
9
2334
  ### Minor Changes
10
2335
 
11
2336
  - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
@@ -35,6 +2360,8 @@
35
2360
 
36
2361
  Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
37
2362
 
2363
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
2364
+
38
2365
  - Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
39
2366
 
40
2367
  - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
@@ -45,18 +2372,84 @@
45
2372
 
46
2373
  - Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
47
2374
 
2375
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
2376
+
48
2377
  ### Patch Changes
49
2378
 
50
2379
  - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
51
2380
 
2381
+ - Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
2382
+
2383
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
2384
+
2385
+ Consolidated the 3 different execution contexts to one
2386
+
2387
+ ```typescript
2388
+ // before depending on the context the tool was executed in
2389
+ tool.execute({ context: data });
2390
+ tool.execute({ context: { inputData: data } });
2391
+ tool.execute(data);
2392
+
2393
+ // now, for all contexts
2394
+ tool.execute(data, context);
2395
+ ```
2396
+
2397
+ **Before:**
2398
+
2399
+ ```typescript
2400
+ inputSchema: z.object({ something: z.string() }),
2401
+ execute: async ({ context, tracingContext, runId, ... }) => {
2402
+ return doSomething(context.string);
2403
+ }
2404
+ ```
2405
+
2406
+ **After:**
2407
+
2408
+ ```typescript
2409
+ inputSchema: z.object({ something: z.string() }),
2410
+ execute: async (inputData, context) => {
2411
+ const { agent, mcp, workflow, ...sharedContext } = context
2412
+
2413
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
2414
+ if (agent) {
2415
+ doSomething(inputData.something, agent)
2416
+ // context that only a workflow would get like runId, state, suspend, resume, etc
2417
+ } else if (workflow) {
2418
+ doSomething(inputData.something, workflow)
2419
+ // context that only a workflow would get like "extra", "elicitation"
2420
+ } else if (mcp) {
2421
+ doSomething(inputData.something, mcp)
2422
+ } else {
2423
+ // Running a tool in no execution context
2424
+ return doSomething(inputData.something);
2425
+ }
2426
+ }
2427
+ ```
2428
+
2429
+ - Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
2430
+
2431
+ - Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
2432
+
52
2433
  - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
53
2434
 
2435
+ - Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
2436
+
2437
+ - 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))
2438
+
2439
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
2440
+
54
2441
  - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
55
2442
 
56
2443
  - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
57
2444
 
58
- - Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`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), [`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), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`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), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
59
- - @mastra/core@0.0.0-bundle-recursion-20251030002519
2445
+ - 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))
2446
+
2447
+ - Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
2448
+
2449
+ - Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
2450
+
2451
+ - 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)]:
2452
+ - @mastra/core@1.0.0-beta.0
60
2453
 
61
2454
  ## 0.22.2
62
2455