@mastra/ai-sdk 1.8.0 → 1.9.0

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.
@@ -2,7 +2,7 @@ import type { AgentExecutionOptions, NetworkOptions } from '@mastra/core/agent';
2
2
  import type { Mastra } from '@mastra/core/mastra';
3
3
  import { registerApiRoute } from '@mastra/core/server';
4
4
  import type { AgentVersionOptions } from './chat-route.js';
5
- import type { SupportedUIMessage, V5UIMessage, V5UIMessageStream, V6UIMessage, V6UIMessageStream } from './public-types.js';
5
+ import type { SupportedUIMessage, V5UIMessage, V5UIMessageStream, V6UIMessage, V6UIMessageStream, V7UIMessage, V7UIMessageStream } from './public-types.js';
6
6
  export type NetworkStreamHandlerParams<UI_MESSAGE extends SupportedUIMessage = SupportedUIMessage, OUTPUT = undefined> = AgentExecutionOptions<OUTPUT> & {
7
7
  messages: UI_MESSAGE[];
8
8
  };
@@ -12,7 +12,7 @@ export type NetworkStreamHandlerOptions<UI_MESSAGE extends SupportedUIMessage =
12
12
  agentVersion?: AgentVersionOptions;
13
13
  params: NetworkStreamHandlerParams<UI_MESSAGE, OUTPUT>;
14
14
  defaultOptions?: NetworkOptions<OUTPUT>;
15
- version?: 'v5' | 'v6';
15
+ version?: 'v5' | 'v6' | 'v7';
16
16
  };
17
17
  type NetworkStreamHandlerOptionsV5<UI_MESSAGE extends V5UIMessage = V5UIMessage, OUTPUT = undefined> = Omit<NetworkStreamHandlerOptions<UI_MESSAGE, OUTPUT>, 'version'> & {
18
18
  version?: 'v5';
@@ -20,6 +20,9 @@ type NetworkStreamHandlerOptionsV5<UI_MESSAGE extends V5UIMessage = V5UIMessage,
20
20
  type NetworkStreamHandlerOptionsV6<UI_MESSAGE extends V6UIMessage = V6UIMessage, OUTPUT = undefined> = Omit<NetworkStreamHandlerOptions<UI_MESSAGE, OUTPUT>, 'version'> & {
21
21
  version: 'v6';
22
22
  };
23
+ type NetworkStreamHandlerOptionsV7<UI_MESSAGE extends V7UIMessage = V7UIMessage, OUTPUT = undefined> = Omit<NetworkStreamHandlerOptions<UI_MESSAGE, OUTPUT>, 'version'> & {
24
+ version: 'v7';
25
+ };
23
26
  /**
24
27
  * Framework-agnostic handler for streaming agent network execution in AI SDK-compatible format.
25
28
  * Use this function directly when you need to handle network streaming outside of Hono or Mastra's own apiRoutes feature.
@@ -44,17 +47,18 @@ type NetworkStreamHandlerOptionsV6<UI_MESSAGE extends V6UIMessage = V6UIMessage,
44
47
  */
45
48
  export declare function handleNetworkStream<UI_MESSAGE extends V5UIMessage = V5UIMessage, OUTPUT = undefined>(options: NetworkStreamHandlerOptionsV5<UI_MESSAGE, OUTPUT>): Promise<V5UIMessageStream<UI_MESSAGE>>;
46
49
  export declare function handleNetworkStream<UI_MESSAGE extends V6UIMessage = V6UIMessage, OUTPUT = undefined>(options: NetworkStreamHandlerOptionsV6<UI_MESSAGE, OUTPUT>): Promise<V6UIMessageStream<UI_MESSAGE>>;
50
+ export declare function handleNetworkStream<UI_MESSAGE extends V7UIMessage = V7UIMessage, OUTPUT = undefined>(options: NetworkStreamHandlerOptionsV7<UI_MESSAGE, OUTPUT>): Promise<V7UIMessageStream<UI_MESSAGE>>;
47
51
  export type NetworkRouteOptions<OUTPUT = undefined> = {
48
52
  path: `${string}:agentId${string}`;
49
53
  agent?: never;
50
54
  defaultOptions?: NetworkOptions<OUTPUT>;
51
- version?: 'v5' | 'v6';
55
+ version?: 'v5' | 'v6' | 'v7';
52
56
  agentVersion?: AgentVersionOptions;
53
57
  } | {
54
58
  path: string;
55
59
  agent: string;
56
60
  defaultOptions?: NetworkOptions<OUTPUT>;
57
- version?: 'v5' | 'v6';
61
+ version?: 'v5' | 'v6' | 'v7';
58
62
  agentVersion?: AgentVersionOptions;
59
63
  };
60
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"network-route.d.ts","sourceRoot":"","sources":["../src/network-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-route.d.ts","sourceRoot":"","sources":["../src/network-route.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { InferUIMessageChunk as InferUIMessageChunkV5, UIMessage as UIMessageV5 } from './_types/@internal_ai-sdk-v5/dist/index.d.ts';
2
2
  import type { InferUIMessageChunk as InferUIMessageChunkV6, UIMessage as UIMessageV6 } from './_types/@internal_ai-v6/dist/index.d.ts';
3
+ import type { InferUIMessageChunk as InferUIMessageChunkV7, UIMessage as UIMessageV7 } from './_types/@internal_ai-v7/dist/index.d.ts';
3
4
  export type V5UIMessage = UIMessageV5;
4
5
  export type V6UIMessage = UIMessageV6;
5
- export type SupportedUIMessage = V5UIMessage | V6UIMessage;
6
- export type SupportedUIMessageStream = V5UIMessageStream | V6UIMessageStream;
6
+ export type V7UIMessage = UIMessageV7;
7
+ export type SupportedUIMessage = V5UIMessage | V6UIMessage | V7UIMessage;
8
+ export type SupportedUIMessageStream = V5UIMessageStream | V6UIMessageStream | V7UIMessageStream;
7
9
  export type V5UIMessageStream<UI_MESSAGE extends V5UIMessage = V5UIMessage> = ReadableStream<InferUIMessageChunkV5<UI_MESSAGE>>;
8
10
  export type V6UIMessageStream<UI_MESSAGE extends V6UIMessage = V6UIMessage> = ReadableStream<InferUIMessageChunkV6<UI_MESSAGE>>;
11
+ export type V7UIMessageStream<UI_MESSAGE extends V7UIMessage = V7UIMessage> = ReadableStream<InferUIMessageChunkV7<UI_MESSAGE>>;
9
12
  //# sourceMappingURL=public-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9G,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;AAC3D,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAC7E,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAC1F,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAC1F,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC"}
1
+ {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9G,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AACtC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AACjG,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAC1F,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAC1F,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAC1F,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC"}
package/dist/ui.cjs CHANGED
@@ -12,6 +12,7 @@ function filterSystemReminderUIMessages(messages) {
12
12
  }
13
13
  function toAISdkMessages(messages, options = {}) {
14
14
  const list = new _mastra_core_agent_message_list.MessageList().add(messages, `memory`);
15
+ if (options.version === "v7") return filterSystemReminderUIMessages(list.get.all.aiV7.ui());
15
16
  if (options.version === "v6") return filterSystemReminderUIMessages(list.get.all.aiV6.ui());
16
17
  return filterSystemReminderUIMessages(list.get.all.aiV5.ui());
17
18
  }
package/dist/ui.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.cjs","names":["MessageList"],"sources":["../src/convert-messages.ts"],"sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { V5UIMessage, V6UIMessage } from './public-types';\n\nfunction isSystemReminderUIMessage(message: {\n role?: string;\n parts?: Array<{ type?: string; text?: string }>;\n content?: unknown;\n metadata?: Record<string, unknown>;\n}) {\n // Check metadata first — processors stamp systemReminder or legacy dynamicAgentsMdReminder\n if (message.metadata?.systemReminder || message.metadata?.dynamicAgentsMdReminder) {\n return true;\n }\n\n if (message.role !== 'user') {\n return false;\n }\n\n // Fall back to text inspection for backward compatibility\n if (Array.isArray(message.parts)) {\n return message.parts.some(\n part => part.type === 'text' && typeof part.text === 'string' && part.text.includes('<system-reminder'),\n );\n }\n\n return typeof message.content === 'string' && message.content.includes('<system-reminder');\n}\n\nfunction filterSystemReminderUIMessages<\n T extends { role?: string; parts?: Array<{ type?: string; text?: string }>; content?: unknown },\n>(messages: T[]): T[] {\n return messages.filter(message => !isSystemReminderUIMessage(message));\n}\n\ntype MessageConversionOptionsV5 = {\n version?: 'v5';\n};\n\ntype MessageConversionOptionsV6 = {\n version: 'v6';\n};\n\ntype MessageConversionOptions = MessageConversionOptionsV5 | MessageConversionOptionsV6;\n\n/**\n * Converts messages from various input formats to AI SDK UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5/V6 messages, Mastra DB messages, etc.)\n * and normalizes them to the AI SDK UIMessage format. It keeps the existing AI SDK v5/default behavior. If your app\n * is typed against AI SDK v6, pass `version: 'v6'`.\n *\n * Note: `version: 'v6'` uses the MessageList AI SDK v6 UI output path. MessageList input detection and ingestion\n * remain unchanged.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n * @param options - Conversion options. Omit or pass `{ version: 'v5' }` for the existing default behavior. Pass\n * `{ version: 'v6' }` when your app is typed against AI SDK v6 `useChat()` message types.\n *\n * @returns An array of AI SDK UIMessage objects typed for the selected version.\n *\n * @example\n * ```typescript\n * import { toAISdkMessages } from '@mastra/ai-sdk/ui';\n *\n * const v5Messages = toAISdkMessages(storedMessages);\n * const v6Messages = toAISdkMessages(storedMessages, { version: 'v6' });\n * ```\n */\nexport function toAISdkMessages(messages: MessageListInput, options?: MessageConversionOptionsV5): V5UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV6): V6UIMessage[];\nexport function toAISdkMessages(\n messages: MessageListInput,\n options: MessageConversionOptions = {},\n): V5UIMessage[] | V6UIMessage[] {\n const list = new MessageList().add(messages, `memory`);\n if (options.version === 'v6') {\n return filterSystemReminderUIMessages(list.get.all.aiV6.ui());\n }\n return filterSystemReminderUIMessages(list.get.all.aiV5.ui());\n}\n\n/**\n * Converts messages from various input formats to AI SDK V5 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V5 UIMessage format, which is suitable for use with AI SDK V5 UI components like `useChat()`.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V5 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `parts` - Array of UI parts (text, tool results, files, reasoning, etc.)\n * - `metadata` - Optional metadata including createdAt, threadId, resourceId\n *\n * @example\n * ```typescript\n * import { toAISdkV5Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV5Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V4 messages to V5 format\n * const v4Messages = [\n * { id: '1', role: 'user', content: 'Hello', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', content: 'Hi!', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v5Messages = toAISdkV5Messages(v4Messages);\n *\n * // Use with useChat or similar AI SDK V5 hooks\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV5Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(toAISdkMessages(messages));\n}\n\n/**\n * Converts messages from various input formats to AI SDK V4 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V4 UIMessage format, which is suitable for use with AI SDK V4 UI components.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V4 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `content` - Text content of the message\n * - `parts` - Array of UI parts (text, tool-invocation, file, reasoning, etc.)\n * - `createdAt` - Message creation timestamp\n * - `toolInvocations` - Optional array of tool invocations (for assistant messages)\n * - `experimental_attachments` - Optional file attachments\n * - `metadata` - Optional custom metadata\n *\n * @example\n * ```typescript\n * import { toAISdkV4Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV4Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V5 messages to V4 format for legacy compatibility\n * const v5Messages = [\n * { id: '1', role: 'user', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v4Messages = toAISdkV4Messages(v5Messages);\n *\n * // Use with AI SDK V4 useChat hook\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV4Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(new MessageList().add(messages, `memory`).get.all.aiV4.ui());\n}\n"],"mappings":";;;AAIA,SAAS,0BAA0B,SAKhC;CAED,IAAI,QAAQ,UAAU,kBAAkB,QAAQ,UAAU,yBACxD,OAAO;CAGT,IAAI,QAAQ,SAAS,QACnB,OAAO;CAIT,IAAI,MAAM,QAAQ,QAAQ,KAAK,GAC7B,OAAO,QAAQ,MAAM,MACnB,SAAQ,KAAK,SAAS,UAAU,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,kBAAkB,CACxG;CAGF,OAAO,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,SAAS,kBAAkB;AAC3F;AAEA,SAAS,+BAEP,UAAoB;CACpB,OAAO,SAAS,QAAO,YAAW,CAAC,0BAA0B,OAAO,CAAC;AACvE;AA8CA,SAAgB,gBACd,UACA,UAAoC,CAAC,GACN;CAC/B,MAAM,OAAO,IAAIA,gCAAAA,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ;CACrD,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,gBAAgB,QAAQ,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,IAAIA,gCAAAA,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;AACnG"}
1
+ {"version":3,"file":"ui.cjs","names":["MessageList"],"sources":["../src/convert-messages.ts"],"sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { V5UIMessage, V6UIMessage, V7UIMessage } from './public-types';\n\nfunction isSystemReminderUIMessage(message: {\n role?: string;\n parts?: Array<{ type?: string; text?: string }>;\n content?: unknown;\n metadata?: Record<string, unknown>;\n}) {\n // Check metadata first — processors stamp systemReminder or legacy dynamicAgentsMdReminder\n if (message.metadata?.systemReminder || message.metadata?.dynamicAgentsMdReminder) {\n return true;\n }\n\n if (message.role !== 'user') {\n return false;\n }\n\n // Fall back to text inspection for backward compatibility\n if (Array.isArray(message.parts)) {\n return message.parts.some(\n part => part.type === 'text' && typeof part.text === 'string' && part.text.includes('<system-reminder'),\n );\n }\n\n return typeof message.content === 'string' && message.content.includes('<system-reminder');\n}\n\nfunction filterSystemReminderUIMessages<\n T extends { role?: string; parts?: Array<{ type?: string; text?: string }>; content?: unknown },\n>(messages: T[]): T[] {\n return messages.filter(message => !isSystemReminderUIMessage(message));\n}\n\ntype MessageConversionOptionsV5 = {\n version?: 'v5';\n};\n\ntype MessageConversionOptionsV6 = {\n version: 'v6';\n};\n\ntype MessageConversionOptionsV7 = {\n version: 'v7';\n};\n\ntype MessageConversionOptions = MessageConversionOptionsV5 | MessageConversionOptionsV6 | MessageConversionOptionsV7;\n\n/**\n * Converts messages from various input formats to AI SDK UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5/V6 messages, Mastra DB messages, etc.)\n * and normalizes them to the AI SDK UIMessage format. It keeps the existing AI SDK v5/default behavior. If your app\n * is typed against AI SDK v6 or v7, pass `version: 'v6'` or `version: 'v7'`.\n *\n * Note: `version: 'v6'` and `version: 'v7'` use the MessageList AI SDK v6/v7 UI output paths. MessageList input\n * detection and ingestion remain unchanged.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n * @param options - Conversion options. Omit or pass `{ version: 'v5' }` for the existing default behavior. Pass\n * `{ version: 'v6' }` or `{ version: 'v7' }` when your app is typed against AI SDK v6/v7 `useChat()` message types.\n *\n * @returns An array of AI SDK UIMessage objects typed for the selected version.\n *\n * @example\n * ```typescript\n * import { toAISdkMessages } from '@mastra/ai-sdk/ui';\n *\n * const v5Messages = toAISdkMessages(storedMessages);\n * const v6Messages = toAISdkMessages(storedMessages, { version: 'v6' });\n * const v7Messages = toAISdkMessages(storedMessages, { version: 'v7' });\n * ```\n */\nexport function toAISdkMessages(messages: MessageListInput, options?: MessageConversionOptionsV5): V5UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV6): V6UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV7): V7UIMessage[];\nexport function toAISdkMessages(\n messages: MessageListInput,\n options: MessageConversionOptions = {},\n): V5UIMessage[] | V6UIMessage[] | V7UIMessage[] {\n const list = new MessageList().add(messages, `memory`);\n if (options.version === 'v7') {\n return filterSystemReminderUIMessages(list.get.all.aiV7.ui()) as V7UIMessage[];\n }\n if (options.version === 'v6') {\n return filterSystemReminderUIMessages(list.get.all.aiV6.ui());\n }\n return filterSystemReminderUIMessages(list.get.all.aiV5.ui());\n}\n\n/**\n * Converts messages from various input formats to AI SDK V5 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V5 UIMessage format, which is suitable for use with AI SDK V5 UI components like `useChat()`.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V5 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `parts` - Array of UI parts (text, tool results, files, reasoning, etc.)\n * - `metadata` - Optional metadata including createdAt, threadId, resourceId\n *\n * @example\n * ```typescript\n * import { toAISdkV5Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV5Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V4 messages to V5 format\n * const v4Messages = [\n * { id: '1', role: 'user', content: 'Hello', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', content: 'Hi!', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v5Messages = toAISdkV5Messages(v4Messages);\n *\n * // Use with useChat or similar AI SDK V5 hooks\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV5Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(toAISdkMessages(messages));\n}\n\n/**\n * Converts messages from various input formats to AI SDK V4 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V4 UIMessage format, which is suitable for use with AI SDK V4 UI components.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V4 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `content` - Text content of the message\n * - `parts` - Array of UI parts (text, tool-invocation, file, reasoning, etc.)\n * - `createdAt` - Message creation timestamp\n * - `toolInvocations` - Optional array of tool invocations (for assistant messages)\n * - `experimental_attachments` - Optional file attachments\n * - `metadata` - Optional custom metadata\n *\n * @example\n * ```typescript\n * import { toAISdkV4Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV4Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V5 messages to V4 format for legacy compatibility\n * const v5Messages = [\n * { id: '1', role: 'user', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v4Messages = toAISdkV4Messages(v5Messages);\n *\n * // Use with AI SDK V4 useChat hook\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV4Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(new MessageList().add(messages, `memory`).get.all.aiV4.ui());\n}\n"],"mappings":";;;AAIA,SAAS,0BAA0B,SAKhC;CAED,IAAI,QAAQ,UAAU,kBAAkB,QAAQ,UAAU,yBACxD,OAAO;CAGT,IAAI,QAAQ,SAAS,QACnB,OAAO;CAIT,IAAI,MAAM,QAAQ,QAAQ,KAAK,GAC7B,OAAO,QAAQ,MAAM,MACnB,SAAQ,KAAK,SAAS,UAAU,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,kBAAkB,CACxG;CAGF,OAAO,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,SAAS,kBAAkB;AAC3F;AAEA,SAAS,+BAEP,UAAoB;CACpB,OAAO,SAAS,QAAO,YAAW,CAAC,0BAA0B,OAAO,CAAC;AACvE;AAoDA,SAAgB,gBACd,UACA,UAAoC,CAAC,GACU;CAC/C,MAAM,OAAO,IAAIA,gCAAAA,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ;CACrD,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,gBAAgB,QAAQ,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,IAAIA,gCAAAA,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;AACnG"}
package/dist/ui.js CHANGED
@@ -11,6 +11,7 @@ function filterSystemReminderUIMessages(messages) {
11
11
  }
12
12
  function toAISdkMessages(messages, options = {}) {
13
13
  const list = new MessageList().add(messages, `memory`);
14
+ if (options.version === "v7") return filterSystemReminderUIMessages(list.get.all.aiV7.ui());
14
15
  if (options.version === "v6") return filterSystemReminderUIMessages(list.get.all.aiV6.ui());
15
16
  return filterSystemReminderUIMessages(list.get.all.aiV5.ui());
16
17
  }
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","names":[],"sources":["../src/convert-messages.ts"],"sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { V5UIMessage, V6UIMessage } from './public-types';\n\nfunction isSystemReminderUIMessage(message: {\n role?: string;\n parts?: Array<{ type?: string; text?: string }>;\n content?: unknown;\n metadata?: Record<string, unknown>;\n}) {\n // Check metadata first — processors stamp systemReminder or legacy dynamicAgentsMdReminder\n if (message.metadata?.systemReminder || message.metadata?.dynamicAgentsMdReminder) {\n return true;\n }\n\n if (message.role !== 'user') {\n return false;\n }\n\n // Fall back to text inspection for backward compatibility\n if (Array.isArray(message.parts)) {\n return message.parts.some(\n part => part.type === 'text' && typeof part.text === 'string' && part.text.includes('<system-reminder'),\n );\n }\n\n return typeof message.content === 'string' && message.content.includes('<system-reminder');\n}\n\nfunction filterSystemReminderUIMessages<\n T extends { role?: string; parts?: Array<{ type?: string; text?: string }>; content?: unknown },\n>(messages: T[]): T[] {\n return messages.filter(message => !isSystemReminderUIMessage(message));\n}\n\ntype MessageConversionOptionsV5 = {\n version?: 'v5';\n};\n\ntype MessageConversionOptionsV6 = {\n version: 'v6';\n};\n\ntype MessageConversionOptions = MessageConversionOptionsV5 | MessageConversionOptionsV6;\n\n/**\n * Converts messages from various input formats to AI SDK UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5/V6 messages, Mastra DB messages, etc.)\n * and normalizes them to the AI SDK UIMessage format. It keeps the existing AI SDK v5/default behavior. If your app\n * is typed against AI SDK v6, pass `version: 'v6'`.\n *\n * Note: `version: 'v6'` uses the MessageList AI SDK v6 UI output path. MessageList input detection and ingestion\n * remain unchanged.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n * @param options - Conversion options. Omit or pass `{ version: 'v5' }` for the existing default behavior. Pass\n * `{ version: 'v6' }` when your app is typed against AI SDK v6 `useChat()` message types.\n *\n * @returns An array of AI SDK UIMessage objects typed for the selected version.\n *\n * @example\n * ```typescript\n * import { toAISdkMessages } from '@mastra/ai-sdk/ui';\n *\n * const v5Messages = toAISdkMessages(storedMessages);\n * const v6Messages = toAISdkMessages(storedMessages, { version: 'v6' });\n * ```\n */\nexport function toAISdkMessages(messages: MessageListInput, options?: MessageConversionOptionsV5): V5UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV6): V6UIMessage[];\nexport function toAISdkMessages(\n messages: MessageListInput,\n options: MessageConversionOptions = {},\n): V5UIMessage[] | V6UIMessage[] {\n const list = new MessageList().add(messages, `memory`);\n if (options.version === 'v6') {\n return filterSystemReminderUIMessages(list.get.all.aiV6.ui());\n }\n return filterSystemReminderUIMessages(list.get.all.aiV5.ui());\n}\n\n/**\n * Converts messages from various input formats to AI SDK V5 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V5 UIMessage format, which is suitable for use with AI SDK V5 UI components like `useChat()`.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V5 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `parts` - Array of UI parts (text, tool results, files, reasoning, etc.)\n * - `metadata` - Optional metadata including createdAt, threadId, resourceId\n *\n * @example\n * ```typescript\n * import { toAISdkV5Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV5Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V4 messages to V5 format\n * const v4Messages = [\n * { id: '1', role: 'user', content: 'Hello', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', content: 'Hi!', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v5Messages = toAISdkV5Messages(v4Messages);\n *\n * // Use with useChat or similar AI SDK V5 hooks\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV5Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(toAISdkMessages(messages));\n}\n\n/**\n * Converts messages from various input formats to AI SDK V4 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V4 UIMessage format, which is suitable for use with AI SDK V4 UI components.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V4 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `content` - Text content of the message\n * - `parts` - Array of UI parts (text, tool-invocation, file, reasoning, etc.)\n * - `createdAt` - Message creation timestamp\n * - `toolInvocations` - Optional array of tool invocations (for assistant messages)\n * - `experimental_attachments` - Optional file attachments\n * - `metadata` - Optional custom metadata\n *\n * @example\n * ```typescript\n * import { toAISdkV4Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV4Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V5 messages to V4 format for legacy compatibility\n * const v5Messages = [\n * { id: '1', role: 'user', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v4Messages = toAISdkV4Messages(v5Messages);\n *\n * // Use with AI SDK V4 useChat hook\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV4Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(new MessageList().add(messages, `memory`).get.all.aiV4.ui());\n}\n"],"mappings":";;AAIA,SAAS,0BAA0B,SAKhC;CAED,IAAI,QAAQ,UAAU,kBAAkB,QAAQ,UAAU,yBACxD,OAAO;CAGT,IAAI,QAAQ,SAAS,QACnB,OAAO;CAIT,IAAI,MAAM,QAAQ,QAAQ,KAAK,GAC7B,OAAO,QAAQ,MAAM,MACnB,SAAQ,KAAK,SAAS,UAAU,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,kBAAkB,CACxG;CAGF,OAAO,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,SAAS,kBAAkB;AAC3F;AAEA,SAAS,+BAEP,UAAoB;CACpB,OAAO,SAAS,QAAO,YAAW,CAAC,0BAA0B,OAAO,CAAC;AACvE;AA8CA,SAAgB,gBACd,UACA,UAAoC,CAAC,GACN;CAC/B,MAAM,OAAO,IAAI,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ;CACrD,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,gBAAgB,QAAQ,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,IAAI,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;AACnG"}
1
+ {"version":3,"file":"ui.js","names":[],"sources":["../src/convert-messages.ts"],"sourcesContent":["import { MessageList } from '@mastra/core/agent/message-list';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { V5UIMessage, V6UIMessage, V7UIMessage } from './public-types';\n\nfunction isSystemReminderUIMessage(message: {\n role?: string;\n parts?: Array<{ type?: string; text?: string }>;\n content?: unknown;\n metadata?: Record<string, unknown>;\n}) {\n // Check metadata first — processors stamp systemReminder or legacy dynamicAgentsMdReminder\n if (message.metadata?.systemReminder || message.metadata?.dynamicAgentsMdReminder) {\n return true;\n }\n\n if (message.role !== 'user') {\n return false;\n }\n\n // Fall back to text inspection for backward compatibility\n if (Array.isArray(message.parts)) {\n return message.parts.some(\n part => part.type === 'text' && typeof part.text === 'string' && part.text.includes('<system-reminder'),\n );\n }\n\n return typeof message.content === 'string' && message.content.includes('<system-reminder');\n}\n\nfunction filterSystemReminderUIMessages<\n T extends { role?: string; parts?: Array<{ type?: string; text?: string }>; content?: unknown },\n>(messages: T[]): T[] {\n return messages.filter(message => !isSystemReminderUIMessage(message));\n}\n\ntype MessageConversionOptionsV5 = {\n version?: 'v5';\n};\n\ntype MessageConversionOptionsV6 = {\n version: 'v6';\n};\n\ntype MessageConversionOptionsV7 = {\n version: 'v7';\n};\n\ntype MessageConversionOptions = MessageConversionOptionsV5 | MessageConversionOptionsV6 | MessageConversionOptionsV7;\n\n/**\n * Converts messages from various input formats to AI SDK UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5/V6 messages, Mastra DB messages, etc.)\n * and normalizes them to the AI SDK UIMessage format. It keeps the existing AI SDK v5/default behavior. If your app\n * is typed against AI SDK v6 or v7, pass `version: 'v6'` or `version: 'v7'`.\n *\n * Note: `version: 'v6'` and `version: 'v7'` use the MessageList AI SDK v6/v7 UI output paths. MessageList input\n * detection and ingestion remain unchanged.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n * @param options - Conversion options. Omit or pass `{ version: 'v5' }` for the existing default behavior. Pass\n * `{ version: 'v6' }` or `{ version: 'v7' }` when your app is typed against AI SDK v6/v7 `useChat()` message types.\n *\n * @returns An array of AI SDK UIMessage objects typed for the selected version.\n *\n * @example\n * ```typescript\n * import { toAISdkMessages } from '@mastra/ai-sdk/ui';\n *\n * const v5Messages = toAISdkMessages(storedMessages);\n * const v6Messages = toAISdkMessages(storedMessages, { version: 'v6' });\n * const v7Messages = toAISdkMessages(storedMessages, { version: 'v7' });\n * ```\n */\nexport function toAISdkMessages(messages: MessageListInput, options?: MessageConversionOptionsV5): V5UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV6): V6UIMessage[];\nexport function toAISdkMessages(messages: MessageListInput, options: MessageConversionOptionsV7): V7UIMessage[];\nexport function toAISdkMessages(\n messages: MessageListInput,\n options: MessageConversionOptions = {},\n): V5UIMessage[] | V6UIMessage[] | V7UIMessage[] {\n const list = new MessageList().add(messages, `memory`);\n if (options.version === 'v7') {\n return filterSystemReminderUIMessages(list.get.all.aiV7.ui()) as V7UIMessage[];\n }\n if (options.version === 'v6') {\n return filterSystemReminderUIMessages(list.get.all.aiV6.ui());\n }\n return filterSystemReminderUIMessages(list.get.all.aiV5.ui());\n}\n\n/**\n * Converts messages from various input formats to AI SDK V5 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V5 UIMessage format, which is suitable for use with AI SDK V5 UI components like `useChat()`.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V5 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `parts` - Array of UI parts (text, tool results, files, reasoning, etc.)\n * - `metadata` - Optional metadata including createdAt, threadId, resourceId\n *\n * @example\n * ```typescript\n * import { toAISdkV5Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV5Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V4 messages to V5 format\n * const v4Messages = [\n * { id: '1', role: 'user', content: 'Hello', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', content: 'Hi!', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v5Messages = toAISdkV5Messages(v4Messages);\n *\n * // Use with useChat or similar AI SDK V5 hooks\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV5Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV5Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(toAISdkMessages(messages));\n}\n\n/**\n * Converts messages from various input formats to AI SDK V4 UI message format.\n *\n * This function accepts messages in multiple formats (strings, AI SDK V4/V5 messages, Mastra DB messages, etc.) and normalizes them to the AI SDK V4 UIMessage format, which is suitable for use with AI SDK V4 UI components.\n *\n * @param messages - Messages to convert. Accepts:\n * - `string` - A single text message (treated as user role)\n * - `string[]` - Multiple text messages\n * - `MessageInput` - A single message object in any supported format:\n * - AI SDK V5 UIMessage or ModelMessage\n * - AI SDK V4 UIMessage or CoreMessage\n * - MastraDBMessage (internal storage format)\n * - MastraMessageV1 (legacy format)\n * - `MessageInput[]` - Array of message objects\n *\n * @returns An array of AI SDK V4 UIMessage objects with:\n * - `id` - Unique message identifier\n * - `role` - 'user' | 'assistant' | 'system'\n * - `content` - Text content of the message\n * - `parts` - Array of UI parts (text, tool-invocation, file, reasoning, etc.)\n * - `createdAt` - Message creation timestamp\n * - `toolInvocations` - Optional array of tool invocations (for assistant messages)\n * - `experimental_attachments` - Optional file attachments\n * - `metadata` - Optional custom metadata\n *\n * @example\n * ```typescript\n * import { toAISdkV4Messages } from '@mastra/ai-sdk';\n *\n * // Convert simple text messages\n * const messages = toAISdkV4Messages(['Hello', 'How can I help?']);\n *\n * // Convert AI SDK V5 messages to V4 format for legacy compatibility\n * const v5Messages = [\n * { id: '1', role: 'user', parts: [{ type: 'text', text: 'Hello' }] },\n * { id: '2', role: 'assistant', parts: [{ type: 'text', text: 'Hi!' }] }\n * ];\n * const v4Messages = toAISdkV4Messages(v5Messages);\n *\n * // Use with AI SDK V4 useChat hook\n * const { messages: chatMessages } = useChat({\n * initialMessages: toAISdkV4Messages(storedMessages)\n * });\n * ```\n */\nexport function toAISdkV4Messages(messages: MessageListInput) {\n return filterSystemReminderUIMessages(new MessageList().add(messages, `memory`).get.all.aiV4.ui());\n}\n"],"mappings":";;AAIA,SAAS,0BAA0B,SAKhC;CAED,IAAI,QAAQ,UAAU,kBAAkB,QAAQ,UAAU,yBACxD,OAAO;CAGT,IAAI,QAAQ,SAAS,QACnB,OAAO;CAIT,IAAI,MAAM,QAAQ,QAAQ,KAAK,GAC7B,OAAO,QAAQ,MAAM,MACnB,SAAQ,KAAK,SAAS,UAAU,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,kBAAkB,CACxG;CAGF,OAAO,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,SAAS,kBAAkB;AAC3F;AAEA,SAAS,+BAEP,UAAoB;CACpB,OAAO,SAAS,QAAO,YAAW,CAAC,0BAA0B,OAAO,CAAC;AACvE;AAoDA,SAAgB,gBACd,UACA,UAAoC,CAAC,GACU;CAC/C,MAAM,OAAO,IAAI,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ;CACrD,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,IAAI,QAAQ,YAAY,MACtB,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;CAE9D,OAAO,+BAA+B,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,gBAAgB,QAAQ,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAgB,kBAAkB,UAA4B;CAC5D,OAAO,+BAA+B,IAAI,YAAY,CAAC,CAAC,IAAI,UAAU,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;AACnG"}
@@ -2,7 +2,7 @@ import type { Mastra } from '@mastra/core/mastra';
2
2
  import type { TracingOptions } from '@mastra/core/observability';
3
3
  import type { RequestContext } from '@mastra/core/request-context';
4
4
  import { registerApiRoute } from '@mastra/core/server';
5
- import type { V5UIMessage, V5UIMessageStream, V6UIMessage, V6UIMessageStream } from './public-types.js';
5
+ import type { V5UIMessage, V5UIMessageStream, V6UIMessage, V6UIMessageStream, V7UIMessage, V7UIMessageStream } from './public-types.js';
6
6
  export type WorkflowStreamHandlerParams = {
7
7
  runId?: string;
8
8
  resourceId?: string;
@@ -17,7 +17,7 @@ export type WorkflowStreamHandlerOptions = {
17
17
  mastra: Mastra;
18
18
  workflowId: string;
19
19
  params: WorkflowStreamHandlerParams;
20
- version?: 'v5' | 'v6';
20
+ version?: 'v5' | 'v6' | 'v7';
21
21
  includeTextStreamParts?: boolean;
22
22
  sendReasoning?: boolean;
23
23
  sendSources?: boolean;
@@ -28,6 +28,9 @@ type WorkflowStreamHandlerOptionsV5 = Omit<WorkflowStreamHandlerOptions, 'versio
28
28
  type WorkflowStreamHandlerOptionsV6 = Omit<WorkflowStreamHandlerOptions, 'version'> & {
29
29
  version: 'v6';
30
30
  };
31
+ type WorkflowStreamHandlerOptionsV7 = Omit<WorkflowStreamHandlerOptions, 'version'> & {
32
+ version: 'v7';
33
+ };
31
34
  /**
32
35
  * Framework-agnostic handler for streaming workflow execution in AI SDK-compatible format.
33
36
  * Use this function directly when you need to handle workflow streaming outside of Hono or Mastra's own apiRoutes feature.
@@ -52,8 +55,9 @@ type WorkflowStreamHandlerOptionsV6 = Omit<WorkflowStreamHandlerOptions, 'versio
52
55
  */
53
56
  export declare function handleWorkflowStream<UI_MESSAGE extends V5UIMessage = V5UIMessage>(options: WorkflowStreamHandlerOptionsV5): Promise<V5UIMessageStream<UI_MESSAGE>>;
54
57
  export declare function handleWorkflowStream<UI_MESSAGE extends V6UIMessage = V6UIMessage>(options: WorkflowStreamHandlerOptionsV6): Promise<V6UIMessageStream<UI_MESSAGE>>;
58
+ export declare function handleWorkflowStream<UI_MESSAGE extends V7UIMessage = V7UIMessage>(options: WorkflowStreamHandlerOptionsV7): Promise<V7UIMessageStream<UI_MESSAGE>>;
55
59
  export type WorkflowRouteOptions = {
56
- version?: 'v5' | 'v6';
60
+ version?: 'v5' | 'v6' | 'v7';
57
61
  sendReasoning?: boolean;
58
62
  sendSources?: boolean;
59
63
  } & ({
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-route.d.ts","sourceRoot":"","sources":["../src/workflow-route.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAEV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,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,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,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,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,8BAA8B,GAAG,IAAI,CAAC,4BAA4B,EAAE,SAAS,CAAC,GAAG;IACpF,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,KAAK,8BAA8B,GAAG,IAAI,CAAC,4BAA4B,EAAE,SAAS,CAAC,GAAG;IACpF,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,EAC/E,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,wBAAgB,oBAAoB,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,EAC/E,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;AA+D1C,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,CACA;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,CACvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAA0C,EAC1C,QAAQ,EACR,OAAc,EACd,sBAA6B,EAC7B,aAAqB,EACrB,WAAmB,GACpB,EAAE,oBAAoB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAiG5D"}
1
+ {"version":3,"file":"workflow-route.d.ts","sourceRoot":"","sources":["../src/workflow-route.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/ai-sdk",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
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",
@@ -47,16 +47,17 @@
47
47
  "typescript": "^6.0.3",
48
48
  "vitest": "4.1.10",
49
49
  "zod": "^4.4.3",
50
- "@internal/ai-sdk-v5": "0.0.69",
51
- "@internal/ai-sdk-v4": "0.0.69",
52
- "@internal/ai-v6": "0.0.69",
53
- "@internal/lint": "0.0.122",
54
- "@internal/test-utils": "0.0.58",
55
- "@internal/llm-recorder": "0.0.58",
56
- "@internal/types-builder": "0.0.97",
57
- "@mastra/libsql": "1.20.0",
58
- "@mastra/core": "1.58.0",
59
- "@mastra/memory": "1.26.1"
50
+ "@internal/ai-sdk-v4": "0.0.71",
51
+ "@internal/ai-sdk-v5": "0.0.71",
52
+ "@internal/ai-v6": "0.0.71",
53
+ "@internal/ai-v7": "0.0.71",
54
+ "@internal/lint": "0.0.124",
55
+ "@internal/llm-recorder": "0.0.60",
56
+ "@internal/types-builder": "0.0.99",
57
+ "@mastra/core": "1.60.0",
58
+ "@mastra/libsql": "1.21.0",
59
+ "@mastra/memory": "1.27.0",
60
+ "@internal/test-utils": "0.0.60"
60
61
  },
61
62
  "keywords": [
62
63
  "mastra",