@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.
- package/CHANGELOG.md +3375 -3
- package/LICENSE.md +15 -0
- package/README.md +11 -13
- package/dist/_types/@ai-sdk_ui-utils/dist/index.d.ts +820 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +10345 -0
- package/dist/client.d.ts +397 -75
- package/dist/client.d.ts.map +1 -1
- package/dist/docs/SKILL.md +44 -0
- package/dist/docs/assets/SOURCE_MAP.json +6 -0
- package/dist/docs/references/docs-server-auth-auth0.md +220 -0
- package/dist/docs/references/docs-server-auth-clerk.md +132 -0
- package/dist/docs/references/docs-server-auth-firebase.md +272 -0
- package/dist/docs/references/docs-server-auth-jwt.md +110 -0
- package/dist/docs/references/docs-server-auth-supabase.md +117 -0
- package/dist/docs/references/docs-server-auth-workos.md +186 -0
- package/dist/docs/references/docs-server-mastra-client.md +243 -0
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +231 -0
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-v4-messages.md +79 -0
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-v5-messages.md +76 -0
- package/dist/docs/references/reference-client-js-agents.md +437 -0
- package/dist/docs/references/reference-client-js-error-handling.md +16 -0
- package/dist/docs/references/reference-client-js-logs.md +24 -0
- package/dist/docs/references/reference-client-js-mastra-client.md +63 -0
- package/dist/docs/references/reference-client-js-memory.md +221 -0
- package/dist/docs/references/reference-client-js-observability.md +72 -0
- package/dist/docs/references/reference-client-js-telemetry.md +20 -0
- package/dist/docs/references/reference-client-js-tools.md +44 -0
- package/dist/docs/references/reference-client-js-vectors.md +79 -0
- package/dist/docs/references/reference-client-js-workflows.md +199 -0
- package/dist/index.cjs +4575 -1896
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4875 -2193
- package/dist/index.js.map +1 -1
- package/dist/resources/a2a.d.ts.map +1 -1
- package/dist/resources/agent-builder.d.ts +55 -62
- package/dist/resources/agent-builder.d.ts.map +1 -1
- package/dist/resources/agent.d.ts +89 -51
- package/dist/resources/agent.d.ts.map +1 -1
- package/dist/resources/base.d.ts +2 -1
- package/dist/resources/base.d.ts.map +1 -1
- package/dist/resources/index.d.ts +9 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/mcp-tool.d.ts +5 -5
- package/dist/resources/mcp-tool.d.ts.map +1 -1
- package/dist/resources/memory-thread.d.ts +31 -16
- package/dist/resources/memory-thread.d.ts.map +1 -1
- package/dist/resources/observability.d.ts +62 -19
- package/dist/resources/observability.d.ts.map +1 -1
- package/dist/resources/processor-provider.d.ts +15 -0
- package/dist/resources/processor-provider.d.ts.map +1 -0
- package/dist/resources/processor.d.ts +20 -0
- package/dist/resources/processor.d.ts.map +1 -0
- package/dist/resources/run.d.ts +210 -0
- package/dist/resources/run.d.ts.map +1 -0
- package/dist/resources/stored-agent.d.ts +83 -0
- package/dist/resources/stored-agent.d.ts.map +1 -0
- package/dist/resources/stored-mcp-client.d.ts +30 -0
- package/dist/resources/stored-mcp-client.d.ts.map +1 -0
- package/dist/resources/stored-prompt-block.d.ts +83 -0
- package/dist/resources/stored-prompt-block.d.ts.map +1 -0
- package/dist/resources/stored-scorer.d.ts +83 -0
- package/dist/resources/stored-scorer.d.ts.map +1 -0
- package/dist/resources/stored-skill.d.ts +30 -0
- package/dist/resources/stored-skill.d.ts.map +1 -0
- package/dist/resources/tool-provider.d.ts +27 -0
- package/dist/resources/tool-provider.d.ts.map +1 -0
- package/dist/resources/tool.d.ts +4 -4
- package/dist/resources/vector.d.ts +5 -5
- package/dist/resources/vector.d.ts.map +1 -1
- package/dist/resources/workflow.d.ts +32 -231
- package/dist/resources/workflow.d.ts.map +1 -1
- package/dist/resources/workspace.d.ts +125 -0
- package/dist/resources/workspace.d.ts.map +1 -0
- package/dist/tools.d.ts +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/types.d.ts +1673 -146
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +56 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/process-mastra-stream.d.ts +1 -1
- package/dist/utils/process-mastra-stream.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema.d.ts +9 -1
- package/dist/utils/zod-to-json-schema.d.ts.map +1 -1
- package/package.json +20 -18
- package/dist/resources/network-memory-thread.d.ts +0 -47
- 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-
|
|
3
|
+
## 0.0.0-execa-dynamic-import-20260304221256
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
|
|
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
|
|