ai 5.0.75 → 5.0.77

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # ai
2
2
 
3
+ ## 5.0.77
4
+
5
+ ### Patch Changes
6
+
7
+ - 3568ebc: feat(ai): add convertDataPart option to convertToModelMessages
8
+
9
+ Add optional convertDataPart callback for converting custom data parts (URLs, code files, etc.) to text or file parts that models can process. Fully type-safe using existing UIMessage generics.
10
+
11
+ ## 5.0.76
12
+
13
+ ### Patch Changes
14
+
15
+ - 87b03d5: feat(ui): add isDataUIPart helper
16
+
3
17
  ## 5.0.75
4
18
 
5
19
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createGateway, gateway } from '@ai-sdk/gateway';
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
- import { ModelMessage, Tool, InferToolInput, InferToolOutput, AssistantModelMessage, ToolModelMessage, ReasoningPart, FlexibleSchema, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, InferSchema, DataContent, Validator, StandardSchemaV1, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
+ import { ModelMessage, Tool, InferToolInput, InferToolOutput, AssistantModelMessage, ToolModelMessage, ReasoningPart, FlexibleSchema, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, InferSchema, DataContent, Validator, StandardSchemaV1, TextPart, FilePart, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
4
4
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, IdGenerator, ImagePart, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
5
5
  import { AttributeValue, Tracer } from '@opentelemetry/api';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
@@ -1527,6 +1527,10 @@ type DataUIPart<DATA_TYPES extends UIDataTypes> = ValueOf<{
1527
1527
  };
1528
1528
  }>;
1529
1529
  type asUITool<TOOL extends UITool | Tool> = TOOL extends Tool ? InferUITool<TOOL> : TOOL;
1530
+ /**
1531
+ * Check if a message part is a data part.
1532
+ */
1533
+ declare function isDataUIPart<DATA_TYPES extends UIDataTypes>(part: UIMessagePart<DATA_TYPES, UITools>): part is DataUIPart<DATA_TYPES>;
1530
1534
  /**
1531
1535
  * A UI tool invocation contains all the information needed to render a tool invocation in the UI.
1532
1536
  * It can be derived from a tool without knowing the tool name, and can be used to define
@@ -1598,6 +1602,18 @@ type DynamicToolUIPart = {
1598
1602
  errorText: string;
1599
1603
  callProviderMetadata?: ProviderMetadata;
1600
1604
  });
1605
+ /**
1606
+ * Type guard to check if a message part is a text part.
1607
+ */
1608
+ declare function isTextUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is TextUIPart;
1609
+ /**
1610
+ * Type guard to check if a message part is a file part.
1611
+ */
1612
+ declare function isFileUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is FileUIPart;
1613
+ /**
1614
+ * Type guard to check if a message part is a reasoning part.
1615
+ */
1616
+ declare function isReasoningUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is ReasoningUIPart;
1601
1617
  declare function isToolUIPart<TOOLS extends UITools>(part: UIMessagePart<UIDataTypes, TOOLS>): part is ToolUIPart<TOOLS>;
1602
1618
  declare function isToolOrDynamicToolUIPart<TOOLS extends UITools>(part: UIMessagePart<UIDataTypes, TOOLS>): part is ToolUIPart<TOOLS> | DynamicToolUIPart;
1603
1619
  declare function getToolName<TOOLS extends UITools>(part: ToolUIPart<TOOLS>): keyof TOOLS;
@@ -4372,12 +4388,14 @@ with the AI functions (e.g. `streamText`, `generateText`).
4372
4388
  @param messages - The UI messages to convert.
4373
4389
  @param options.tools - The tools to use.
4374
4390
  @param options.ignoreIncompleteToolCalls - Whether to ignore incomplete tool calls. Default is `false`.
4391
+ @param options.convertDataPart - Optional function to convert data parts to text or file model message parts. Returns `undefined` if the part should be ignored.
4375
4392
 
4376
4393
  @returns An array of ModelMessages.
4377
4394
  */
4378
- declare function convertToModelMessages(messages: Array<Omit<UIMessage, 'id'>>, options?: {
4395
+ declare function convertToModelMessages<UI_MESSAGE extends UIMessage>(messages: Array<Omit<UI_MESSAGE, 'id'>>, options?: {
4379
4396
  tools?: ToolSet;
4380
4397
  ignoreIncompleteToolCalls?: boolean;
4398
+ convertDataPart?: (part: DataUIPart<InferUIMessageData<UI_MESSAGE>>) => TextPart | FilePart | undefined;
4381
4399
  }): ModelMessage[];
4382
4400
  /**
4383
4401
  @deprecated Use `convertToModelMessages` instead.
@@ -4647,4 +4665,4 @@ declare global {
4647
4665
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4648
4666
  }
4649
4667
 
4650
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4668
+ export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createGateway, gateway } from '@ai-sdk/gateway';
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
- import { ModelMessage, Tool, InferToolInput, InferToolOutput, AssistantModelMessage, ToolModelMessage, ReasoningPart, FlexibleSchema, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, InferSchema, DataContent, Validator, StandardSchemaV1, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
+ import { ModelMessage, Tool, InferToolInput, InferToolOutput, AssistantModelMessage, ToolModelMessage, ReasoningPart, FlexibleSchema, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, InferSchema, DataContent, Validator, StandardSchemaV1, TextPart, FilePart, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
4
4
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, IdGenerator, ImagePart, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
5
5
  import { AttributeValue, Tracer } from '@opentelemetry/api';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
@@ -1527,6 +1527,10 @@ type DataUIPart<DATA_TYPES extends UIDataTypes> = ValueOf<{
1527
1527
  };
1528
1528
  }>;
1529
1529
  type asUITool<TOOL extends UITool | Tool> = TOOL extends Tool ? InferUITool<TOOL> : TOOL;
1530
+ /**
1531
+ * Check if a message part is a data part.
1532
+ */
1533
+ declare function isDataUIPart<DATA_TYPES extends UIDataTypes>(part: UIMessagePart<DATA_TYPES, UITools>): part is DataUIPart<DATA_TYPES>;
1530
1534
  /**
1531
1535
  * A UI tool invocation contains all the information needed to render a tool invocation in the UI.
1532
1536
  * It can be derived from a tool without knowing the tool name, and can be used to define
@@ -1598,6 +1602,18 @@ type DynamicToolUIPart = {
1598
1602
  errorText: string;
1599
1603
  callProviderMetadata?: ProviderMetadata;
1600
1604
  });
1605
+ /**
1606
+ * Type guard to check if a message part is a text part.
1607
+ */
1608
+ declare function isTextUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is TextUIPart;
1609
+ /**
1610
+ * Type guard to check if a message part is a file part.
1611
+ */
1612
+ declare function isFileUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is FileUIPart;
1613
+ /**
1614
+ * Type guard to check if a message part is a reasoning part.
1615
+ */
1616
+ declare function isReasoningUIPart(part: UIMessagePart<UIDataTypes, UITools>): part is ReasoningUIPart;
1601
1617
  declare function isToolUIPart<TOOLS extends UITools>(part: UIMessagePart<UIDataTypes, TOOLS>): part is ToolUIPart<TOOLS>;
1602
1618
  declare function isToolOrDynamicToolUIPart<TOOLS extends UITools>(part: UIMessagePart<UIDataTypes, TOOLS>): part is ToolUIPart<TOOLS> | DynamicToolUIPart;
1603
1619
  declare function getToolName<TOOLS extends UITools>(part: ToolUIPart<TOOLS>): keyof TOOLS;
@@ -4372,12 +4388,14 @@ with the AI functions (e.g. `streamText`, `generateText`).
4372
4388
  @param messages - The UI messages to convert.
4373
4389
  @param options.tools - The tools to use.
4374
4390
  @param options.ignoreIncompleteToolCalls - Whether to ignore incomplete tool calls. Default is `false`.
4391
+ @param options.convertDataPart - Optional function to convert data parts to text or file model message parts. Returns `undefined` if the part should be ignored.
4375
4392
 
4376
4393
  @returns An array of ModelMessages.
4377
4394
  */
4378
- declare function convertToModelMessages(messages: Array<Omit<UIMessage, 'id'>>, options?: {
4395
+ declare function convertToModelMessages<UI_MESSAGE extends UIMessage>(messages: Array<Omit<UI_MESSAGE, 'id'>>, options?: {
4379
4396
  tools?: ToolSet;
4380
4397
  ignoreIncompleteToolCalls?: boolean;
4398
+ convertDataPart?: (part: DataUIPart<InferUIMessageData<UI_MESSAGE>>) => TextPart | FilePart | undefined;
4381
4399
  }): ModelMessage[];
4382
4400
  /**
4383
4401
  @deprecated Use `convertToModelMessages` instead.
@@ -4647,4 +4665,4 @@ declare global {
4647
4665
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4648
4666
  }
4649
4667
 
4650
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4668
+ export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -99,7 +99,11 @@ __export(src_exports, {
99
99
  getToolName: () => getToolName,
100
100
  getToolOrDynamicToolName: () => getToolOrDynamicToolName,
101
101
  hasToolCall: () => hasToolCall,
102
+ isDataUIPart: () => isDataUIPart,
102
103
  isDeepEqualData: () => isDeepEqualData,
104
+ isFileUIPart: () => isFileUIPart,
105
+ isReasoningUIPart: () => isReasoningUIPart,
106
+ isTextUIPart: () => isTextUIPart,
103
107
  isToolOrDynamicToolUIPart: () => isToolOrDynamicToolUIPart,
104
108
  isToolUIPart: () => isToolUIPart,
105
109
  jsonSchema: () => import_provider_utils36.jsonSchema,
@@ -787,7 +791,7 @@ function detectMediaType({
787
791
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
788
792
 
789
793
  // src/version.ts
790
- var VERSION = true ? "5.0.75" : "0.0.0-test";
794
+ var VERSION = true ? "5.0.77" : "0.0.0-test";
791
795
 
792
796
  // src/util/download/download.ts
793
797
  var download = async ({ url }) => {
@@ -3467,6 +3471,18 @@ async function parsePartialJson(jsonText) {
3467
3471
  }
3468
3472
 
3469
3473
  // src/ui/ui-messages.ts
3474
+ function isDataUIPart(part) {
3475
+ return part.type.startsWith("data-");
3476
+ }
3477
+ function isTextUIPart(part) {
3478
+ return part.type === "text";
3479
+ }
3480
+ function isFileUIPart(part) {
3481
+ return part.type === "file";
3482
+ }
3483
+ function isReasoningUIPart(part) {
3484
+ return part.type === "reasoning";
3485
+ }
3470
3486
  function isToolUIPart(part) {
3471
3487
  return part.type.startsWith("tool-");
3472
3488
  }
@@ -5843,7 +5859,9 @@ function convertToModelMessages(messages, options) {
5843
5859
  for (const message of messages) {
5844
5860
  switch (message.role) {
5845
5861
  case "system": {
5846
- const textParts = message.parts.filter((part) => part.type === "text");
5862
+ const textParts = message.parts.filter(
5863
+ (part) => part.type === "text"
5864
+ );
5847
5865
  const providerMetadata = textParts.reduce((acc, part) => {
5848
5866
  if (part.providerMetadata != null) {
5849
5867
  return { ...acc, ...part.providerMetadata };
@@ -5860,60 +5878,63 @@ function convertToModelMessages(messages, options) {
5860
5878
  case "user": {
5861
5879
  modelMessages.push({
5862
5880
  role: "user",
5863
- content: message.parts.filter(
5864
- (part) => part.type === "text" || part.type === "file"
5865
- ).map((part) => {
5866
- switch (part.type) {
5867
- case "text":
5868
- return {
5869
- type: "text",
5870
- text: part.text,
5871
- ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5872
- };
5873
- case "file":
5874
- return {
5875
- type: "file",
5876
- mediaType: part.mediaType,
5877
- filename: part.filename,
5878
- data: part.url,
5879
- ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5880
- };
5881
- default:
5882
- return part;
5881
+ content: message.parts.map((part) => {
5882
+ var _a17;
5883
+ if (isTextUIPart(part)) {
5884
+ return {
5885
+ type: "text",
5886
+ text: part.text,
5887
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5888
+ };
5883
5889
  }
5884
- })
5890
+ if (isFileUIPart(part)) {
5891
+ return {
5892
+ type: "file",
5893
+ mediaType: part.mediaType,
5894
+ filename: part.filename,
5895
+ data: part.url,
5896
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5897
+ };
5898
+ }
5899
+ if (isDataUIPart(part)) {
5900
+ return (_a17 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a17.call(
5901
+ options,
5902
+ part
5903
+ );
5904
+ }
5905
+ }).filter((part) => part != null)
5885
5906
  });
5886
5907
  break;
5887
5908
  }
5888
5909
  case "assistant": {
5889
5910
  if (message.parts != null) {
5890
5911
  let processBlock2 = function() {
5891
- var _a17, _b;
5912
+ var _a17, _b, _c;
5892
5913
  if (block.length === 0) {
5893
5914
  return;
5894
5915
  }
5895
5916
  const content = [];
5896
5917
  for (const part of block) {
5897
- if (part.type === "text") {
5918
+ if (isTextUIPart(part)) {
5898
5919
  content.push({
5899
5920
  type: "text",
5900
5921
  text: part.text,
5901
5922
  ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5902
5923
  });
5903
- } else if (part.type === "file") {
5924
+ } else if (isFileUIPart(part)) {
5904
5925
  content.push({
5905
5926
  type: "file",
5906
5927
  mediaType: part.mediaType,
5907
5928
  filename: part.filename,
5908
5929
  data: part.url
5909
5930
  });
5910
- } else if (part.type === "reasoning") {
5931
+ } else if (isReasoningUIPart(part)) {
5911
5932
  content.push({
5912
5933
  type: "reasoning",
5913
5934
  text: part.text,
5914
5935
  providerOptions: part.providerMetadata
5915
5936
  });
5916
- } else if (part.type === "dynamic-tool") {
5937
+ } else if (isDynamicToolUIPart(part)) {
5917
5938
  const toolName = part.toolName;
5918
5939
  if (part.state !== "input-streaming") {
5919
5940
  content.push({
@@ -5948,6 +5969,14 @@ function convertToModelMessages(messages, options) {
5948
5969
  });
5949
5970
  }
5950
5971
  }
5972
+ } else if (isDataUIPart(part)) {
5973
+ const dataPart = (_c = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _c.call(
5974
+ options,
5975
+ part
5976
+ );
5977
+ if (dataPart != null) {
5978
+ content.push(dataPart);
5979
+ }
5951
5980
  } else {
5952
5981
  const _exhaustiveCheck = part;
5953
5982
  throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
@@ -5968,7 +5997,7 @@ function convertToModelMessages(messages, options) {
5968
5997
  switch (toolPart.state) {
5969
5998
  case "output-error":
5970
5999
  case "output-available": {
5971
- const toolName = toolPart.type === "dynamic-tool" ? toolPart.toolName : getToolName(toolPart);
6000
+ const toolName = getToolOrDynamicToolName(toolPart);
5972
6001
  return {
5973
6002
  type: "tool-result",
5974
6003
  toolCallId: toolPart.toolCallId,
@@ -5994,7 +6023,7 @@ function convertToModelMessages(messages, options) {
5994
6023
  var processBlock = processBlock2;
5995
6024
  let block = [];
5996
6025
  for (const part of message.parts) {
5997
- if (part.type === "text" || part.type === "reasoning" || part.type === "file" || part.type === "dynamic-tool" || isToolUIPart(part)) {
6026
+ if (isTextUIPart(part) || isReasoningUIPart(part) || isFileUIPart(part) || isToolOrDynamicToolUIPart(part) || isDataUIPart(part)) {
5998
6027
  block.push(part);
5999
6028
  } else if (part.type === "step-start") {
6000
6029
  processBlock2();
@@ -10624,7 +10653,11 @@ function readUIMessageStream({
10624
10653
  getToolName,
10625
10654
  getToolOrDynamicToolName,
10626
10655
  hasToolCall,
10656
+ isDataUIPart,
10627
10657
  isDeepEqualData,
10658
+ isFileUIPart,
10659
+ isReasoningUIPart,
10660
+ isTextUIPart,
10628
10661
  isToolOrDynamicToolUIPart,
10629
10662
  isToolUIPart,
10630
10663
  jsonSchema,