@mastra/client-js 0.0.0-bundle-recursion-20251030002519 → 0.0.0-bundle-studio-cloud-20251222034739
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 +1275 -3
- package/README.md +10 -10
- package/dist/_types/@ai-sdk_ui-utils/dist/index.d.ts +820 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +8396 -0
- package/dist/client.d.ts +68 -79
- package/dist/client.d.ts.map +1 -1
- package/dist/index.cjs +1828 -907
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1826 -901
- package/dist/index.js.map +1 -1
- package/dist/resources/a2a.d.ts.map +1 -1
- package/dist/resources/agent-builder.d.ts +9 -48
- package/dist/resources/agent-builder.d.ts.map +1 -1
- package/dist/resources/agent.d.ts +22 -45
- package/dist/resources/agent.d.ts.map +1 -1
- package/dist/resources/base.d.ts.map +1 -1
- package/dist/resources/index.d.ts +1 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/mcp-tool.d.ts +5 -5
- package/dist/resources/memory-thread.d.ts +14 -22
- package/dist/resources/memory-thread.d.ts.map +1 -1
- package/dist/resources/observability.d.ts +8 -8
- package/dist/resources/observability.d.ts.map +1 -1
- package/dist/resources/run.d.ts +156 -0
- package/dist/resources/run.d.ts.map +1 -0
- package/dist/resources/stored-agent.d.ts +26 -0
- package/dist/resources/stored-agent.d.ts.map +1 -0
- package/dist/resources/tool.d.ts +4 -4
- package/dist/resources/vector.d.ts +5 -5
- package/dist/resources/workflow.d.ts +29 -229
- package/dist/resources/workflow.d.ts.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/types.d.ts +173 -76
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -6
- 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 +16 -15
- 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,1227 @@
|
|
|
1
1
|
# @mastra/client-js
|
|
2
2
|
|
|
3
|
-
## 0.0.0-bundle-
|
|
3
|
+
## 0.0.0-bundle-studio-cloud-20251222034739
|
|
4
4
|
|
|
5
5
|
### Major Changes
|
|
6
6
|
|
|
7
|
+
- Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
|
|
8
|
+
|
|
9
|
+
- 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))
|
|
10
|
+
|
|
11
|
+
- Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
12
|
+
|
|
13
|
+
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
14
|
+
|
|
15
|
+
**Storage changes:**
|
|
16
|
+
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
17
|
+
- All storage implementations support `perPage: false`:
|
|
18
|
+
- Memory: `listMessages()`
|
|
19
|
+
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
20
|
+
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
21
|
+
|
|
22
|
+
**Memory changes:**
|
|
23
|
+
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
24
|
+
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
25
|
+
|
|
26
|
+
**Stricter validation:**
|
|
27
|
+
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
28
|
+
|
|
29
|
+
**Migration:**
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
33
|
+
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
34
|
+
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
35
|
+
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
36
|
+
|
|
37
|
+
// Memory: Replace selectBy with flat parameters
|
|
38
|
+
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
39
|
+
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
40
|
+
|
|
41
|
+
// Client SDK
|
|
42
|
+
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
43
|
+
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- **Removed `storage.getMessages()`** ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
|
|
47
|
+
|
|
48
|
+
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
49
|
+
|
|
50
|
+
**Migration:**
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// Before
|
|
54
|
+
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
55
|
+
|
|
56
|
+
// After
|
|
57
|
+
const result = await storage.listMessages({
|
|
58
|
+
threadId: 'thread-1',
|
|
59
|
+
page: 0,
|
|
60
|
+
perPage: 50,
|
|
61
|
+
});
|
|
62
|
+
const messages = result.messages; // Access messages array
|
|
63
|
+
console.log(result.total); // Total count
|
|
64
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Message ordering default**
|
|
68
|
+
|
|
69
|
+
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
70
|
+
|
|
71
|
+
**To use DESC ordering (newest first):**
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
const result = await storage.listMessages({
|
|
75
|
+
threadId: 'thread-1',
|
|
76
|
+
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Renamed `client.getThreadMessages()` → `client.listThreadMessages()`**
|
|
81
|
+
|
|
82
|
+
**Migration:**
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
// Before
|
|
86
|
+
const response = await client.getThreadMessages(threadId, { agentId });
|
|
87
|
+
|
|
88
|
+
// After
|
|
89
|
+
const response = await client.listThreadMessages(threadId, { agentId });
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The response format remains the same.
|
|
93
|
+
|
|
94
|
+
**Removed `StorageGetMessagesArg` type**
|
|
95
|
+
|
|
96
|
+
Use `StorageListMessagesInput` instead:
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// Before
|
|
100
|
+
import type { StorageGetMessagesArg } from '@mastra/core';
|
|
101
|
+
|
|
102
|
+
// After
|
|
103
|
+
import type { StorageListMessagesInput } from '@mastra/core';
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
107
|
+
|
|
108
|
+
- 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))
|
|
109
|
+
|
|
110
|
+
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
111
|
+
|
|
112
|
+
- 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))
|
|
113
|
+
|
|
114
|
+
- Remove deprecated methods from client-js ([#9480](https://github.com/mastra-ai/mastra/pull/9480))
|
|
115
|
+
|
|
116
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
117
|
+
|
|
118
|
+
- **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
|
|
119
|
+
|
|
120
|
+
This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
|
|
121
|
+
|
|
122
|
+
**What's Changed**
|
|
123
|
+
- Removed legacy v1 watch event handlers and types
|
|
124
|
+
- Renamed `watch-v2` to `watch` throughout the codebase
|
|
125
|
+
- Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
|
|
126
|
+
- Removed `/watch` HTTP endpoints from server and deployer
|
|
127
|
+
- Removed `WorkflowWatchResult` and v1 `WatchEvent` types
|
|
128
|
+
|
|
129
|
+
- Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
130
|
+
|
|
131
|
+
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.
|
|
132
|
+
|
|
133
|
+
**Affected APIs:**
|
|
134
|
+
- `Memory.listThreadsByResourceId()`
|
|
135
|
+
- `Memory.listMessages()`
|
|
136
|
+
- `Storage.listWorkflowRuns()`
|
|
137
|
+
|
|
138
|
+
**Migration:**
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
// Before
|
|
142
|
+
await memory.listThreadsByResourceId({
|
|
143
|
+
resourceId: 'user-123',
|
|
144
|
+
offset: 20,
|
|
145
|
+
limit: 10,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
// After
|
|
149
|
+
await memory.listThreadsByResourceId({
|
|
150
|
+
resourceId: 'user-123',
|
|
151
|
+
page: 2, // page = Math.floor(offset / limit)
|
|
152
|
+
perPage: 10,
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Before
|
|
156
|
+
await memory.listMessages({
|
|
157
|
+
threadId: 'thread-456',
|
|
158
|
+
offset: 20,
|
|
159
|
+
limit: 10,
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// After
|
|
163
|
+
await memory.listMessages({
|
|
164
|
+
threadId: 'thread-456',
|
|
165
|
+
page: 2,
|
|
166
|
+
perPage: 10,
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Before
|
|
170
|
+
await storage.listWorkflowRuns({
|
|
171
|
+
workflowName: 'my-workflow',
|
|
172
|
+
offset: 20,
|
|
173
|
+
limit: 10,
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
// After
|
|
177
|
+
await storage.listWorkflowRuns({
|
|
178
|
+
workflowName: 'my-workflow',
|
|
179
|
+
page: 2,
|
|
180
|
+
perPage: 10,
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Additional improvements:**
|
|
185
|
+
- Added validation for negative `page` values in all storage implementations
|
|
186
|
+
- Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
|
|
187
|
+
- Added reusable query parser utilities for consistent validation in handlers
|
|
188
|
+
|
|
189
|
+
- ```ts ([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
190
|
+
import { Mastra } from '@mastra/core';
|
|
191
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
192
|
+
|
|
193
|
+
const mastra = new Mastra({
|
|
194
|
+
...other_config,
|
|
195
|
+
observability: new Observability({
|
|
196
|
+
default: { enabled: true },
|
|
197
|
+
}), // Instance
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Instead of:
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
import { Mastra } from '@mastra/core';
|
|
205
|
+
import '@mastra/observability/init'; // Explicit import
|
|
206
|
+
|
|
207
|
+
const mastra = new Mastra({
|
|
208
|
+
...other_config,
|
|
209
|
+
observability: {
|
|
210
|
+
default: { enabled: true },
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Also renamed a bunch of:
|
|
216
|
+
- `Tracing` things to `Observability` things.
|
|
217
|
+
- `AI-` things to just things.
|
|
218
|
+
|
|
219
|
+
- Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
220
|
+
|
|
221
|
+
- Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
222
|
+
|
|
223
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
224
|
+
|
|
225
|
+
- Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
|
|
226
|
+
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
|
|
227
|
+
|
|
228
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
229
|
+
|
|
230
|
+
- Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
231
|
+
|
|
232
|
+
### Minor Changes
|
|
233
|
+
|
|
234
|
+
- 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))
|
|
235
|
+
|
|
236
|
+
You can now pass a custom fetch function when creating a MastraClient:
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
import { MastraClient } from '@mastra/client-js';
|
|
240
|
+
|
|
241
|
+
// Before: Only global fetch was available
|
|
242
|
+
const client = new MastraClient({
|
|
243
|
+
baseUrl: 'http://your-api-url',
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
// After: Custom fetch can be passed
|
|
247
|
+
const client = new MastraClient({
|
|
248
|
+
baseUrl: 'http://your-api-url',
|
|
249
|
+
fetch: customFetch, // Your custom fetch implementation
|
|
250
|
+
});
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
If no custom fetch is provided, it falls back to the global fetch function, maintaining backward compatibility.
|
|
254
|
+
|
|
255
|
+
Fixes #10673
|
|
256
|
+
|
|
257
|
+
- Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
|
|
258
|
+
- Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
|
|
259
|
+
- Add corresponding server handlers and deployer routes for observe streaming
|
|
260
|
+
- Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
|
|
261
|
+
- Update template installation processor to support both legacy and VNext streaming event formats
|
|
262
|
+
|
|
263
|
+
### Patch Changes
|
|
264
|
+
|
|
265
|
+
- Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
|
|
266
|
+
|
|
267
|
+
- Embed AI types to fix peerdeps mismatches ([`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808))
|
|
268
|
+
|
|
269
|
+
- Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
|
|
270
|
+
|
|
271
|
+
- 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))
|
|
272
|
+
|
|
273
|
+
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.
|
|
274
|
+
|
|
275
|
+
Also removes the now-unused `zod-to-json-schema` dependency from client-js.
|
|
276
|
+
|
|
277
|
+
- Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
|
|
278
|
+
|
|
279
|
+
Consolidated the 3 different execution contexts to one
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
// before depending on the context the tool was executed in
|
|
283
|
+
tool.execute({ context: data });
|
|
284
|
+
tool.execute({ context: { inputData: data } });
|
|
285
|
+
tool.execute(data);
|
|
286
|
+
|
|
287
|
+
// now, for all contexts
|
|
288
|
+
tool.execute(data, context);
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Before:**
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
inputSchema: z.object({ something: z.string() }),
|
|
295
|
+
execute: async ({ context, tracingContext, runId, ... }) => {
|
|
296
|
+
return doSomething(context.string);
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**After:**
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
inputSchema: z.object({ something: z.string() }),
|
|
304
|
+
execute: async (inputData, context) => {
|
|
305
|
+
const { agent, mcp, workflow, ...sharedContext } = context
|
|
306
|
+
|
|
307
|
+
// context that only an agent would get like toolCallId, messages, suspend, resume, etc
|
|
308
|
+
if (agent) {
|
|
309
|
+
doSomething(inputData.something, agent)
|
|
310
|
+
// context that only a workflow would get like runId, state, suspend, resume, etc
|
|
311
|
+
} else if (workflow) {
|
|
312
|
+
doSomething(inputData.something, workflow)
|
|
313
|
+
// context that only a workflow would get like "extra", "elicitation"
|
|
314
|
+
} else if (mcp) {
|
|
315
|
+
doSomething(inputData.something, mcp)
|
|
316
|
+
} else {
|
|
317
|
+
// Running a tool in no execution context
|
|
318
|
+
return doSomething(inputData.something);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
- Fix wrong arguments type in list workflow runs ([#10755](https://github.com/mastra-ai/mastra/pull/10755))
|
|
324
|
+
|
|
325
|
+
- Adjust the generate / stream types to accept tracingOptions ([#10742](https://github.com/mastra-ai/mastra/pull/10742))
|
|
326
|
+
|
|
327
|
+
- 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))
|
|
328
|
+
With this change, run methods cannot be called directly on workflow instance anymore
|
|
329
|
+
|
|
330
|
+
```diff
|
|
331
|
+
- const result = await workflow.stream({ runId: '123', inputData: { ... } });
|
|
332
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
333
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
- 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))
|
|
337
|
+
|
|
338
|
+
- Add search memory in client-js ([#9326](https://github.com/mastra-ai/mastra/pull/9326))
|
|
339
|
+
|
|
340
|
+
- Fix clientTools execution in client js ([#9880](https://github.com/mastra-ai/mastra/pull/9880))
|
|
341
|
+
|
|
342
|
+
- Include agentId parameter in listMessages API call ([#10270](https://github.com/mastra-ai/mastra/pull/10270))
|
|
343
|
+
|
|
344
|
+
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
345
|
+
|
|
346
|
+
- feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
|
|
347
|
+
|
|
348
|
+
Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
|
|
349
|
+
- `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
|
|
350
|
+
- `withNestedWorkflows`: Control whether to fetch nested workflow data
|
|
351
|
+
|
|
352
|
+
This significantly reduces response payload size and improves response times for large workflows.
|
|
353
|
+
|
|
354
|
+
## Server Endpoint Usage
|
|
355
|
+
|
|
356
|
+
```http
|
|
357
|
+
# Get only status (minimal payload - fastest)
|
|
358
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
|
|
359
|
+
|
|
360
|
+
# Get status and result
|
|
361
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
|
|
362
|
+
|
|
363
|
+
# Get all fields but without nested workflow data (faster)
|
|
364
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
|
|
365
|
+
|
|
366
|
+
# Get only specific fields without nested workflow data
|
|
367
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
|
|
368
|
+
|
|
369
|
+
# Get full data (default behavior)
|
|
370
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## Client SDK Usage
|
|
374
|
+
|
|
375
|
+
```typescript
|
|
376
|
+
import { MastraClient } from '@mastra/client-js';
|
|
377
|
+
|
|
378
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
379
|
+
const workflow = client.getWorkflow('myWorkflow');
|
|
380
|
+
|
|
381
|
+
// Get only status (minimal payload - fastest)
|
|
382
|
+
const statusOnly = await workflow.runExecutionResult(runId, {
|
|
383
|
+
fields: ['status'],
|
|
384
|
+
});
|
|
385
|
+
console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
|
|
386
|
+
|
|
387
|
+
// Get status and result
|
|
388
|
+
const statusAndResult = await workflow.runExecutionResult(runId, {
|
|
389
|
+
fields: ['status', 'result'],
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
// Get all fields but without nested workflow data (faster)
|
|
393
|
+
const resultWithoutNested = await workflow.runExecutionResult(runId, {
|
|
394
|
+
withNestedWorkflows: false,
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
// Get specific fields without nested workflow data
|
|
398
|
+
const optimized = await workflow.runExecutionResult(runId, {
|
|
399
|
+
fields: ['status', 'steps'],
|
|
400
|
+
withNestedWorkflows: false,
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
// Get full execution result (default behavior)
|
|
404
|
+
const fullResult = await workflow.runExecutionResult(runId);
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
## Core API Changes
|
|
408
|
+
|
|
409
|
+
The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
|
|
410
|
+
|
|
411
|
+
```typescript
|
|
412
|
+
await workflow.getWorkflowRunExecutionResult(runId, {
|
|
413
|
+
withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
|
|
414
|
+
fields: ['status', 'result'], // optional field filtering
|
|
415
|
+
});
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
## Inngest Compatibility
|
|
419
|
+
|
|
420
|
+
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.
|
|
421
|
+
|
|
422
|
+
## Performance Impact
|
|
423
|
+
|
|
424
|
+
For workflows with large step outputs:
|
|
425
|
+
- Requesting only `status`: ~99% reduction in payload size
|
|
426
|
+
- Requesting `status,result,error`: ~95% reduction in payload size
|
|
427
|
+
- Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
|
|
428
|
+
- Combining both: Maximum performance optimization
|
|
429
|
+
|
|
430
|
+
- Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
431
|
+
|
|
432
|
+
- 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))
|
|
433
|
+
|
|
434
|
+
- 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))
|
|
435
|
+
|
|
436
|
+
- Added optional `description` field to `GetAgentResponse` to support richer agent metadata ([#10300](https://github.com/mastra-ai/mastra/pull/10300))
|
|
437
|
+
|
|
438
|
+
- Move the enhance instruction fetch call to client-js ([#9302](https://github.com/mastra-ai/mastra/pull/9302))
|
|
439
|
+
|
|
440
|
+
- Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
|
|
441
|
+
|
|
442
|
+
```typescript
|
|
443
|
+
await workflow.deleteWorkflowRunById(runId);
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
- Deserialize workflow errors on the client side ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
|
|
447
|
+
|
|
448
|
+
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.
|
|
449
|
+
|
|
450
|
+
**Before:**
|
|
451
|
+
|
|
452
|
+
```typescript
|
|
453
|
+
const result = await workflow.startAsync({ input });
|
|
454
|
+
if (result.status === 'failed') {
|
|
455
|
+
// result.error was a plain object, couldn't use instanceof
|
|
456
|
+
console.log(result.error.message); // TypeScript error
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**After:**
|
|
461
|
+
|
|
462
|
+
```typescript
|
|
463
|
+
const result = await workflow.startAsync({ input });
|
|
464
|
+
if (result.status === 'failed') {
|
|
465
|
+
// result.error is now a proper Error instance
|
|
466
|
+
if (result.error instanceof MyCustomError) {
|
|
467
|
+
console.log(result.error.statusCode); // Works!
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
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.
|
|
473
|
+
|
|
474
|
+
Features:
|
|
475
|
+
- `instanceof Error` checks
|
|
476
|
+
- Access to `error.message`, `error.name`, `error.stack`
|
|
477
|
+
- Preservation of custom error properties (e.g., `statusCode`, `responseHeaders`)
|
|
478
|
+
- Nested error tracking via `error.cause`
|
|
479
|
+
|
|
480
|
+
Affected methods:
|
|
481
|
+
- `startAsync()`
|
|
482
|
+
- `resumeAsync()`
|
|
483
|
+
- `restartAsync()`
|
|
484
|
+
- `timeTravelAsync()`
|
|
485
|
+
|
|
486
|
+
- fix list memory ([#9751](https://github.com/mastra-ai/mastra/pull/9751))
|
|
487
|
+
|
|
488
|
+
- Standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
|
|
489
|
+
- Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
|
|
490
|
+
- Client SDK sends both param formats to support older server versions
|
|
491
|
+
- Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
|
|
492
|
+
- Marked `limit` and `offset` as deprecated in client types
|
|
493
|
+
|
|
494
|
+
- Remove unused /model-providers API ([#9533](https://github.com/mastra-ai/mastra/pull/9533))
|
|
495
|
+
|
|
496
|
+
- Backward compat for list threads ([#9758](https://github.com/mastra-ai/mastra/pull/9758))
|
|
497
|
+
|
|
498
|
+
- **Client (`@mastra/client-js`):** ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
|
|
499
|
+
- Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
|
|
500
|
+
|
|
501
|
+
**Server (`@mastra/server`):**
|
|
502
|
+
- Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
|
|
503
|
+
- Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
|
|
504
|
+
|
|
505
|
+
- add client-js function to fetch model providers ([#9376](https://github.com/mastra-ai/mastra/pull/9376))
|
|
506
|
+
|
|
507
|
+
- Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
|
|
508
|
+
|
|
509
|
+
- Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
|
|
510
|
+
|
|
511
|
+
- Add missing status parameter to workflow.runs() method ([#11095](https://github.com/mastra-ai/mastra/pull/11095))
|
|
512
|
+
|
|
513
|
+
The `status` parameter was supported by the server API but was missing from the TypeScript types in @mastra/client-js.
|
|
514
|
+
|
|
515
|
+
Now you can filter workflow runs by status:
|
|
516
|
+
|
|
517
|
+
```typescript
|
|
518
|
+
// Get only running workflows
|
|
519
|
+
const runningRuns = await workflow.runs({ status: 'running' });
|
|
520
|
+
|
|
521
|
+
// Get completed workflows
|
|
522
|
+
const completedRuns = await workflow.runs({ status: 'success' });
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
- 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))
|
|
526
|
+
|
|
527
|
+
- Fix delayed promises rejecting when stream suspends on tool-call-approval ([#11278](https://github.com/mastra-ai/mastra/pull/11278))
|
|
528
|
+
|
|
529
|
+
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.
|
|
530
|
+
|
|
531
|
+
Also improves generic type inference for `LLMStepResult` and related types throughout the streaming infrastructure.
|
|
532
|
+
|
|
533
|
+
- 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))
|
|
534
|
+
- When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
|
|
535
|
+
- When `partial=true`: workflow steps are replaced with stepCount integer
|
|
536
|
+
- When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
|
|
537
|
+
- Maintains backward compatibility when partial parameter is not provided
|
|
538
|
+
|
|
539
|
+
**Server Endpoint Usage**
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
# Get partial agent data (no tool schemas)
|
|
543
|
+
GET /api/agents?partial=true
|
|
544
|
+
|
|
545
|
+
# Get full agent data (default behavior)
|
|
546
|
+
GET /api/agents
|
|
547
|
+
|
|
548
|
+
# Get partial workflow data (stepCount instead of steps, no schemas)
|
|
549
|
+
GET /api/workflows?partial=true
|
|
550
|
+
|
|
551
|
+
# Get full workflow data (default behavior)
|
|
552
|
+
GET /api/workflows
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
**Client SDK Usage**
|
|
556
|
+
|
|
557
|
+
```typescript
|
|
558
|
+
import { MastraClient } from '@mastra/client-js';
|
|
559
|
+
|
|
560
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
561
|
+
|
|
562
|
+
// Get partial agent list (smaller payload)
|
|
563
|
+
const partialAgents = await client.listAgents({ partial: true });
|
|
564
|
+
|
|
565
|
+
// Get full agent list with tool schemas
|
|
566
|
+
const fullAgents = await client.listAgents();
|
|
567
|
+
|
|
568
|
+
// Get partial workflow list (smaller payload)
|
|
569
|
+
const partialWorkflows = await client.listWorkflows({ partial: true });
|
|
570
|
+
|
|
571
|
+
// Get full workflow list with steps and schemas
|
|
572
|
+
const fullWorkflows = await client.listWorkflows();
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
- 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))
|
|
576
|
+
|
|
577
|
+
When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
|
|
578
|
+
|
|
579
|
+
```typescript
|
|
580
|
+
const run = await workflow.createRun();
|
|
581
|
+
const result = await run.start({ inputData: { message: 'Hello' } });
|
|
582
|
+
|
|
583
|
+
if (result.status === 'tripwire') {
|
|
584
|
+
console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
|
|
585
|
+
console.log('Processor ID:', result.tripwire?.processorId);
|
|
586
|
+
console.log('Retry requested:', result.tripwire?.retry);
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
Adds new UI state for tripwire in agent chat and workflow UI.
|
|
591
|
+
|
|
592
|
+
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).
|
|
593
|
+
|
|
594
|
+
- Remove unused dependencies ([#10019](https://github.com/mastra-ai/mastra/pull/10019))
|
|
595
|
+
|
|
596
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`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), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`51acef9`](https://github.com/mastra-ai/mastra/commit/51acef95b5977826594fe3ee24475842bd3d5780), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
|
|
597
|
+
- @mastra/core@0.0.0-bundle-studio-cloud-20251222034739
|
|
598
|
+
- @mastra/schema-compat@0.0.0-bundle-studio-cloud-20251222034739
|
|
599
|
+
|
|
600
|
+
## 1.0.0-beta.14
|
|
601
|
+
|
|
602
|
+
### Patch Changes
|
|
603
|
+
|
|
604
|
+
- feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
|
|
605
|
+
|
|
606
|
+
Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
|
|
607
|
+
- `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
|
|
608
|
+
- `withNestedWorkflows`: Control whether to fetch nested workflow data
|
|
609
|
+
|
|
610
|
+
This significantly reduces response payload size and improves response times for large workflows.
|
|
611
|
+
|
|
612
|
+
## Server Endpoint Usage
|
|
613
|
+
|
|
614
|
+
```http
|
|
615
|
+
# Get only status (minimal payload - fastest)
|
|
616
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
|
|
617
|
+
|
|
618
|
+
# Get status and result
|
|
619
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
|
|
620
|
+
|
|
621
|
+
# Get all fields but without nested workflow data (faster)
|
|
622
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
|
|
623
|
+
|
|
624
|
+
# Get only specific fields without nested workflow data
|
|
625
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
|
|
626
|
+
|
|
627
|
+
# Get full data (default behavior)
|
|
628
|
+
GET /api/workflows/:workflowId/runs/:runId/execution-result
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
## Client SDK Usage
|
|
632
|
+
|
|
633
|
+
```typescript
|
|
634
|
+
import { MastraClient } from '@mastra/client-js';
|
|
635
|
+
|
|
636
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
637
|
+
const workflow = client.getWorkflow('myWorkflow');
|
|
638
|
+
|
|
639
|
+
// Get only status (minimal payload - fastest)
|
|
640
|
+
const statusOnly = await workflow.runExecutionResult(runId, {
|
|
641
|
+
fields: ['status'],
|
|
642
|
+
});
|
|
643
|
+
console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
|
|
644
|
+
|
|
645
|
+
// Get status and result
|
|
646
|
+
const statusAndResult = await workflow.runExecutionResult(runId, {
|
|
647
|
+
fields: ['status', 'result'],
|
|
648
|
+
});
|
|
649
|
+
|
|
650
|
+
// Get all fields but without nested workflow data (faster)
|
|
651
|
+
const resultWithoutNested = await workflow.runExecutionResult(runId, {
|
|
652
|
+
withNestedWorkflows: false,
|
|
653
|
+
});
|
|
654
|
+
|
|
655
|
+
// Get specific fields without nested workflow data
|
|
656
|
+
const optimized = await workflow.runExecutionResult(runId, {
|
|
657
|
+
fields: ['status', 'steps'],
|
|
658
|
+
withNestedWorkflows: false,
|
|
659
|
+
});
|
|
660
|
+
|
|
661
|
+
// Get full execution result (default behavior)
|
|
662
|
+
const fullResult = await workflow.runExecutionResult(runId);
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
## Core API Changes
|
|
666
|
+
|
|
667
|
+
The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
|
|
668
|
+
|
|
669
|
+
```typescript
|
|
670
|
+
await workflow.getWorkflowRunExecutionResult(runId, {
|
|
671
|
+
withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
|
|
672
|
+
fields: ['status', 'result'], // optional field filtering
|
|
673
|
+
});
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
## Inngest Compatibility
|
|
677
|
+
|
|
678
|
+
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.
|
|
679
|
+
|
|
680
|
+
## Performance Impact
|
|
681
|
+
|
|
682
|
+
For workflows with large step outputs:
|
|
683
|
+
- Requesting only `status`: ~99% reduction in payload size
|
|
684
|
+
- Requesting `status,result,error`: ~95% reduction in payload size
|
|
685
|
+
- Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
|
|
686
|
+
- Combining both: Maximum performance optimization
|
|
687
|
+
|
|
688
|
+
- Fix delayed promises rejecting when stream suspends on tool-call-approval ([#11278](https://github.com/mastra-ai/mastra/pull/11278))
|
|
689
|
+
|
|
690
|
+
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.
|
|
691
|
+
|
|
692
|
+
Also improves generic type inference for `LLMStepResult` and related types throughout the streaming infrastructure.
|
|
693
|
+
|
|
694
|
+
- 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)]:
|
|
695
|
+
- @mastra/core@1.0.0-beta.14
|
|
696
|
+
|
|
697
|
+
## 1.0.0-beta.13
|
|
698
|
+
|
|
699
|
+
### Patch Changes
|
|
700
|
+
|
|
701
|
+
- Updated dependencies [[`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497)]:
|
|
702
|
+
- @mastra/core@1.0.0-beta.13
|
|
703
|
+
|
|
704
|
+
## 1.0.0-beta.12
|
|
705
|
+
|
|
706
|
+
### Patch Changes
|
|
707
|
+
|
|
708
|
+
- Embed AI types to fix peerdeps mismatches ([`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808))
|
|
709
|
+
|
|
710
|
+
- Add resourceId to workflow routes ([#11166](https://github.com/mastra-ai/mastra/pull/11166))
|
|
711
|
+
|
|
712
|
+
- 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))
|
|
713
|
+
With this change, run methods cannot be called directly on workflow instance anymore
|
|
714
|
+
|
|
715
|
+
```diff
|
|
716
|
+
- const result = await workflow.stream({ runId: '123', inputData: { ... } });
|
|
717
|
+
+ const run = await workflow.createRun({ runId: '123' });
|
|
718
|
+
+ const stream = await run.stream({ inputData: { ... } });
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
- Deserialize workflow errors on the client side ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
|
|
722
|
+
|
|
723
|
+
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.
|
|
724
|
+
|
|
725
|
+
**Before:**
|
|
726
|
+
|
|
727
|
+
```typescript
|
|
728
|
+
const result = await workflow.startAsync({ input });
|
|
729
|
+
if (result.status === 'failed') {
|
|
730
|
+
// result.error was a plain object, couldn't use instanceof
|
|
731
|
+
console.log(result.error.message); // TypeScript error
|
|
732
|
+
}
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
**After:**
|
|
736
|
+
|
|
737
|
+
```typescript
|
|
738
|
+
const result = await workflow.startAsync({ input });
|
|
739
|
+
if (result.status === 'failed') {
|
|
740
|
+
// result.error is now a proper Error instance
|
|
741
|
+
if (result.error instanceof MyCustomError) {
|
|
742
|
+
console.log(result.error.statusCode); // Works!
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
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.
|
|
748
|
+
|
|
749
|
+
Features:
|
|
750
|
+
- `instanceof Error` checks
|
|
751
|
+
- Access to `error.message`, `error.name`, `error.stack`
|
|
752
|
+
- Preservation of custom error properties (e.g., `statusCode`, `responseHeaders`)
|
|
753
|
+
- Nested error tracking via `error.cause`
|
|
754
|
+
|
|
755
|
+
Affected methods:
|
|
756
|
+
- `startAsync()`
|
|
757
|
+
- `resumeAsync()`
|
|
758
|
+
- `restartAsync()`
|
|
759
|
+
- `timeTravelAsync()`
|
|
760
|
+
|
|
761
|
+
- Add missing status parameter to workflow.runs() method ([#11095](https://github.com/mastra-ai/mastra/pull/11095))
|
|
762
|
+
|
|
763
|
+
The `status` parameter was supported by the server API but was missing from the TypeScript types in @mastra/client-js.
|
|
764
|
+
|
|
765
|
+
Now you can filter workflow runs by status:
|
|
766
|
+
|
|
767
|
+
```typescript
|
|
768
|
+
// Get only running workflows
|
|
769
|
+
const runningRuns = await workflow.runs({ status: 'running' });
|
|
770
|
+
|
|
771
|
+
// Get completed workflows
|
|
772
|
+
const completedRuns = await workflow.runs({ status: 'success' });
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
- 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)]:
|
|
776
|
+
- @mastra/core@1.0.0-beta.12
|
|
777
|
+
- @mastra/schema-compat@1.0.0-beta.3
|
|
778
|
+
|
|
779
|
+
## 1.0.0-beta.11
|
|
780
|
+
|
|
781
|
+
### Patch Changes
|
|
782
|
+
|
|
783
|
+
- 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))
|
|
784
|
+
|
|
785
|
+
When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
|
|
786
|
+
|
|
787
|
+
```typescript showLineNumbers copy
|
|
788
|
+
const run = await workflow.createRun();
|
|
789
|
+
const result = await run.start({ inputData: { message: 'Hello' } });
|
|
790
|
+
|
|
791
|
+
if (result.status === 'tripwire') {
|
|
792
|
+
console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
|
|
793
|
+
console.log('Processor ID:', result.tripwire?.processorId);
|
|
794
|
+
console.log('Retry requested:', result.tripwire?.retry);
|
|
795
|
+
}
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
Adds new UI state for tripwire in agent chat and workflow UI.
|
|
799
|
+
|
|
800
|
+
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).
|
|
801
|
+
|
|
802
|
+
- 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)]:
|
|
803
|
+
- @mastra/core@1.0.0-beta.11
|
|
804
|
+
|
|
805
|
+
## 1.0.0-beta.10
|
|
806
|
+
|
|
807
|
+
### Patch Changes
|
|
808
|
+
|
|
809
|
+
- Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
|
|
810
|
+
|
|
811
|
+
```typescript
|
|
812
|
+
await workflow.deleteWorkflowRunById(runId);
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
- 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)]:
|
|
816
|
+
- @mastra/core@1.0.0-beta.10
|
|
817
|
+
|
|
818
|
+
## 1.0.0-beta.9
|
|
819
|
+
|
|
820
|
+
### Patch Changes
|
|
821
|
+
|
|
822
|
+
- 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))
|
|
823
|
+
|
|
824
|
+
- 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)]:
|
|
825
|
+
- @mastra/core@1.0.0-beta.9
|
|
826
|
+
|
|
827
|
+
## 1.0.0-beta.8
|
|
828
|
+
|
|
829
|
+
### Patch Changes
|
|
830
|
+
|
|
831
|
+
- 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)]:
|
|
832
|
+
- @mastra/core@1.0.0-beta.8
|
|
833
|
+
|
|
834
|
+
## 1.0.0-beta.7
|
|
835
|
+
|
|
836
|
+
### Patch Changes
|
|
837
|
+
|
|
838
|
+
- fix: standardize pagination params to page/perPage with backwards compatibility for limit/offset ([#10790](https://github.com/mastra-ai/mastra/pull/10790))
|
|
839
|
+
- Server now accepts both `page`/`perPage` and legacy `limit`/`offset` params for workflow runs and MCP server listing endpoints
|
|
840
|
+
- Client SDK sends both param formats to support older server versions
|
|
841
|
+
- Added `createCombinedPaginationSchema` helper for endpoints needing backwards compatibility
|
|
842
|
+
- Marked `limit` and `offset` as deprecated in client types
|
|
843
|
+
|
|
844
|
+
- feat: Add partial response support for agent and workflow list endpoints ([#10886](https://github.com/mastra-ai/mastra/pull/10886))
|
|
845
|
+
|
|
846
|
+
Add optional `partial` query parameter to `/api/agents` and `/api/workflows` endpoints to return minimal data without schemas, reducing payload size for list views:
|
|
847
|
+
- When `partial=true`: tool schemas (inputSchema, outputSchema) are omitted
|
|
848
|
+
- When `partial=true`: workflow steps are replaced with stepCount integer
|
|
849
|
+
- When `partial=true`: workflow root schemas (inputSchema, outputSchema) are omitted
|
|
850
|
+
- Maintains backward compatibility when partial parameter is not provided
|
|
851
|
+
|
|
852
|
+
## Server Endpoint Usage
|
|
853
|
+
|
|
854
|
+
```http
|
|
855
|
+
# Get partial agent data (no tool schemas)
|
|
856
|
+
GET /api/agents?partial=true
|
|
857
|
+
|
|
858
|
+
# Get full agent data (default behavior)
|
|
859
|
+
GET /api/agents
|
|
860
|
+
|
|
861
|
+
# Get partial workflow data (stepCount instead of steps, no schemas)
|
|
862
|
+
GET /api/workflows?partial=true
|
|
863
|
+
|
|
864
|
+
# Get full workflow data (default behavior)
|
|
865
|
+
GET /api/workflows
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
## Client SDK Usage
|
|
869
|
+
|
|
870
|
+
```typescript
|
|
871
|
+
import { MastraClient } from '@mastra/client-js';
|
|
872
|
+
|
|
873
|
+
const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
|
|
874
|
+
|
|
875
|
+
// Get partial agent list (smaller payload)
|
|
876
|
+
const partialAgents = await client.listAgents({ partial: true });
|
|
877
|
+
|
|
878
|
+
// Get full agent list with tool schemas
|
|
879
|
+
const fullAgents = await client.listAgents();
|
|
880
|
+
|
|
881
|
+
// Get partial workflow list (smaller payload)
|
|
882
|
+
const partialWorkflows = await client.listWorkflows({ partial: true });
|
|
883
|
+
|
|
884
|
+
// Get full workflow list with steps and schemas
|
|
885
|
+
const fullWorkflows = await client.listWorkflows();
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
- 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)]:
|
|
889
|
+
- @mastra/core@1.0.0-beta.7
|
|
890
|
+
|
|
891
|
+
## 1.0.0-beta.6
|
|
892
|
+
|
|
893
|
+
### Minor Changes
|
|
894
|
+
|
|
895
|
+
- 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))
|
|
896
|
+
|
|
897
|
+
You can now pass a custom fetch function when creating a MastraClient:
|
|
898
|
+
|
|
899
|
+
```typescript
|
|
900
|
+
import { MastraClient } from '@mastra/client-js';
|
|
901
|
+
|
|
902
|
+
// Before: Only global fetch was available
|
|
903
|
+
const client = new MastraClient({
|
|
904
|
+
baseUrl: 'http://your-api-url',
|
|
905
|
+
});
|
|
906
|
+
|
|
907
|
+
// After: Custom fetch can be passed
|
|
908
|
+
const client = new MastraClient({
|
|
909
|
+
baseUrl: 'http://your-api-url',
|
|
910
|
+
fetch: customFetch, // Your custom fetch implementation
|
|
911
|
+
});
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
If no custom fetch is provided, it falls back to the global fetch function, maintaining backward compatibility.
|
|
915
|
+
|
|
916
|
+
Fixes #10673
|
|
917
|
+
|
|
918
|
+
### Patch Changes
|
|
919
|
+
|
|
920
|
+
- 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))
|
|
921
|
+
|
|
922
|
+
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.
|
|
923
|
+
|
|
924
|
+
Also removes the now-unused `zod-to-json-schema` dependency from client-js.
|
|
925
|
+
|
|
926
|
+
- Fix wrong arguments type in list workflow runs ([#10755](https://github.com/mastra-ai/mastra/pull/10755))
|
|
927
|
+
|
|
928
|
+
- Adjust the generate / stream types to accept tracingOptions ([#10742](https://github.com/mastra-ai/mastra/pull/10742))
|
|
929
|
+
|
|
930
|
+
- fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
|
|
931
|
+
|
|
932
|
+
**Client (`@mastra/client-js`):**
|
|
933
|
+
- Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
|
|
934
|
+
|
|
935
|
+
**Server (`@mastra/server`):**
|
|
936
|
+
- Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
|
|
937
|
+
- Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
|
|
938
|
+
|
|
939
|
+
- 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)]:
|
|
940
|
+
- @mastra/core@1.0.0-beta.6
|
|
941
|
+
- @mastra/schema-compat@1.0.0-beta.2
|
|
942
|
+
|
|
943
|
+
## 1.0.0-beta.5
|
|
944
|
+
|
|
945
|
+
### Patch Changes
|
|
946
|
+
|
|
947
|
+
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
948
|
+
|
|
949
|
+
- 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)]:
|
|
950
|
+
- @mastra/core@1.0.0-beta.5
|
|
951
|
+
|
|
952
|
+
## 1.0.0-beta.4
|
|
953
|
+
|
|
954
|
+
### Patch Changes
|
|
955
|
+
|
|
956
|
+
- Include agentId parameter in listMessages API call ([#10270](https://github.com/mastra-ai/mastra/pull/10270))
|
|
957
|
+
|
|
958
|
+
- Added optional `description` field to `GetAgentResponse` to support richer agent metadata ([#10300](https://github.com/mastra-ai/mastra/pull/10300))
|
|
959
|
+
|
|
960
|
+
- 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)]:
|
|
961
|
+
- @mastra/core@1.0.0-beta.4
|
|
962
|
+
|
|
963
|
+
## 1.0.0-beta.3
|
|
964
|
+
|
|
965
|
+
### Patch Changes
|
|
966
|
+
|
|
967
|
+
- Remove unused dependencies ([#10019](https://github.com/mastra-ai/mastra/pull/10019))
|
|
968
|
+
|
|
969
|
+
- 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)]:
|
|
970
|
+
- @mastra/core@1.0.0-beta.3
|
|
971
|
+
|
|
972
|
+
## 1.0.0-beta.2
|
|
973
|
+
|
|
974
|
+
### Patch Changes
|
|
975
|
+
|
|
976
|
+
- Updated dependencies [[`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46)]:
|
|
977
|
+
- @mastra/core@1.0.0-beta.2
|
|
978
|
+
|
|
979
|
+
## 1.0.0-beta.1
|
|
980
|
+
|
|
981
|
+
### Patch Changes
|
|
982
|
+
|
|
983
|
+
- Fix clientTools execution in client js ([#9880](https://github.com/mastra-ai/mastra/pull/9880))
|
|
984
|
+
|
|
985
|
+
- Updated dependencies [[`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d)]:
|
|
986
|
+
- @mastra/core@1.0.0-beta.1
|
|
987
|
+
|
|
988
|
+
## 1.0.0-beta.0
|
|
989
|
+
|
|
990
|
+
### Major Changes
|
|
991
|
+
|
|
992
|
+
- Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
|
|
993
|
+
|
|
994
|
+
- 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))
|
|
995
|
+
|
|
996
|
+
- **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
997
|
+
|
|
998
|
+
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
999
|
+
|
|
1000
|
+
**Storage changes:**
|
|
1001
|
+
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
1002
|
+
- All storage implementations support `perPage: false`:
|
|
1003
|
+
- Memory: `listMessages()`
|
|
1004
|
+
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
1005
|
+
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
1006
|
+
|
|
1007
|
+
**Memory changes:**
|
|
1008
|
+
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
1009
|
+
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
1010
|
+
|
|
1011
|
+
**Stricter validation:**
|
|
1012
|
+
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
1013
|
+
|
|
1014
|
+
**Migration:**
|
|
1015
|
+
|
|
1016
|
+
```typescript
|
|
1017
|
+
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
1018
|
+
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
1019
|
+
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
1020
|
+
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
1021
|
+
|
|
1022
|
+
// Memory: Replace selectBy with flat parameters
|
|
1023
|
+
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
1024
|
+
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
1025
|
+
|
|
1026
|
+
// Client SDK
|
|
1027
|
+
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
1028
|
+
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
- # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
|
|
1032
|
+
|
|
1033
|
+
## Storage Layer
|
|
1034
|
+
|
|
1035
|
+
### BREAKING: Removed `storage.getMessages()`
|
|
1036
|
+
|
|
1037
|
+
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
1038
|
+
|
|
1039
|
+
**Migration:**
|
|
1040
|
+
|
|
1041
|
+
```typescript
|
|
1042
|
+
// Before
|
|
1043
|
+
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
1044
|
+
|
|
1045
|
+
// After
|
|
1046
|
+
const result = await storage.listMessages({
|
|
1047
|
+
threadId: 'thread-1',
|
|
1048
|
+
page: 0,
|
|
1049
|
+
perPage: 50,
|
|
1050
|
+
});
|
|
1051
|
+
const messages = result.messages; // Access messages array
|
|
1052
|
+
console.log(result.total); // Total count
|
|
1053
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
1054
|
+
```
|
|
1055
|
+
|
|
1056
|
+
### Message ordering default
|
|
1057
|
+
|
|
1058
|
+
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
1059
|
+
|
|
1060
|
+
**To use DESC ordering (newest first):**
|
|
1061
|
+
|
|
1062
|
+
```typescript
|
|
1063
|
+
const result = await storage.listMessages({
|
|
1064
|
+
threadId: 'thread-1',
|
|
1065
|
+
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
1066
|
+
});
|
|
1067
|
+
```
|
|
1068
|
+
|
|
1069
|
+
## Client SDK
|
|
1070
|
+
|
|
1071
|
+
### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
|
|
1072
|
+
|
|
1073
|
+
**Migration:**
|
|
1074
|
+
|
|
1075
|
+
```typescript
|
|
1076
|
+
// Before
|
|
1077
|
+
const response = await client.getThreadMessages(threadId, { agentId });
|
|
1078
|
+
|
|
1079
|
+
// After
|
|
1080
|
+
const response = await client.listThreadMessages(threadId, { agentId });
|
|
1081
|
+
```
|
|
1082
|
+
|
|
1083
|
+
The response format remains the same.
|
|
1084
|
+
|
|
1085
|
+
## Type Changes
|
|
1086
|
+
|
|
1087
|
+
### BREAKING: Removed `StorageGetMessagesArg` type
|
|
1088
|
+
|
|
1089
|
+
Use `StorageListMessagesInput` instead:
|
|
1090
|
+
|
|
1091
|
+
```typescript
|
|
1092
|
+
// Before
|
|
1093
|
+
import type { StorageGetMessagesArg } from '@mastra/core';
|
|
1094
|
+
|
|
1095
|
+
// After
|
|
1096
|
+
import type { StorageListMessagesInput } from '@mastra/core';
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
1100
|
+
|
|
1101
|
+
- 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))
|
|
1102
|
+
|
|
1103
|
+
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
1104
|
+
|
|
1105
|
+
- 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))
|
|
1106
|
+
|
|
1107
|
+
- Remove deprecated methods from client-js ([#9480](https://github.com/mastra-ai/mastra/pull/9480))
|
|
1108
|
+
|
|
1109
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
1110
|
+
|
|
1111
|
+
- **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
|
|
1112
|
+
|
|
1113
|
+
This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
|
|
1114
|
+
|
|
1115
|
+
### What's Changed
|
|
1116
|
+
- Removed legacy v1 watch event handlers and types
|
|
1117
|
+
- Renamed `watch-v2` to `watch` throughout the codebase
|
|
1118
|
+
- Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
|
|
1119
|
+
- Removed `/watch` HTTP endpoints from server and deployer
|
|
1120
|
+
- Removed `WorkflowWatchResult` and v1 `WatchEvent` types
|
|
1121
|
+
|
|
1122
|
+
- **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
1123
|
+
|
|
1124
|
+
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.
|
|
1125
|
+
|
|
1126
|
+
**Affected APIs:**
|
|
1127
|
+
- `Memory.listThreadsByResourceId()`
|
|
1128
|
+
- `Memory.listMessages()`
|
|
1129
|
+
- `Storage.listWorkflowRuns()`
|
|
1130
|
+
|
|
1131
|
+
**Migration:**
|
|
1132
|
+
|
|
1133
|
+
```typescript
|
|
1134
|
+
// Before
|
|
1135
|
+
await memory.listThreadsByResourceId({
|
|
1136
|
+
resourceId: 'user-123',
|
|
1137
|
+
offset: 20,
|
|
1138
|
+
limit: 10,
|
|
1139
|
+
});
|
|
1140
|
+
|
|
1141
|
+
// After
|
|
1142
|
+
await memory.listThreadsByResourceId({
|
|
1143
|
+
resourceId: 'user-123',
|
|
1144
|
+
page: 2, // page = Math.floor(offset / limit)
|
|
1145
|
+
perPage: 10,
|
|
1146
|
+
});
|
|
1147
|
+
|
|
1148
|
+
// Before
|
|
1149
|
+
await memory.listMessages({
|
|
1150
|
+
threadId: 'thread-456',
|
|
1151
|
+
offset: 20,
|
|
1152
|
+
limit: 10,
|
|
1153
|
+
});
|
|
1154
|
+
|
|
1155
|
+
// After
|
|
1156
|
+
await memory.listMessages({
|
|
1157
|
+
threadId: 'thread-456',
|
|
1158
|
+
page: 2,
|
|
1159
|
+
perPage: 10,
|
|
1160
|
+
});
|
|
1161
|
+
|
|
1162
|
+
// Before
|
|
1163
|
+
await storage.listWorkflowRuns({
|
|
1164
|
+
workflowName: 'my-workflow',
|
|
1165
|
+
offset: 20,
|
|
1166
|
+
limit: 10,
|
|
1167
|
+
});
|
|
1168
|
+
|
|
1169
|
+
// After
|
|
1170
|
+
await storage.listWorkflowRuns({
|
|
1171
|
+
workflowName: 'my-workflow',
|
|
1172
|
+
page: 2,
|
|
1173
|
+
perPage: 10,
|
|
1174
|
+
});
|
|
1175
|
+
```
|
|
1176
|
+
|
|
1177
|
+
**Additional improvements:**
|
|
1178
|
+
- Added validation for negative `page` values in all storage implementations
|
|
1179
|
+
- Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
|
|
1180
|
+
- Added reusable query parser utilities for consistent validation in handlers
|
|
1181
|
+
|
|
1182
|
+
- ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
1183
|
+
import { Mastra } from '@mastra/core';
|
|
1184
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
1185
|
+
|
|
1186
|
+
const mastra = new Mastra({
|
|
1187
|
+
...other_config,
|
|
1188
|
+
observability: new Observability({
|
|
1189
|
+
default: { enabled: true }
|
|
1190
|
+
}) // Instance
|
|
1191
|
+
});
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
Instead of:
|
|
1195
|
+
|
|
1196
|
+
```
|
|
1197
|
+
import { Mastra } from '@mastra/core';
|
|
1198
|
+
import '@mastra/observability/init'; // Explicit import
|
|
1199
|
+
|
|
1200
|
+
const mastra = new Mastra({
|
|
1201
|
+
...other_config,
|
|
1202
|
+
observability: {
|
|
1203
|
+
default: { enabled: true }
|
|
1204
|
+
}
|
|
1205
|
+
});
|
|
1206
|
+
```
|
|
1207
|
+
|
|
1208
|
+
Also renamed a bunch of:
|
|
1209
|
+
- `Tracing` things to `Observability` things.
|
|
1210
|
+
- `AI-` things to just things.
|
|
1211
|
+
|
|
1212
|
+
- Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
|
|
1213
|
+
|
|
7
1214
|
- Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
8
1215
|
|
|
1216
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
1217
|
+
|
|
1218
|
+
- Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
|
|
1219
|
+
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
|
|
1220
|
+
|
|
1221
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
1222
|
+
|
|
1223
|
+
- Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
1224
|
+
|
|
9
1225
|
### Minor Changes
|
|
10
1226
|
|
|
11
1227
|
- Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
|
|
@@ -18,22 +1234,78 @@
|
|
|
18
1234
|
|
|
19
1235
|
- Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
|
|
20
1236
|
|
|
1237
|
+
- Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
|
|
1238
|
+
|
|
1239
|
+
Consolidated the 3 different execution contexts to one
|
|
1240
|
+
|
|
1241
|
+
```typescript
|
|
1242
|
+
// before depending on the context the tool was executed in
|
|
1243
|
+
tool.execute({ context: data });
|
|
1244
|
+
tool.execute({ context: { inputData: data } });
|
|
1245
|
+
tool.execute(data);
|
|
1246
|
+
|
|
1247
|
+
// now, for all contexts
|
|
1248
|
+
tool.execute(data, context);
|
|
1249
|
+
```
|
|
1250
|
+
|
|
1251
|
+
**Before:**
|
|
1252
|
+
|
|
1253
|
+
```typescript
|
|
1254
|
+
inputSchema: z.object({ something: z.string() }),
|
|
1255
|
+
execute: async ({ context, tracingContext, runId, ... }) => {
|
|
1256
|
+
return doSomething(context.string);
|
|
1257
|
+
}
|
|
1258
|
+
```
|
|
1259
|
+
|
|
1260
|
+
**After:**
|
|
1261
|
+
|
|
1262
|
+
```typescript
|
|
1263
|
+
inputSchema: z.object({ something: z.string() }),
|
|
1264
|
+
execute: async (inputData, context) => {
|
|
1265
|
+
const { agent, mcp, workflow, ...sharedContext } = context
|
|
1266
|
+
|
|
1267
|
+
// context that only an agent would get like toolCallId, messages, suspend, resume, etc
|
|
1268
|
+
if (agent) {
|
|
1269
|
+
doSomething(inputData.something, agent)
|
|
1270
|
+
// context that only a workflow would get like runId, state, suspend, resume, etc
|
|
1271
|
+
} else if (workflow) {
|
|
1272
|
+
doSomething(inputData.something, workflow)
|
|
1273
|
+
// context that only a workflow would get like "extra", "elicitation"
|
|
1274
|
+
} else if (mcp) {
|
|
1275
|
+
doSomething(inputData.something, mcp)
|
|
1276
|
+
} else {
|
|
1277
|
+
// Running a tool in no execution context
|
|
1278
|
+
return doSomething(inputData.something);
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
```
|
|
1282
|
+
|
|
21
1283
|
- Add search memory in client-js ([#9326](https://github.com/mastra-ai/mastra/pull/9326))
|
|
22
1284
|
|
|
23
1285
|
- Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
|
|
24
1286
|
|
|
25
1287
|
- 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))
|
|
26
1288
|
|
|
1289
|
+
- 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))
|
|
1290
|
+
|
|
27
1291
|
- Move the enhance instruction fetch call to client-js ([#9302](https://github.com/mastra-ai/mastra/pull/9302))
|
|
28
1292
|
|
|
1293
|
+
- fix list memory ([#9751](https://github.com/mastra-ai/mastra/pull/9751))
|
|
1294
|
+
|
|
1295
|
+
- Remove unused /model-providers API ([#9533](https://github.com/mastra-ai/mastra/pull/9533))
|
|
1296
|
+
|
|
1297
|
+
- Backward compat for list threads ([#9758](https://github.com/mastra-ai/mastra/pull/9758))
|
|
1298
|
+
|
|
29
1299
|
- add client-js function to fetch model providers ([#9376](https://github.com/mastra-ai/mastra/pull/9376))
|
|
30
1300
|
|
|
31
1301
|
- Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
|
|
32
1302
|
|
|
33
1303
|
- Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
|
|
34
1304
|
|
|
35
|
-
-
|
|
36
|
-
|
|
1305
|
+
- 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))
|
|
1306
|
+
|
|
1307
|
+
- 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)]:
|
|
1308
|
+
- @mastra/core@1.0.0-beta.0
|
|
37
1309
|
|
|
38
1310
|
## 0.16.4
|
|
39
1311
|
|