@mastra/ai-sdk 0.0.0-toolOptionTypes-20250917085558 → 0.0.0-top-level-fix-20251211111608

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.
@@ -0,0 +1,75 @@
1
+ import type { AgentExecutionOptions } from '@mastra/core/agent';
2
+ import type { MessageListInput } from '@mastra/core/agent/message-list';
3
+ import type { Mastra } from '@mastra/core/mastra';
4
+ import { registerApiRoute } from '@mastra/core/server';
5
+ import type { OutputSchema } from '@mastra/core/stream';
6
+ import type { InferUIMessageChunk, UIMessage } from 'ai';
7
+ export type NetworkStreamHandlerParams<OUTPUT extends OutputSchema = undefined> = AgentExecutionOptions<OUTPUT, 'mastra'> & {
8
+ messages: MessageListInput;
9
+ };
10
+ export type NetworkStreamHandlerOptions<OUTPUT extends OutputSchema = undefined> = {
11
+ mastra: Mastra;
12
+ agentId: string;
13
+ params: NetworkStreamHandlerParams<OUTPUT>;
14
+ defaultOptions?: AgentExecutionOptions<OUTPUT, 'mastra'>;
15
+ };
16
+ /**
17
+ * Framework-agnostic handler for streaming agent network execution in AI SDK-compatible format.
18
+ * Use this function directly when you need to handle network streaming outside of Hono or Mastra's own apiRoutes feature.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * // Next.js App Router
23
+ * import { handleNetworkStream } from '@mastra/ai-sdk';
24
+ * import { createUIMessageStreamResponse } from 'ai';
25
+ * import { mastra } from '@/src/mastra';
26
+ *
27
+ * export async function POST(req: Request) {
28
+ * const params = await req.json();
29
+ * const stream = await handleNetworkStream({
30
+ * mastra,
31
+ * agentId: 'routingAgent',
32
+ * params,
33
+ * });
34
+ * return createUIMessageStreamResponse({ stream });
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function handleNetworkStream<UI_MESSAGE extends UIMessage, OUTPUT extends OutputSchema = undefined>({ mastra, agentId, params, defaultOptions, }: NetworkStreamHandlerOptions<OUTPUT>): Promise<ReadableStream<InferUIMessageChunk<UI_MESSAGE>>>;
39
+ export type NetworkRouteOptions<OUTPUT extends OutputSchema = undefined> = {
40
+ path: `${string}:agentId${string}`;
41
+ agent?: never;
42
+ defaultOptions?: AgentExecutionOptions<OUTPUT, 'mastra'>;
43
+ } | {
44
+ path: string;
45
+ agent: string;
46
+ defaultOptions?: AgentExecutionOptions<OUTPUT, 'mastra'>;
47
+ };
48
+ /**
49
+ * Creates a network route handler for streaming agent network execution using the AI SDK-compatible format.
50
+ *
51
+ * This function registers an HTTP POST endpoint that accepts messages, executes an agent network, and streams the response back to the client in AI SDK-compatible format. Agent networks allow a routing agent to delegate tasks to other agents.
52
+ *
53
+ * @param {NetworkRouteOptions} options - Configuration options for the network route
54
+ * @param {string} [options.path='/network/:agentId'] - The route path. Include `:agentId` for dynamic routing
55
+ * @param {string} [options.agent] - Fixed agent ID when not using dynamic routing
56
+ * @param {AgentExecutionOptions} [options.defaultOptions] - Default options passed to agent execution
57
+ *
58
+ * @example
59
+ * // Dynamic agent routing
60
+ * networkRoute({
61
+ * path: '/network/:agentId',
62
+ * });
63
+ *
64
+ * @example
65
+ * // Fixed agent with custom path
66
+ * networkRoute({
67
+ * path: '/api/orchestrator',
68
+ * agent: 'router-agent',
69
+ * defaultOptions: {
70
+ * maxSteps: 10,
71
+ * },
72
+ * });
73
+ */
74
+ export declare function networkRoute<OUTPUT extends OutputSchema = undefined>({ path, agent, defaultOptions, }: NetworkRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute>;
75
+ //# sourceMappingURL=network-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-route.d.ts","sourceRoot":"","sources":["../src/network-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGzD,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,IAAI,qBAAqB,CACrG,MAAM,EACN,QAAQ,CACT,GAAG;IACF,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,IAAI;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC1D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,SAAS,SAAS,EAAE,MAAM,SAAS,YAAY,GAAG,SAAS,EAAE,EAC/G,MAAM,EACN,OAAO,EACP,MAAM,EACN,cAAc,GACf,EAAE,2BAA2B,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAqBhG;AAED,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,IACnE;IAAE,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GAC/G;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,EAAE,EACpE,IAA0B,EAC1B,KAAK,EACL,cAAc,GACf,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAwFnE"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @deprecated Use `toAISdkStream` instead. This function has been renamed for clarity.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * // Old (deprecated):
7
+ * import { toAISdkFormat } from '@mastra/ai-sdk';
8
+ * const stream = toAISdkFormat(agentStream, { from: 'agent' });
9
+ *
10
+ * // New:
11
+ * import { toAISdkStream } from '@mastra/ai-sdk';
12
+ * const stream = toAISdkStream(agentStream, { from: 'agent' });
13
+ * ```
14
+ */
15
+ export declare function toAISdkFormat(): never;
16
+ //# sourceMappingURL=to-ai-sdk-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-ai-sdk-format.d.ts","sourceRoot":"","sources":["../src/to-ai-sdk-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,IAAI,KAAK,CASrC"}
@@ -0,0 +1,259 @@
1
+ import type { LLMStepResult } from '@mastra/core/agent';
2
+ import type { ChunkType, DataChunkType, NetworkChunkType } from '@mastra/core/stream';
3
+ import type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';
4
+ import type { InferUIMessageChunk, UIMessage, UIMessageStreamOptions } from 'ai';
5
+ import type { ZodType } from 'zod';
6
+ import type { ToolAgentChunkType, ToolWorkflowChunkType, ToolNetworkChunkType } from './helpers.js';
7
+ type LanguageModelV2Usage = {
8
+ /**
9
+ The number of input (prompt) tokens used.
10
+ */
11
+ inputTokens: number | undefined;
12
+ /**
13
+ The number of output (completion) tokens used.
14
+ */
15
+ outputTokens: number | undefined;
16
+ /**
17
+ The total number of tokens as reported by the provider.
18
+ This number might be different from the sum of `inputTokens` and `outputTokens`
19
+ and e.g. include reasoning tokens or other overhead.
20
+ */
21
+ totalTokens: number | undefined;
22
+ /**
23
+ The number of reasoning tokens used.
24
+ */
25
+ reasoningTokens?: number | undefined;
26
+ /**
27
+ The number of cached input tokens.
28
+ */
29
+ cachedInputTokens?: number | undefined;
30
+ };
31
+ type StepResult = {
32
+ name: string;
33
+ status: WorkflowStepStatus;
34
+ input: Record<string, unknown> | null;
35
+ output: unknown | null;
36
+ suspendPayload: Record<string, unknown> | null;
37
+ resumePayload: Record<string, unknown> | null;
38
+ };
39
+ export type WorkflowDataPart = {
40
+ type: 'data-workflow' | 'data-tool-workflow';
41
+ id: string;
42
+ data: {
43
+ name: string;
44
+ status: WorkflowRunStatus;
45
+ steps: Record<string, StepResult>;
46
+ output: {
47
+ usage: {
48
+ inputTokens: number;
49
+ outputTokens: number;
50
+ totalTokens: number;
51
+ };
52
+ } | null;
53
+ };
54
+ };
55
+ export type NetworkDataPart = {
56
+ type: 'data-network' | 'data-tool-network';
57
+ id: string;
58
+ data: {
59
+ name: string;
60
+ status: 'running' | 'finished';
61
+ steps: StepResult[];
62
+ usage: LanguageModelV2Usage | null;
63
+ output: unknown | null;
64
+ };
65
+ };
66
+ export type AgentDataPart = {
67
+ type: 'data-tool-agent';
68
+ id: string;
69
+ data: LLMStepResult;
70
+ };
71
+ declare const PRIMITIVE_CACHE_SYMBOL: unique symbol;
72
+ export declare function WorkflowStreamToAISDKTransformer({ includeTextStreamParts, }?: {
73
+ includeTextStreamParts?: boolean;
74
+ }): import("stream/web").TransformStream<ChunkType, ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | WorkflowDataPart | ChunkType | {
75
+ data?: string;
76
+ type?: "start" | "finish";
77
+ } | InferUIMessageChunk<UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>>;
78
+ export declare function AgentNetworkToAISDKTransformer(): import("stream/web").TransformStream<NetworkChunkType, DataChunkType | NetworkDataPart | InferUIMessageChunk<UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>> | {
79
+ data?: string;
80
+ type?: "start" | "finish";
81
+ }>;
82
+ export declare function AgentStreamToAISDKTransformer<TOutput extends ZodType<any>>({ lastMessageId, sendStart, sendFinish, sendReasoning, sendSources, messageMetadata, onError, }: {
83
+ lastMessageId?: string;
84
+ sendStart?: boolean;
85
+ sendFinish?: boolean;
86
+ sendReasoning?: boolean;
87
+ sendSources?: boolean;
88
+ messageMetadata?: UIMessageStreamOptions<UIMessage>['messageMetadata'];
89
+ onError?: UIMessageStreamOptions<UIMessage>['onError'];
90
+ }): import("stream/web").TransformStream<ChunkType<TOutput>, object>;
91
+ export declare function transformAgent<TOutput extends ZodType<any>>(payload: ChunkType<TOutput>, bufferedSteps: Map<string, any>): {
92
+ type: "data-tool-agent";
93
+ id: string;
94
+ data: any;
95
+ } | null;
96
+ export declare function transformWorkflow<TOutput extends ZodType<any>>(payload: ChunkType<TOutput>, bufferedWorkflows: Map<string, {
97
+ name: string;
98
+ steps: Record<string, StepResult>;
99
+ }>, isNested?: boolean, includeTextStreamParts?: boolean): (DataChunkType & {
100
+ from: never;
101
+ runId: never;
102
+ metadata?: Record<string, any> | undefined;
103
+ payload: never;
104
+ }) | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | {
105
+ type: "text-start";
106
+ id: string;
107
+ providerMetadata?: import("ai").ProviderMetadata;
108
+ } | {
109
+ type: "text-delta";
110
+ delta: string;
111
+ id: string;
112
+ providerMetadata?: import("ai").ProviderMetadata;
113
+ } | {
114
+ type: "text-end";
115
+ id: string;
116
+ providerMetadata?: import("ai").ProviderMetadata;
117
+ } | {
118
+ type: "reasoning-start";
119
+ id: string;
120
+ providerMetadata?: import("ai").ProviderMetadata;
121
+ } | {
122
+ type: "reasoning-delta";
123
+ id: string;
124
+ delta: string;
125
+ providerMetadata?: import("ai").ProviderMetadata;
126
+ } | {
127
+ type: "reasoning-end";
128
+ id: string;
129
+ providerMetadata?: import("ai").ProviderMetadata;
130
+ } | {
131
+ type: "error";
132
+ errorText: string;
133
+ } | {
134
+ type: "tool-input-available";
135
+ toolCallId: string;
136
+ toolName: string;
137
+ input: unknown;
138
+ providerExecuted?: boolean;
139
+ providerMetadata?: import("ai").ProviderMetadata;
140
+ dynamic?: boolean;
141
+ } | {
142
+ type: "tool-input-error";
143
+ toolCallId: string;
144
+ toolName: string;
145
+ input: unknown;
146
+ providerExecuted?: boolean;
147
+ providerMetadata?: import("ai").ProviderMetadata;
148
+ dynamic?: boolean;
149
+ errorText: string;
150
+ } | {
151
+ type: "tool-output-available";
152
+ toolCallId: string;
153
+ output: unknown;
154
+ providerExecuted?: boolean;
155
+ dynamic?: boolean;
156
+ preliminary?: boolean;
157
+ } | {
158
+ type: "tool-output-error";
159
+ toolCallId: string;
160
+ errorText: string;
161
+ providerExecuted?: boolean;
162
+ dynamic?: boolean;
163
+ } | {
164
+ type: "tool-input-start";
165
+ toolCallId: string;
166
+ toolName: string;
167
+ providerExecuted?: boolean;
168
+ dynamic?: boolean;
169
+ } | {
170
+ type: "tool-input-delta";
171
+ toolCallId: string;
172
+ inputTextDelta: string;
173
+ } | {
174
+ type: "source-url";
175
+ sourceId: string;
176
+ url: string;
177
+ title?: string;
178
+ providerMetadata?: import("ai").ProviderMetadata;
179
+ } | {
180
+ type: "source-document";
181
+ sourceId: string;
182
+ mediaType: string;
183
+ title: string;
184
+ filename?: string;
185
+ providerMetadata?: import("ai").ProviderMetadata;
186
+ } | {
187
+ type: "file";
188
+ url: string;
189
+ mediaType: string;
190
+ providerMetadata?: import("ai").ProviderMetadata;
191
+ } | {
192
+ type: "start-step";
193
+ } | {
194
+ type: "finish-step";
195
+ } | {
196
+ type: "abort";
197
+ } | {
198
+ type: `data-${string}`;
199
+ id?: string;
200
+ data: unknown;
201
+ transient?: boolean;
202
+ } | {
203
+ type: "start";
204
+ messageId?: string;
205
+ messageMetadata?: unknown;
206
+ } | {
207
+ type: "finish";
208
+ messageMetadata?: unknown;
209
+ } | {
210
+ type: "message-metadata";
211
+ messageMetadata: unknown;
212
+ } | {
213
+ readonly type: "data-workflow" | "data-tool-workflow";
214
+ readonly id: string;
215
+ readonly data: {
216
+ readonly name: string;
217
+ readonly status: "running";
218
+ readonly steps: Record<string, StepResult>;
219
+ readonly output: null;
220
+ };
221
+ } | {
222
+ readonly type: "data-workflow" | "data-tool-workflow";
223
+ readonly id: string;
224
+ readonly data: {
225
+ readonly name: string;
226
+ readonly status: "suspended";
227
+ readonly steps: Record<string, StepResult>;
228
+ readonly output: null;
229
+ };
230
+ } | {
231
+ readonly type: "data-workflow" | "data-tool-workflow";
232
+ readonly id: string;
233
+ readonly data: {
234
+ readonly name: string;
235
+ readonly steps: Record<string, StepResult>;
236
+ readonly output: {
237
+ usage: {
238
+ inputTokens: number;
239
+ outputTokens: number;
240
+ totalTokens: number;
241
+ };
242
+ };
243
+ readonly status: WorkflowRunStatus;
244
+ };
245
+ } | null | undefined;
246
+ export declare function transformNetwork(payload: NetworkChunkType, bufferedNetworks: Map<string, {
247
+ name: string;
248
+ steps: (StepResult & {
249
+ id: string;
250
+ iteration: number;
251
+ task: null | Record<string, unknown>;
252
+ input: StepResult['input'];
253
+ [PRIMITIVE_CACHE_SYMBOL]: Map<string, any>;
254
+ })[];
255
+ usage: LanguageModelV2Usage | null;
256
+ output: unknown | null;
257
+ }>, isNested?: boolean): InferUIMessageChunk<UIMessage> | NetworkDataPart | DataChunkType | null;
258
+ export {};
259
+ //# sourceMappingURL=transformers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"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"}
package/dist/ui.cjs ADDED
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var messageList = require('@mastra/core/agent/message-list');
4
+
5
+ // src/convert-messages.ts
6
+ function toAISdkV5Messages(messages) {
7
+ return new messageList.MessageList().add(messages, `memory`).get.all.aiV5.ui();
8
+ }
9
+ function toAISdkV4Messages(messages) {
10
+ return new messageList.MessageList().add(messages, `memory`).get.all.aiV4.ui();
11
+ }
12
+
13
+ exports.toAISdkV4Messages = toAISdkV4Messages;
14
+ exports.toAISdkV5Messages = toAISdkV5Messages;
15
+ //# sourceMappingURL=ui.cjs.map
16
+ //# sourceMappingURL=ui.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/convert-messages.ts"],"names":["MessageList"],"mappings":";;;;;AAMO,SAAS,kBAAkB,QAAA,EAA4B;AAC5D,EAAA,OAAO,IAAIA,uBAAA,EAAY,CAAE,GAAA,CAAI,QAAA,EAAU,QAAQ,CAAA,CAAE,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,EAAA,EAAG;AACnE;AAKO,SAAS,kBAAkB,QAAA,EAA4B;AAC5D,EAAA,OAAO,IAAIA,uBAAA,EAAY,CAAE,GAAA,CAAI,QAAA,EAAU,QAAQ,CAAA,CAAE,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,EAAA,EAAG;AACnE","file":"ui.cjs","sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\n\n/**\n * Converts messages to AI SDK V5 UI format\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return new MessageList().add(messages, `memory`).get.all.aiV5.ui();\n}\n\n/**\n * Converts messages to AI SDK V4 UI format\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return new MessageList().add(messages, `memory`).get.all.aiV4.ui();\n}\n"]}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { toAISdkV5Messages, toAISdkV4Messages } from './convert-messages.js';
2
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/ui.js ADDED
@@ -0,0 +1,13 @@
1
+ import { MessageList } from '@mastra/core/agent/message-list';
2
+
3
+ // src/convert-messages.ts
4
+ function toAISdkV5Messages(messages) {
5
+ return new MessageList().add(messages, `memory`).get.all.aiV5.ui();
6
+ }
7
+ function toAISdkV4Messages(messages) {
8
+ return new MessageList().add(messages, `memory`).get.all.aiV4.ui();
9
+ }
10
+
11
+ export { toAISdkV4Messages, toAISdkV5Messages };
12
+ //# sourceMappingURL=ui.js.map
13
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/convert-messages.ts"],"names":[],"mappings":";;;AAMO,SAAS,kBAAkB,QAAA,EAA4B;AAC5D,EAAA,OAAO,IAAI,WAAA,EAAY,CAAE,GAAA,CAAI,QAAA,EAAU,QAAQ,CAAA,CAAE,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,EAAA,EAAG;AACnE;AAKO,SAAS,kBAAkB,QAAA,EAA4B;AAC5D,EAAA,OAAO,IAAI,WAAA,EAAY,CAAE,GAAA,CAAI,QAAA,EAAU,QAAQ,CAAA,CAAE,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,EAAA,EAAG;AACnE","file":"ui.js","sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\n\n/**\n * Converts messages to AI SDK V5 UI format\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return new MessageList().add(messages, `memory`).get.all.aiV5.ui();\n}\n\n/**\n * Converts messages to AI SDK V4 UI format\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return new MessageList().add(messages, `memory`).get.all.aiV4.ui();\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { ChunkType, DataChunkType, NetworkChunkType, OutputSchema } from '@mastra/core/stream';
2
+ export declare const isDataChunkType: (chunk: any) => chunk is DataChunkType;
3
+ export declare const isMastraTextStreamChunk: (chunk: any) => chunk is ChunkType<OutputSchema>;
4
+ export declare function safeParseErrorObject(obj: unknown): string;
5
+ export declare const isAgentExecutionDataChunkType: (chunk: any) => chunk is Omit<NetworkChunkType, "payload"> & {
6
+ payload: DataChunkType;
7
+ };
8
+ export declare const isWorkflowExecutionDataChunkType: (chunk: any) => chunk is Omit<NetworkChunkType, "payload"> & {
9
+ payload: DataChunkType;
10
+ };
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpG,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,aAErD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,SAAS,CAAC,YAAY,CAkCnF,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBzD;AAED,eAAO,MAAM,6BAA6B,GACxC,OAAO,GAAG,KACT,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAWvE,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,OAAO,GAAG,KACT,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAWvE,CAAC"}
@@ -0,0 +1,77 @@
1
+ import type { Mastra } from '@mastra/core/mastra';
2
+ import type { TracingOptions } from '@mastra/core/observability';
3
+ import type { RequestContext } from '@mastra/core/request-context';
4
+ import { registerApiRoute } from '@mastra/core/server';
5
+ import type { InferUIMessageChunk, UIMessage } from 'ai';
6
+ export type WorkflowStreamHandlerParams = {
7
+ runId?: string;
8
+ resourceId?: string;
9
+ inputData?: Record<string, any>;
10
+ resumeData?: Record<string, any>;
11
+ requestContext?: RequestContext;
12
+ tracingOptions?: TracingOptions;
13
+ step?: string;
14
+ };
15
+ export type WorkflowStreamHandlerOptions = {
16
+ mastra: Mastra;
17
+ workflowId: string;
18
+ params: WorkflowStreamHandlerParams;
19
+ includeTextStreamParts?: boolean;
20
+ };
21
+ /**
22
+ * Framework-agnostic handler for streaming workflow execution in AI SDK-compatible format.
23
+ * Use this function directly when you need to handle workflow streaming outside of Hono or Mastra's own apiRoutes feature.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * // Next.js App Router
28
+ * import { handleWorkflowStream } from '@mastra/ai-sdk';
29
+ * import { createUIMessageStreamResponse } from 'ai';
30
+ * import { mastra } from '@/src/mastra';
31
+ *
32
+ * export async function POST(req: Request) {
33
+ * const params = await req.json();
34
+ * const stream = await handleWorkflowStream({
35
+ * mastra,
36
+ * workflowId: 'weatherWorkflow',
37
+ * params,
38
+ * });
39
+ * return createUIMessageStreamResponse({ stream });
40
+ * }
41
+ * ```
42
+ */
43
+ export declare function handleWorkflowStream<UI_MESSAGE extends UIMessage>({ mastra, workflowId, params, includeTextStreamParts, }: WorkflowStreamHandlerOptions): Promise<ReadableStream<InferUIMessageChunk<UI_MESSAGE>>>;
44
+ export type WorkflowRouteOptions = {
45
+ path: `${string}:workflowId${string}`;
46
+ workflow?: never;
47
+ includeTextStreamParts?: boolean;
48
+ } | {
49
+ path: string;
50
+ workflow: string;
51
+ includeTextStreamParts?: boolean;
52
+ };
53
+ /**
54
+ * Creates a workflow route handler for streaming workflow execution using the AI SDK format.
55
+ *
56
+ * This function registers an HTTP POST endpoint that accepts input data, executes a workflow, and streams the response back to the client in AI SDK-compatible format.
57
+ *
58
+ * @param {WorkflowRouteOptions} options - Configuration options for the workflow route
59
+ * @param {string} [options.path='/api/workflows/:workflowId/stream'] - The route path. Include `:workflowId` for dynamic routing
60
+ * @param {string} [options.workflow] - Fixed workflow ID when not using dynamic routing
61
+ * @param {boolean} [options.includeTextStreamParts=true] - Whether to include text stream parts in the output
62
+ *
63
+ * @example
64
+ * // Dynamic workflow routing
65
+ * workflowRoute({
66
+ * path: '/api/workflows/:workflowId/stream',
67
+ * });
68
+ *
69
+ * @example
70
+ * // Fixed workflow with custom path
71
+ * workflowRoute({
72
+ * path: '/api/data-pipeline/stream',
73
+ * workflow: 'data-processing-workflow',
74
+ * });
75
+ */
76
+ export declare function workflowRoute({ path, workflow, includeTextStreamParts, }: WorkflowRouteOptions): ReturnType<typeof registerApiRoute>;
77
+ //# sourceMappingURL=workflow-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-route.d.ts","sourceRoot":"","sources":["../src/workflow-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGzD,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,2BAA2B,CAAC;IACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,SAAS,SAAS,EAAE,EACvE,MAAM,EACN,UAAU,EACV,MAAM,EACN,sBAA6B,GAC9B,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAqBzF;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,GAAG,MAAM,cAAc,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAA0C,EAC1C,QAAQ,EACR,sBAA6B,GAC9B,EAAE,oBAAoB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CA6F5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/ai-sdk",
3
- "version": "0.0.0-toolOptionTypes-20250917085558",
3
+ "version": "0.0.0-top-level-fix-20251211111608",
4
4
  "description": "Adds custom API routes to be compatible with the AI SDK UI parts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,6 +15,16 @@
15
15
  "default": "./dist/index.cjs"
16
16
  }
17
17
  },
18
+ "./ui": {
19
+ "import": {
20
+ "types": "./dist/ui.d.ts",
21
+ "default": "./dist/ui.js"
22
+ },
23
+ "require": {
24
+ "types": "./dist/ui.d.ts",
25
+ "default": "./dist/ui.cjs"
26
+ }
27
+ },
18
28
  "./package.json": "./package.json"
19
29
  },
20
30
  "files": [
@@ -23,18 +33,21 @@
23
33
  ],
24
34
  "peerDependencies": {
25
35
  "zod": "^3.25.0 || ^4.0.0",
26
- "@mastra/core": "0.0.0-toolOptionTypes-20250917085558"
36
+ "@mastra/core": "0.0.0-top-level-fix-20251211111608"
27
37
  },
28
38
  "devDependencies": {
29
39
  "@types/json-schema": "^7.0.15",
30
- "eslint": "^9.34.0",
40
+ "@vitest/coverage-v8": "4.0.12",
41
+ "@vitest/ui": "4.0.12",
42
+ "eslint": "^9.37.0",
31
43
  "tsup": "^8.5.0",
32
44
  "typescript": "^5.8.3",
33
- "vitest": "^3.2.4",
34
- "zod": "^3.25.67",
35
- "@internal/lint": "0.0.0-toolOptionTypes-20250917085558",
36
- "@internal/types-builder": "0.0.0-toolOptionTypes-20250917085558",
37
- "@mastra/core": "0.0.0-toolOptionTypes-20250917085558"
45
+ "vitest": "4.0.12",
46
+ "zod": "^3.25.76",
47
+ "@internal/lint": "0.0.0-top-level-fix-20251211111608",
48
+ "@internal/types-builder": "0.0.0-top-level-fix-20251211111608",
49
+ "@mastra/libsql": "0.0.0-top-level-fix-20251211111608",
50
+ "@mastra/core": "0.0.0-top-level-fix-20251211111608"
38
51
  },
39
52
  "keywords": [
40
53
  "mastra",
@@ -51,6 +64,13 @@
51
64
  "bugs": {
52
65
  "url": "https://github.com/mastra-ai/mastra/issues"
53
66
  },
67
+ "dependencies": {
68
+ "@ai-sdk/provider": "^2.0.0",
69
+ "ai": "^5.0.60"
70
+ },
71
+ "engines": {
72
+ "node": ">=22.13.0"
73
+ },
54
74
  "scripts": {
55
75
  "lint": "eslint .",
56
76
  "build": "tsup --config tsup.config.ts",