@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.
- package/CHANGELOG.md +821 -3
- package/README.md +125 -1
- package/dist/__tests__/__fixtures__/network.stream.d.ts +2329 -0
- package/dist/__tests__/__fixtures__/network.stream.d.ts.map +1 -0
- package/dist/chat-route.d.ts +101 -0
- package/dist/chat-route.d.ts.map +1 -0
- package/dist/convert-messages.d.ts +10 -0
- package/dist/convert-messages.d.ts.map +1 -0
- package/dist/convert-streams.d.ts +81 -0
- package/dist/convert-streams.d.ts.map +1 -0
- package/dist/helpers.d.ts +43 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/index.cjs +2029 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +13 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2022 -12
- package/dist/index.js.map +1 -1
- package/dist/middleware.d.ts +157 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/network-route.d.ts +75 -0
- package/dist/network-route.d.ts.map +1 -0
- package/dist/to-ai-sdk-format.d.ts +16 -0
- package/dist/to-ai-sdk-format.d.ts.map +1 -0
- package/dist/transformers.d.ts +259 -0
- package/dist/transformers.d.ts.map +1 -0
- package/dist/ui.cjs +16 -0
- package/dist/ui.cjs.map +1 -0
- package/dist/ui.d.ts +2 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +13 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/workflow-route.d.ts +77 -0
- package/dist/workflow-route.d.ts.map +1 -0
- package/package.json +28 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.stream.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__fixtures__/network.stream.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAu9FhC,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { AgentExecutionOptions } from '@mastra/core/agent';
|
|
2
|
+
import type { Mastra } from '@mastra/core/mastra';
|
|
3
|
+
import { registerApiRoute } from '@mastra/core/server';
|
|
4
|
+
import type { OutputSchema } from '@mastra/core/stream';
|
|
5
|
+
import type { InferUIMessageChunk, UIMessage } from 'ai';
|
|
6
|
+
export type ChatStreamHandlerParams<UI_MESSAGE extends UIMessage, OUTPUT extends OutputSchema = undefined> = AgentExecutionOptions<OUTPUT, 'mastra'> & {
|
|
7
|
+
messages: UI_MESSAGE[];
|
|
8
|
+
resumeData?: Record<string, any>;
|
|
9
|
+
};
|
|
10
|
+
export type ChatStreamHandlerOptions<UI_MESSAGE extends UIMessage, OUTPUT extends OutputSchema = undefined> = {
|
|
11
|
+
mastra: Mastra;
|
|
12
|
+
agentId: string;
|
|
13
|
+
params: ChatStreamHandlerParams<UI_MESSAGE, OUTPUT>;
|
|
14
|
+
defaultOptions?: AgentExecutionOptions<OUTPUT, 'mastra'>;
|
|
15
|
+
sendStart?: boolean;
|
|
16
|
+
sendFinish?: boolean;
|
|
17
|
+
sendReasoning?: boolean;
|
|
18
|
+
sendSources?: boolean;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Framework-agnostic handler for streaming agent chat in AI SDK-compatible format.
|
|
22
|
+
* Use this function directly when you need to handle chat streaming outside of Hono or Mastra's own apiRoutes feature.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // Next.js App Router
|
|
27
|
+
* import { handleChatStream } from '@mastra/ai-sdk';
|
|
28
|
+
* import { createUIMessageStreamResponse } from 'ai';
|
|
29
|
+
* import { mastra } from '@/src/mastra';
|
|
30
|
+
*
|
|
31
|
+
* export async function POST(req: Request) {
|
|
32
|
+
* const params = await req.json();
|
|
33
|
+
* const stream = await handleChatStream({
|
|
34
|
+
* mastra,
|
|
35
|
+
* agentId: 'weatherAgent',
|
|
36
|
+
* params,
|
|
37
|
+
* });
|
|
38
|
+
* return createUIMessageStreamResponse({ stream });
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function handleChatStream<UI_MESSAGE extends UIMessage, OUTPUT extends OutputSchema = undefined>({ mastra, agentId, params, defaultOptions, sendStart, sendFinish, sendReasoning, sendSources, }: ChatStreamHandlerOptions<UI_MESSAGE, OUTPUT>): Promise<ReadableStream<InferUIMessageChunk<UI_MESSAGE>>>;
|
|
43
|
+
export type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {
|
|
44
|
+
defaultOptions?: AgentExecutionOptions<OUTPUT, 'mastra'>;
|
|
45
|
+
} & ({
|
|
46
|
+
path: `${string}:agentId${string}`;
|
|
47
|
+
agent?: never;
|
|
48
|
+
} | {
|
|
49
|
+
path: string;
|
|
50
|
+
agent: string;
|
|
51
|
+
}) & {
|
|
52
|
+
sendStart?: boolean;
|
|
53
|
+
sendFinish?: boolean;
|
|
54
|
+
sendReasoning?: boolean;
|
|
55
|
+
sendSources?: boolean;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Creates a chat route handler for streaming agent conversations using the AI SDK format.
|
|
59
|
+
*
|
|
60
|
+
* This function registers an HTTP POST endpoint that accepts messages, executes an agent, and streams the response back to the client in AI SDK-compatible format.
|
|
61
|
+
*
|
|
62
|
+
* @param {chatRouteOptions} options - Configuration options for the chat route
|
|
63
|
+
* @param {string} [options.path='/chat/:agentId'] - The route path. Include `:agentId` for dynamic routing
|
|
64
|
+
* @param {string} [options.agent] - Fixed agent ID when not using dynamic routing
|
|
65
|
+
* @param {AgentExecutionOptions} [options.defaultOptions] - Default options passed to agent execution
|
|
66
|
+
* @param {boolean} [options.sendStart=true] - Whether to send start events in the stream
|
|
67
|
+
* @param {boolean} [options.sendFinish=true] - Whether to send finish events in the stream
|
|
68
|
+
* @param {boolean} [options.sendReasoning=false] - Whether to include reasoning steps in the stream
|
|
69
|
+
* @param {boolean} [options.sendSources=false] - Whether to include source citations in the stream
|
|
70
|
+
*
|
|
71
|
+
* @returns {ReturnType<typeof registerApiRoute>} A registered API route handler
|
|
72
|
+
*
|
|
73
|
+
* @throws {Error} When path doesn't include `:agentId` and no fixed agent is specified
|
|
74
|
+
* @throws {Error} When agent ID is missing at runtime
|
|
75
|
+
* @throws {Error} When specified agent is not found in Mastra instance
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* // Dynamic agent routing
|
|
79
|
+
* chatRoute({
|
|
80
|
+
* path: '/chat/:agentId',
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* // Fixed agent with custom path
|
|
85
|
+
* chatRoute({
|
|
86
|
+
* path: '/api/support-chat',
|
|
87
|
+
* agent: 'support-agent',
|
|
88
|
+
* defaultOptions: {
|
|
89
|
+
* maxSteps: 5,
|
|
90
|
+
* },
|
|
91
|
+
* });
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* - The route handler expects a JSON body with a `messages` array
|
|
95
|
+
* - Messages should follow the format: `{ role: 'user' | 'assistant' | 'system', content: string }`
|
|
96
|
+
* - The response is a Server-Sent Events (SSE) stream compatible with AI SDK v5
|
|
97
|
+
* - If both `agent` and `:agentId` are present, a warning is logged and the fixed `agent` takes precedence
|
|
98
|
+
* - Request context from the incoming request overrides `defaultOptions.requestContext` if both are present
|
|
99
|
+
*/
|
|
100
|
+
export declare function chatRoute<OUTPUT extends OutputSchema = undefined>({ path, agent, defaultOptions, sendStart, sendFinish, sendReasoning, sendSources, }: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute>;
|
|
101
|
+
//# sourceMappingURL=chat-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-route.d.ts","sourceRoot":"","sources":["../src/chat-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,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,uBAAuB,CACjC,UAAU,SAAS,SAAS,EAC5B,MAAM,SAAS,YAAY,GAAG,SAAS,IACrC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG;IAC5C,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,UAAU,SAAS,SAAS,EAAE,MAAM,SAAS,YAAY,GAAG,SAAS,IAAI;IAC5G,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,SAAS,SAAS,EAAE,MAAM,SAAS,YAAY,GAAG,SAAS,EAAE,EAC5G,MAAM,EACN,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAgB,EAChB,UAAiB,EACjB,aAAqB,EACrB,WAAmB,GACpB,EAAE,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAkDzG;AAED,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,IAAI;IACtE,cAAc,CAAC,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC1D,GAAG,CACA;IACE,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CACJ,GAAG;IACA,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,EAAE,EACjE,IAAuB,EACvB,KAAK,EACL,cAAc,EACd,SAAgB,EAChB,UAAiB,EACjB,aAAqB,EACrB,WAAmB,GACpB,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CA0JhE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MessageListInput } from '@mastra/core/agent/message-list';
|
|
2
|
+
/**
|
|
3
|
+
* Converts messages to AI SDK V5 UI format
|
|
4
|
+
*/
|
|
5
|
+
export declare function toAISdkV5Messages(messages: MessageListInput): import("ai-v5").UIMessage<unknown, import("ai-v5").UIDataTypes, import("ai-v5").UITools>[];
|
|
6
|
+
/**
|
|
7
|
+
* Converts messages to AI SDK V4 UI format
|
|
8
|
+
*/
|
|
9
|
+
export declare function toAISdkV4Messages(messages: MessageListInput): import("@mastra/core/agent").UIMessageWithMetadata[];
|
|
10
|
+
//# sourceMappingURL=convert-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-messages.d.ts","sourceRoot":"","sources":["../src/convert-messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,8FAE3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,wDAE3D"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { MastraModelOutput, OutputSchema, MastraAgentNetworkStream, WorkflowRunOutput } from '@mastra/core/stream';
|
|
2
|
+
import type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';
|
|
3
|
+
import type { InferUIMessageChunk, UIMessage, UIMessageStreamOptions } from 'ai';
|
|
4
|
+
import type { ZodObject, ZodType } from 'zod';
|
|
5
|
+
/**
|
|
6
|
+
* Converts Mastra streams (workflow, agent network, or agent) to AI SDK v5 compatible streams.
|
|
7
|
+
*
|
|
8
|
+
* This function transforms various Mastra stream types into ReadableStream objects that are compatible with the AI SDK v5, enabling seamless integration with AI SDK's streaming capabilities.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @param {MastraWorkflowStream | WorkflowRunOutput | MastraAgentNetworkStream | MastraModelOutput} stream
|
|
12
|
+
* The Mastra stream to convert. Can be one of:
|
|
13
|
+
* - MastraWorkflowStream: A workflow execution stream
|
|
14
|
+
* - WorkflowRunOutput: The output of a workflow run
|
|
15
|
+
* - MastraAgentNetworkStream: An agent network execution stream
|
|
16
|
+
* - MastraModelOutput: An agent model output stream
|
|
17
|
+
*
|
|
18
|
+
* @param {Object} options - Conversion options
|
|
19
|
+
* @param {'workflow' | 'network' | 'agent'} options.from - The type of stream being converted. Defaults to 'agent'
|
|
20
|
+
* @param {string} [options.lastMessageId] - (Agent only) The ID of the last message in the conversation
|
|
21
|
+
* @param {boolean} [options.sendStart=true] - (Agent only) Whether to send start events. Defaults to true
|
|
22
|
+
* @param {boolean} [options.sendFinish=true] - (Agent only) Whether to send finish events. Defaults to true
|
|
23
|
+
* @param {boolean} [options.sendReasoning] - (Agent only) Whether to include reasoning in the output
|
|
24
|
+
* @param {boolean} [options.sendSources] - (Agent only) Whether to include sources in the output
|
|
25
|
+
* @param {Function} [options.messageMetadata] - (Agent only) A function that receives the current stream part and returns metadata to attach to start and finish chunks
|
|
26
|
+
* @param {Function} [options.onError] - (Agent only) A function to handle errors during stream conversion. Receives the error and should return a string representation
|
|
27
|
+
*
|
|
28
|
+
* @returns {ReadableStream<InferUIMessageChunk<UIMessage>>} A ReadableStream compatible with AI SDK v5
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Convert a workflow stream
|
|
32
|
+
* const workflowStream = await workflowRun.stream(...);
|
|
33
|
+
* const aiSDKStream = toAISdkV5Stream(workflowStream, { from: 'workflow' });
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Convert an agent network stream
|
|
37
|
+
* const networkStream = await agentNetwork.network(...);
|
|
38
|
+
* const aiSDKStream = toAISdkV5Stream(networkStream, { from: 'network' });
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* // Convert an agent stream with custom options
|
|
42
|
+
* const agentStream = await agent.stream(...);
|
|
43
|
+
* const aiSDKStream = toAISdkV5Stream(agentStream, {
|
|
44
|
+
* from: 'agent',
|
|
45
|
+
* lastMessageId: 'msg-123',
|
|
46
|
+
* sendReasoning: true,
|
|
47
|
+
* sendSources: true
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* // Convert an agent stream with messageMetadata
|
|
52
|
+
* const aiSDKStream = toAISdkV5Stream(agentStream, {
|
|
53
|
+
* from: 'agent',
|
|
54
|
+
* messageMetadata: ({ part }) => ({
|
|
55
|
+
* timestamp: Date.now(),
|
|
56
|
+
* partType: part.type
|
|
57
|
+
* })
|
|
58
|
+
* });
|
|
59
|
+
*/
|
|
60
|
+
export declare function toAISdkV5Stream<TOutput extends ZodType<any>, TInput extends ZodType<any>, TSteps extends Step<string, any, any, any, any, any>[], TState extends ZodObject<any>>(stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>, options: {
|
|
61
|
+
from: 'workflow';
|
|
62
|
+
includeTextStreamParts?: boolean;
|
|
63
|
+
}): ReadableStream<InferUIMessageChunk<UIMessage>>;
|
|
64
|
+
export declare function toAISdkV5Stream<TOutput extends ZodType<any>, TInput extends ZodType<any>, TSteps extends Step<string, any, any, any, any, any>[], TState extends ZodObject<any>>(stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>, options: {
|
|
65
|
+
from: 'workflow';
|
|
66
|
+
includeTextStreamParts?: boolean;
|
|
67
|
+
}): ReadableStream<InferUIMessageChunk<UIMessage>>;
|
|
68
|
+
export declare function toAISdkV5Stream(stream: MastraAgentNetworkStream, options: {
|
|
69
|
+
from: 'network';
|
|
70
|
+
}): ReadableStream<InferUIMessageChunk<UIMessage>>;
|
|
71
|
+
export declare function toAISdkV5Stream<TOutput extends OutputSchema>(stream: MastraModelOutput<TOutput>, options: {
|
|
72
|
+
from: 'agent';
|
|
73
|
+
lastMessageId?: string;
|
|
74
|
+
sendStart?: boolean;
|
|
75
|
+
sendFinish?: boolean;
|
|
76
|
+
sendReasoning?: boolean;
|
|
77
|
+
sendSources?: boolean;
|
|
78
|
+
messageMetadata?: UIMessageStreamOptions<UIMessage>['messageMetadata'];
|
|
79
|
+
onError?: UIMessageStreamOptions<UIMessage>['onError'];
|
|
80
|
+
}): ReadableStream<InferUIMessageChunk<UIMessage>>;
|
|
81
|
+
//# sourceMappingURL=convert-streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-streams.d.ts","sourceRoot":"","sources":["../src/convert-streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAS9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,eAAe,CAC7B,OAAO,SAAS,OAAO,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,EAC3B,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACtD,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,EAE7B,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC7D,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,eAAe,CAC7B,OAAO,SAAS,OAAO,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,EAC3B,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACtD,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,EAE7B,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAC1E,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAC3B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,eAAe,CAAC,OAAO,SAAS,YAAY,EAC1D,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAClC,OAAO,EAAE;IACP,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACvE,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;CACxD,GACA,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { PartialSchemaOutput, OutputSchema, DataChunkType, ChunkType, MastraFinishReason } from '@mastra/core/stream';
|
|
2
|
+
import type { InferUIMessageChunk, ObjectStreamPart, TextStreamPart, ToolSet, UIMessage, FinishReason } from 'ai';
|
|
3
|
+
/**
|
|
4
|
+
* Maps Mastra's extended finish reasons to AI SDK-compatible values.
|
|
5
|
+
* 'tripwire' and 'retry' are Mastra-specific reasons for processor scenarios,
|
|
6
|
+
* which are mapped to 'other' for AI SDK compatibility.
|
|
7
|
+
*/
|
|
8
|
+
export declare function toAISDKFinishReason(reason: MastraFinishReason): FinishReason;
|
|
9
|
+
export type OutputChunkType<OUTPUT extends OutputSchema = undefined> = TextStreamPart<ToolSet> | ObjectStreamPart<PartialSchemaOutput<OUTPUT>> | DataChunkType | undefined;
|
|
10
|
+
export type ToolAgentChunkType = {
|
|
11
|
+
type: 'tool-agent';
|
|
12
|
+
toolCallId: string;
|
|
13
|
+
payload: any;
|
|
14
|
+
};
|
|
15
|
+
export type ToolWorkflowChunkType = {
|
|
16
|
+
type: 'tool-workflow';
|
|
17
|
+
toolCallId: string;
|
|
18
|
+
payload: any;
|
|
19
|
+
};
|
|
20
|
+
export type ToolNetworkChunkType = {
|
|
21
|
+
type: 'tool-network';
|
|
22
|
+
toolCallId: string;
|
|
23
|
+
payload: any;
|
|
24
|
+
};
|
|
25
|
+
export declare function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({ chunk, mode, }: {
|
|
26
|
+
chunk: ChunkType<OUTPUT>;
|
|
27
|
+
mode?: 'generate' | 'stream';
|
|
28
|
+
}): OutputChunkType<OUTPUT>;
|
|
29
|
+
export declare function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({ part, messageMetadataValue, sendReasoning, sendSources, onError, sendStart, sendFinish, responseMessageId, }: {
|
|
30
|
+
part: TextStreamPart<ToolSet> | DataChunkType | {
|
|
31
|
+
type: 'tool-output';
|
|
32
|
+
toolCallId: string;
|
|
33
|
+
output: any;
|
|
34
|
+
};
|
|
35
|
+
messageMetadataValue?: unknown;
|
|
36
|
+
sendReasoning?: boolean;
|
|
37
|
+
sendSources?: boolean;
|
|
38
|
+
onError: (error: unknown) => string;
|
|
39
|
+
sendStart?: boolean;
|
|
40
|
+
sendFinish?: boolean;
|
|
41
|
+
responseMessageId?: string;
|
|
42
|
+
}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined;
|
|
43
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAK5E;AAED,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,IAC/D,cAAc,CAAC,OAAO,CAAC,GACvB,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAC7C,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAE9F,wBAAgB,2BAA2B,CAAC,MAAM,SAAS,YAAY,GAAG,SAAS,EAAE,EACnF,KAAK,EACL,IAAe,GAChB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC9B,GAAG,eAAe,CAAC,MAAM,CAAC,CAoP1B;AAED,wBAAgB,uCAAuC,CAAC,UAAU,SAAS,SAAS,EAAE,EACpF,IAAI,EACJ,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,EAAE;IAED,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IACzG,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,SAAS,CAyOlH"}
|