@mastra/client-js 0.0.0-error-handler-fix-20251020202607 → 0.0.0-execa-dynamic-import-20260304221256

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 (86) hide show
  1. package/CHANGELOG.md +3375 -3
  2. package/LICENSE.md +15 -0
  3. package/README.md +11 -13
  4. package/dist/_types/@ai-sdk_ui-utils/dist/index.d.ts +820 -0
  5. package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +10345 -0
  6. package/dist/client.d.ts +397 -75
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/docs/SKILL.md +44 -0
  9. package/dist/docs/assets/SOURCE_MAP.json +6 -0
  10. package/dist/docs/references/docs-server-auth-auth0.md +220 -0
  11. package/dist/docs/references/docs-server-auth-clerk.md +132 -0
  12. package/dist/docs/references/docs-server-auth-firebase.md +272 -0
  13. package/dist/docs/references/docs-server-auth-jwt.md +110 -0
  14. package/dist/docs/references/docs-server-auth-supabase.md +117 -0
  15. package/dist/docs/references/docs-server-auth-workos.md +186 -0
  16. package/dist/docs/references/docs-server-mastra-client.md +243 -0
  17. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +231 -0
  18. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-v4-messages.md +79 -0
  19. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-v5-messages.md +76 -0
  20. package/dist/docs/references/reference-client-js-agents.md +437 -0
  21. package/dist/docs/references/reference-client-js-error-handling.md +16 -0
  22. package/dist/docs/references/reference-client-js-logs.md +24 -0
  23. package/dist/docs/references/reference-client-js-mastra-client.md +63 -0
  24. package/dist/docs/references/reference-client-js-memory.md +221 -0
  25. package/dist/docs/references/reference-client-js-observability.md +72 -0
  26. package/dist/docs/references/reference-client-js-telemetry.md +20 -0
  27. package/dist/docs/references/reference-client-js-tools.md +44 -0
  28. package/dist/docs/references/reference-client-js-vectors.md +79 -0
  29. package/dist/docs/references/reference-client-js-workflows.md +199 -0
  30. package/dist/index.cjs +4575 -1896
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +4875 -2193
  33. package/dist/index.js.map +1 -1
  34. package/dist/resources/a2a.d.ts.map +1 -1
  35. package/dist/resources/agent-builder.d.ts +55 -62
  36. package/dist/resources/agent-builder.d.ts.map +1 -1
  37. package/dist/resources/agent.d.ts +89 -51
  38. package/dist/resources/agent.d.ts.map +1 -1
  39. package/dist/resources/base.d.ts +2 -1
  40. package/dist/resources/base.d.ts.map +1 -1
  41. package/dist/resources/index.d.ts +9 -0
  42. package/dist/resources/index.d.ts.map +1 -1
  43. package/dist/resources/mcp-tool.d.ts +5 -5
  44. package/dist/resources/mcp-tool.d.ts.map +1 -1
  45. package/dist/resources/memory-thread.d.ts +31 -16
  46. package/dist/resources/memory-thread.d.ts.map +1 -1
  47. package/dist/resources/observability.d.ts +62 -19
  48. package/dist/resources/observability.d.ts.map +1 -1
  49. package/dist/resources/processor-provider.d.ts +15 -0
  50. package/dist/resources/processor-provider.d.ts.map +1 -0
  51. package/dist/resources/processor.d.ts +20 -0
  52. package/dist/resources/processor.d.ts.map +1 -0
  53. package/dist/resources/run.d.ts +210 -0
  54. package/dist/resources/run.d.ts.map +1 -0
  55. package/dist/resources/stored-agent.d.ts +83 -0
  56. package/dist/resources/stored-agent.d.ts.map +1 -0
  57. package/dist/resources/stored-mcp-client.d.ts +30 -0
  58. package/dist/resources/stored-mcp-client.d.ts.map +1 -0
  59. package/dist/resources/stored-prompt-block.d.ts +83 -0
  60. package/dist/resources/stored-prompt-block.d.ts.map +1 -0
  61. package/dist/resources/stored-scorer.d.ts +83 -0
  62. package/dist/resources/stored-scorer.d.ts.map +1 -0
  63. package/dist/resources/stored-skill.d.ts +30 -0
  64. package/dist/resources/stored-skill.d.ts.map +1 -0
  65. package/dist/resources/tool-provider.d.ts +27 -0
  66. package/dist/resources/tool-provider.d.ts.map +1 -0
  67. package/dist/resources/tool.d.ts +4 -4
  68. package/dist/resources/vector.d.ts +5 -5
  69. package/dist/resources/vector.d.ts.map +1 -1
  70. package/dist/resources/workflow.d.ts +32 -231
  71. package/dist/resources/workflow.d.ts.map +1 -1
  72. package/dist/resources/workspace.d.ts +125 -0
  73. package/dist/resources/workspace.d.ts.map +1 -0
  74. package/dist/tools.d.ts +2 -2
  75. package/dist/tools.d.ts.map +1 -1
  76. package/dist/types.d.ts +1673 -146
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/utils/index.d.ts +56 -4
  79. package/dist/utils/index.d.ts.map +1 -1
  80. package/dist/utils/process-mastra-stream.d.ts +1 -1
  81. package/dist/utils/process-mastra-stream.d.ts.map +1 -1
  82. package/dist/utils/zod-to-json-schema.d.ts +9 -1
  83. package/dist/utils/zod-to-json-schema.d.ts.map +1 -1
  84. package/package.json +20 -18
  85. package/dist/resources/network-memory-thread.d.ts +0 -47
  86. package/dist/resources/network-memory-thread.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,11 +1,3383 @@
1
1
  # @mastra/client-js
2
2
 
3
- ## 0.0.0-error-handler-fix-20251020202607
3
+ ## 0.0.0-execa-dynamic-import-20260304221256
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
8
- - @mastra/core@0.0.0-error-handler-fix-20251020202607
7
+ - Fix agent losing conversation context ("amnesia") when using client-side tools with stateless server deployments. Recursive calls after tool execution now include the full conversation history when no `threadId` is provided. ([#11476](https://github.com/mastra-ai/mastra/pull/11476))
8
+
9
+ - Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`4e79496`](https://github.com/mastra-ai/mastra/commit/4e79496a7b4d1869e63d538418fc84cd7d84d86c), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:
10
+ - @mastra/core@0.0.0-execa-dynamic-import-20260304221256
11
+
12
+ ## 1.7.2
13
+
14
+ ### Patch Changes
15
+
16
+ - Added `getFullUrl` helper method for constructing auth redirect URLs and exported the `AuthCapabilities` type. HTTP retries now skip 4xx client errors to avoid retrying authentication failures. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))
17
+
18
+ - Fixed CMS features (Create an agent button, clone, edit, create scorer) not appearing in built output. The build command now writes package metadata so the studio can detect installed Mastra packages at runtime. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))
19
+
20
+ - Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:
21
+ - @mastra/core@1.9.0
22
+
23
+ ## 1.7.2-alpha.0
24
+
25
+ ### Patch Changes
26
+
27
+ - Added `getFullUrl` helper method for constructing auth redirect URLs and exported the `AuthCapabilities` type. HTTP retries now skip 4xx client errors to avoid retrying authentication failures. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))
28
+
29
+ - Fixed CMS features (Create an agent button, clone, edit, create scorer) not appearing in built output. The build command now writes package metadata so the studio can detect installed Mastra packages at runtime. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))
30
+
31
+ - Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:
32
+ - @mastra/core@1.9.0-alpha.0
33
+
34
+ ## 1.7.1
35
+
36
+ ### Patch Changes
37
+
38
+ - Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:
39
+ - @mastra/core@1.8.0
40
+ - @mastra/schema-compat@1.1.3
41
+
42
+ ## 1.7.1-alpha.0
43
+
44
+ ### Patch Changes
45
+
46
+ - Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:
47
+ - @mastra/core@1.8.0-alpha.0
48
+ - @mastra/schema-compat@1.1.3-alpha.0
49
+
50
+ ## 1.7.0
51
+
52
+ ### Minor Changes
53
+
54
+ - Added `StoredPromptBlock` resource to `MastraClient` with full CRUD operations — create, read, update, delete, list, and version management for prompt blocks. New types include `StoredPromptBlockResponse`, `CreateStoredPromptBlockParams`, `UpdateStoredPromptBlockParams`, and `PromptBlockVersionResponse`. ([#13351](https://github.com/mastra-ai/mastra/pull/13351))
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:
59
+ - @mastra/core@1.7.0
60
+
61
+ ## 1.7.0-alpha.0
62
+
63
+ ### Minor Changes
64
+
65
+ - Added `StoredPromptBlock` resource to `MastraClient` with full CRUD operations — create, read, update, delete, list, and version management for prompt blocks. New types include `StoredPromptBlockResponse`, `CreateStoredPromptBlockParams`, `UpdateStoredPromptBlockParams`, and `PromptBlockVersionResponse`. ([#13351](https://github.com/mastra-ai/mastra/pull/13351))
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:
70
+ - @mastra/core@1.7.0-alpha.0
71
+
72
+ ## 1.6.0
73
+
74
+ ### Minor Changes
75
+
76
+ - Added Processor Providers — a new system for configuring and hydrating processors on stored agents. Define custom processor types with config schemas, available phases, and a factory method, then compose them into serializable processor graphs that support sequential, parallel, and conditional execution. ([#13219](https://github.com/mastra-ai/mastra/pull/13219))
77
+
78
+ **Example — custom processor provider:**
79
+
80
+ ```ts
81
+ import { MastraEditor } from '@mastra/editor';
82
+
83
+ // Built-in processors (token-limiter, unicode-normalizer, etc.) are registered automatically.
84
+ // Only register custom providers for your own processors:
85
+ const editor = new MastraEditor({
86
+ processorProviders: {
87
+ 'my-custom-filter': myCustomFilterProvider,
88
+ },
89
+ });
90
+ ```
91
+
92
+ **Example — stored agent with a processor graph:**
93
+
94
+ ```ts
95
+ const agentConfig = {
96
+ inputProcessors: {
97
+ steps: [
98
+ {
99
+ type: 'step',
100
+ step: { id: 'norm', providerId: 'unicode-normalizer', config: {}, enabledPhases: ['processInput'] },
101
+ },
102
+ {
103
+ type: 'step',
104
+ step: {
105
+ id: 'limit',
106
+ providerId: 'token-limiter',
107
+ config: { limit: 4000 },
108
+ enabledPhases: ['processInput', 'processOutputStream'],
109
+ },
110
+ },
111
+ ],
112
+ },
113
+ };
114
+ ```
115
+
116
+ ### Patch Changes
117
+
118
+ - Added skill editing and workspace support in the agent CMS. Agents can now toggle skills on/off and associate a workspace. Fixed auto-versioning to compare against the latest draft version instead of the published one, preventing stale draft configs from being returned after saves. ([#13314](https://github.com/mastra-ai/mastra/pull/13314))
119
+
120
+ - Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:
121
+ - @mastra/core@1.6.0
122
+ - @mastra/schema-compat@1.1.2
123
+
124
+ ## 1.6.0-alpha.0
125
+
126
+ ### Minor Changes
127
+
128
+ - Added Processor Providers — a new system for configuring and hydrating processors on stored agents. Define custom processor types with config schemas, available phases, and a factory method, then compose them into serializable processor graphs that support sequential, parallel, and conditional execution. ([#13219](https://github.com/mastra-ai/mastra/pull/13219))
129
+
130
+ **Example — custom processor provider:**
131
+
132
+ ```ts
133
+ import { MastraEditor } from '@mastra/editor';
134
+
135
+ // Built-in processors (token-limiter, unicode-normalizer, etc.) are registered automatically.
136
+ // Only register custom providers for your own processors:
137
+ const editor = new MastraEditor({
138
+ processorProviders: {
139
+ 'my-custom-filter': myCustomFilterProvider,
140
+ },
141
+ });
142
+ ```
143
+
144
+ **Example — stored agent with a processor graph:**
145
+
146
+ ```ts
147
+ const agentConfig = {
148
+ inputProcessors: {
149
+ steps: [
150
+ {
151
+ type: 'step',
152
+ step: { id: 'norm', providerId: 'unicode-normalizer', config: {}, enabledPhases: ['processInput'] },
153
+ },
154
+ {
155
+ type: 'step',
156
+ step: {
157
+ id: 'limit',
158
+ providerId: 'token-limiter',
159
+ config: { limit: 4000 },
160
+ enabledPhases: ['processInput', 'processOutputStream'],
161
+ },
162
+ },
163
+ ],
164
+ },
165
+ };
166
+ ```
167
+
168
+ ### Patch Changes
169
+
170
+ - Added skill editing and workspace support in the agent CMS. Agents can now toggle skills on/off and associate a workspace. Fixed auto-versioning to compare against the latest draft version instead of the published one, preventing stale draft configs from being returned after saves. ([#13314](https://github.com/mastra-ai/mastra/pull/13314))
171
+
172
+ - Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`b260123`](https://github.com/mastra-ai/mastra/commit/b2601234bd093d358c92081a58f9b0befdae52b3), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:
173
+ - @mastra/core@1.6.0-alpha.0
174
+ - @mastra/schema-compat@1.1.2-alpha.0
175
+
176
+ ## 1.5.0
177
+
178
+ ### Minor Changes
179
+
180
+ - Added scorer version management and CMS draft/publish flow for scorers. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
181
+ - Added scorer version methods to the client SDK: `listVersions`, `createVersion`, `getVersion`, `activateVersion`, `restoreVersion`, `deleteVersion`, `compareVersions`.
182
+ - Added `ScorerVersionCombobox` for navigating scorer versions with Published/Draft labels.
183
+ - Scorer edit page now supports Save (draft) and Publish workflows with an "Unpublished changes" indicator.
184
+ - Storage list methods for agents and scorers no longer default to filtering only published entities, allowing drafts to appear in the playground.
185
+
186
+ ### Patch Changes
187
+
188
+ - Fixed schema form to apply changes only on Save click instead of every keystroke. Removed AgentPromptExperimentProvider in favor of inline prompt rendering. Switched hooks to use merged request context for proper request-scoped data fetching. ([#13034](https://github.com/mastra-ai/mastra/pull/13034))
189
+
190
+ - Fixed conditional rules not being persisted for workflows, agents, and scorers when creating or updating agents in the CMS. Rules configured on these entities are now correctly saved to storage. ([#13044](https://github.com/mastra-ai/mastra/pull/13044))
191
+
192
+ - Added requestContext support to listScorers for request-scoped scorer resolution ([#13034](https://github.com/mastra-ai/mastra/pull/13034))
193
+
194
+ - Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))
195
+
196
+ Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{"type": "object"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.
197
+
198
+ Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: ["name"]` constraint when existing items lack a `name` field now shows "2 existing item(s) fail validation" in the dialog instead of silently dropping the error.
199
+
200
+ Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.
201
+
202
+ Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.
203
+
204
+ - CMS draft support with status badges for agents. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
205
+ - Agent list now resolves the latest (draft) version for each stored agent, showing current edits rather than the last published state.
206
+ - Added `hasDraft` and `activeVersionId` fields to the agent list API response.
207
+ - Agent list badges: "Published" (green) when a published version exists, "Draft" (colored when unpublished changes exist, grayed out otherwise).
208
+ - Added `resolvedVersionId` to all `StorageResolved*Type` types so the server can detect whether the latest version differs from the active version.
209
+ - Added `status` option to `GetByIdOptions` to allow resolving draft vs published versions through the editor layer.
210
+ - Fixed editor cache not being cleared on version activate, restore, and delete — all four versioned domains (agents, scorers, prompt-blocks, mcp-clients) now clear the cache after version mutations.
211
+ - Added `ALTER TABLE` migration for `mastra_agent_versions` in libsql and pg to add newer columns (`mcpClients`, `requestContextSchema`, `workspace`, `skills`, `skillsFormat`).
212
+
213
+ - Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`1415bcd`](https://github.com/mastra-ai/mastra/commit/1415bcd894baba03e07640b3b1986037db49559d), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:
214
+ - @mastra/core@1.5.0
215
+ - @mastra/schema-compat@1.1.1
216
+
217
+ ## 1.5.0-alpha.1
218
+
219
+ ### Patch Changes
220
+
221
+ - Updated dependencies [[`1415bcd`](https://github.com/mastra-ai/mastra/commit/1415bcd894baba03e07640b3b1986037db49559d)]:
222
+ - @mastra/schema-compat@1.1.1-alpha.0
223
+ - @mastra/core@1.5.0-alpha.1
224
+
225
+ ## 1.5.0-alpha.0
226
+
227
+ ### Minor Changes
228
+
229
+ - Added scorer version management and CMS draft/publish flow for scorers. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
230
+ - Added scorer version methods to the client SDK: `listVersions`, `createVersion`, `getVersion`, `activateVersion`, `restoreVersion`, `deleteVersion`, `compareVersions`.
231
+ - Added `ScorerVersionCombobox` for navigating scorer versions with Published/Draft labels.
232
+ - Scorer edit page now supports Save (draft) and Publish workflows with an "Unpublished changes" indicator.
233
+ - Storage list methods for agents and scorers no longer default to filtering only published entities, allowing drafts to appear in the playground.
234
+
235
+ ### Patch Changes
236
+
237
+ - Fixed schema form to apply changes only on Save click instead of every keystroke. Removed AgentPromptExperimentProvider in favor of inline prompt rendering. Switched hooks to use merged request context for proper request-scoped data fetching. ([#13034](https://github.com/mastra-ai/mastra/pull/13034))
238
+
239
+ - Fixed conditional rules not being persisted for workflows, agents, and scorers when creating or updating agents in the CMS. Rules configured on these entities are now correctly saved to storage. ([#13044](https://github.com/mastra-ai/mastra/pull/13044))
240
+
241
+ - Added requestContext support to listScorers for request-scoped scorer resolution ([#13034](https://github.com/mastra-ai/mastra/pull/13034))
242
+
243
+ - Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))
244
+
245
+ Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{"type": "object"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.
246
+
247
+ Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: ["name"]` constraint when existing items lack a `name` field now shows "2 existing item(s) fail validation" in the dialog instead of silently dropping the error.
248
+
249
+ Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.
250
+
251
+ Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.
252
+
253
+ - CMS draft support with status badges for agents. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
254
+ - Agent list now resolves the latest (draft) version for each stored agent, showing current edits rather than the last published state.
255
+ - Added `hasDraft` and `activeVersionId` fields to the agent list API response.
256
+ - Agent list badges: "Published" (green) when a published version exists, "Draft" (colored when unpublished changes exist, grayed out otherwise).
257
+ - Added `resolvedVersionId` to all `StorageResolved*Type` types so the server can detect whether the latest version differs from the active version.
258
+ - Added `status` option to `GetByIdOptions` to allow resolving draft vs published versions through the editor layer.
259
+ - Fixed editor cache not being cleared on version activate, restore, and delete — all four versioned domains (agents, scorers, prompt-blocks, mcp-clients) now clear the cache after version mutations.
260
+ - Added `ALTER TABLE` migration for `mastra_agent_versions` in libsql and pg to add newer columns (`mcpClients`, `requestContextSchema`, `workspace`, `skills`, `skillsFormat`).
261
+
262
+ - Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:
263
+ - @mastra/core@1.5.0-alpha.0
264
+
265
+ ## 1.4.0
266
+
267
+ ### Minor Changes
268
+
269
+ - Added client methods for the Datasets and Experiments API. New methods on `MastraClient`: ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
270
+ - `listDatasets`, `getDataset`, `createDataset`, `updateDataset`, `deleteDataset`
271
+ - `listDatasetItems`, `getDatasetItem`, `addDatasetItem`, `updateDatasetItem`, `deleteDatasetItem`
272
+ - `batchInsertDatasetItems`, `batchDeleteDatasetItems`
273
+ - `listDatasetVersions`, `getItemHistory`, `getDatasetItemVersion`
274
+ - `listDatasetExperiments`, `getDatasetExperiment`, `listDatasetExperimentResults`
275
+ - `triggerDatasetExperiment`, `compareExperiments`
276
+
277
+ - Added observational memory configuration support for stored agents. When creating or editing a stored agent in the playground, you can now enable observational memory and configure its settings including model provider/name, scope (thread or resource), share token budget, and detailed observer/reflector parameters like token limits, buffer settings, and blocking thresholds. The configuration is serialized as part of the agent's memory config and round-trips through storage. ([#12962](https://github.com/mastra-ai/mastra/pull/12962))
278
+
279
+ **Example usage in the playground:**
280
+
281
+ Enable the Observational Memory toggle in the Memory section, then configure:
282
+ - Top-level model (provider + model) used by both observer and reflector
283
+ - Scope: `thread` (per-conversation) or `resource` (shared across threads)
284
+ - Expand **Observer** or **Reflector** sections to override models and tune token budgets
285
+
286
+ **Programmatic usage via client SDK:**
287
+
288
+ ```ts
289
+ await client.createStoredAgent({
290
+ name: 'My Agent',
291
+ // ...other config
292
+ memory: {
293
+ observationalMemory: true, // enable with defaults
294
+ options: { lastMessages: 40 },
295
+ },
296
+ });
297
+
298
+ // Or with custom configuration:
299
+ await client.createStoredAgent({
300
+ name: 'My Agent',
301
+ memory: {
302
+ observationalMemory: {
303
+ model: 'google/gemini-2.5-flash',
304
+ scope: 'resource',
305
+ shareTokenBudget: true,
306
+ observation: { messageTokens: 50000 },
307
+ reflection: { observationTokens: 60000 },
308
+ },
309
+ options: { lastMessages: 40 },
310
+ },
311
+ });
312
+ ```
313
+
314
+ **Programmatic usage via editor:**
315
+
316
+ ```ts
317
+ await editor.agent.create({
318
+ name: 'My Agent',
319
+ // ...other config
320
+ memory: {
321
+ observationalMemory: true, // enable with defaults
322
+ options: { lastMessages: 40 },
323
+ },
324
+ });
325
+
326
+ // Or with custom configuration:
327
+ await editor.agent.create({
328
+ name: 'My Agent',
329
+ memory: {
330
+ observationalMemory: {
331
+ model: 'google/gemini-2.5-flash',
332
+ scope: 'resource',
333
+ shareTokenBudget: true,
334
+ observation: { messageTokens: 50000 },
335
+ reflection: { observationTokens: 60000 },
336
+ },
337
+ options: { lastMessages: 40 },
338
+ },
339
+ });
340
+ ```
341
+
342
+ ### Patch Changes
343
+
344
+ - Fix `base64RequestContext` to handle non-ASCII characters (e.g. CJK, em-dashes, emoji) without throwing `InvalidCharacterError`. The previous implementation used `btoa()` directly, which only supports Latin1 characters. Now encodes via `TextEncoder` to UTF-8 bytes first, which is compatible with the existing server-side `Buffer.from(str, 'base64').toString('utf-8')` decode. ([#13009](https://github.com/mastra-ai/mastra/pull/13009))
345
+
346
+ - Fixed `Content-Type: application/json` header not being sent on DELETE requests with a body. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
347
+
348
+ - Fixed `ClientAgent.network()` to properly convert `structuredOutput.schema` and `requestContext` before sending to the server, matching the existing behavior of `generate()` and `stream()`. Previously, Zod schemas passed to `network()` lost non-enumerable properties during JSON serialization, causing the server to misidentify them as pre-converted JSON Schema and resulting in OpenAI rejecting the malformed schema. ([#12942](https://github.com/mastra-ai/mastra/pull/12942))
349
+
350
+ - Added client SDK resources for stored MCP clients and tool providers. ([#12974](https://github.com/mastra-ai/mastra/pull/12974))
351
+
352
+ **Stored MCP Client Resource**
353
+
354
+ New `StoredMCPClient` resource class with methods for managing MCP client configurations:
355
+
356
+ ```ts
357
+ const client = new MastraClient({ baseUrl: '...' });
358
+
359
+ // CRUD operations
360
+ const mcpClients = await client.storedMCPClient.list();
361
+ const mcpClient = await client.storedMCPClient.get('my-mcp');
362
+ await client.storedMCPClient.create('my-mcp', { name: 'My MCP', servers: { ... } });
363
+ await client.storedMCPClient.delete('my-mcp');
364
+ ```
365
+
366
+ **Tool Provider Resource**
367
+
368
+ New `ToolProvider` resource class for browsing registered tool providers:
369
+
370
+ ```ts
371
+ const providers = await client.listToolProviders();
372
+ const provider = await client.getToolProvider('composio');
373
+ ```
374
+
375
+ Updated agent types to include `mcpClients` and `integrationTools` conditional fields.
376
+
377
+ - Updated instructions type to support both plain strings and structured instruction blocks ([#12864](https://github.com/mastra-ai/mastra/pull/12864))
378
+
379
+ - Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:
380
+ - @mastra/core@1.4.0
381
+
382
+ ## 1.4.0-alpha.0
383
+
384
+ ### Minor Changes
385
+
386
+ - Added client methods for the Datasets and Experiments API. New methods on `MastraClient`: ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
387
+ - `listDatasets`, `getDataset`, `createDataset`, `updateDataset`, `deleteDataset`
388
+ - `listDatasetItems`, `getDatasetItem`, `addDatasetItem`, `updateDatasetItem`, `deleteDatasetItem`
389
+ - `batchInsertDatasetItems`, `batchDeleteDatasetItems`
390
+ - `listDatasetVersions`, `getItemHistory`, `getDatasetItemVersion`
391
+ - `listDatasetExperiments`, `getDatasetExperiment`, `listDatasetExperimentResults`
392
+ - `triggerDatasetExperiment`, `compareExperiments`
393
+
394
+ - Added observational memory configuration support for stored agents. When creating or editing a stored agent in the playground, you can now enable observational memory and configure its settings including model provider/name, scope (thread or resource), share token budget, and detailed observer/reflector parameters like token limits, buffer settings, and blocking thresholds. The configuration is serialized as part of the agent's memory config and round-trips through storage. ([#12962](https://github.com/mastra-ai/mastra/pull/12962))
395
+
396
+ **Example usage in the playground:**
397
+
398
+ Enable the Observational Memory toggle in the Memory section, then configure:
399
+ - Top-level model (provider + model) used by both observer and reflector
400
+ - Scope: `thread` (per-conversation) or `resource` (shared across threads)
401
+ - Expand **Observer** or **Reflector** sections to override models and tune token budgets
402
+
403
+ **Programmatic usage via client SDK:**
404
+
405
+ ```ts
406
+ await client.createStoredAgent({
407
+ name: 'My Agent',
408
+ // ...other config
409
+ memory: {
410
+ observationalMemory: true, // enable with defaults
411
+ options: { lastMessages: 40 },
412
+ },
413
+ });
414
+
415
+ // Or with custom configuration:
416
+ await client.createStoredAgent({
417
+ name: 'My Agent',
418
+ memory: {
419
+ observationalMemory: {
420
+ model: 'google/gemini-2.5-flash',
421
+ scope: 'resource',
422
+ shareTokenBudget: true,
423
+ observation: { messageTokens: 50000 },
424
+ reflection: { observationTokens: 60000 },
425
+ },
426
+ options: { lastMessages: 40 },
427
+ },
428
+ });
429
+ ```
430
+
431
+ **Programmatic usage via editor:**
432
+
433
+ ```ts
434
+ await editor.agent.create({
435
+ name: 'My Agent',
436
+ // ...other config
437
+ memory: {
438
+ observationalMemory: true, // enable with defaults
439
+ options: { lastMessages: 40 },
440
+ },
441
+ });
442
+
443
+ // Or with custom configuration:
444
+ await editor.agent.create({
445
+ name: 'My Agent',
446
+ memory: {
447
+ observationalMemory: {
448
+ model: 'google/gemini-2.5-flash',
449
+ scope: 'resource',
450
+ shareTokenBudget: true,
451
+ observation: { messageTokens: 50000 },
452
+ reflection: { observationTokens: 60000 },
453
+ },
454
+ options: { lastMessages: 40 },
455
+ },
456
+ });
457
+ ```
458
+
459
+ ### Patch Changes
460
+
461
+ - Fix `base64RequestContext` to handle non-ASCII characters (e.g. CJK, em-dashes, emoji) without throwing `InvalidCharacterError`. The previous implementation used `btoa()` directly, which only supports Latin1 characters. Now encodes via `TextEncoder` to UTF-8 bytes first, which is compatible with the existing server-side `Buffer.from(str, 'base64').toString('utf-8')` decode. ([#13009](https://github.com/mastra-ai/mastra/pull/13009))
462
+
463
+ - Fixed `Content-Type: application/json` header not being sent on DELETE requests with a body. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
464
+
465
+ - Fixed `ClientAgent.network()` to properly convert `structuredOutput.schema` and `requestContext` before sending to the server, matching the existing behavior of `generate()` and `stream()`. Previously, Zod schemas passed to `network()` lost non-enumerable properties during JSON serialization, causing the server to misidentify them as pre-converted JSON Schema and resulting in OpenAI rejecting the malformed schema. ([#12942](https://github.com/mastra-ai/mastra/pull/12942))
466
+
467
+ - Added client SDK resources for stored MCP clients and tool providers. ([#12974](https://github.com/mastra-ai/mastra/pull/12974))
468
+
469
+ **Stored MCP Client Resource**
470
+
471
+ New `StoredMCPClient` resource class with methods for managing MCP client configurations:
472
+
473
+ ```ts
474
+ const client = new MastraClient({ baseUrl: '...' });
475
+
476
+ // CRUD operations
477
+ const mcpClients = await client.storedMCPClient.list();
478
+ const mcpClient = await client.storedMCPClient.get('my-mcp');
479
+ await client.storedMCPClient.create('my-mcp', { name: 'My MCP', servers: { ... } });
480
+ await client.storedMCPClient.delete('my-mcp');
481
+ ```
482
+
483
+ **Tool Provider Resource**
484
+
485
+ New `ToolProvider` resource class for browsing registered tool providers:
486
+
487
+ ```ts
488
+ const providers = await client.listToolProviders();
489
+ const provider = await client.getToolProvider('composio');
490
+ ```
491
+
492
+ Updated agent types to include `mcpClients` and `integrationTools` conditional fields.
493
+
494
+ - Updated instructions type to support both plain strings and structured instruction blocks ([#12864](https://github.com/mastra-ai/mastra/pull/12864))
495
+
496
+ - Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:
497
+ - @mastra/core@1.4.0-alpha.0
498
+
499
+ ## 1.3.0
500
+
501
+ ### Minor Changes
502
+
503
+ - **Added stored scorer CRUD API and updated editor namespace calls** ([#12846](https://github.com/mastra-ai/mastra/pull/12846))
504
+ - Added server routes for stored scorer definitions: create, read, update, delete, list, and list resolved
505
+ - Added `StoredScorer` resource to the client SDK with full CRUD support
506
+ - Updated all server handlers to use the new editor namespace pattern (`editor.agent.getById`, `editor.agent.list`, `editor.prompt.preview`) and generic storage domain methods (`store.create`, `store.getById`, `store.delete`)
507
+
508
+ - Added `requestContextSchema` to stored agent types and replaced local conditional field type definitions with re-exports from `@mastra/core/storage` (`Rule`, `RuleGroup`, `StorageConditionalVariant`, `StorageConditionalField`). Existing type aliases (`StoredAgentRule`, `StoredAgentRuleGroup`, `ConditionalVariant`, `ConditionalField`) are preserved for backward compatibility. ([#12896](https://github.com/mastra-ai/mastra/pull/12896))
509
+
510
+ - Add clone agent feature. Code-defined or stored agents can be cloned into new stored agents via the client SDK: ([#12861](https://github.com/mastra-ai/mastra/pull/12861))
511
+
512
+ ```ts
513
+ const client = new MastraClient();
514
+ const cloned = await client.getAgent('my-agent').clone({
515
+ newName: 'My Agent Copy',
516
+ requestContext: { workspace: 'dev' },
517
+ });
518
+ ```
519
+
520
+ The clone serializes the agent's full resolved configuration — model, instructions, tools, workflows, sub-agents, memory, input/output processors, and scorers — using the caller's `requestContext` and persists it as a new stored agent.
521
+
522
+ - Add tool description overrides for stored agents: ([#12794](https://github.com/mastra-ai/mastra/pull/12794))
523
+ - Changed stored agent `tools` field from `string[]` to `Record<string, { description?: string }>` to allow per-tool description overrides
524
+ - When a stored agent specifies a custom `description` for a tool, the override is applied at resolution time
525
+ - Updated server API schemas, client SDK types, and editor resolution logic accordingly
526
+
527
+ ### Patch Changes
528
+
529
+ - Fixed multiple issues with stored agents: ([#12861](https://github.com/mastra-ai/mastra/pull/12861))
530
+ 1. **Memory field can now be disabled**: Fixed an issue where the memory field couldn't be set to `null` to disable memory on stored agents. The update endpoint now accepts `memory: null` to explicitly disable memory configuration.
531
+ 2. **Agent-level scorers are now discoverable**: Fixed an issue where scorers attached to code-defined agents (e.g., answer relevancy scorer) were not available in the scorer dropdown for stored agents. The system now automatically registers agent-level scorers with the Mastra instance, making them discoverable through `resolveStoredScorers`.
532
+ 3. **Agent IDs are now derived from names**: Agent IDs are now automatically generated from the agent name using slugification (e.g., "My Cool Agent" becomes "my-cool-agent") instead of using random UUIDs. This makes agent IDs more readable and consistent with code-defined agents.
533
+
534
+ **Before:**
535
+
536
+ ```typescript
537
+ // Creating an agent required a manual ID
538
+ const agent = await client.createStoredAgent({
539
+ id: crypto.randomUUID(), // Required, resulted in "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
540
+ name: 'My Cool Agent',
541
+ // ...
542
+ });
543
+
544
+ // Couldn't disable memory
545
+ await client.updateStoredAgent(agentId, {
546
+ memory: null, // ❌ Would throw validation error
547
+ });
548
+
549
+ // Agent-level scorers weren't available for stored agents
550
+ // e.g., answer-relevancy-scorer from evalAgent wasn't in the dropdown
551
+ ```
552
+
553
+ **After:**
554
+
555
+ ```typescript
556
+ // ID is auto-generated from name
557
+ const agent = await client.createStoredAgent({
558
+ name: 'My Cool Agent',
559
+ // ...
560
+ });
561
+ // agent.id is now "my-cool-agent"
562
+
563
+ // Can disable memory
564
+ await client.updateStoredAgent(agentId, {
565
+ memory: null, // ✅ Works, disables memory
566
+ });
567
+
568
+ // All agent-level scorers are now available in the dropdown
569
+ ```
570
+
571
+ - Added a buffer-status endpoint so buffering badges resolve with accurate token counts instead of spinning forever when buffering outlives the stream. ([#12939](https://github.com/mastra-ai/mastra/pull/12939))
572
+
573
+ - Update types and add new methods: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))
574
+ - Updated `CreateStoredAgentParams` and `UpdateStoredAgentParams` types to match server schemas
575
+ - Added proper `SerializedMemoryConfig` type with all fields including `embedder` and `embedderOptions`
576
+ - Fixed `StoredAgentScorerConfig` to use correct sampling types (`'none' | 'ratio'`)
577
+ - Added `listVectors()` and `listEmbedders()` methods to the client
578
+ - Added corresponding `ListVectorsResponse` and `ListEmbeddersResponse` types
579
+
580
+ - Fixed A2A client URLs to correctly include the API prefix. Previously, requests to agent card and A2A execution endpoints were missing the `/api/` prefix (e.g., `/.well-known/[agent-id]/agent-card.json` instead of `/api/.well-known/[agent-id]/agent-card.json`), causing 404 errors. ([#12841](https://github.com/mastra-ai/mastra/pull/12841))
581
+
582
+ - Supporting work to enable workflow step metadata ([#12508](https://github.com/mastra-ai/mastra/pull/12508))
583
+
584
+ - Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:
585
+ - @mastra/core@1.3.0
586
+
587
+ ## 1.3.0-alpha.3
588
+
589
+ ### Patch Changes
590
+
591
+ - Added a buffer-status endpoint so buffering badges resolve with accurate token counts instead of spinning forever when buffering outlives the stream. ([#12939](https://github.com/mastra-ai/mastra/pull/12939))
592
+
593
+ ## 1.3.0-alpha.2
594
+
595
+ ### Patch Changes
596
+
597
+ - Fixed observational memory progress bars resetting to zero after agent responses finish. The messages and observations sidebar bars now retain their values on stream completion, cancellation, and page reload. Also added a buffer-status endpoint so buffering badges resolve with accurate token counts instead of spinning forever when buffering outlives the stream. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))
598
+
599
+ - Updated dependencies [[`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a)]:
600
+ - @mastra/core@1.3.0-alpha.2
601
+
602
+ ## 1.3.0-alpha.1
603
+
604
+ ### Minor Changes
605
+
606
+ - **Added stored scorer CRUD API and updated editor namespace calls** ([#12846](https://github.com/mastra-ai/mastra/pull/12846))
607
+ - Added server routes for stored scorer definitions: create, read, update, delete, list, and list resolved
608
+ - Added `StoredScorer` resource to the client SDK with full CRUD support
609
+ - Updated all server handlers to use the new editor namespace pattern (`editor.agent.getById`, `editor.agent.list`, `editor.prompt.preview`) and generic storage domain methods (`store.create`, `store.getById`, `store.delete`)
610
+
611
+ - Added `requestContextSchema` to stored agent types and replaced local conditional field type definitions with re-exports from `@mastra/core/storage` (`Rule`, `RuleGroup`, `StorageConditionalVariant`, `StorageConditionalField`). Existing type aliases (`StoredAgentRule`, `StoredAgentRuleGroup`, `ConditionalVariant`, `ConditionalField`) are preserved for backward compatibility. ([#12896](https://github.com/mastra-ai/mastra/pull/12896))
612
+
613
+ - Add clone agent feature. Code-defined or stored agents can be cloned into new stored agents via the client SDK: ([#12861](https://github.com/mastra-ai/mastra/pull/12861))
614
+
615
+ ```ts
616
+ const client = new MastraClient();
617
+ const cloned = await client.getAgent('my-agent').clone({
618
+ newName: 'My Agent Copy',
619
+ requestContext: { workspace: 'dev' },
620
+ });
621
+ ```
622
+
623
+ The clone serializes the agent's full resolved configuration — model, instructions, tools, workflows, sub-agents, memory, input/output processors, and scorers — using the caller's `requestContext` and persists it as a new stored agent.
624
+
625
+ - Add tool description overrides for stored agents: ([#12794](https://github.com/mastra-ai/mastra/pull/12794))
626
+ - Changed stored agent `tools` field from `string[]` to `Record<string, { description?: string }>` to allow per-tool description overrides
627
+ - When a stored agent specifies a custom `description` for a tool, the override is applied at resolution time
628
+ - Updated server API schemas, client SDK types, and editor resolution logic accordingly
629
+
630
+ ### Patch Changes
631
+
632
+ - Fixed multiple issues with stored agents: ([#12861](https://github.com/mastra-ai/mastra/pull/12861))
633
+ 1. **Memory field can now be disabled**: Fixed an issue where the memory field couldn't be set to `null` to disable memory on stored agents. The update endpoint now accepts `memory: null` to explicitly disable memory configuration.
634
+ 2. **Agent-level scorers are now discoverable**: Fixed an issue where scorers attached to code-defined agents (e.g., answer relevancy scorer) were not available in the scorer dropdown for stored agents. The system now automatically registers agent-level scorers with the Mastra instance, making them discoverable through `resolveStoredScorers`.
635
+ 3. **Agent IDs are now derived from names**: Agent IDs are now automatically generated from the agent name using slugification (e.g., "My Cool Agent" becomes "my-cool-agent") instead of using random UUIDs. This makes agent IDs more readable and consistent with code-defined agents.
636
+
637
+ **Before:**
638
+
639
+ ```typescript
640
+ // Creating an agent required a manual ID
641
+ const agent = await client.createStoredAgent({
642
+ id: crypto.randomUUID(), // Required, resulted in "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
643
+ name: 'My Cool Agent',
644
+ // ...
645
+ });
646
+
647
+ // Couldn't disable memory
648
+ await client.updateStoredAgent(agentId, {
649
+ memory: null, // ❌ Would throw validation error
650
+ });
651
+
652
+ // Agent-level scorers weren't available for stored agents
653
+ // e.g., answer-relevancy-scorer from evalAgent wasn't in the dropdown
654
+ ```
655
+
656
+ **After:**
657
+
658
+ ```typescript
659
+ // ID is auto-generated from name
660
+ const agent = await client.createStoredAgent({
661
+ name: 'My Cool Agent',
662
+ // ...
663
+ });
664
+ // agent.id is now "my-cool-agent"
665
+
666
+ // Can disable memory
667
+ await client.updateStoredAgent(agentId, {
668
+ memory: null, // ✅ Works, disables memory
669
+ });
670
+
671
+ // All agent-level scorers are now available in the dropdown
672
+ ```
673
+
674
+ - Fixed A2A client URLs to correctly include the API prefix. Previously, requests to agent card and A2A execution endpoints were missing the `/api/` prefix (e.g., `/.well-known/[agent-id]/agent-card.json` instead of `/api/.well-known/[agent-id]/agent-card.json`), causing 404 errors. ([#12841](https://github.com/mastra-ai/mastra/pull/12841))
675
+
676
+ - Supporting work to enable workflow step metadata ([#12508](https://github.com/mastra-ai/mastra/pull/12508))
677
+
678
+ - Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:
679
+ - @mastra/core@1.3.0-alpha.1
680
+
681
+ ## 1.2.1-alpha.0
682
+
683
+ ### Patch Changes
684
+
685
+ - Update types and add new methods: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))
686
+ - Updated `CreateStoredAgentParams` and `UpdateStoredAgentParams` types to match server schemas
687
+ - Added proper `SerializedMemoryConfig` type with all fields including `embedder` and `embedderOptions`
688
+ - Fixed `StoredAgentScorerConfig` to use correct sampling types (`'none' | 'ratio'`)
689
+ - Added `listVectors()` and `listEmbedders()` methods to the client
690
+ - Added corresponding `ListVectorsResponse` and `ListEmbeddersResponse` types
691
+
692
+ - Updated dependencies [[`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6)]:
693
+ - @mastra/core@1.2.1-alpha.0
694
+
695
+ ## 1.2.0
696
+
697
+ ### Minor Changes
698
+
699
+ - Added Observational Memory — a new memory system that keeps your agent's context window small while preserving long-term memory across conversations. ([#12599](https://github.com/mastra-ai/mastra/pull/12599))
700
+
701
+ **Why:** Long conversations cause context rot and waste tokens. Observational Memory compresses conversation history into observations (5–40x compression) and periodically condenses those into reflections. Your agent stays fast and focused, even after thousands of messages.
702
+
703
+ **Usage:**
704
+
705
+ ```ts
706
+ import { Memory } from '@mastra/memory';
707
+ import { PostgresStore } from '@mastra/pg';
708
+
709
+ const memory = new Memory({
710
+ storage: new PostgresStore({ connectionString: process.env.DATABASE_URL }),
711
+ options: {
712
+ observationalMemory: true,
713
+ },
714
+ });
715
+
716
+ const agent = new Agent({
717
+ name: 'my-agent',
718
+ model: openai('gpt-4o'),
719
+ memory,
720
+ });
721
+ ```
722
+
723
+ **What's new:**
724
+ - `observationalMemory: true` enables the three-tier memory system (recent messages → observations → reflections)
725
+ - Thread-scoped (per-conversation) and resource-scoped (shared across all threads for a user) modes
726
+ - Manual `observe()` API for triggering observation outside the normal agent loop
727
+ - New OM storage methods for pg, libsql, and mongodb adapters (conditionally enabled)
728
+ - `Agent.findProcessor()` method for looking up processors by ID
729
+ - `processorStates` for persisting processor state across loop iterations
730
+ - Abort signal propagation to processors
731
+ - `ProcessorStreamWriter` for custom stream events from processors
732
+
733
+ ### Patch Changes
734
+
735
+ - Created @mastra/editor package for managing and resolving stored agent configurations ([#12631](https://github.com/mastra-ai/mastra/pull/12631))
736
+
737
+ This major addition introduces the editor package, which provides a complete solution for storing, versioning, and instantiating agent configurations from a database. The editor seamlessly integrates with Mastra's storage layer to enable dynamic agent management.
738
+
739
+ **Key Features:**
740
+ - **Agent Storage & Retrieval**: Store complete agent configurations including instructions, model settings, tools, workflows, nested agents, scorers, processors, and memory configuration
741
+ - **Version Management**: Create and manage multiple versions of agents, with support for activating specific versions
742
+ - **Dependency Resolution**: Automatically resolves and instantiates all agent dependencies (tools, workflows, sub-agents, etc.) from the Mastra registry
743
+ - **Caching**: Built-in caching for improved performance when repeatedly accessing stored agents
744
+ - **Type Safety**: Full TypeScript support with proper typing for stored configurations
745
+
746
+ **Usage Example:**
747
+
748
+ ```typescript
749
+ import { MastraEditor } from '@mastra/editor';
750
+ import { Mastra } from '@mastra/core';
751
+
752
+ // Initialize editor with Mastra
753
+ const mastra = new Mastra({
754
+ /* config */
755
+ editor: new MastraEditor(),
756
+ });
757
+
758
+ // Store an agent configuration
759
+ const agentId = await mastra.storage.stores?.agents?.createAgent({
760
+ name: 'customer-support',
761
+ instructions: 'Help customers with inquiries',
762
+ model: { provider: 'openai', name: 'gpt-4' },
763
+ tools: ['search-kb', 'create-ticket'],
764
+ workflows: ['escalation-flow'],
765
+ memory: { vector: 'pinecone-db' },
766
+ });
767
+
768
+ // Retrieve and use the stored agent
769
+ const agent = await mastra.getEditor()?.getStoredAgentById(agentId);
770
+ const response = await agent?.generate('How do I reset my password?');
771
+
772
+ // List all stored agents
773
+ const agents = await mastra.getEditor()?.listStoredAgents({ pageSize: 10 });
774
+ ```
775
+
776
+ **Storage Improvements:**
777
+ - Fixed JSONB handling in LibSQL, PostgreSQL, and MongoDB adapters
778
+ - Improved agent resolution queries to properly merge version data
779
+ - Enhanced type safety for serialized configurations
780
+
781
+ - Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling ([#12533](https://github.com/mastra-ai/mastra/pull/12533))
782
+
783
+ - Updated dependencies [[`e6fc281`](https://github.com/mastra-ai/mastra/commit/e6fc281896a3584e9e06465b356a44fe7faade65), [`97be6c8`](https://github.com/mastra-ai/mastra/commit/97be6c8963130fca8a664fcf99d7b3a38e463595), [`2770921`](https://github.com/mastra-ai/mastra/commit/2770921eec4d55a36b278d15c3a83f694e462ee5), [`b1695db`](https://github.com/mastra-ai/mastra/commit/b1695db2d7be0c329d499619c7881899649188d0), [`5fe1fe0`](https://github.com/mastra-ai/mastra/commit/5fe1fe0109faf2c87db34b725d8a4571a594f80e), [`4133d48`](https://github.com/mastra-ai/mastra/commit/4133d48eaa354cdb45920dc6265732ffbc96788d), [`abae238`](https://github.com/mastra-ai/mastra/commit/abae238c755ebaf867bbfa1a3a219ef003a1021a), [`5dd01cc`](https://github.com/mastra-ai/mastra/commit/5dd01cce68d61874aa3ecbd91ee17884cfd5aca2), [`13e0a2a`](https://github.com/mastra-ai/mastra/commit/13e0a2a2bcec01ff4d701274b3727d5e907a6a01), [`f6673b8`](https://github.com/mastra-ai/mastra/commit/f6673b893b65b7d273ad25ead42e990704cc1e17), [`cd6be8a`](https://github.com/mastra-ai/mastra/commit/cd6be8ad32741cd41cabf508355bb31b71e8a5bd), [`9eb4e8e`](https://github.com/mastra-ai/mastra/commit/9eb4e8e39efbdcfff7a40ff2ce07ce2714c65fa8), [`c987384`](https://github.com/mastra-ai/mastra/commit/c987384d6c8ca844a9701d7778f09f5a88da7f9f), [`cb8cc12`](https://github.com/mastra-ai/mastra/commit/cb8cc12bfadd526aa95a01125076f1da44e4afa7), [`aa37c84`](https://github.com/mastra-ai/mastra/commit/aa37c84d29b7db68c72517337932ef486c316275), [`62f5d50`](https://github.com/mastra-ai/mastra/commit/62f5d5043debbba497dacb7ab008fe86b38b8de3), [`47eba72`](https://github.com/mastra-ai/mastra/commit/47eba72f0397d0d14fbe324b97940c3d55e5a525)]:
784
+ - @mastra/core@1.2.0
785
+ - @mastra/schema-compat@1.1.0
786
+
787
+ ## 1.2.0-alpha.1
788
+
789
+ ### Minor Changes
790
+
791
+ - Added Observational Memory — a new memory system that keeps your agent's context window small while preserving long-term memory across conversations. ([#12599](https://github.com/mastra-ai/mastra/pull/12599))
792
+
793
+ **Why:** Long conversations cause context rot and waste tokens. Observational Memory compresses conversation history into observations (5–40x compression) and periodically condenses those into reflections. Your agent stays fast and focused, even after thousands of messages.
794
+
795
+ **Usage:**
796
+
797
+ ```ts
798
+ import { Memory } from '@mastra/memory';
799
+ import { PostgresStore } from '@mastra/pg';
800
+
801
+ const memory = new Memory({
802
+ storage: new PostgresStore({ connectionString: process.env.DATABASE_URL }),
803
+ options: {
804
+ observationalMemory: true,
805
+ },
806
+ });
807
+
808
+ const agent = new Agent({
809
+ name: 'my-agent',
810
+ model: openai('gpt-4o'),
811
+ memory,
812
+ });
813
+ ```
814
+
815
+ **What's new:**
816
+ - `observationalMemory: true` enables the three-tier memory system (recent messages → observations → reflections)
817
+ - Thread-scoped (per-conversation) and resource-scoped (shared across all threads for a user) modes
818
+ - Manual `observe()` API for triggering observation outside the normal agent loop
819
+ - New OM storage methods for pg, libsql, and mongodb adapters (conditionally enabled)
820
+ - `Agent.findProcessor()` method for looking up processors by ID
821
+ - `processorStates` for persisting processor state across loop iterations
822
+ - Abort signal propagation to processors
823
+ - `ProcessorStreamWriter` for custom stream events from processors
824
+
825
+ ### Patch Changes
826
+
827
+ - Created @mastra/editor package for managing and resolving stored agent configurations ([#12631](https://github.com/mastra-ai/mastra/pull/12631))
828
+
829
+ This major addition introduces the editor package, which provides a complete solution for storing, versioning, and instantiating agent configurations from a database. The editor seamlessly integrates with Mastra's storage layer to enable dynamic agent management.
830
+
831
+ **Key Features:**
832
+ - **Agent Storage & Retrieval**: Store complete agent configurations including instructions, model settings, tools, workflows, nested agents, scorers, processors, and memory configuration
833
+ - **Version Management**: Create and manage multiple versions of agents, with support for activating specific versions
834
+ - **Dependency Resolution**: Automatically resolves and instantiates all agent dependencies (tools, workflows, sub-agents, etc.) from the Mastra registry
835
+ - **Caching**: Built-in caching for improved performance when repeatedly accessing stored agents
836
+ - **Type Safety**: Full TypeScript support with proper typing for stored configurations
837
+
838
+ **Usage Example:**
839
+
840
+ ```typescript
841
+ import { MastraEditor } from '@mastra/editor';
842
+ import { Mastra } from '@mastra/core';
843
+
844
+ // Initialize editor with Mastra
845
+ const mastra = new Mastra({
846
+ /* config */
847
+ editor: new MastraEditor(),
848
+ });
849
+
850
+ // Store an agent configuration
851
+ const agentId = await mastra.storage.stores?.agents?.createAgent({
852
+ name: 'customer-support',
853
+ instructions: 'Help customers with inquiries',
854
+ model: { provider: 'openai', name: 'gpt-4' },
855
+ tools: ['search-kb', 'create-ticket'],
856
+ workflows: ['escalation-flow'],
857
+ memory: { vector: 'pinecone-db' },
858
+ });
859
+
860
+ // Retrieve and use the stored agent
861
+ const agent = await mastra.getEditor()?.getStoredAgentById(agentId);
862
+ const response = await agent?.generate('How do I reset my password?');
863
+
864
+ // List all stored agents
865
+ const agents = await mastra.getEditor()?.listStoredAgents({ pageSize: 10 });
866
+ ```
867
+
868
+ **Storage Improvements:**
869
+ - Fixed JSONB handling in LibSQL, PostgreSQL, and MongoDB adapters
870
+ - Improved agent resolution queries to properly merge version data
871
+ - Enhanced type safety for serialized configurations
872
+
873
+ - Updated dependencies [[`2770921`](https://github.com/mastra-ai/mastra/commit/2770921eec4d55a36b278d15c3a83f694e462ee5), [`b1695db`](https://github.com/mastra-ai/mastra/commit/b1695db2d7be0c329d499619c7881899649188d0), [`4133d48`](https://github.com/mastra-ai/mastra/commit/4133d48eaa354cdb45920dc6265732ffbc96788d), [`abae238`](https://github.com/mastra-ai/mastra/commit/abae238c755ebaf867bbfa1a3a219ef003a1021a), [`5dd01cc`](https://github.com/mastra-ai/mastra/commit/5dd01cce68d61874aa3ecbd91ee17884cfd5aca2), [`13e0a2a`](https://github.com/mastra-ai/mastra/commit/13e0a2a2bcec01ff4d701274b3727d5e907a6a01), [`c987384`](https://github.com/mastra-ai/mastra/commit/c987384d6c8ca844a9701d7778f09f5a88da7f9f), [`cb8cc12`](https://github.com/mastra-ai/mastra/commit/cb8cc12bfadd526aa95a01125076f1da44e4afa7), [`62f5d50`](https://github.com/mastra-ai/mastra/commit/62f5d5043debbba497dacb7ab008fe86b38b8de3)]:
874
+ - @mastra/core@1.2.0-alpha.1
875
+ - @mastra/schema-compat@1.1.0-alpha.0
876
+
877
+ ## 1.1.1-alpha.0
878
+
879
+ ### Patch Changes
880
+
881
+ - Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling ([#12533](https://github.com/mastra-ai/mastra/pull/12533))
882
+
883
+ - Updated dependencies [[`e6fc281`](https://github.com/mastra-ai/mastra/commit/e6fc281896a3584e9e06465b356a44fe7faade65), [`97be6c8`](https://github.com/mastra-ai/mastra/commit/97be6c8963130fca8a664fcf99d7b3a38e463595), [`5fe1fe0`](https://github.com/mastra-ai/mastra/commit/5fe1fe0109faf2c87db34b725d8a4571a594f80e), [`f6673b8`](https://github.com/mastra-ai/mastra/commit/f6673b893b65b7d273ad25ead42e990704cc1e17), [`cd6be8a`](https://github.com/mastra-ai/mastra/commit/cd6be8ad32741cd41cabf508355bb31b71e8a5bd), [`9eb4e8e`](https://github.com/mastra-ai/mastra/commit/9eb4e8e39efbdcfff7a40ff2ce07ce2714c65fa8), [`aa37c84`](https://github.com/mastra-ai/mastra/commit/aa37c84d29b7db68c72517337932ef486c316275), [`47eba72`](https://github.com/mastra-ai/mastra/commit/47eba72f0397d0d14fbe324b97940c3d55e5a525)]:
884
+ - @mastra/core@1.2.0-alpha.0
885
+
886
+ ## 1.1.0
887
+
888
+ ### Minor Changes
889
+
890
+ - Restructured stored agents to use a thin metadata record with versioned configuration snapshots. ([#12488](https://github.com/mastra-ai/mastra/pull/12488))
891
+
892
+ The agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.
893
+
894
+ **Key changes:**
895
+ - Stored Agent records are now thin metadata-only (StorageAgentType)
896
+ - All config lives in version snapshots (StorageAgentSnapshotType)
897
+ - New resolved type (StorageResolvedAgentType) merges agent record + active version config
898
+ - Renamed `ownerId` to `authorId` for multi-tenant filtering
899
+ - Changed `memory` field type from `string` to `Record<string, unknown>`
900
+ - Added `status` field ('draft' | 'published') to agent records
901
+ - Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)
902
+ - Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)
903
+ - List endpoints return resolved agents (thin record + active version config)
904
+ - Auto-versioning on update with retention limits and race condition handling
905
+
906
+ - Added workspace client methods for interacting with workspace API endpoints. ([#11986](https://github.com/mastra-ai/mastra/pull/11986))
907
+
908
+ **New methods on `MastraClient`:**
909
+ - `listWorkspaces()` - List all available workspaces
910
+ - `getWorkspace(workspaceId)` - Get a workspace client for a specific workspace
911
+ - `workspace.info()` - Get workspace info and capabilities
912
+ - `workspace.listFiles()` / `readFile()` / `writeFile()` / `delete()` / `mkdir()` / `stat()` - Filesystem operations
913
+ - `workspace.listSkills()` / `getSkill(name).details()` / `.listReferences()` / `.getReference()` - Skill management
914
+ - `workspace.search()` - Search indexed content
915
+
916
+ **Usage:**
917
+
918
+ ```typescript
919
+ import { MastraClient } from '@mastra/client-js';
920
+
921
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
922
+
923
+ // List workspaces and get the first one
924
+ const { workspaces } = await client.listWorkspaces();
925
+ const workspace = client.getWorkspace(workspaces[0].id);
926
+
927
+ // Read a file
928
+ const { content } = await workspace.readFile('/docs/guide.md');
929
+
930
+ // List skills
931
+ const { skills } = await workspace.listSkills();
932
+
933
+ // Get skill details
934
+ const skill = workspace.getSkill('my-skill');
935
+ const details = await skill.details();
936
+
937
+ // Search content
938
+ const { results } = await workspace.search({ query: 'authentication', mode: 'hybrid' });
939
+ ```
940
+
941
+ - Added dynamic agent management with CRUD operations and version tracking ([#12038](https://github.com/mastra-ai/mastra/pull/12038))
942
+
943
+ **New Features:**
944
+ - Create, edit, and delete agents directly from the Mastra Studio UI
945
+ - Full version history for agents with compare and restore capabilities
946
+ - Visual diff viewer to compare agent configurations across versions
947
+ - Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)
948
+ - AI-powered instruction enhancement
949
+
950
+ **Storage:**
951
+ - New storage interfaces for stored agents and agent versions
952
+ - PostgreSQL, LibSQL, and MongoDB implementations included
953
+ - In-memory storage for development and testing
954
+
955
+ **API:**
956
+ - RESTful endpoints for agent CRUD operations
957
+ - Version management endpoints (create, list, activate, restore, delete, compare)
958
+ - Automatic versioning on agent updates when enabled
959
+
960
+ **Client SDK:**
961
+ - JavaScript client with full support for stored agents and versions
962
+ - Type-safe methods for all CRUD and version operations
963
+
964
+ **Usage Example:**
965
+
966
+ ```typescript
967
+ // Server-side: Configure storage
968
+ import { Mastra } from '@mastra/core';
969
+ import { PgAgentsStorage } from '@mastra/pg';
970
+
971
+ const mastra = new Mastra({
972
+ agents: { agentOne },
973
+ storage: {
974
+ agents: new PgAgentsStorage({
975
+ connectionString: process.env.DATABASE_URL,
976
+ }),
977
+ },
978
+ });
979
+
980
+ // Client-side: Use the SDK
981
+ import { MastraClient } from '@mastra/client-js';
982
+
983
+ const client = new MastraClient({ baseUrl: 'http://localhost:3000' });
984
+
985
+ // Create a stored agent
986
+ const agent = await client.createStoredAgent({
987
+ name: 'Customer Support Agent',
988
+ description: 'Handles customer inquiries',
989
+ model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },
990
+ instructions: 'You are a helpful customer support agent...',
991
+ tools: ['search', 'email'],
992
+ });
993
+
994
+ // Create a version snapshot
995
+ await client.storedAgent(agent.id).createVersion({
996
+ name: 'v1.0 - Initial release',
997
+ changeMessage: 'First production version',
998
+ });
999
+
1000
+ // Compare versions
1001
+ const diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');
1002
+ ```
1003
+
1004
+ **Why:**
1005
+ This feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.
1006
+
1007
+ - Added `apiPrefix` option to `MastraClient` for connecting to servers with custom API route prefixes. ([#12295](https://github.com/mastra-ai/mastra/pull/12295))
1008
+
1009
+ **Before:** The client always used the `/api` prefix for all endpoints.
1010
+
1011
+ **After:** You can now specify a custom prefix when deploying Mastra behind non-default paths:
1012
+
1013
+ ```typescript
1014
+ const client = new MastraClient({
1015
+ baseUrl: 'http://localhost:3000',
1016
+ apiPrefix: '/mastra', // Calls /mastra/agents, /mastra/workflows, etc.
1017
+ });
1018
+ ```
1019
+
1020
+ The default remains `/api` for backward compatibility. See #12261 for more details.
1021
+
1022
+ ### Patch Changes
1023
+
1024
+ - Added requestContextSchema type support. ([#12259](https://github.com/mastra-ai/mastra/pull/12259))
1025
+
1026
+ - Stored agent edits no longer fail silently. PATCH requests now save changes correctly. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
1027
+
1028
+ - Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
1029
+
1030
+ - Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`b99ceac`](https://github.com/mastra-ai/mastra/commit/b99ceace2c830dbdef47c8692d56a91954aefea2), [`deea43e`](https://github.com/mastra-ai/mastra/commit/deea43eb1366d03a864c5e597d16a48592b9893f), [`833ae96`](https://github.com/mastra-ai/mastra/commit/833ae96c3e34370e58a1e979571c41f39a720592), [`943772b`](https://github.com/mastra-ai/mastra/commit/943772b4378f625f0f4e19ea2b7c392bd8e71786), [`b5c711b`](https://github.com/mastra-ai/mastra/commit/b5c711b281dd1fb81a399a766bc9f86c55efc13e), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`1e49e7a`](https://github.com/mastra-ai/mastra/commit/1e49e7ab5f173582154cb26b29d424de67d09aef), [`751eaab`](https://github.com/mastra-ai/mastra/commit/751eaab4e0d3820a94e4c3d39a2ff2663ded3d91), [`69d8156`](https://github.com/mastra-ai/mastra/commit/69d81568bcf062557c24471ce26812446bec465d), [`60d9d89`](https://github.com/mastra-ai/mastra/commit/60d9d899e44b35bc43f1bcd967a74e0ce010b1af), [`5c544c8`](https://github.com/mastra-ai/mastra/commit/5c544c8d12b08ab40d64d8f37b3c4215bee95b87), [`771ad96`](https://github.com/mastra-ai/mastra/commit/771ad962441996b5c43549391a3e6a02c6ddedc2), [`2b0936b`](https://github.com/mastra-ai/mastra/commit/2b0936b0c9a43eeed9bef63e614d7e02ee803f7e), [`3b04f30`](https://github.com/mastra-ai/mastra/commit/3b04f3010604f3cdfc8a0674731700ad66471cee), [`97e26de`](https://github.com/mastra-ai/mastra/commit/97e26deaebd9836647a67b96423281d66421ca07), [`ac9ec66`](https://github.com/mastra-ai/mastra/commit/ac9ec6672779b2e6d4344e415481d1a6a7d4911a), [`10523f4`](https://github.com/mastra-ai/mastra/commit/10523f4882d9b874b40ce6e3715f66dbcd4947d2), [`cb72d20`](https://github.com/mastra-ai/mastra/commit/cb72d2069d7339bda8a0e76d4f35615debb07b84), [`42856b1`](https://github.com/mastra-ai/mastra/commit/42856b1c8aeea6371c9ee77ae2f5f5fe34400933), [`66f33ff`](https://github.com/mastra-ai/mastra/commit/66f33ff68620018513e499c394411d1d39b3aa5c), [`ab3c190`](https://github.com/mastra-ai/mastra/commit/ab3c1901980a99910ca9b96a7090c22e24060113), [`d4f06c8`](https://github.com/mastra-ai/mastra/commit/d4f06c85ffa5bb0da38fb82ebf3b040cc6b4ec4e), [`0350626`](https://github.com/mastra-ai/mastra/commit/03506267ec41b67add80d994c0c0fcce93bbc75f), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`f46a478`](https://github.com/mastra-ai/mastra/commit/f46a4782f595949c696569e891f81c8d26338508), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`f05a3a5`](https://github.com/mastra-ai/mastra/commit/f05a3a5cf2b9a9c2d40c09cb8c762a4b6cd5d565), [`a291da9`](https://github.com/mastra-ai/mastra/commit/a291da9363efd92dafd8775dccb4f2d0511ece7a), [`c5d71da`](https://github.com/mastra-ai/mastra/commit/c5d71da1c680ce5640b1a7f8ca0e024a4ab1cfed), [`07042f9`](https://github.com/mastra-ai/mastra/commit/07042f9f89080f38b8f72713ba1c972d5b1905b8), [`0423442`](https://github.com/mastra-ai/mastra/commit/0423442b7be2dfacba95890bea8f4a810db4d603)]:
1031
+ - @mastra/core@1.1.0
1032
+
1033
+ ## 1.1.0-alpha.2
1034
+
1035
+ ### Patch Changes
1036
+
1037
+ - Stored agent edits no longer fail silently. PATCH requests now save changes correctly. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
1038
+
1039
+ - Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
1040
+
1041
+ - Updated dependencies:
1042
+ - @mastra/core@1.1.0-alpha.2
1043
+
1044
+ ## 1.1.0-alpha.1
1045
+
1046
+ ### Minor Changes
1047
+
1048
+ - Restructured stored agents to use a thin metadata record with versioned configuration snapshots. ([#12488](https://github.com/mastra-ai/mastra/pull/12488))
1049
+
1050
+ The agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.
1051
+
1052
+ **Key changes:**
1053
+ - Stored Agent records are now thin metadata-only (StorageAgentType)
1054
+ - All config lives in version snapshots (StorageAgentSnapshotType)
1055
+ - New resolved type (StorageResolvedAgentType) merges agent record + active version config
1056
+ - Renamed `ownerId` to `authorId` for multi-tenant filtering
1057
+ - Changed `memory` field type from `string` to `Record<string, unknown>`
1058
+ - Added `status` field ('draft' | 'published') to agent records
1059
+ - Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)
1060
+ - Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)
1061
+ - List endpoints return resolved agents (thin record + active version config)
1062
+ - Auto-versioning on update with retention limits and race condition handling
1063
+
1064
+ ### Patch Changes
1065
+
1066
+ - Updated dependencies [[`b99ceac`](https://github.com/mastra-ai/mastra/commit/b99ceace2c830dbdef47c8692d56a91954aefea2), [`deea43e`](https://github.com/mastra-ai/mastra/commit/deea43eb1366d03a864c5e597d16a48592b9893f), [`ac9ec66`](https://github.com/mastra-ai/mastra/commit/ac9ec6672779b2e6d4344e415481d1a6a7d4911a)]:
1067
+ - @mastra/core@1.1.0-alpha.1
1068
+
1069
+ ## 1.1.0-alpha.0
1070
+
1071
+ ### Minor Changes
1072
+
1073
+ - Added workspace client methods for interacting with workspace API endpoints. ([#11986](https://github.com/mastra-ai/mastra/pull/11986))
1074
+
1075
+ **New methods on `MastraClient`:**
1076
+ - `listWorkspaces()` - List all available workspaces
1077
+ - `getWorkspace(workspaceId)` - Get a workspace client for a specific workspace
1078
+ - `workspace.info()` - Get workspace info and capabilities
1079
+ - `workspace.listFiles()` / `readFile()` / `writeFile()` / `delete()` / `mkdir()` / `stat()` - Filesystem operations
1080
+ - `workspace.listSkills()` / `getSkill(name).details()` / `.listReferences()` / `.getReference()` - Skill management
1081
+ - `workspace.search()` - Search indexed content
1082
+
1083
+ **Usage:**
1084
+
1085
+ ```typescript
1086
+ import { MastraClient } from '@mastra/client-js';
1087
+
1088
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1089
+
1090
+ // List workspaces and get the first one
1091
+ const { workspaces } = await client.listWorkspaces();
1092
+ const workspace = client.getWorkspace(workspaces[0].id);
1093
+
1094
+ // Read a file
1095
+ const { content } = await workspace.readFile('/docs/guide.md');
1096
+
1097
+ // List skills
1098
+ const { skills } = await workspace.listSkills();
1099
+
1100
+ // Get skill details
1101
+ const skill = workspace.getSkill('my-skill');
1102
+ const details = await skill.details();
1103
+
1104
+ // Search content
1105
+ const { results } = await workspace.search({ query: 'authentication', mode: 'hybrid' });
1106
+ ```
1107
+
1108
+ - Added dynamic agent management with CRUD operations and version tracking ([#12038](https://github.com/mastra-ai/mastra/pull/12038))
1109
+
1110
+ **New Features:**
1111
+ - Create, edit, and delete agents directly from the Mastra Studio UI
1112
+ - Full version history for agents with compare and restore capabilities
1113
+ - Visual diff viewer to compare agent configurations across versions
1114
+ - Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)
1115
+ - AI-powered instruction enhancement
1116
+
1117
+ **Storage:**
1118
+ - New storage interfaces for stored agents and agent versions
1119
+ - PostgreSQL, LibSQL, and MongoDB implementations included
1120
+ - In-memory storage for development and testing
1121
+
1122
+ **API:**
1123
+ - RESTful endpoints for agent CRUD operations
1124
+ - Version management endpoints (create, list, activate, restore, delete, compare)
1125
+ - Automatic versioning on agent updates when enabled
1126
+
1127
+ **Client SDK:**
1128
+ - JavaScript client with full support for stored agents and versions
1129
+ - Type-safe methods for all CRUD and version operations
1130
+
1131
+ **Usage Example:**
1132
+
1133
+ ```typescript
1134
+ // Server-side: Configure storage
1135
+ import { Mastra } from '@mastra/core';
1136
+ import { PgAgentsStorage } from '@mastra/pg';
1137
+
1138
+ const mastra = new Mastra({
1139
+ agents: { agentOne },
1140
+ storage: {
1141
+ agents: new PgAgentsStorage({
1142
+ connectionString: process.env.DATABASE_URL,
1143
+ }),
1144
+ },
1145
+ });
1146
+
1147
+ // Client-side: Use the SDK
1148
+ import { MastraClient } from '@mastra/client-js';
1149
+
1150
+ const client = new MastraClient({ baseUrl: 'http://localhost:3000' });
1151
+
1152
+ // Create a stored agent
1153
+ const agent = await client.createStoredAgent({
1154
+ name: 'Customer Support Agent',
1155
+ description: 'Handles customer inquiries',
1156
+ model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },
1157
+ instructions: 'You are a helpful customer support agent...',
1158
+ tools: ['search', 'email'],
1159
+ });
1160
+
1161
+ // Create a version snapshot
1162
+ await client.storedAgent(agent.id).createVersion({
1163
+ name: 'v1.0 - Initial release',
1164
+ changeMessage: 'First production version',
1165
+ });
1166
+
1167
+ // Compare versions
1168
+ const diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');
1169
+ ```
1170
+
1171
+ **Why:**
1172
+ This feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.
1173
+
1174
+ - Added `apiPrefix` option to `MastraClient` for connecting to servers with custom API route prefixes. ([#12295](https://github.com/mastra-ai/mastra/pull/12295))
1175
+
1176
+ **Before:** The client always used the `/api` prefix for all endpoints.
1177
+
1178
+ **After:** You can now specify a custom prefix when deploying Mastra behind non-default paths:
1179
+
1180
+ ```typescript
1181
+ const client = new MastraClient({
1182
+ baseUrl: 'http://localhost:3000',
1183
+ apiPrefix: '/mastra', // Calls /mastra/agents, /mastra/workflows, etc.
1184
+ });
1185
+ ```
1186
+
1187
+ The default remains `/api` for backward compatibility. See #12261 for more details.
1188
+
1189
+ ### Patch Changes
1190
+
1191
+ - Added requestContextSchema type support. ([#12259](https://github.com/mastra-ai/mastra/pull/12259))
1192
+
1193
+ - Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`833ae96`](https://github.com/mastra-ai/mastra/commit/833ae96c3e34370e58a1e979571c41f39a720592), [`943772b`](https://github.com/mastra-ai/mastra/commit/943772b4378f625f0f4e19ea2b7c392bd8e71786), [`b5c711b`](https://github.com/mastra-ai/mastra/commit/b5c711b281dd1fb81a399a766bc9f86c55efc13e), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`1e49e7a`](https://github.com/mastra-ai/mastra/commit/1e49e7ab5f173582154cb26b29d424de67d09aef), [`751eaab`](https://github.com/mastra-ai/mastra/commit/751eaab4e0d3820a94e4c3d39a2ff2663ded3d91), [`69d8156`](https://github.com/mastra-ai/mastra/commit/69d81568bcf062557c24471ce26812446bec465d), [`60d9d89`](https://github.com/mastra-ai/mastra/commit/60d9d899e44b35bc43f1bcd967a74e0ce010b1af), [`5c544c8`](https://github.com/mastra-ai/mastra/commit/5c544c8d12b08ab40d64d8f37b3c4215bee95b87), [`771ad96`](https://github.com/mastra-ai/mastra/commit/771ad962441996b5c43549391a3e6a02c6ddedc2), [`2b0936b`](https://github.com/mastra-ai/mastra/commit/2b0936b0c9a43eeed9bef63e614d7e02ee803f7e), [`3b04f30`](https://github.com/mastra-ai/mastra/commit/3b04f3010604f3cdfc8a0674731700ad66471cee), [`97e26de`](https://github.com/mastra-ai/mastra/commit/97e26deaebd9836647a67b96423281d66421ca07), [`10523f4`](https://github.com/mastra-ai/mastra/commit/10523f4882d9b874b40ce6e3715f66dbcd4947d2), [`cb72d20`](https://github.com/mastra-ai/mastra/commit/cb72d2069d7339bda8a0e76d4f35615debb07b84), [`42856b1`](https://github.com/mastra-ai/mastra/commit/42856b1c8aeea6371c9ee77ae2f5f5fe34400933), [`66f33ff`](https://github.com/mastra-ai/mastra/commit/66f33ff68620018513e499c394411d1d39b3aa5c), [`ab3c190`](https://github.com/mastra-ai/mastra/commit/ab3c1901980a99910ca9b96a7090c22e24060113), [`d4f06c8`](https://github.com/mastra-ai/mastra/commit/d4f06c85ffa5bb0da38fb82ebf3b040cc6b4ec4e), [`0350626`](https://github.com/mastra-ai/mastra/commit/03506267ec41b67add80d994c0c0fcce93bbc75f), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`f46a478`](https://github.com/mastra-ai/mastra/commit/f46a4782f595949c696569e891f81c8d26338508), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`f05a3a5`](https://github.com/mastra-ai/mastra/commit/f05a3a5cf2b9a9c2d40c09cb8c762a4b6cd5d565), [`a291da9`](https://github.com/mastra-ai/mastra/commit/a291da9363efd92dafd8775dccb4f2d0511ece7a), [`c5d71da`](https://github.com/mastra-ai/mastra/commit/c5d71da1c680ce5640b1a7f8ca0e024a4ab1cfed), [`07042f9`](https://github.com/mastra-ai/mastra/commit/07042f9f89080f38b8f72713ba1c972d5b1905b8), [`0423442`](https://github.com/mastra-ai/mastra/commit/0423442b7be2dfacba95890bea8f4a810db4d603)]:
1194
+ - @mastra/core@1.1.0-alpha.0
1195
+
1196
+ ## 1.0.1
1197
+
1198
+ ### Patch Changes
1199
+
1200
+ - Updated dependencies:
1201
+ - @mastra/core@1.0.4
1202
+
1203
+ ## 1.0.1-alpha.0
1204
+
1205
+ ### Patch Changes
1206
+
1207
+ - Updated dependencies:
1208
+ - @mastra/core@1.0.4-alpha.0
1209
+
1210
+ ## 1.0.0
1211
+
1212
+ ### Major Changes
1213
+
1214
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
1215
+
1216
+ - 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))
1217
+
1218
+ - Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
1219
+
1220
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
1221
+
1222
+ **Storage changes:**
1223
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
1224
+ - All storage implementations support `perPage: false`:
1225
+ - Memory: `listMessages()`
1226
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
1227
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
1228
+
1229
+ **Memory changes:**
1230
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
1231
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
1232
+
1233
+ **Stricter validation:**
1234
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
1235
+
1236
+ **Migration:**
1237
+
1238
+ ```typescript
1239
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
1240
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
1241
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
1242
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
1243
+
1244
+ // Memory: Replace selectBy with flat parameters
1245
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
1246
+ + memory.query({ threadId, perPage: 20, include: [...] })
1247
+
1248
+ // Client SDK
1249
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
1250
+ + thread.listMessages({ page: 0, perPage: 20 })
1251
+ ```
1252
+
1253
+ - **Removed `storage.getMessages()`** ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
1254
+
1255
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
1256
+
1257
+ **Migration:**
1258
+
1259
+ ```typescript
1260
+ // Before
1261
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
1262
+
1263
+ // After
1264
+ const result = await storage.listMessages({
1265
+ threadId: 'thread-1',
1266
+ page: 0,
1267
+ perPage: 50,
1268
+ });
1269
+ const messages = result.messages; // Access messages array
1270
+ console.log(result.total); // Total count
1271
+ console.log(result.hasMore); // Whether more pages exist
1272
+ ```
1273
+
1274
+ **Message ordering default**
1275
+
1276
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
1277
+
1278
+ **To use DESC ordering (newest first):**
1279
+
1280
+ ```typescript
1281
+ const result = await storage.listMessages({
1282
+ threadId: 'thread-1',
1283
+ orderBy: { field: 'createdAt', direction: 'DESC' },
1284
+ });
1285
+ ```
1286
+
1287
+ **Renamed `client.getThreadMessages()` → `client.listThreadMessages()`**
1288
+
1289
+ **Migration:**
1290
+
1291
+ ```typescript
1292
+ // Before
1293
+ const response = await client.getThreadMessages(threadId, { agentId });
1294
+
1295
+ // After
1296
+ const response = await client.listThreadMessages(threadId, { agentId });
1297
+ ```
1298
+
1299
+ The response format remains the same.
1300
+
1301
+ **Removed `StorageGetMessagesArg` type**
1302
+
1303
+ Use `StorageListMessagesInput` instead:
1304
+
1305
+ ```typescript
1306
+ // Before
1307
+ import type { StorageGetMessagesArg } from '@mastra/core';
1308
+
1309
+ // After
1310
+ import type { StorageListMessagesInput } from '@mastra/core';
1311
+ ```
1312
+
1313
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
1314
+
1315
+ - 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))
1316
+
1317
+ - **Fixed:** Align `Agent.network` with core and update `@mastra/react` network usage. ([#12015](https://github.com/mastra-ai/mastra/pull/12015))
1318
+
1319
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
1320
+
1321
+ - 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))
1322
+
1323
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
1324
+
1325
+ 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.
1326
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
1327
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
1328
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
1329
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
1330
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
1331
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
1332
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
1333
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
1334
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
1335
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
1336
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
1337
+ - Network route and streaming APIs updated to use plain OUTPUT generic
1338
+
1339
+ **Before:**
1340
+
1341
+ ```typescript
1342
+ const output = await agent.generate<z.ZodType>([...], {
1343
+ structuredOutput: { schema: mySchema }
1344
+ });
1345
+
1346
+ **After:**
1347
+ const output = await agent.generate<z.infer<typeof mySchema>>([...], {
1348
+ structuredOutput: { schema: mySchema }
1349
+ });
1350
+ // Or rely on type inference:
1351
+ const output = await agent.generate([...], {
1352
+ structuredOutput: { schema: mySchema }
1353
+ });
1354
+
1355
+ ```
1356
+
1357
+ - Remove deprecated methods from client-js ([#9480](https://github.com/mastra-ai/mastra/pull/9480))
1358
+
1359
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
1360
+
1361
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
1362
+
1363
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
1364
+
1365
+ **What's Changed**
1366
+ - Removed legacy v1 watch event handlers and types
1367
+ - Renamed `watch-v2` to `watch` throughout the codebase
1368
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
1369
+ - Removed `/watch` HTTP endpoints from server and deployer
1370
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
1371
+
1372
+ - Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
1373
+
1374
+ 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.
1375
+
1376
+ **Affected APIs:**
1377
+ - `Memory.listThreadsByResourceId()`
1378
+ - `Memory.listMessages()`
1379
+ - `Storage.listWorkflowRuns()`
1380
+
1381
+ **Migration:**
1382
+
1383
+ ```typescript
1384
+ // Before
1385
+ await memory.listThreadsByResourceId({
1386
+ resourceId: 'user-123',
1387
+ offset: 20,
1388
+ limit: 10,
1389
+ });
1390
+
1391
+ // After
1392
+ await memory.listThreadsByResourceId({
1393
+ resourceId: 'user-123',
1394
+ page: 2, // page = Math.floor(offset / limit)
1395
+ perPage: 10,
1396
+ });
1397
+
1398
+ // Before
1399
+ await memory.listMessages({
1400
+ threadId: 'thread-456',
1401
+ offset: 20,
1402
+ limit: 10,
1403
+ });
1404
+
1405
+ // After
1406
+ await memory.listMessages({
1407
+ threadId: 'thread-456',
1408
+ page: 2,
1409
+ perPage: 10,
1410
+ });
1411
+
1412
+ // Before
1413
+ await storage.listWorkflowRuns({
1414
+ workflowName: 'my-workflow',
1415
+ offset: 20,
1416
+ limit: 10,
1417
+ });
1418
+
1419
+ // After
1420
+ await storage.listWorkflowRuns({
1421
+ workflowName: 'my-workflow',
1422
+ page: 2,
1423
+ perPage: 10,
1424
+ });
1425
+ ```
1426
+
1427
+ **Additional improvements:**
1428
+ - Added validation for negative `page` values in all storage implementations
1429
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
1430
+ - Added reusable query parser utilities for consistent validation in handlers
1431
+
1432
+ - ```ts ([#9709](https://github.com/mastra-ai/mastra/pull/9709))
1433
+ import { Mastra } from '@mastra/core';
1434
+ import { Observability } from '@mastra/observability'; // Explicit import
1435
+
1436
+ const mastra = new Mastra({
1437
+ ...other_config,
1438
+ observability: new Observability({
1439
+ default: { enabled: true },
1440
+ }), // Instance
1441
+ });
1442
+ ```
1443
+
1444
+ Instead of:
1445
+
1446
+ ```ts
1447
+ import { Mastra } from '@mastra/core';
1448
+ import '@mastra/observability/init'; // Explicit import
1449
+
1450
+ const mastra = new Mastra({
1451
+ ...other_config,
1452
+ observability: {
1453
+ default: { enabled: true },
1454
+ },
1455
+ });
1456
+ ```
1457
+
1458
+ Also renamed a bunch of:
1459
+ - `Tracing` things to `Observability` things.
1460
+ - `AI-` things to just things.
1461
+
1462
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
1463
+
1464
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
1465
+
1466
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
1467
+
1468
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
1469
+ 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
1470
+
1471
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
1472
+
1473
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
1474
+
1475
+ ### Minor Changes
1476
+
1477
+ - Add support for custom fetch function in MastraClient to enable environments like Tauri that require custom fetch implementations to avoid timeout errors. ([#10677](https://github.com/mastra-ai/mastra/pull/10677))
1478
+
1479
+ You can now pass a custom fetch function when creating a MastraClient:
1480
+
1481
+ ```typescript
1482
+ import { MastraClient } from '@mastra/client-js';
1483
+
1484
+ // Before: Only global fetch was available
1485
+ const client = new MastraClient({
1486
+ baseUrl: 'http://your-api-url',
1487
+ });
1488
+
1489
+ // After: Custom fetch can be passed
1490
+ const client = new MastraClient({
1491
+ baseUrl: 'http://your-api-url',
1492
+ fetch: customFetch, // Your custom fetch implementation
1493
+ });
1494
+ ```
1495
+
1496
+ If no custom fetch is provided, it falls back to the global fetch function, maintaining backward compatibility.
1497
+
1498
+ Fixes #10673
1499
+
1500
+ - Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
1501
+
1502
+ **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.
1503
+
1504
+ Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
1505
+
1506
+ **Using tool approval with generate()**
1507
+
1508
+ ```typescript
1509
+ const output = await agent.generate('Find user John', {
1510
+ requireToolApproval: true,
1511
+ });
1512
+
1513
+ // Check if a tool is waiting for approval
1514
+ if (output.finishReason === 'suspended') {
1515
+ console.log('Tool requires approval:', output.suspendPayload.toolName);
1516
+
1517
+ // Approve the tool call
1518
+ const result = await agent.approveToolCallGenerate({
1519
+ runId: output.runId,
1520
+ toolCallId: output.suspendPayload.toolCallId,
1521
+ });
1522
+
1523
+ console.log(result.text);
1524
+ }
1525
+ ```
1526
+
1527
+ **Declining a tool call**
1528
+
1529
+ ```typescript
1530
+ if (output.finishReason === 'suspended') {
1531
+ const result = await agent.declineToolCallGenerate({
1532
+ runId: output.runId,
1533
+ toolCallId: output.suspendPayload.toolCallId,
1534
+ });
1535
+ }
1536
+ ```
1537
+
1538
+ **New methods added:**
1539
+ - `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
1540
+ - `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
1541
+
1542
+ **Server routes added:**
1543
+ - `POST /api/agents/:agentId/approve-tool-call-generate`
1544
+ - `POST /api/agents/:agentId/decline-tool-call-generate`
1545
+
1546
+ The playground UI now also supports tool approval when using generate mode.
1547
+
1548
+ - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
1549
+ - Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
1550
+ - Add corresponding server handlers and deployer routes for observe streaming
1551
+ - Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
1552
+ - Update template installation processor to support both legacy and VNext streaming event formats
1553
+
1554
+ - Added processor resource to the JavaScript client SDK. You can now list processors, get processor details, and execute processors via the client: ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
1555
+
1556
+ ```typescript
1557
+ // List all processors
1558
+ const processors = await client.listProcessors();
1559
+
1560
+ // Get processor details
1561
+ const details = await client.getProcessor('my-processor').details();
1562
+
1563
+ // Execute a processor
1564
+ const result = await client.getProcessor('my-processor').execute({
1565
+ phase: 'input',
1566
+ messages: [{ role: 'user', content: { format: 2, parts: [{ type: 'text', text: 'Hello' }] } }],
1567
+ });
1568
+ ```
1569
+
1570
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
1571
+
1572
+ ## What changed
1573
+
1574
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
1575
+
1576
+ **Before:**
1577
+
1578
+ ```typescript
1579
+ // Old span structure
1580
+ span.agentId; // 'my-agent'
1581
+ span.toolId; // undefined
1582
+ span.workflowId; // undefined
1583
+ ```
1584
+
1585
+ **After:**
1586
+
1587
+ ```typescript
1588
+ // New span structure
1589
+ span.entityType; // EntityType.AGENT
1590
+ span.entityId; // 'my-agent'
1591
+ span.entityName; // 'My Agent'
1592
+ ```
1593
+
1594
+ ## New `listTraces()` API
1595
+
1596
+ Query traces with filtering, pagination, and sorting:
1597
+
1598
+ ```typescript
1599
+ const { spans, pagination } = await storage.listTraces({
1600
+ filters: {
1601
+ entityType: EntityType.AGENT,
1602
+ entityId: 'my-agent',
1603
+ userId: 'user-123',
1604
+ environment: 'production',
1605
+ status: TraceStatus.SUCCESS,
1606
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
1607
+ },
1608
+ pagination: { page: 0, perPage: 50 },
1609
+ orderBy: { field: 'startedAt', direction: 'DESC' },
1610
+ });
1611
+ ```
1612
+
1613
+ **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`.
1614
+
1615
+ ## New retrieval methods
1616
+ - `getSpan({ traceId, spanId })` - Get a single span
1617
+ - `getRootSpan({ traceId })` - Get the root span of a trace
1618
+ - `getTrace({ traceId })` - Get all spans for a trace
1619
+
1620
+ ## Backward compatibility
1621
+
1622
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
1623
+
1624
+ ## Migration
1625
+
1626
+ **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`.
1627
+
1628
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
1629
+
1630
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
1631
+
1632
+ **New Features**
1633
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
1634
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
1635
+ - Full pagination and sorting support
1636
+
1637
+ **Example Usage**
1638
+
1639
+ ```typescript
1640
+ // List all threads
1641
+ const allThreads = await memory.listThreads({});
1642
+
1643
+ // Filter by resourceId only
1644
+ const userThreads = await memory.listThreads({
1645
+ filter: { resourceId: 'user-123' },
1646
+ });
1647
+
1648
+ // Filter by metadata only
1649
+ const supportThreads = await memory.listThreads({
1650
+ filter: { metadata: { category: 'support' } },
1651
+ });
1652
+
1653
+ // Filter by both with pagination
1654
+ const filteredThreads = await memory.listThreads({
1655
+ filter: {
1656
+ resourceId: 'user-123',
1657
+ metadata: { priority: 'high', status: 'open' },
1658
+ },
1659
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
1660
+ page: 0,
1661
+ perPage: 20,
1662
+ });
1663
+ ```
1664
+
1665
+ **Security Improvements**
1666
+ - Added validation to prevent SQL injection via malicious metadata keys
1667
+ - Added pagination parameter validation to prevent integer overflow attacks
1668
+
1669
+ - 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))
1670
+
1671
+ **What changed:**
1672
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
1673
+ - Added optional `fields` parameter to request only specific fields for better performance
1674
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
1675
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
1676
+ - Removed `/execution-result` API endpoints from server (breaking change)
1677
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
1678
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
1679
+
1680
+ **Before:**
1681
+
1682
+ ```typescript
1683
+ // Had to call two different methods for different data
1684
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
1685
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
1686
+ ```
1687
+
1688
+ **After:**
1689
+
1690
+ ```typescript
1691
+ // Single method returns everything
1692
+ const run = await workflow.getWorkflowRunById(runId);
1693
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
1694
+
1695
+ // Request only specific fields for better performance (avoids expensive step fetching)
1696
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
1697
+
1698
+ // Skip nested workflow steps for faster response
1699
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
1700
+ ```
1701
+
1702
+ **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.
1703
+
1704
+ ### Patch Changes
1705
+
1706
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
1707
+
1708
+ 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`.
1709
+
1710
+ Each package includes:
1711
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
1712
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
1713
+ - **Topic folders** - Conceptual documentation organized by feature area
1714
+
1715
+ 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.
1716
+
1717
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
1718
+
1719
+ ```diff
1720
+ + const run = await workflow.createRun({ runId: '123' });
1721
+ - const stream = await run.streamVNext({ inputData: { ... } });
1722
+ + const stream = await run.stream({ inputData: { ... } });
1723
+ ```
1724
+
1725
+ - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
1726
+
1727
+ - Embed AI types to fix peerdeps mismatches ([`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808))
1728
+
1729
+ - Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
1730
+
1731
+ - The client-js package had its own simpler zodToJsonSchema implementation that was missing critical features from schema-compat. This could cause issues when users pass Zod schemas with `z.record()` or `z.date()` through the MastraClient. ([#10730](https://github.com/mastra-ai/mastra/pull/10730))
1732
+
1733
+ Now the client uses the same implementation as the rest of the codebase, which includes the Zod v4 `z.record()` bug fix, date-time format conversion for `z.date()`, and proper handling of unrepresentable types.
1734
+
1735
+ Also removes the now-unused `zod-to-json-schema` dependency from client-js.
1736
+
1737
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
1738
+
1739
+ Consolidated the 3 different execution contexts to one
1740
+
1741
+ ```typescript
1742
+ // before depending on the context the tool was executed in
1743
+ tool.execute({ context: data });
1744
+ tool.execute({ context: { inputData: data } });
1745
+ tool.execute(data);
1746
+
1747
+ // now, for all contexts
1748
+ tool.execute(data, context);
1749
+ ```
1750
+
1751
+ **Before:**
1752
+
1753
+ ```typescript
1754
+ inputSchema: z.object({ something: z.string() }),
1755
+ execute: async ({ context, tracingContext, runId, ... }) => {
1756
+ return doSomething(context.string);
1757
+ }
1758
+ ```
1759
+
1760
+ **After:**
1761
+
1762
+ ```typescript
1763
+ inputSchema: z.object({ something: z.string() }),
1764
+ execute: async (inputData, context) => {
1765
+ const { agent, mcp, workflow, ...sharedContext } = context
1766
+
1767
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
1768
+ if (agent) {
1769
+ doSomething(inputData.something, agent)
1770
+ // context that only a workflow would get like runId, state, suspend, resume, etc
1771
+ } else if (workflow) {
1772
+ doSomething(inputData.something, workflow)
1773
+ // context that only a workflow would get like "extra", "elicitation"
1774
+ } else if (mcp) {
1775
+ doSomething(inputData.something, mcp)
1776
+ } else {
1777
+ // Running a tool in no execution context
1778
+ return doSomething(inputData.something);
1779
+ }
1780
+ }
1781
+ ```
1782
+
1783
+ - 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))
1784
+
1785
+ ### Breaking Changes
1786
+
1787
+ #### `@mastra/core`
1788
+
1789
+ The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
1790
+
1791
+ ```ts
1792
+ // Before
1793
+ await agent.stream('Hello', {
1794
+ threadId: 'thread-123',
1795
+ resourceId: 'user-456',
1796
+ });
1797
+
1798
+ // After
1799
+ await agent.stream('Hello', {
1800
+ memory: {
1801
+ thread: 'thread-123',
1802
+ resource: 'user-456',
1803
+ },
1804
+ });
1805
+ ```
1806
+
1807
+ #### `@mastra/server`
1808
+
1809
+ 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.
1810
+
1811
+ #### `@mastra/react`
1812
+
1813
+ 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.
1814
+
1815
+ #### `@mastra/client-js`
1816
+
1817
+ When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
1818
+
1819
+ ```ts
1820
+ const agent = client.getAgent('my-agent');
1821
+
1822
+ // Before
1823
+ await agent.generate([...], {
1824
+ threadId: 'thread-123',
1825
+ resourceId: 'user-456',
1826
+ });
1827
+
1828
+ // After
1829
+ await agent.generate([...], {
1830
+ memory: {
1831
+ thread: 'thread-123',
1832
+ resource: 'user-456',
1833
+ },
1834
+ });
1835
+ ```
1836
+
1837
+ - Fix wrong arguments type in list workflow runs ([#10755](https://github.com/mastra-ai/mastra/pull/10755))
1838
+
1839
+ - Adjust the generate / stream types to accept tracingOptions ([#10742](https://github.com/mastra-ai/mastra/pull/10742))
1840
+
1841
+ - Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
1842
+ - Add suspend/resume capabilities to agent network
1843
+ - Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
1844
+
1845
+ `agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
1846
+
1847
+ - Add `Run` instance to client-js. `workflow.createRun` returns the `Run` instance which can be used for the different run methods. ([#11207](https://github.com/mastra-ai/mastra/pull/11207))
1848
+ With this change, run methods cannot be called directly on workflow instance anymore
1849
+
1850
+ ```diff
1851
+ - const result = await workflow.stream({ runId: '123', inputData: { ... } });
1852
+ + const run = await workflow.createRun({ runId: '123' });
1853
+ + const stream = await run.stream({ inputData: { ... } });
1854
+ ```
1855
+
1856
+ - Fix `saveMessageToMemory` return type to match API response. The method now correctly returns `{ messages: (MastraMessageV1 | MastraDBMessage)[] }` instead of `(MastraMessageV1 | MastraDBMessage)[]` to align with the server endpoint response schema. ([#10996](https://github.com/mastra-ai/mastra/pull/10996))
1857
+
1858
+ - Add search memory in client-js ([#9326](https://github.com/mastra-ai/mastra/pull/9326))
1859
+
1860
+ - Fix clientTools execution in client js ([#9880](https://github.com/mastra-ai/mastra/pull/9880))
1861
+
1862
+ - Include agentId parameter in listMessages API call ([#10270](https://github.com/mastra-ai/mastra/pull/10270))
1863
+
1864
+ - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
1865
+
1866
+ - Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
1867
+
1868
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
1869
+
1870
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
1871
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
1872
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
1873
+
1874
+ This significantly reduces response payload size and improves response times for large workflows.
1875
+
1876
+ ## Server Endpoint Usage
1877
+
1878
+ ```http
1879
+ # Get only status (minimal payload - fastest)
1880
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
1881
+
1882
+ # Get status and result
1883
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
1884
+
1885
+ # Get all fields but without nested workflow data (faster)
1886
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
1887
+
1888
+ # Get only specific fields without nested workflow data
1889
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
1890
+
1891
+ # Get full data (default behavior)
1892
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
1893
+ ```
1894
+
1895
+ ## Client SDK Usage
1896
+
1897
+ ```typescript
1898
+ import { MastraClient } from '@mastra/client-js';
1899
+
1900
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1901
+ const workflow = client.getWorkflow('myWorkflow');
1902
+
1903
+ // Get only status (minimal payload - fastest)
1904
+ const statusOnly = await workflow.runExecutionResult(runId, {
1905
+ fields: ['status'],
1906
+ });
1907
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
1908
+
1909
+ // Get status and result
1910
+ const statusAndResult = await workflow.runExecutionResult(runId, {
1911
+ fields: ['status', 'result'],
1912
+ });
1913
+
1914
+ // Get all fields but without nested workflow data (faster)
1915
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
1916
+ withNestedWorkflows: false,
1917
+ });
1918
+
1919
+ // Get specific fields without nested workflow data
1920
+ const optimized = await workflow.runExecutionResult(runId, {
1921
+ fields: ['status', 'steps'],
1922
+ withNestedWorkflows: false,
1923
+ });
1924
+
1925
+ // Get full execution result (default behavior)
1926
+ const fullResult = await workflow.runExecutionResult(runId);
1927
+ ```
1928
+
1929
+ ## Core API Changes
1930
+
1931
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
1932
+
1933
+ ```typescript
1934
+ await workflow.getWorkflowRunExecutionResult(runId, {
1935
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
1936
+ fields: ['status', 'result'], // optional field filtering
1937
+ });
1938
+ ```
1939
+
1940
+ ## Inngest Compatibility
1941
+
1942
+ 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.
1943
+
1944
+ ## Performance Impact
1945
+
1946
+ For workflows with large step outputs:
1947
+ - Requesting only `status`: ~99% reduction in payload size
1948
+ - Requesting `status,result,error`: ~95% reduction in payload size
1949
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
1950
+ - Combining both: Maximum performance optimization
1951
+
1952
+ - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
1953
+
1954
+ - Fix error handling and serialization in agent streaming to ensure errors are consistently exposed and preserved. ([#9144](https://github.com/mastra-ai/mastra/pull/9144))
1955
+
1956
+ - 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))
1957
+
1958
+ - Added optional `description` field to `GetAgentResponse` to support richer agent metadata ([#10300](https://github.com/mastra-ai/mastra/pull/10300))
1959
+
1960
+ - Move the enhance instruction fetch call to client-js ([#9302](https://github.com/mastra-ai/mastra/pull/9302))
1961
+
1962
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
1963
+
1964
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
1965
+
1966
+ ```typescript
1967
+ await workflow.deleteWorkflowRunById(runId);
1968
+ ```
1969
+
1970
+ - Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
1971
+
1972
+ - Deserialize workflow errors on the client side ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
1973
+
1974
+ When workflows fail, the server sends error data as JSON over HTTP. This change deserializes those errors back to proper `Error` instances on the client.
1975
+
1976
+ **Before:**
1977
+
1978
+ ```typescript
1979
+ const result = await workflow.startAsync({ input });
1980
+ if (result.status === 'failed') {
1981
+ // result.error was a plain object, couldn't use instanceof
1982
+ console.log(result.error.message); // TypeScript error
1983
+ }
1984
+ ```
1985
+
1986
+ **After:**
1987
+
1988
+ ```typescript
1989
+ const result = await workflow.startAsync({ input });
1990
+ if (result.status === 'failed') {
1991
+ // result.error is now a proper Error instance
1992
+ if (result.error instanceof MyCustomError) {
1993
+ console.log(result.error.statusCode); // Works!
1994
+ }
1995
+ }
1996
+ ```
1997
+
1998
+ This enables proper error handling and type checking in client applications, allowing developers to implement error-specific recovery logic based on custom error types and properties.
1999
+
2000
+ Features:
2001
+ - `instanceof Error` checks
2002
+ - Access to `error.message`, `error.name`, `error.stack`
2003
+ - Preservation of custom error properties (e.g., `statusCode`, `responseHeaders`)
2004
+ - Nested error tracking via `error.cause`
2005
+
2006
+ Affected methods:
2007
+ - `startAsync()`
2008
+ - `resumeAsync()`
2009
+ - `restartAsync()`
2010
+ - `timeTravelAsync()`
2011
+
2012
+ - Add `getSystemPackages()` method to retrieve installed Mastra packages and their versions from the server ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
2013
+
2014
+ - fix list memory ([#9751](https://github.com/mastra-ai/mastra/pull/9751))
2015
+
2016
+ - Standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
2017
+ - Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
2018
+ - Client SDK sends both param formats to support older server versions
2019
+ - Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
2020
+ - Marked `limit` and `offset` as deprecated in client types
2021
+
2022
+ - Remove unused /model-providers API ([#9533](https://github.com/mastra-ai/mastra/pull/9533))
2023
+
2024
+ - Backward compat for list threads ([#9758](https://github.com/mastra-ai/mastra/pull/9758))
2025
+
2026
+ - **Client (`@mastra/client-js`):** ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
2027
+ - Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
2028
+
2029
+ **Server (`@mastra/server`):**
2030
+ - Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
2031
+ - Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
2032
+
2033
+ - add client-js function to fetch model providers ([#9376](https://github.com/mastra-ai/mastra/pull/9376))
2034
+
2035
+ - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
2036
+
2037
+ - Fix error parsing json body for reset agent endpoint ([#11379](https://github.com/mastra-ai/mastra/pull/11379))
2038
+
2039
+ - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
2040
+
2041
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
2042
+
2043
+ ```typescript
2044
+ // Clone a thread
2045
+ const { thread, clonedMessages } = await memory.cloneThread({
2046
+ sourceThreadId: 'thread-123',
2047
+ title: 'My Clone',
2048
+ options: {
2049
+ messageLimit: 10, // optional: only copy last N messages
2050
+ },
2051
+ });
2052
+
2053
+ // Check if a thread is a clone
2054
+ if (memory.isClone(thread)) {
2055
+ const source = await memory.getSourceThread(thread.id);
2056
+ }
2057
+
2058
+ // List all clones of a thread
2059
+ const clones = await memory.listClones('thread-123');
2060
+ ```
2061
+
2062
+ Includes:
2063
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
2064
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
2065
+ - Embeddings created for cloned messages (semantic recall)
2066
+ - Clone button in playground UI Memory tab
2067
+
2068
+ - Add missing status parameter to workflow.runs() method ([#11095](https://github.com/mastra-ai/mastra/pull/11095))
2069
+
2070
+ The `status` parameter was supported by the server API but was missing from the TypeScript types in @mastra/client-js.
2071
+
2072
+ Now you can filter workflow runs by status:
2073
+
2074
+ ```typescript
2075
+ // Get only running workflows
2076
+ const runningRuns = await workflow.runs({ status: 'running' });
2077
+
2078
+ // Get completed workflows
2079
+ const completedRuns = await workflow.runs({ status: 'success' });
2080
+ ```
2081
+
2082
+ - 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))
2083
+
2084
+ - Fix delayed promises rejecting when stream suspends on tool-call-approval ([#11278](https://github.com/mastra-ai/mastra/pull/11278))
2085
+
2086
+ When a stream ends in suspended state (e.g., requiring tool approval), the delayed promises like `toolResults`, `toolCalls`, `text`, etc. now resolve with partial results instead of rejecting with an error. This allows consumers to access data that was produced before the suspension.
2087
+
2088
+ Also improves generic type inference for `LLMStepResult` and related types throughout the streaming infrastructure.
2089
+
2090
+ - 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))
2091
+ - When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
2092
+ - When `partial=true`: workflow steps are replaced with stepCount integer
2093
+ - When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
2094
+ - Maintains backward compatibility when partial parameter is not provided
2095
+
2096
+ **Server Endpoint Usage**
2097
+
2098
+ ```bash
2099
+ # Get partial agent data (no tool schemas)
2100
+ GET /api/agents?partial=true
2101
+
2102
+ # Get full agent data (default behavior)
2103
+ GET /api/agents
2104
+
2105
+ # Get partial workflow data (stepCount instead of steps, no schemas)
2106
+ GET /api/workflows?partial=true
2107
+
2108
+ # Get full workflow data (default behavior)
2109
+ GET /api/workflows
2110
+ ```
2111
+
2112
+ **Client SDK Usage**
2113
+
2114
+ ```typescript
2115
+ import { MastraClient } from '@mastra/client-js';
2116
+
2117
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
2118
+
2119
+ // Get partial agent list (smaller payload)
2120
+ const partialAgents = await client.listAgents({ partial: true });
2121
+
2122
+ // Get full agent list with tool schemas
2123
+ const fullAgents = await client.listAgents();
2124
+
2125
+ // Get partial workflow list (smaller payload)
2126
+ const partialWorkflows = await client.listWorkflows({ partial: true });
2127
+
2128
+ // Get full workflow list with steps and schemas
2129
+ const fullWorkflows = await client.listWorkflows();
2130
+ ```
2131
+
2132
+ - 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))
2133
+
2134
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
2135
+
2136
+ ```typescript
2137
+ const run = await workflow.createRun();
2138
+ const result = await run.start({ inputData: { message: 'Hello' } });
2139
+
2140
+ if (result.status === 'tripwire') {
2141
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
2142
+ console.log('Processor ID:', result.tripwire?.processorId);
2143
+ console.log('Retry requested:', result.tripwire?.retry);
2144
+ }
2145
+ ```
2146
+
2147
+ Adds new UI state for tripwire in agent chat and workflow UI.
2148
+
2149
+ 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).
2150
+
2151
+ - Add `cancel()` method as an alias for `cancelRun()` in the Run class. The new method provides a more concise API while maintaining backward compatibility. Includes comprehensive documentation about abort signals and how steps can respond to cancellation. ([#11417](https://github.com/mastra-ai/mastra/pull/11417))
2152
+
2153
+ - Remove unused dependencies ([#10019](https://github.com/mastra-ai/mastra/pull/10019))
2154
+
2155
+ - Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
2156
+
2157
+ 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.
2158
+
2159
+ - 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), [`b9b7ffd`](https://github.com/mastra-ai/mastra/commit/b9b7ffdad6936a7d50b6b814b5bbe54e19087f66), [`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), [`f93e2f5`](https://github.com/mastra-ai/mastra/commit/f93e2f575e775e627e5c1927cefdd72db07858ed), [`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), [`51acef9`](https://github.com/mastra-ai/mastra/commit/51acef95b5977826594fe3ee24475842bd3d5780), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`af56599`](https://github.com/mastra-ai/mastra/commit/af56599d73244ae3bf0d7bcade656410f8ded37b), [`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), [`70b300e`](https://github.com/mastra-ai/mastra/commit/70b300ebc631dfc0aa14e61547fef7994adb4ea6), [`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), [`3bf08bf`](https://github.com/mastra-ai/mastra/commit/3bf08bf9c7c73818ac937b5a69d90e205653115f), [`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)]:
2160
+ - @mastra/core@1.0.0
2161
+ - @mastra/schema-compat@1.0.0
2162
+
2163
+ ## 1.0.0-beta.27
2164
+
2165
+ ### Patch Changes
2166
+
2167
+ - Updated dependencies [[`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a)]:
2168
+ - @mastra/core@1.0.0-beta.27
2169
+
2170
+ ## 1.0.0-beta.26
2171
+
2172
+ ### Patch Changes
2173
+
2174
+ - Improve type handling with Zod ([#12091](https://github.com/mastra-ai/mastra/pull/12091))
2175
+
2176
+ - Updated dependencies [[`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897)]:
2177
+ - @mastra/core@1.0.0-beta.26
2178
+
2179
+ ## 1.0.0-beta.25
2180
+
2181
+ ### Minor Changes
2182
+
2183
+ - Added human-in-the-loop (HITL) tool approval support for `generate()` method. ([#12056](https://github.com/mastra-ai/mastra/pull/12056))
2184
+
2185
+ **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.
2186
+
2187
+ Previously, tool approval with `requireToolApproval` only worked with `stream()`. Now you can use the same approval flow with `generate()` for non-streaming use cases.
2188
+
2189
+ **Using tool approval with generate()**
2190
+
2191
+ ```typescript
2192
+ const output = await agent.generate('Find user John', {
2193
+ requireToolApproval: true,
2194
+ });
2195
+
2196
+ // Check if a tool is waiting for approval
2197
+ if (output.finishReason === 'suspended') {
2198
+ console.log('Tool requires approval:', output.suspendPayload.toolName);
2199
+
2200
+ // Approve the tool call
2201
+ const result = await agent.approveToolCallGenerate({
2202
+ runId: output.runId,
2203
+ toolCallId: output.suspendPayload.toolCallId,
2204
+ });
2205
+
2206
+ console.log(result.text);
2207
+ }
2208
+ ```
2209
+
2210
+ **Declining a tool call**
2211
+
2212
+ ```typescript
2213
+ if (output.finishReason === 'suspended') {
2214
+ const result = await agent.declineToolCallGenerate({
2215
+ runId: output.runId,
2216
+ toolCallId: output.suspendPayload.toolCallId,
2217
+ });
2218
+ }
2219
+ ```
2220
+
2221
+ **New methods added:**
2222
+ - `agent.approveToolCallGenerate({ runId, toolCallId })` - Approves a pending tool call and returns the complete result
2223
+ - `agent.declineToolCallGenerate({ runId, toolCallId })` - Declines a pending tool call and returns the complete result
2224
+
2225
+ **Server routes added:**
2226
+ - `POST /api/agents/:agentId/approve-tool-call-generate`
2227
+ - `POST /api/agents/:agentId/decline-tool-call-generate`
2228
+
2229
+ The playground UI now also supports tool approval when using generate mode.
2230
+
2231
+ - Added processor resource to the JavaScript client SDK. You can now list processors, get processor details, and execute processors via the client: ([#12059](https://github.com/mastra-ai/mastra/pull/12059))
2232
+
2233
+ ```typescript
2234
+ // List all processors
2235
+ const processors = await client.listProcessors();
2236
+
2237
+ // Get processor details
2238
+ const details = await client.getProcessor('my-processor').details();
2239
+
2240
+ // Execute a processor
2241
+ const result = await client.getProcessor('my-processor').execute({
2242
+ phase: 'input',
2243
+ messages: [{ role: 'user', content: { format: 2, parts: [{ type: 'text', text: 'Hello' }] } }],
2244
+ });
2245
+ ```
2246
+
2247
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
2248
+
2249
+ **New Features**
2250
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
2251
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
2252
+ - Full pagination and sorting support
2253
+
2254
+ **Example Usage**
2255
+
2256
+ ```typescript
2257
+ // List all threads
2258
+ const allThreads = await memory.listThreads({});
2259
+
2260
+ // Filter by resourceId only
2261
+ const userThreads = await memory.listThreads({
2262
+ filter: { resourceId: 'user-123' },
2263
+ });
2264
+
2265
+ // Filter by metadata only
2266
+ const supportThreads = await memory.listThreads({
2267
+ filter: { metadata: { category: 'support' } },
2268
+ });
2269
+
2270
+ // Filter by both with pagination
2271
+ const filteredThreads = await memory.listThreads({
2272
+ filter: {
2273
+ resourceId: 'user-123',
2274
+ metadata: { priority: 'high', status: 'open' },
2275
+ },
2276
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
2277
+ page: 0,
2278
+ perPage: 20,
2279
+ });
2280
+ ```
2281
+
2282
+ **Security Improvements**
2283
+ - Added validation to prevent SQL injection via malicious metadata keys
2284
+ - Added pagination parameter validation to prevent integer overflow attacks
2285
+
2286
+ ### Patch Changes
2287
+
2288
+ - 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)]:
2289
+ - @mastra/core@1.0.0-beta.25
2290
+ - @mastra/schema-compat@1.0.0-beta.8
2291
+
2292
+ ## 1.0.0-beta.24
2293
+
2294
+ ### Major Changes
2295
+
2296
+ - **Fixed:** Align `Agent.network` with core and update `@mastra/react` network usage. ([#12015](https://github.com/mastra-ai/mastra/pull/12015))
2297
+
2298
+ ### Patch Changes
2299
+
2300
+ - Updated dependencies [[`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`f93e2f5`](https://github.com/mastra-ai/mastra/commit/f93e2f575e775e627e5c1927cefdd72db07858ed), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d)]:
2301
+ - @mastra/core@1.0.0-beta.24
2302
+ - @mastra/schema-compat@1.0.0-beta.7
2303
+
2304
+ ## 1.0.0-beta.23
2305
+
2306
+ ### Patch Changes
2307
+
2308
+ - Updated dependencies [[`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8)]:
2309
+ - @mastra/core@1.0.0-beta.23
2310
+
2311
+ ## 1.0.0-beta.22
2312
+
2313
+ ### Major Changes
2314
+
2315
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
2316
+
2317
+ 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.
2318
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
2319
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
2320
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
2321
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
2322
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
2323
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
2324
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
2325
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
2326
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
2327
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
2328
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
2329
+ - Network route and streaming APIs updated to use plain OUTPUT generic
2330
+
2331
+ **Before:**
2332
+
2333
+ ```typescript
2334
+ const output = await agent.generate<z.ZodType>({
2335
+ messages: [...],
2336
+ structuredOutput: { schema: mySchema }
2337
+ });
2338
+
2339
+ **After:**
2340
+ const output = await agent.generate<z.infer<typeof mySchema>>({
2341
+ messages: [...],
2342
+ structuredOutput: { schema: mySchema }
2343
+ });
2344
+ // Or rely on type inference:
2345
+ const output = await agent.generate({
2346
+ messages: [...],
2347
+ structuredOutput: { schema: mySchema }
2348
+ });
2349
+
2350
+ ```
2351
+
2352
+ ### Patch Changes
2353
+
2354
+ - 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))
2355
+
2356
+ ### Breaking Changes
2357
+
2358
+ #### `@mastra/core`
2359
+
2360
+ The `threadId` and `resourceId` options have been removed from `agent.generate()` and `agent.stream()`. Use the `memory` option instead:
2361
+
2362
+ ```ts
2363
+ // Before
2364
+ await agent.stream('Hello', {
2365
+ threadId: 'thread-123',
2366
+ resourceId: 'user-456',
2367
+ });
2368
+
2369
+ // After
2370
+ await agent.stream('Hello', {
2371
+ memory: {
2372
+ thread: 'thread-123',
2373
+ resource: 'user-456',
2374
+ },
2375
+ });
2376
+ ```
2377
+
2378
+ #### `@mastra/server`
2379
+
2380
+ 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.
2381
+
2382
+ #### `@mastra/react`
2383
+
2384
+ 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.
2385
+
2386
+ #### `@mastra/client-js`
2387
+
2388
+ When using the client SDK agent methods, use the `memory` option instead of `threadId`/`resourceId`:
2389
+
2390
+ ```ts
2391
+ const agent = client.getAgent('my-agent');
2392
+
2393
+ // Before
2394
+ await agent.generate({
2395
+ messages: [...],
2396
+ threadId: 'thread-123',
2397
+ resourceId: 'user-456',
2398
+ });
2399
+
2400
+ // After
2401
+ await agent.generate({
2402
+ messages: [...],
2403
+ memory: {
2404
+ thread: 'thread-123',
2405
+ resource: 'user-456',
2406
+ },
2407
+ });
2408
+ ```
2409
+
2410
+ - Add human-in-the-loop (HITL) support to agent networks ([#11678](https://github.com/mastra-ai/mastra/pull/11678))
2411
+ - Add suspend/resume capabilities to agent network
2412
+ - Enable auto-resume for suspended network execution via `autoResumeSuspendedTools`
2413
+
2414
+ `agent.resumeNetwork`, `agent.approveNetworkToolCall`, `agent.declineNetworkToolCall`
2415
+
2416
+ - 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)]:
2417
+ - @mastra/core@1.0.0-beta.22
2418
+
2419
+ ## 1.0.0-beta.21
2420
+
2421
+ ### Patch Changes
2422
+
2423
+ - 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), [`3bf08bf`](https://github.com/mastra-ai/mastra/commit/3bf08bf9c7c73818ac937b5a69d90e205653115f), [`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)]:
2424
+ - @mastra/core@1.0.0-beta.21
2425
+ - @mastra/schema-compat@1.0.0-beta.6
2426
+
2427
+ ## 1.0.0-beta.20
2428
+
2429
+ ### Minor Changes
2430
+
2431
+ - 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))
2432
+
2433
+ **What changed:**
2434
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
2435
+ - Added optional `fields` parameter to request only specific fields for better performance
2436
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
2437
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
2438
+ - Removed `/execution-result` API endpoints from server (breaking change)
2439
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
2440
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
2441
+
2442
+ **Before:**
2443
+
2444
+ ```typescript
2445
+ // Had to call two different methods for different data
2446
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
2447
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
2448
+ ```
2449
+
2450
+ **After:**
2451
+
2452
+ ```typescript
2453
+ // Single method returns everything
2454
+ const run = await workflow.getWorkflowRunById(runId);
2455
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
2456
+
2457
+ // Request only specific fields for better performance (avoids expensive step fetching)
2458
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
2459
+
2460
+ // Skip nested workflow steps for faster response
2461
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
2462
+ ```
2463
+
2464
+ **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.
2465
+
2466
+ ### Patch Changes
2467
+
2468
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
2469
+
2470
+ 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`.
2471
+
2472
+ Each package includes:
2473
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
2474
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
2475
+ - **Topic folders** - Conceptual documentation organized by feature area
2476
+
2477
+ 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.
2478
+
2479
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
2480
+
2481
+ ```diff
2482
+ + const run = await workflow.createRun({ runId: '123' });
2483
+ - const stream = await run.streamVNext({ inputData: { ... } });
2484
+ + const stream = await run.stream({ inputData: { ... } });
2485
+ ```
2486
+
2487
+ - Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))
2488
+
2489
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
2490
+
2491
+ ```typescript
2492
+ // Clone a thread
2493
+ const { thread, clonedMessages } = await memory.cloneThread({
2494
+ sourceThreadId: 'thread-123',
2495
+ title: 'My Clone',
2496
+ options: {
2497
+ messageLimit: 10, // optional: only copy last N messages
2498
+ },
2499
+ });
2500
+
2501
+ // Check if a thread is a clone
2502
+ if (memory.isClone(thread)) {
2503
+ const source = await memory.getSourceThread(thread.id);
2504
+ }
2505
+
2506
+ // List all clones of a thread
2507
+ const clones = await memory.listClones('thread-123');
2508
+ ```
2509
+
2510
+ Includes:
2511
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
2512
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
2513
+ - Embeddings created for cloned messages (semantic recall)
2514
+ - Clone button in playground UI Memory tab
2515
+
2516
+ - Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))
2517
+
2518
+ 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.
2519
+
2520
+ - 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)]:
2521
+ - @mastra/core@1.0.0-beta.20
2522
+
2523
+ ## 1.0.0-beta.19
2524
+
2525
+ ### Patch Changes
2526
+
2527
+ - 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), [`70b300e`](https://github.com/mastra-ai/mastra/commit/70b300ebc631dfc0aa14e61547fef7994adb4ea6), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7)]:
2528
+ - @mastra/core@1.0.0-beta.19
2529
+ - @mastra/schema-compat@1.0.0-beta.5
2530
+
2531
+ ## 1.0.0-beta.18
2532
+
2533
+ ### Patch Changes
2534
+
2535
+ - Updated dependencies [[`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93)]:
2536
+ - @mastra/core@1.0.0-beta.18
2537
+
2538
+ ## 1.0.0-beta.17
2539
+
2540
+ ### Patch Changes
2541
+
2542
+ - Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`af56599`](https://github.com/mastra-ai/mastra/commit/af56599d73244ae3bf0d7bcade656410f8ded37b)]:
2543
+ - @mastra/core@1.0.0-beta.17
2544
+ - @mastra/schema-compat@1.0.0-beta.4
2545
+
2546
+ ## 1.0.0-beta.16
2547
+
2548
+ ### Patch Changes
2549
+
2550
+ - Add `cancel()` method as an alias for `cancelRun()` in the Run class. The new method provides a more concise API while maintaining backward compatibility. Includes comprehensive documentation about abort signals and how steps can respond to cancellation. ([#11417](https://github.com/mastra-ai/mastra/pull/11417))
2551
+
2552
+ - 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)]:
2553
+ - @mastra/core@1.0.0-beta.16
2554
+
2555
+ ## 1.0.0-beta.15
2556
+
2557
+ ### Minor Changes
2558
+
2559
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
2560
+
2561
+ ## What changed
2562
+
2563
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
2564
+
2565
+ **Before:**
2566
+
2567
+ ```typescript
2568
+ // Old span structure
2569
+ span.agentId; // 'my-agent'
2570
+ span.toolId; // undefined
2571
+ span.workflowId; // undefined
2572
+ ```
2573
+
2574
+ **After:**
2575
+
2576
+ ```typescript
2577
+ // New span structure
2578
+ span.entityType; // EntityType.AGENT
2579
+ span.entityId; // 'my-agent'
2580
+ span.entityName; // 'My Agent'
2581
+ ```
2582
+
2583
+ ## New `listTraces()` API
2584
+
2585
+ Query traces with filtering, pagination, and sorting:
2586
+
2587
+ ```typescript
2588
+ const { spans, pagination } = await storage.listTraces({
2589
+ filters: {
2590
+ entityType: EntityType.AGENT,
2591
+ entityId: 'my-agent',
2592
+ userId: 'user-123',
2593
+ environment: 'production',
2594
+ status: TraceStatus.SUCCESS,
2595
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
2596
+ },
2597
+ pagination: { page: 0, perPage: 50 },
2598
+ orderBy: { field: 'startedAt', direction: 'DESC' },
2599
+ });
2600
+ ```
2601
+
2602
+ **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`.
2603
+
2604
+ ## New retrieval methods
2605
+ - `getSpan({ traceId, spanId })` - Get a single span
2606
+ - `getRootSpan({ traceId })` - Get the root span of a trace
2607
+ - `getTrace({ traceId })` - Get all spans for a trace
2608
+
2609
+ ## Backward compatibility
2610
+
2611
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
2612
+
2613
+ ## Migration
2614
+
2615
+ **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`.
2616
+
2617
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
2618
+
2619
+ ### Patch Changes
2620
+
2621
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
2622
+
2623
+ - Add `getSystemPackages()` method to retrieve installed Mastra packages and their versions from the server ([#11211](https://github.com/mastra-ai/mastra/pull/11211))
2624
+
2625
+ - Fix error parsing json body for reset agent endpoint ([#11379](https://github.com/mastra-ai/mastra/pull/11379))
2626
+
2627
+ - 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)]:
2628
+ - @mastra/core@1.0.0-beta.15
2629
+
2630
+ ## 1.0.0-beta.14
2631
+
2632
+ ### Patch Changes
2633
+
2634
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
2635
+
2636
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
2637
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
2638
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
2639
+
2640
+ This significantly reduces response payload size and improves response times for large workflows.
2641
+
2642
+ ## Server Endpoint Usage
2643
+
2644
+ ```http
2645
+ # Get only status (minimal payload - fastest)
2646
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
2647
+
2648
+ # Get status and result
2649
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
2650
+
2651
+ # Get all fields but without nested workflow data (faster)
2652
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
2653
+
2654
+ # Get only specific fields without nested workflow data
2655
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
2656
+
2657
+ # Get full data (default behavior)
2658
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
2659
+ ```
2660
+
2661
+ ## Client SDK Usage
2662
+
2663
+ ```typescript
2664
+ import { MastraClient } from '@mastra/client-js';
2665
+
2666
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
2667
+ const workflow = client.getWorkflow('myWorkflow');
2668
+
2669
+ // Get only status (minimal payload - fastest)
2670
+ const statusOnly = await workflow.runExecutionResult(runId, {
2671
+ fields: ['status'],
2672
+ });
2673
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
2674
+
2675
+ // Get status and result
2676
+ const statusAndResult = await workflow.runExecutionResult(runId, {
2677
+ fields: ['status', 'result'],
2678
+ });
2679
+
2680
+ // Get all fields but without nested workflow data (faster)
2681
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
2682
+ withNestedWorkflows: false,
2683
+ });
2684
+
2685
+ // Get specific fields without nested workflow data
2686
+ const optimized = await workflow.runExecutionResult(runId, {
2687
+ fields: ['status', 'steps'],
2688
+ withNestedWorkflows: false,
2689
+ });
2690
+
2691
+ // Get full execution result (default behavior)
2692
+ const fullResult = await workflow.runExecutionResult(runId);
2693
+ ```
2694
+
2695
+ ## Core API Changes
2696
+
2697
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
2698
+
2699
+ ```typescript
2700
+ await workflow.getWorkflowRunExecutionResult(runId, {
2701
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
2702
+ fields: ['status', 'result'], // optional field filtering
2703
+ });
2704
+ ```
2705
+
2706
+ ## Inngest Compatibility
2707
+
2708
+ 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.
2709
+
2710
+ ## Performance Impact
2711
+
2712
+ For workflows with large step outputs:
2713
+ - Requesting only `status`: ~99% reduction in payload size
2714
+ - Requesting `status,result,error`: ~95% reduction in payload size
2715
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
2716
+ - Combining both: Maximum performance optimization
2717
+
2718
+ - Fix delayed promises rejecting when stream suspends on tool-call-approval ([#11278](https://github.com/mastra-ai/mastra/pull/11278))
2719
+
2720
+ When a stream ends in suspended state (e.g., requiring tool approval), the delayed promises like `toolResults`, `toolCalls`, `text`, etc. now resolve with partial results instead of rejecting with an error. This allows consumers to access data that was produced before the suspension.
2721
+
2722
+ Also improves generic type inference for `LLMStepResult` and related types throughout the streaming infrastructure.
2723
+
2724
+ - 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)]:
2725
+ - @mastra/core@1.0.0-beta.14
2726
+
2727
+ ## 1.0.0-beta.13
2728
+
2729
+ ### Patch Changes
2730
+
2731
+ - Updated dependencies [[`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497)]:
2732
+ - @mastra/core@1.0.0-beta.13
2733
+
2734
+ ## 1.0.0-beta.12
2735
+
2736
+ ### Patch Changes
2737
+
2738
+ - Embed AI types to fix peerdeps mismatches ([`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808))
2739
+
2740
+ - Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
2741
+
2742
+ - Add `Run` instance to client-js. `workflow.createRun` returns the `Run` instance which can be used for the different run methods. ([#11207](https://github.com/mastra-ai/mastra/pull/11207))
2743
+ With this change, run methods cannot be called directly on workflow instance anymore
2744
+
2745
+ ```diff
2746
+ - const result = await workflow.stream({ runId: '123', inputData: { ... } });
2747
+ + const run = await workflow.createRun({ runId: '123' });
2748
+ + const stream = await run.stream({ inputData: { ... } });
2749
+ ```
2750
+
2751
+ - Deserialize workflow errors on the client side ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
2752
+
2753
+ When workflows fail, the server sends error data as JSON over HTTP. This change deserializes those errors back to proper `Error` instances on the client.
2754
+
2755
+ **Before:**
2756
+
2757
+ ```typescript
2758
+ const result = await workflow.startAsync({ input });
2759
+ if (result.status === 'failed') {
2760
+ // result.error was a plain object, couldn't use instanceof
2761
+ console.log(result.error.message); // TypeScript error
2762
+ }
2763
+ ```
2764
+
2765
+ **After:**
2766
+
2767
+ ```typescript
2768
+ const result = await workflow.startAsync({ input });
2769
+ if (result.status === 'failed') {
2770
+ // result.error is now a proper Error instance
2771
+ if (result.error instanceof MyCustomError) {
2772
+ console.log(result.error.statusCode); // Works!
2773
+ }
2774
+ }
2775
+ ```
2776
+
2777
+ This enables proper error handling and type checking in client applications, allowing developers to implement error-specific recovery logic based on custom error types and properties.
2778
+
2779
+ Features:
2780
+ - `instanceof Error` checks
2781
+ - Access to `error.message`, `error.name`, `error.stack`
2782
+ - Preservation of custom error properties (e.g., `statusCode`, `responseHeaders`)
2783
+ - Nested error tracking via `error.cause`
2784
+
2785
+ Affected methods:
2786
+ - `startAsync()`
2787
+ - `resumeAsync()`
2788
+ - `restartAsync()`
2789
+ - `timeTravelAsync()`
2790
+
2791
+ - Add missing status parameter to workflow.runs() method ([#11095](https://github.com/mastra-ai/mastra/pull/11095))
2792
+
2793
+ The `status` parameter was supported by the server API but was missing from the TypeScript types in @mastra/client-js.
2794
+
2795
+ Now you can filter workflow runs by status:
2796
+
2797
+ ```typescript
2798
+ // Get only running workflows
2799
+ const runningRuns = await workflow.runs({ status: 'running' });
2800
+
2801
+ // Get completed workflows
2802
+ const completedRuns = await workflow.runs({ status: 'success' });
2803
+ ```
2804
+
2805
+ - 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)]:
2806
+ - @mastra/core@1.0.0-beta.12
2807
+ - @mastra/schema-compat@1.0.0-beta.3
2808
+
2809
+ ## 1.0.0-beta.11
2810
+
2811
+ ### Patch Changes
2812
+
2813
+ - 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))
2814
+
2815
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
2816
+
2817
+ ```typescript showLineNumbers copy
2818
+ const run = await workflow.createRun();
2819
+ const result = await run.start({ inputData: { message: 'Hello' } });
2820
+
2821
+ if (result.status === 'tripwire') {
2822
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
2823
+ console.log('Processor ID:', result.tripwire?.processorId);
2824
+ console.log('Retry requested:', result.tripwire?.retry);
2825
+ }
2826
+ ```
2827
+
2828
+ Adds new UI state for tripwire in agent chat and workflow UI.
2829
+
2830
+ 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).
2831
+
2832
+ - 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)]:
2833
+ - @mastra/core@1.0.0-beta.11
2834
+
2835
+ ## 1.0.0-beta.10
2836
+
2837
+ ### Patch Changes
2838
+
2839
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
2840
+
2841
+ ```typescript
2842
+ await workflow.deleteWorkflowRunById(runId);
2843
+ ```
2844
+
2845
+ - 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)]:
2846
+ - @mastra/core@1.0.0-beta.10
2847
+
2848
+ ## 1.0.0-beta.9
2849
+
2850
+ ### Patch Changes
2851
+
2852
+ - Fix `saveMessageToMemory` return type to match API response. The method now correctly returns `{ messages: (MastraMessageV1 | MastraDBMessage)[] }` instead of `(MastraMessageV1 | MastraDBMessage)[]` to align with the server endpoint response schema. ([#10996](https://github.com/mastra-ai/mastra/pull/10996))
2853
+
2854
+ - 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)]:
2855
+ - @mastra/core@1.0.0-beta.9
2856
+
2857
+ ## 1.0.0-beta.8
2858
+
2859
+ ### Patch Changes
2860
+
2861
+ - 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)]:
2862
+ - @mastra/core@1.0.0-beta.8
2863
+
2864
+ ## 1.0.0-beta.7
2865
+
2866
+ ### Patch Changes
2867
+
2868
+ - fix: standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
2869
+ - Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
2870
+ - Client SDK sends both param formats to support older server versions
2871
+ - Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
2872
+ - Marked `limit` and `offset` as deprecated in client types
2873
+
2874
+ - feat: Add partial response support for agent and workflow list endpoints ([#10886](https://github.com/mastra-ai/mastra/pull/10886))
2875
+
2876
+ Add optional `partial` query parameter to `/api/agents` and `/api/workflows` endpoints to return minimal data without schemas, reducing payload size for list views:
2877
+ - When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
2878
+ - When `partial=true`: workflow steps are replaced with stepCount integer
2879
+ - When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
2880
+ - Maintains backward compatibility when partial parameter is not provided
2881
+
2882
+ ## Server Endpoint Usage
2883
+
2884
+ ```http
2885
+ # Get partial agent data (no tool schemas)
2886
+ GET /api/agents?partial=true
2887
+
2888
+ # Get full agent data (default behavior)
2889
+ GET /api/agents
2890
+
2891
+ # Get partial workflow data (stepCount instead of steps, no schemas)
2892
+ GET /api/workflows?partial=true
2893
+
2894
+ # Get full workflow data (default behavior)
2895
+ GET /api/workflows
2896
+ ```
2897
+
2898
+ ## Client SDK Usage
2899
+
2900
+ ```typescript
2901
+ import { MastraClient } from '@mastra/client-js';
2902
+
2903
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
2904
+
2905
+ // Get partial agent list (smaller payload)
2906
+ const partialAgents = await client.listAgents({ partial: true });
2907
+
2908
+ // Get full agent list with tool schemas
2909
+ const fullAgents = await client.listAgents();
2910
+
2911
+ // Get partial workflow list (smaller payload)
2912
+ const partialWorkflows = await client.listWorkflows({ partial: true });
2913
+
2914
+ // Get full workflow list with steps and schemas
2915
+ const fullWorkflows = await client.listWorkflows();
2916
+ ```
2917
+
2918
+ - 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)]:
2919
+ - @mastra/core@1.0.0-beta.7
2920
+
2921
+ ## 1.0.0-beta.6
2922
+
2923
+ ### Minor Changes
2924
+
2925
+ - Add support for custom fetch function in MastraClient to enable environments like Tauri that require custom fetch implementations to avoid timeout errors. ([#10677](https://github.com/mastra-ai/mastra/pull/10677))
2926
+
2927
+ You can now pass a custom fetch function when creating a MastraClient:
2928
+
2929
+ ```typescript
2930
+ import { MastraClient } from '@mastra/client-js';
2931
+
2932
+ // Before: Only global fetch was available
2933
+ const client = new MastraClient({
2934
+ baseUrl: 'http://your-api-url',
2935
+ });
2936
+
2937
+ // After: Custom fetch can be passed
2938
+ const client = new MastraClient({
2939
+ baseUrl: 'http://your-api-url',
2940
+ fetch: customFetch, // Your custom fetch implementation
2941
+ });
2942
+ ```
2943
+
2944
+ If no custom fetch is provided, it falls back to the global fetch function, maintaining backward compatibility.
2945
+
2946
+ Fixes #10673
2947
+
2948
+ ### Patch Changes
2949
+
2950
+ - The client-js package had its own simpler zodToJsonSchema implementation that was missing critical features from schema-compat. This could cause issues when users pass Zod schemas with `z.record()` or `z.date()` through the MastraClient. ([#10730](https://github.com/mastra-ai/mastra/pull/10730))
2951
+
2952
+ Now the client uses the same implementation as the rest of the codebase, which includes the Zod v4 `z.record()` bug fix, date-time format conversion for `z.date()`, and proper handling of unrepresentable types.
2953
+
2954
+ Also removes the now-unused `zod-to-json-schema` dependency from client-js.
2955
+
2956
+ - Fix wrong arguments type in list workflow runs ([#10755](https://github.com/mastra-ai/mastra/pull/10755))
2957
+
2958
+ - Adjust the generate / stream types to accept tracingOptions ([#10742](https://github.com/mastra-ai/mastra/pull/10742))
2959
+
2960
+ - fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
2961
+
2962
+ **Client (`@mastra/client-js`):**
2963
+ - Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
2964
+
2965
+ **Server (`@mastra/server`):**
2966
+ - Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
2967
+ - Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
2968
+
2969
+ - 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)]:
2970
+ - @mastra/core@1.0.0-beta.6
2971
+ - @mastra/schema-compat@1.0.0-beta.2
2972
+
2973
+ ## 1.0.0-beta.5
2974
+
2975
+ ### Patch Changes
2976
+
2977
+ - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
2978
+
2979
+ - 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)]:
2980
+ - @mastra/core@1.0.0-beta.5
2981
+
2982
+ ## 1.0.0-beta.4
2983
+
2984
+ ### Patch Changes
2985
+
2986
+ - Include agentId parameter in listMessages API call ([#10270](https://github.com/mastra-ai/mastra/pull/10270))
2987
+
2988
+ - Added optional `description` field to `GetAgentResponse` to support richer agent metadata ([#10300](https://github.com/mastra-ai/mastra/pull/10300))
2989
+
2990
+ - 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)]:
2991
+ - @mastra/core@1.0.0-beta.4
2992
+
2993
+ ## 1.0.0-beta.3
2994
+
2995
+ ### Patch Changes
2996
+
2997
+ - Remove unused dependencies ([#10019](https://github.com/mastra-ai/mastra/pull/10019))
2998
+
2999
+ - 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)]:
3000
+ - @mastra/core@1.0.0-beta.3
3001
+
3002
+ ## 1.0.0-beta.2
3003
+
3004
+ ### Patch Changes
3005
+
3006
+ - Updated dependencies [[`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46)]:
3007
+ - @mastra/core@1.0.0-beta.2
3008
+
3009
+ ## 1.0.0-beta.1
3010
+
3011
+ ### Patch Changes
3012
+
3013
+ - Fix clientTools execution in client js ([#9880](https://github.com/mastra-ai/mastra/pull/9880))
3014
+
3015
+ - Updated dependencies [[`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d)]:
3016
+ - @mastra/core@1.0.0-beta.1
3017
+
3018
+ ## 1.0.0-beta.0
3019
+
3020
+ ### Major Changes
3021
+
3022
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
3023
+
3024
+ - 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))
3025
+
3026
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
3027
+
3028
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
3029
+
3030
+ **Storage changes:**
3031
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
3032
+ - All storage implementations support `perPage: false`:
3033
+ - Memory: `listMessages()`
3034
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
3035
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
3036
+
3037
+ **Memory changes:**
3038
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
3039
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
3040
+
3041
+ **Stricter validation:**
3042
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
3043
+
3044
+ **Migration:**
3045
+
3046
+ ```typescript
3047
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
3048
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
3049
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
3050
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
3051
+
3052
+ // Memory: Replace selectBy with flat parameters
3053
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
3054
+ + memory.query({ threadId, perPage: 20, include: [...] })
3055
+
3056
+ // Client SDK
3057
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
3058
+ + thread.listMessages({ page: 0, perPage: 20 })
3059
+ ```
3060
+
3061
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
3062
+
3063
+ ## Storage Layer
3064
+
3065
+ ### BREAKING: Removed `storage.getMessages()`
3066
+
3067
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
3068
+
3069
+ **Migration:**
3070
+
3071
+ ```typescript
3072
+ // Before
3073
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
3074
+
3075
+ // After
3076
+ const result = await storage.listMessages({
3077
+ threadId: 'thread-1',
3078
+ page: 0,
3079
+ perPage: 50,
3080
+ });
3081
+ const messages = result.messages; // Access messages array
3082
+ console.log(result.total); // Total count
3083
+ console.log(result.hasMore); // Whether more pages exist
3084
+ ```
3085
+
3086
+ ### Message ordering default
3087
+
3088
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
3089
+
3090
+ **To use DESC ordering (newest first):**
3091
+
3092
+ ```typescript
3093
+ const result = await storage.listMessages({
3094
+ threadId: 'thread-1',
3095
+ orderBy: { field: 'createdAt', direction: 'DESC' },
3096
+ });
3097
+ ```
3098
+
3099
+ ## Client SDK
3100
+
3101
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
3102
+
3103
+ **Migration:**
3104
+
3105
+ ```typescript
3106
+ // Before
3107
+ const response = await client.getThreadMessages(threadId, { agentId });
3108
+
3109
+ // After
3110
+ const response = await client.listThreadMessages(threadId, { agentId });
3111
+ ```
3112
+
3113
+ The response format remains the same.
3114
+
3115
+ ## Type Changes
3116
+
3117
+ ### BREAKING: Removed `StorageGetMessagesArg` type
3118
+
3119
+ Use `StorageListMessagesInput` instead:
3120
+
3121
+ ```typescript
3122
+ // Before
3123
+ import type { StorageGetMessagesArg } from '@mastra/core';
3124
+
3125
+ // After
3126
+ import type { StorageListMessagesInput } from '@mastra/core';
3127
+ ```
3128
+
3129
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
3130
+
3131
+ - 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))
3132
+
3133
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
3134
+
3135
+ - 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))
3136
+
3137
+ - Remove deprecated methods from client-js ([#9480](https://github.com/mastra-ai/mastra/pull/9480))
3138
+
3139
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
3140
+
3141
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
3142
+
3143
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
3144
+
3145
+ ### What's Changed
3146
+ - Removed legacy v1 watch event handlers and types
3147
+ - Renamed `watch-v2` to `watch` throughout the codebase
3148
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
3149
+ - Removed `/watch` HTTP endpoints from server and deployer
3150
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
3151
+
3152
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
3153
+
3154
+ 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.
3155
+
3156
+ **Affected APIs:**
3157
+ - `Memory.listThreadsByResourceId()`
3158
+ - `Memory.listMessages()`
3159
+ - `Storage.listWorkflowRuns()`
3160
+
3161
+ **Migration:**
3162
+
3163
+ ```typescript
3164
+ // Before
3165
+ await memory.listThreadsByResourceId({
3166
+ resourceId: 'user-123',
3167
+ offset: 20,
3168
+ limit: 10,
3169
+ });
3170
+
3171
+ // After
3172
+ await memory.listThreadsByResourceId({
3173
+ resourceId: 'user-123',
3174
+ page: 2, // page = Math.floor(offset / limit)
3175
+ perPage: 10,
3176
+ });
3177
+
3178
+ // Before
3179
+ await memory.listMessages({
3180
+ threadId: 'thread-456',
3181
+ offset: 20,
3182
+ limit: 10,
3183
+ });
3184
+
3185
+ // After
3186
+ await memory.listMessages({
3187
+ threadId: 'thread-456',
3188
+ page: 2,
3189
+ perPage: 10,
3190
+ });
3191
+
3192
+ // Before
3193
+ await storage.listWorkflowRuns({
3194
+ workflowName: 'my-workflow',
3195
+ offset: 20,
3196
+ limit: 10,
3197
+ });
3198
+
3199
+ // After
3200
+ await storage.listWorkflowRuns({
3201
+ workflowName: 'my-workflow',
3202
+ page: 2,
3203
+ perPage: 10,
3204
+ });
3205
+ ```
3206
+
3207
+ **Additional improvements:**
3208
+ - Added validation for negative `page` values in all storage implementations
3209
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
3210
+ - Added reusable query parser utilities for consistent validation in handlers
3211
+
3212
+ - ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
3213
+ import { Mastra } from '@mastra/core';
3214
+ import { Observability } from '@mastra/observability'; // Explicit import
3215
+
3216
+ const mastra = new Mastra({
3217
+ ...other_config,
3218
+ observability: new Observability({
3219
+ default: { enabled: true }
3220
+ }) // Instance
3221
+ });
3222
+ ```
3223
+
3224
+ Instead of:
3225
+
3226
+ ```
3227
+ import { Mastra } from '@mastra/core';
3228
+ import '@mastra/observability/init'; // Explicit import
3229
+
3230
+ const mastra = new Mastra({
3231
+ ...other_config,
3232
+ observability: {
3233
+ default: { enabled: true }
3234
+ }
3235
+ });
3236
+ ```
3237
+
3238
+ Also renamed a bunch of:
3239
+ - `Tracing` things to `Observability` things.
3240
+ - `AI-` things to just things.
3241
+
3242
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
3243
+
3244
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
3245
+
3246
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
3247
+
3248
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
3249
+ 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
3250
+
3251
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
3252
+
3253
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
3254
+
3255
+ ### Minor Changes
3256
+
3257
+ - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
3258
+ - Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
3259
+ - Add corresponding server handlers and deployer routes for observe streaming
3260
+ - Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
3261
+ - Update template installation processor to support both legacy and VNext streaming event formats
3262
+
3263
+ ### Patch Changes
3264
+
3265
+ - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
3266
+
3267
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
3268
+
3269
+ Consolidated the 3 different execution contexts to one
3270
+
3271
+ ```typescript
3272
+ // before depending on the context the tool was executed in
3273
+ tool.execute({ context: data });
3274
+ tool.execute({ context: { inputData: data } });
3275
+ tool.execute(data);
3276
+
3277
+ // now, for all contexts
3278
+ tool.execute(data, context);
3279
+ ```
3280
+
3281
+ **Before:**
3282
+
3283
+ ```typescript
3284
+ inputSchema: z.object({ something: z.string() }),
3285
+ execute: async ({ context, tracingContext, runId, ... }) => {
3286
+ return doSomething(context.string);
3287
+ }
3288
+ ```
3289
+
3290
+ **After:**
3291
+
3292
+ ```typescript
3293
+ inputSchema: z.object({ something: z.string() }),
3294
+ execute: async (inputData, context) => {
3295
+ const { agent, mcp, workflow, ...sharedContext } = context
3296
+
3297
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
3298
+ if (agent) {
3299
+ doSomething(inputData.something, agent)
3300
+ // context that only a workflow would get like runId, state, suspend, resume, etc
3301
+ } else if (workflow) {
3302
+ doSomething(inputData.something, workflow)
3303
+ // context that only a workflow would get like "extra", "elicitation"
3304
+ } else if (mcp) {
3305
+ doSomething(inputData.something, mcp)
3306
+ } else {
3307
+ // Running a tool in no execution context
3308
+ return doSomething(inputData.something);
3309
+ }
3310
+ }
3311
+ ```
3312
+
3313
+ - Add search memory in client-js ([#9326](https://github.com/mastra-ai/mastra/pull/9326))
3314
+
3315
+ - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
3316
+
3317
+ - Fix error handling and serialization in agent streaming to ensure errors are consistently exposed and preserved. ([#9144](https://github.com/mastra-ai/mastra/pull/9144))
3318
+
3319
+ - 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))
3320
+
3321
+ - Move the enhance instruction fetch call to client-js ([#9302](https://github.com/mastra-ai/mastra/pull/9302))
3322
+
3323
+ - fix list memory ([#9751](https://github.com/mastra-ai/mastra/pull/9751))
3324
+
3325
+ - Remove unused /model-providers API ([#9533](https://github.com/mastra-ai/mastra/pull/9533))
3326
+
3327
+ - Backward compat for list threads ([#9758](https://github.com/mastra-ai/mastra/pull/9758))
3328
+
3329
+ - add client-js function to fetch model providers ([#9376](https://github.com/mastra-ai/mastra/pull/9376))
3330
+
3331
+ - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
3332
+
3333
+ - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
3334
+
3335
+ - 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))
3336
+
3337
+ - 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)]:
3338
+ - @mastra/core@1.0.0-beta.0
3339
+
3340
+ ## 0.16.4
3341
+
3342
+ ### Patch Changes
3343
+
3344
+ - Updated dependencies [[`2b031e2`](https://github.com/mastra-ai/mastra/commit/2b031e25ca10cd3e4d63e6a27f909cba26d91405)]:
3345
+ - @mastra/core@0.22.2
3346
+
3347
+ ## 0.16.4-alpha.0
3348
+
3349
+ ### Patch Changes
3350
+
3351
+ - Updated dependencies [[`2b031e2`](https://github.com/mastra-ai/mastra/commit/2b031e25ca10cd3e4d63e6a27f909cba26d91405)]:
3352
+ - @mastra/core@0.22.2-alpha.0
3353
+
3354
+ ## 0.16.3
3355
+
3356
+ ### Patch Changes
3357
+
3358
+ - Updated dependencies []:
3359
+ - @mastra/core@0.22.1
3360
+
3361
+ ## 0.16.3-alpha.0
3362
+
3363
+ ### Patch Changes
3364
+
3365
+ - Updated dependencies []:
3366
+ - @mastra/core@0.22.1-alpha.0
3367
+
3368
+ ## 0.16.2
3369
+
3370
+ ### Patch Changes
3371
+
3372
+ - Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
3373
+ - @mastra/core@0.22.0
3374
+
3375
+ ## 0.16.2-alpha.1
3376
+
3377
+ ### Patch Changes
3378
+
3379
+ - Updated dependencies [[`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb)]:
3380
+ - @mastra/core@0.22.0-alpha.1
9
3381
 
10
3382
  ## 0.16.2-alpha.0
11
3383