ai 4.1.55 → 4.1.56

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,12 @@
1
1
  # ai
2
2
 
3
+ ## 4.1.56
4
+
5
+ ### Patch Changes
6
+
7
+ - 80be82b: feat (ai/core): add simulateStreamingMiddleware
8
+ - 8109a24: fix (ai/core): limit node imports to types where possible
9
+
3
10
  ## 4.1.55
4
11
 
5
12
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -3523,6 +3523,7 @@ type LanguageModelV1Middleware = {
3523
3523
  * Wraps the generate operation of the language model.
3524
3524
  * @param options - Object containing the generate function, parameters, and model.
3525
3525
  * @param options.doGenerate - The original generate function.
3526
+ * @param options.doStream - The original stream function.
3526
3527
  * @param options.params - The parameters for the generate call. If the
3527
3528
  * `transformParams` middleware is used, this will be the transformed parameters.
3528
3529
  * @param options.model - The language model instance.
@@ -3530,12 +3531,15 @@ type LanguageModelV1Middleware = {
3530
3531
  */
3531
3532
  wrapGenerate?: (options: {
3532
3533
  doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
3534
+ doStream: () => ReturnType<LanguageModelV1['doStream']>;
3533
3535
  params: LanguageModelV1CallOptions;
3534
3536
  model: LanguageModelV1;
3535
3537
  }) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
3536
3538
  /**
3537
3539
  * Wraps the stream operation of the language model.
3540
+ *
3538
3541
  * @param options - Object containing the stream function, parameters, and model.
3542
+ * @param options.doGenerate - The original generate function.
3539
3543
  * @param options.doStream - The original stream function.
3540
3544
  * @param options.params - The parameters for the stream call. If the
3541
3545
  * `transformParams` middleware is used, this will be the transformed parameters.
@@ -3543,6 +3547,7 @@ type LanguageModelV1Middleware = {
3543
3547
  * @returns A promise that resolves to the result of the stream operation.
3544
3548
  */
3545
3549
  wrapStream?: (options: {
3550
+ doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
3546
3551
  doStream: () => ReturnType<LanguageModelV1['doStream']>;
3547
3552
  params: LanguageModelV1CallOptions;
3548
3553
  model: LanguageModelV1;
@@ -3567,6 +3572,11 @@ declare function extractReasoningMiddleware({ tagName, separator, startWithReaso
3567
3572
  startWithReasoning?: boolean;
3568
3573
  }): LanguageModelV1Middleware;
3569
3574
 
3575
+ /**
3576
+ * Simulates streaming chunks with the response from a generate call.
3577
+ */
3578
+ declare function simulateStreamingMiddleware(): LanguageModelV1Middleware;
3579
+
3570
3580
  /**
3571
3581
  * Wraps a LanguageModelV1 instance with middleware functionality.
3572
3582
  * This function allows you to apply middleware to transform parameters,
@@ -4056,4 +4066,4 @@ declare namespace llamaindexAdapter {
4056
4066
  };
4057
4067
  }
4058
4068
 
4059
- export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, customProvider, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
4069
+ export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, customProvider, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
package/dist/index.d.ts CHANGED
@@ -3523,6 +3523,7 @@ type LanguageModelV1Middleware = {
3523
3523
  * Wraps the generate operation of the language model.
3524
3524
  * @param options - Object containing the generate function, parameters, and model.
3525
3525
  * @param options.doGenerate - The original generate function.
3526
+ * @param options.doStream - The original stream function.
3526
3527
  * @param options.params - The parameters for the generate call. If the
3527
3528
  * `transformParams` middleware is used, this will be the transformed parameters.
3528
3529
  * @param options.model - The language model instance.
@@ -3530,12 +3531,15 @@ type LanguageModelV1Middleware = {
3530
3531
  */
3531
3532
  wrapGenerate?: (options: {
3532
3533
  doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
3534
+ doStream: () => ReturnType<LanguageModelV1['doStream']>;
3533
3535
  params: LanguageModelV1CallOptions;
3534
3536
  model: LanguageModelV1;
3535
3537
  }) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
3536
3538
  /**
3537
3539
  * Wraps the stream operation of the language model.
3540
+ *
3538
3541
  * @param options - Object containing the stream function, parameters, and model.
3542
+ * @param options.doGenerate - The original generate function.
3539
3543
  * @param options.doStream - The original stream function.
3540
3544
  * @param options.params - The parameters for the stream call. If the
3541
3545
  * `transformParams` middleware is used, this will be the transformed parameters.
@@ -3543,6 +3547,7 @@ type LanguageModelV1Middleware = {
3543
3547
  * @returns A promise that resolves to the result of the stream operation.
3544
3548
  */
3545
3549
  wrapStream?: (options: {
3550
+ doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
3546
3551
  doStream: () => ReturnType<LanguageModelV1['doStream']>;
3547
3552
  params: LanguageModelV1CallOptions;
3548
3553
  model: LanguageModelV1;
@@ -3567,6 +3572,11 @@ declare function extractReasoningMiddleware({ tagName, separator, startWithReaso
3567
3572
  startWithReasoning?: boolean;
3568
3573
  }): LanguageModelV1Middleware;
3569
3574
 
3575
+ /**
3576
+ * Simulates streaming chunks with the response from a generate call.
3577
+ */
3578
+ declare function simulateStreamingMiddleware(): LanguageModelV1Middleware;
3579
+
3570
3580
  /**
3571
3581
  * Wraps a LanguageModelV1 instance with middleware functionality.
3572
3582
  * This function allows you to apply middleware to transform parameters,
@@ -4056,4 +4066,4 @@ declare namespace llamaindexAdapter {
4056
4066
  };
4057
4067
  }
4058
4068
 
4059
- export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, customProvider, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
4069
+ export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, customProvider, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
package/dist/index.js CHANGED
@@ -95,6 +95,7 @@ __export(streams_exports, {
95
95
  processDataStream: () => import_ui_utils11.processDataStream,
96
96
  processTextStream: () => import_ui_utils11.processTextStream,
97
97
  simulateReadableStream: () => simulateReadableStream,
98
+ simulateStreamingMiddleware: () => simulateStreamingMiddleware,
98
99
  smoothStream: () => smoothStream,
99
100
  streamObject: () => streamObject,
100
101
  streamText: () => streamText,
@@ -6156,6 +6157,89 @@ function extractReasoningMiddleware({
6156
6157
  };
6157
6158
  }
6158
6159
 
6160
+ // core/middleware/simulate-streaming-middleware.ts
6161
+ function simulateStreamingMiddleware() {
6162
+ return {
6163
+ middlewareVersion: "v1",
6164
+ wrapStream: async ({ doGenerate }) => {
6165
+ const result = await doGenerate();
6166
+ const simulatedStream = new ReadableStream({
6167
+ start(controller) {
6168
+ controller.enqueue({ type: "response-metadata", ...result.response });
6169
+ if (result.reasoning) {
6170
+ if (typeof result.reasoning === "string") {
6171
+ controller.enqueue({
6172
+ type: "reasoning",
6173
+ textDelta: result.reasoning
6174
+ });
6175
+ } else {
6176
+ for (const reasoning of result.reasoning) {
6177
+ switch (reasoning.type) {
6178
+ case "text": {
6179
+ controller.enqueue({
6180
+ type: "reasoning",
6181
+ textDelta: reasoning.text
6182
+ });
6183
+ if (reasoning.signature != null) {
6184
+ controller.enqueue({
6185
+ type: "reasoning-signature",
6186
+ signature: reasoning.signature
6187
+ });
6188
+ }
6189
+ break;
6190
+ }
6191
+ case "redacted": {
6192
+ controller.enqueue({
6193
+ type: "redacted-reasoning",
6194
+ data: reasoning.data
6195
+ });
6196
+ break;
6197
+ }
6198
+ }
6199
+ }
6200
+ }
6201
+ }
6202
+ if (result.text) {
6203
+ controller.enqueue({
6204
+ type: "text-delta",
6205
+ textDelta: result.text
6206
+ });
6207
+ }
6208
+ if (result.toolCalls) {
6209
+ for (const toolCall of result.toolCalls) {
6210
+ controller.enqueue({
6211
+ type: "tool-call-delta",
6212
+ toolCallType: "function",
6213
+ toolCallId: toolCall.toolCallId,
6214
+ toolName: toolCall.toolName,
6215
+ argsTextDelta: toolCall.args
6216
+ });
6217
+ controller.enqueue({
6218
+ type: "tool-call",
6219
+ ...toolCall
6220
+ });
6221
+ }
6222
+ }
6223
+ controller.enqueue({
6224
+ type: "finish",
6225
+ finishReason: result.finishReason,
6226
+ usage: result.usage,
6227
+ logprobs: result.logprobs,
6228
+ providerMetadata: result.providerMetadata
6229
+ });
6230
+ controller.close();
6231
+ }
6232
+ });
6233
+ return {
6234
+ stream: simulatedStream,
6235
+ rawCall: result.rawCall,
6236
+ rawResponse: result.rawResponse,
6237
+ warnings: result.warnings
6238
+ };
6239
+ }
6240
+ };
6241
+ }
6242
+
6159
6243
  // core/middleware/wrap-language-model.ts
6160
6244
  var wrapLanguageModel = ({
6161
6245
  model,
@@ -6191,12 +6275,19 @@ var doWrap = ({
6191
6275
  async doGenerate(params) {
6192
6276
  const transformedParams = await doTransform({ params, type: "generate" });
6193
6277
  const doGenerate = async () => model.doGenerate(transformedParams);
6194
- return wrapGenerate ? wrapGenerate({ doGenerate, params: transformedParams, model }) : doGenerate();
6278
+ const doStream = async () => model.doStream(transformedParams);
6279
+ return wrapGenerate ? wrapGenerate({
6280
+ doGenerate,
6281
+ doStream,
6282
+ params: transformedParams,
6283
+ model
6284
+ }) : doGenerate();
6195
6285
  },
6196
6286
  async doStream(params) {
6197
6287
  const transformedParams = await doTransform({ params, type: "stream" });
6288
+ const doGenerate = async () => model.doGenerate(transformedParams);
6198
6289
  const doStream = async () => model.doStream(transformedParams);
6199
- return wrapStream ? wrapStream({ doStream, params: transformedParams, model }) : doStream();
6290
+ return wrapStream ? wrapStream({ doGenerate, doStream, params: transformedParams, model }) : doStream();
6200
6291
  }
6201
6292
  };
6202
6293
  };
@@ -7701,6 +7792,7 @@ var StreamData = class {
7701
7792
  processDataStream,
7702
7793
  processTextStream,
7703
7794
  simulateReadableStream,
7795
+ simulateStreamingMiddleware,
7704
7796
  smoothStream,
7705
7797
  streamObject,
7706
7798
  streamText,