ai 6.0.10 → 6.0.12

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,22 @@
1
1
  # ai
2
2
 
3
+ ## 6.0.12
4
+
5
+ ### Patch Changes
6
+
7
+ - d937c8f: Add Image model middleware support via `wrapImageModel` and `ImageModelV3Middleware`.
8
+ - Updated dependencies [d937c8f]
9
+ - @ai-sdk/provider@3.0.2
10
+ - @ai-sdk/gateway@3.0.9
11
+ - @ai-sdk/provider-utils@4.0.4
12
+
13
+ ## 6.0.11
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [8ec1984]
18
+ - @ai-sdk/gateway@3.0.8
19
+
3
20
  ## 6.0.10
4
21
 
5
22
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, ProviderOptions, UserModelMessage, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, DownloadError, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
- import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelV3CallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV3Middleware, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelV3CallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
8
8
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, JSONSchema7, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, TooManyEmbeddingValuesForCallError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
9
9
  import { AttributeValue, Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -31,6 +31,8 @@ Metadata from the model provider for this call
31
31
  */
32
32
  type ImageModelProviderMetadata = ImageModelV3ProviderMetadata | ImageModelV2ProviderMetadata;
33
33
 
34
+ type ImageModelMiddleware = ImageModelV3Middleware;
35
+
34
36
  type ImageModelResponseMetadata = {
35
37
  /**
36
38
  Timestamp for the start of the generated response.
@@ -5136,6 +5138,25 @@ declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId,
5136
5138
  providerId?: string;
5137
5139
  }) => EmbeddingModelV3;
5138
5140
 
5141
+ /**
5142
+ * Wraps an ImageModelV3 instance with middleware functionality.
5143
+ * This function allows you to apply middleware to transform parameters
5144
+ * and wrap generate operations of an image model.
5145
+ *
5146
+ * @param options - Configuration options for wrapping the image model.
5147
+ * @param options.model - The original ImageModelV3 instance to be wrapped.
5148
+ * @param options.middleware - The middleware to be applied to the image model. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5149
+ * @param options.modelId - Optional custom model ID to override the original model's ID.
5150
+ * @param options.providerId - Optional custom provider ID to override the original model's provider ID.
5151
+ * @returns A new ImageModelV3 instance with middleware applied.
5152
+ */
5153
+ declare const wrapImageModel: ({ model, middleware: middlewareArg, modelId, providerId, }: {
5154
+ model: ImageModelV3;
5155
+ middleware: ImageModelMiddleware | ImageModelMiddleware[];
5156
+ modelId?: string;
5157
+ providerId?: string;
5158
+ }) => ImageModelV3;
5159
+
5139
5160
  /**
5140
5161
  * Wraps a ProviderV3 instance with middleware functionality.
5141
5162
  * This function allows you to apply middleware to all language models
@@ -5145,11 +5166,13 @@ declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId,
5145
5166
  * @param options - Configuration options for wrapping the provider.
5146
5167
  * @param options.provider - The original ProviderV3 instance to be wrapped.
5147
5168
  * @param options.languageModelMiddleware - The middleware to be applied to all language models from the provider. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5169
+ * @param options.imageModelMiddleware - Optional middleware to be applied to all image models from the provider. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5148
5170
  * @returns A new ProviderV3 instance with middleware applied to all language models.
5149
5171
  */
5150
- declare function wrapProvider({ provider, languageModelMiddleware, }: {
5172
+ declare function wrapProvider({ provider, languageModelMiddleware, imageModelMiddleware, }: {
5151
5173
  provider: ProviderV3 | ProviderV2;
5152
5174
  languageModelMiddleware: LanguageModelMiddleware | LanguageModelMiddleware[];
5175
+ imageModelMiddleware?: ImageModelMiddleware | ImageModelMiddleware[];
5153
5176
  }): ProviderV3;
5154
5177
 
5155
5178
  /**
@@ -5229,11 +5252,13 @@ interface ProviderRegistryProvider<PROVIDERS extends Record<string, ProviderV3>
5229
5252
  * @param options - Configuration options for the provider registry.
5230
5253
  * @param options.separator - The separator used between provider ID and model ID in the combined identifier. Defaults to ':'.
5231
5254
  * @param options.languageModelMiddleware - Optional middleware to be applied to all language models from the registry. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5232
- * @returns A new ProviderRegistryProvider instance that provides access to all registered providers with optional middleware applied to language models.
5255
+ * @param options.imageModelMiddleware - Optional middleware to be applied to all image models from the registry. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5256
+ * @returns A new ProviderRegistryProvider instance that provides access to all registered providers with optional middleware applied to language and image models.
5233
5257
  */
5234
- declare function createProviderRegistry<PROVIDERS extends Record<string, ProviderV3>, SEPARATOR extends string = ':'>(providers: PROVIDERS, { separator, languageModelMiddleware, }?: {
5258
+ declare function createProviderRegistry<PROVIDERS extends Record<string, ProviderV3>, SEPARATOR extends string = ':'>(providers: PROVIDERS, { separator, languageModelMiddleware, imageModelMiddleware, }?: {
5235
5259
  separator?: SEPARATOR;
5236
5260
  languageModelMiddleware?: LanguageModelMiddleware | LanguageModelMiddleware[];
5261
+ imageModelMiddleware?: ImageModelMiddleware | ImageModelMiddleware[];
5237
5262
  }): ProviderRegistryProvider<PROVIDERS, SEPARATOR>;
5238
5263
  /**
5239
5264
  * @deprecated Use `createProviderRegistry` instead.
@@ -5493,4 +5518,4 @@ declare global {
5493
5518
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
5494
5519
  }
5495
5520
 
5496
- export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
5521
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelMiddleware, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, ProviderOptions, UserModelMessage, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, DownloadError, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
- import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelV3CallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV3Middleware, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelV3CallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
8
8
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, JSONSchema7, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, TooManyEmbeddingValuesForCallError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
9
9
  import { AttributeValue, Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -31,6 +31,8 @@ Metadata from the model provider for this call
31
31
  */
32
32
  type ImageModelProviderMetadata = ImageModelV3ProviderMetadata | ImageModelV2ProviderMetadata;
33
33
 
34
+ type ImageModelMiddleware = ImageModelV3Middleware;
35
+
34
36
  type ImageModelResponseMetadata = {
35
37
  /**
36
38
  Timestamp for the start of the generated response.
@@ -5136,6 +5138,25 @@ declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId,
5136
5138
  providerId?: string;
5137
5139
  }) => EmbeddingModelV3;
5138
5140
 
5141
+ /**
5142
+ * Wraps an ImageModelV3 instance with middleware functionality.
5143
+ * This function allows you to apply middleware to transform parameters
5144
+ * and wrap generate operations of an image model.
5145
+ *
5146
+ * @param options - Configuration options for wrapping the image model.
5147
+ * @param options.model - The original ImageModelV3 instance to be wrapped.
5148
+ * @param options.middleware - The middleware to be applied to the image model. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5149
+ * @param options.modelId - Optional custom model ID to override the original model's ID.
5150
+ * @param options.providerId - Optional custom provider ID to override the original model's provider ID.
5151
+ * @returns A new ImageModelV3 instance with middleware applied.
5152
+ */
5153
+ declare const wrapImageModel: ({ model, middleware: middlewareArg, modelId, providerId, }: {
5154
+ model: ImageModelV3;
5155
+ middleware: ImageModelMiddleware | ImageModelMiddleware[];
5156
+ modelId?: string;
5157
+ providerId?: string;
5158
+ }) => ImageModelV3;
5159
+
5139
5160
  /**
5140
5161
  * Wraps a ProviderV3 instance with middleware functionality.
5141
5162
  * This function allows you to apply middleware to all language models
@@ -5145,11 +5166,13 @@ declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId,
5145
5166
  * @param options - Configuration options for wrapping the provider.
5146
5167
  * @param options.provider - The original ProviderV3 instance to be wrapped.
5147
5168
  * @param options.languageModelMiddleware - The middleware to be applied to all language models from the provider. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5169
+ * @param options.imageModelMiddleware - Optional middleware to be applied to all image models from the provider. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5148
5170
  * @returns A new ProviderV3 instance with middleware applied to all language models.
5149
5171
  */
5150
- declare function wrapProvider({ provider, languageModelMiddleware, }: {
5172
+ declare function wrapProvider({ provider, languageModelMiddleware, imageModelMiddleware, }: {
5151
5173
  provider: ProviderV3 | ProviderV2;
5152
5174
  languageModelMiddleware: LanguageModelMiddleware | LanguageModelMiddleware[];
5175
+ imageModelMiddleware?: ImageModelMiddleware | ImageModelMiddleware[];
5153
5176
  }): ProviderV3;
5154
5177
 
5155
5178
  /**
@@ -5229,11 +5252,13 @@ interface ProviderRegistryProvider<PROVIDERS extends Record<string, ProviderV3>
5229
5252
  * @param options - Configuration options for the provider registry.
5230
5253
  * @param options.separator - The separator used between provider ID and model ID in the combined identifier. Defaults to ':'.
5231
5254
  * @param options.languageModelMiddleware - Optional middleware to be applied to all language models from the registry. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5232
- * @returns A new ProviderRegistryProvider instance that provides access to all registered providers with optional middleware applied to language models.
5255
+ * @param options.imageModelMiddleware - Optional middleware to be applied to all image models from the registry. When multiple middlewares are provided, the first middleware will transform the input first, and the last middleware will be wrapped directly around the model.
5256
+ * @returns A new ProviderRegistryProvider instance that provides access to all registered providers with optional middleware applied to language and image models.
5233
5257
  */
5234
- declare function createProviderRegistry<PROVIDERS extends Record<string, ProviderV3>, SEPARATOR extends string = ':'>(providers: PROVIDERS, { separator, languageModelMiddleware, }?: {
5258
+ declare function createProviderRegistry<PROVIDERS extends Record<string, ProviderV3>, SEPARATOR extends string = ':'>(providers: PROVIDERS, { separator, languageModelMiddleware, imageModelMiddleware, }?: {
5235
5259
  separator?: SEPARATOR;
5236
5260
  languageModelMiddleware?: LanguageModelMiddleware | LanguageModelMiddleware[];
5261
+ imageModelMiddleware?: ImageModelMiddleware | ImageModelMiddleware[];
5237
5262
  }): ProviderRegistryProvider<PROVIDERS, SEPARATOR>;
5238
5263
  /**
5239
5264
  * @deprecated Use `createProviderRegistry` instead.
@@ -5493,4 +5518,4 @@ declare global {
5493
5518
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
5494
5519
  }
5495
5520
 
5496
- export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
5521
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelMiddleware, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -134,6 +134,7 @@ __export(src_exports, {
134
134
  userModelMessageSchema: () => userModelMessageSchema,
135
135
  validateUIMessages: () => validateUIMessages,
136
136
  wrapEmbeddingModel: () => wrapEmbeddingModel,
137
+ wrapImageModel: () => wrapImageModel,
137
138
  wrapLanguageModel: () => wrapLanguageModel,
138
139
  wrapProvider: () => wrapProvider,
139
140
  zodSchema: () => import_provider_utils38.zodSchema
@@ -1000,7 +1001,7 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
1000
1001
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1001
1002
 
1002
1003
  // src/version.ts
1003
- var VERSION = true ? "6.0.10" : "0.0.0-test";
1004
+ var VERSION = true ? "6.0.12" : "0.0.0-test";
1004
1005
 
1005
1006
  // src/util/download/download.ts
1006
1007
  var download = async ({ url }) => {
@@ -10635,6 +10636,52 @@ var doWrap2 = ({
10635
10636
  };
10636
10637
  };
10637
10638
 
10639
+ // src/middleware/wrap-image-model.ts
10640
+ var wrapImageModel = ({
10641
+ model,
10642
+ middleware: middlewareArg,
10643
+ modelId,
10644
+ providerId
10645
+ }) => {
10646
+ return [...asArray(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
10647
+ return doWrap3({ model: wrappedModel, middleware, modelId, providerId });
10648
+ }, model);
10649
+ };
10650
+ var doWrap3 = ({
10651
+ model,
10652
+ middleware: {
10653
+ transformParams,
10654
+ wrapGenerate,
10655
+ overrideProvider,
10656
+ overrideModelId,
10657
+ overrideMaxImagesPerCall
10658
+ },
10659
+ modelId,
10660
+ providerId
10661
+ }) => {
10662
+ var _a16, _b, _c;
10663
+ async function doTransform({ params }) {
10664
+ return transformParams ? await transformParams({ params, model }) : params;
10665
+ }
10666
+ const maxImagesPerCallRaw = (_a16 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a16 : model.maxImagesPerCall;
10667
+ const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
10668
+ return {
10669
+ specificationVersion: "v3",
10670
+ provider: (_b = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _b : model.provider,
10671
+ modelId: (_c = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _c : model.modelId,
10672
+ maxImagesPerCall,
10673
+ async doGenerate(params) {
10674
+ const transformedParams = await doTransform({ params });
10675
+ const doGenerate = async () => model.doGenerate(transformedParams);
10676
+ return wrapGenerate ? wrapGenerate({
10677
+ doGenerate,
10678
+ params: transformedParams,
10679
+ model
10680
+ }) : doGenerate();
10681
+ }
10682
+ };
10683
+ };
10684
+
10638
10685
  // src/model/as-provider-v3.ts
10639
10686
  function asProviderV3(provider) {
10640
10687
  if ("specificationVersion" in provider && provider.specificationVersion === "v3") {
@@ -10656,7 +10703,8 @@ function asProviderV3(provider) {
10656
10703
  // src/middleware/wrap-provider.ts
10657
10704
  function wrapProvider({
10658
10705
  provider,
10659
- languageModelMiddleware
10706
+ languageModelMiddleware,
10707
+ imageModelMiddleware
10660
10708
  }) {
10661
10709
  const providerV3 = asProviderV3(provider);
10662
10710
  return {
@@ -10666,7 +10714,13 @@ function wrapProvider({
10666
10714
  middleware: languageModelMiddleware
10667
10715
  }),
10668
10716
  embeddingModel: providerV3.embeddingModel,
10669
- imageModel: providerV3.imageModel,
10717
+ imageModel: (modelId) => {
10718
+ let model = providerV3.imageModel(modelId);
10719
+ if (imageModelMiddleware != null) {
10720
+ model = wrapImageModel({ model, middleware: imageModelMiddleware });
10721
+ }
10722
+ return model;
10723
+ },
10670
10724
  transcriptionModel: providerV3.transcriptionModel,
10671
10725
  speechModel: providerV3.speechModel,
10672
10726
  rerankingModel: providerV3.rerankingModel
@@ -10774,11 +10828,13 @@ _a15 = symbol15;
10774
10828
  var import_provider31 = require("@ai-sdk/provider");
10775
10829
  function createProviderRegistry(providers, {
10776
10830
  separator = ":",
10777
- languageModelMiddleware
10831
+ languageModelMiddleware,
10832
+ imageModelMiddleware
10778
10833
  } = {}) {
10779
10834
  const registry = new DefaultProviderRegistry({
10780
10835
  separator,
10781
- languageModelMiddleware
10836
+ languageModelMiddleware,
10837
+ imageModelMiddleware
10782
10838
  });
10783
10839
  for (const [id, provider] of Object.entries(providers)) {
10784
10840
  registry.registerProvider({ id, provider });
@@ -10789,11 +10845,13 @@ var experimental_createProviderRegistry = createProviderRegistry;
10789
10845
  var DefaultProviderRegistry = class {
10790
10846
  constructor({
10791
10847
  separator,
10792
- languageModelMiddleware
10848
+ languageModelMiddleware,
10849
+ imageModelMiddleware
10793
10850
  }) {
10794
10851
  this.providers = {};
10795
10852
  this.separator = separator;
10796
10853
  this.languageModelMiddleware = languageModelMiddleware;
10854
+ this.imageModelMiddleware = imageModelMiddleware;
10797
10855
  }
10798
10856
  registerProvider({
10799
10857
  id,
@@ -10859,10 +10917,16 @@ var DefaultProviderRegistry = class {
10859
10917
  var _a16;
10860
10918
  const [providerId, modelId] = this.splitId(id, "imageModel");
10861
10919
  const provider = this.getProvider(providerId, "imageModel");
10862
- const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10920
+ let model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10863
10921
  if (model == null) {
10864
10922
  throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "imageModel" });
10865
10923
  }
10924
+ if (this.imageModelMiddleware != null) {
10925
+ model = wrapImageModel({
10926
+ model,
10927
+ middleware: this.imageModelMiddleware
10928
+ });
10929
+ }
10866
10930
  return model;
10867
10931
  }
10868
10932
  transcriptionModel(id) {
@@ -12021,6 +12085,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
12021
12085
  userModelMessageSchema,
12022
12086
  validateUIMessages,
12023
12087
  wrapEmbeddingModel,
12088
+ wrapImageModel,
12024
12089
  wrapLanguageModel,
12025
12090
  wrapProvider,
12026
12091
  zodSchema