ai 3.3.27 → 3.3.28

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,11 @@
1
1
  # ai
2
2
 
3
+ ## 3.3.28
4
+
5
+ ### Patch Changes
6
+
7
+ - db61c53: feat (ai/core): middleware support
8
+
3
9
  ## 3.3.27
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Schema, DeepPartial, ToolInvocation, Attachment, JSONValue as JSONValue$1, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
2
2
  export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, Schema, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, jsonSchema, parseStreamPart, processDataProtocolResponse, readDataStream } from '@ai-sdk/ui-utils';
3
3
  import { AttributeValue } from '@opentelemetry/api';
4
- import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
5
- export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
4
+ import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, LanguageModelV1CallOptions, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
5
+ export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
6
6
  import { z } from 'zod';
7
7
  import { ServerResponse } from 'http';
8
8
  import { ServerResponse as ServerResponse$1 } from 'node:http';
@@ -1789,6 +1789,72 @@ Callback that is called when the LLM response and all request tool executions
1789
1789
  */
1790
1790
  declare const experimental_streamText: typeof streamText;
1791
1791
 
1792
+ /**
1793
+ * Experimental middleware for LanguageModelV1.
1794
+ * This type defines the structure for middleware that can be used to modify
1795
+ * the behavior of LanguageModelV1 operations.
1796
+ */
1797
+ type Experimental_LanguageModelV1Middleware = {
1798
+ /**
1799
+ * Transforms the parameters before they are passed to the language model.
1800
+ * @param options - Object containing the type of operation and the parameters.
1801
+ * @param options.type - The type of operation ('generate' or 'stream').
1802
+ * @param options.params - The original parameters for the language model call.
1803
+ * @returns A promise that resolves to the transformed parameters.
1804
+ */
1805
+ transformParams?: (options: {
1806
+ type: 'generate' | 'stream';
1807
+ params: LanguageModelV1CallOptions;
1808
+ }) => PromiseLike<LanguageModelV1CallOptions>;
1809
+ /**
1810
+ * Wraps the generate operation of the language model.
1811
+ * @param options - Object containing the generate function, parameters, and model.
1812
+ * @param options.doGenerate - The original generate function.
1813
+ * @param options.params - The parameters for the generate call. If the
1814
+ * `transformParams` middleware is used, this will be the transformed parameters.
1815
+ * @param options.model - The language model instance.
1816
+ * @returns A promise that resolves to the result of the generate operation.
1817
+ */
1818
+ wrapGenerate?: (options: {
1819
+ doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
1820
+ params: LanguageModelV1CallOptions;
1821
+ model: LanguageModelV1;
1822
+ }) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
1823
+ /**
1824
+ * Wraps the stream operation of the language model.
1825
+ * @param options - Object containing the stream function, parameters, and model.
1826
+ * @param options.doStream - The original stream function.
1827
+ * @param options.params - The parameters for the stream call. If the
1828
+ * `transformParams` middleware is used, this will be the transformed parameters.
1829
+ * @param options.model - The language model instance.
1830
+ * @returns A promise that resolves to the result of the stream operation.
1831
+ */
1832
+ wrapStream?: (options: {
1833
+ doStream: () => ReturnType<LanguageModelV1['doStream']>;
1834
+ params: LanguageModelV1CallOptions;
1835
+ model: LanguageModelV1;
1836
+ }) => PromiseLike<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
1837
+ };
1838
+
1839
+ /**
1840
+ * Wraps a LanguageModelV1 instance with middleware functionality.
1841
+ * This function allows you to apply middleware to transform parameters,
1842
+ * wrap generate operations, and wrap stream operations of a language model.
1843
+ *
1844
+ * @param options - Configuration options for wrapping the language model.
1845
+ * @param options.model - The original LanguageModelV1 instance to be wrapped.
1846
+ * @param options.middleware - The middleware to be applied to the language model.
1847
+ * @param options.modelId - Optional custom model ID to override the original model's ID.
1848
+ * @param options.providerId - Optional custom provider ID to override the original model's provider.
1849
+ * @returns A new LanguageModelV1 instance with middleware applied.
1850
+ */
1851
+ declare const experimental_wrapLanguageModel: ({ model, middleware: { transformParams, wrapGenerate, wrapStream }, modelId, providerId, }: {
1852
+ model: LanguageModelV1;
1853
+ middleware: Experimental_LanguageModelV1Middleware;
1854
+ modelId?: string;
1855
+ providerId?: string;
1856
+ }) => LanguageModelV1;
1857
+
1792
1858
  /**
1793
1859
  * Creates a custom provider with specified language models, text embedding models, and an optional fallback provider.
1794
1860
  *
@@ -2901,4 +2967,4 @@ declare const generateId: () => string;
2901
2967
  */
2902
2968
  declare const nanoid: () => string;
2903
2969
 
2904
- export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
2970
+ export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, Experimental_LanguageModelV1Middleware, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, experimental_wrapLanguageModel, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Schema, DeepPartial, ToolInvocation, Attachment, JSONValue as JSONValue$1, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
2
2
  export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, Schema, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, jsonSchema, parseStreamPart, processDataProtocolResponse, readDataStream } from '@ai-sdk/ui-utils';
3
3
  import { AttributeValue } from '@opentelemetry/api';
4
- import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
5
- export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
4
+ import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, LanguageModelV1CallOptions, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
5
+ export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
6
6
  import { z } from 'zod';
7
7
  import { ServerResponse } from 'http';
8
8
  import { ServerResponse as ServerResponse$1 } from 'node:http';
@@ -1789,6 +1789,72 @@ Callback that is called when the LLM response and all request tool executions
1789
1789
  */
1790
1790
  declare const experimental_streamText: typeof streamText;
1791
1791
 
1792
+ /**
1793
+ * Experimental middleware for LanguageModelV1.
1794
+ * This type defines the structure for middleware that can be used to modify
1795
+ * the behavior of LanguageModelV1 operations.
1796
+ */
1797
+ type Experimental_LanguageModelV1Middleware = {
1798
+ /**
1799
+ * Transforms the parameters before they are passed to the language model.
1800
+ * @param options - Object containing the type of operation and the parameters.
1801
+ * @param options.type - The type of operation ('generate' or 'stream').
1802
+ * @param options.params - The original parameters for the language model call.
1803
+ * @returns A promise that resolves to the transformed parameters.
1804
+ */
1805
+ transformParams?: (options: {
1806
+ type: 'generate' | 'stream';
1807
+ params: LanguageModelV1CallOptions;
1808
+ }) => PromiseLike<LanguageModelV1CallOptions>;
1809
+ /**
1810
+ * Wraps the generate operation of the language model.
1811
+ * @param options - Object containing the generate function, parameters, and model.
1812
+ * @param options.doGenerate - The original generate function.
1813
+ * @param options.params - The parameters for the generate call. If the
1814
+ * `transformParams` middleware is used, this will be the transformed parameters.
1815
+ * @param options.model - The language model instance.
1816
+ * @returns A promise that resolves to the result of the generate operation.
1817
+ */
1818
+ wrapGenerate?: (options: {
1819
+ doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
1820
+ params: LanguageModelV1CallOptions;
1821
+ model: LanguageModelV1;
1822
+ }) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
1823
+ /**
1824
+ * Wraps the stream operation of the language model.
1825
+ * @param options - Object containing the stream function, parameters, and model.
1826
+ * @param options.doStream - The original stream function.
1827
+ * @param options.params - The parameters for the stream call. If the
1828
+ * `transformParams` middleware is used, this will be the transformed parameters.
1829
+ * @param options.model - The language model instance.
1830
+ * @returns A promise that resolves to the result of the stream operation.
1831
+ */
1832
+ wrapStream?: (options: {
1833
+ doStream: () => ReturnType<LanguageModelV1['doStream']>;
1834
+ params: LanguageModelV1CallOptions;
1835
+ model: LanguageModelV1;
1836
+ }) => PromiseLike<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
1837
+ };
1838
+
1839
+ /**
1840
+ * Wraps a LanguageModelV1 instance with middleware functionality.
1841
+ * This function allows you to apply middleware to transform parameters,
1842
+ * wrap generate operations, and wrap stream operations of a language model.
1843
+ *
1844
+ * @param options - Configuration options for wrapping the language model.
1845
+ * @param options.model - The original LanguageModelV1 instance to be wrapped.
1846
+ * @param options.middleware - The middleware to be applied to the language model.
1847
+ * @param options.modelId - Optional custom model ID to override the original model's ID.
1848
+ * @param options.providerId - Optional custom provider ID to override the original model's provider.
1849
+ * @returns A new LanguageModelV1 instance with middleware applied.
1850
+ */
1851
+ declare const experimental_wrapLanguageModel: ({ model, middleware: { transformParams, wrapGenerate, wrapStream }, modelId, providerId, }: {
1852
+ model: LanguageModelV1;
1853
+ middleware: Experimental_LanguageModelV1Middleware;
1854
+ modelId?: string;
1855
+ providerId?: string;
1856
+ }) => LanguageModelV1;
1857
+
1792
1858
  /**
1793
1859
  * Creates a custom provider with specified language models, text embedding models, and an optional fallback provider.
1794
1860
  *
@@ -2901,4 +2967,4 @@ declare const generateId: () => string;
2901
2967
  */
2902
2968
  declare const nanoid: () => string;
2903
2969
 
2904
- export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
2970
+ export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, Experimental_LanguageModelV1Middleware, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, experimental_wrapLanguageModel, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
package/dist/index.js CHANGED
@@ -76,6 +76,7 @@ __export(streams_exports, {
76
76
  experimental_generateText: () => experimental_generateText,
77
77
  experimental_streamObject: () => experimental_streamObject,
78
78
  experimental_streamText: () => experimental_streamText,
79
+ experimental_wrapLanguageModel: () => experimental_wrapLanguageModel,
79
80
  formatStreamPart: () => import_ui_utils10.formatStreamPart,
80
81
  generateId: () => generateId2,
81
82
  generateObject: () => generateObject,
@@ -4208,6 +4209,39 @@ var DefaultStreamTextResult = class {
4208
4209
  };
4209
4210
  var experimental_streamText = streamText;
4210
4211
 
4212
+ // core/middleware/wrap-language-model.ts
4213
+ var experimental_wrapLanguageModel = ({
4214
+ model,
4215
+ middleware: { transformParams, wrapGenerate, wrapStream },
4216
+ modelId,
4217
+ providerId
4218
+ }) => {
4219
+ async function doTransform({
4220
+ params,
4221
+ type
4222
+ }) {
4223
+ return transformParams ? await transformParams({ params, type }) : params;
4224
+ }
4225
+ return {
4226
+ specificationVersion: "v1",
4227
+ provider: providerId != null ? providerId : model.provider,
4228
+ modelId: modelId != null ? modelId : model.modelId,
4229
+ defaultObjectGenerationMode: model.defaultObjectGenerationMode,
4230
+ supportsImageUrls: model.supportsImageUrls,
4231
+ supportsStructuredOutputs: model.supportsStructuredOutputs,
4232
+ async doGenerate(params) {
4233
+ const transformedParams = await doTransform({ params, type: "generate" });
4234
+ const doGenerate = async () => model.doGenerate(transformedParams);
4235
+ return wrapGenerate ? wrapGenerate({ doGenerate, params: transformedParams, model }) : doGenerate();
4236
+ },
4237
+ async doStream(params) {
4238
+ const transformedParams = await doTransform({ params, type: "stream" });
4239
+ const doStream = async () => model.doStream(transformedParams);
4240
+ return wrapStream ? wrapStream({ doStream, params: transformedParams, model }) : doStream();
4241
+ }
4242
+ };
4243
+ };
4244
+
4211
4245
  // core/prompt/attachments-to-parts.ts
4212
4246
  function attachmentsToParts(attachments) {
4213
4247
  var _a11, _b, _c;
@@ -5639,6 +5673,7 @@ var nanoid = import_provider_utils11.generateId;
5639
5673
  experimental_generateText,
5640
5674
  experimental_streamObject,
5641
5675
  experimental_streamText,
5676
+ experimental_wrapLanguageModel,
5642
5677
  formatStreamPart,
5643
5678
  generateId,
5644
5679
  generateObject,