ai 7.0.0-beta.34 → 7.0.0-beta.35

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
+ ## 7.0.0-beta.35
4
+
5
+ ### Patch Changes
6
+
7
+ - 99bf941: feat(ai): extract streamModelCall function for streaming text generation
8
+
3
9
  ## 7.0.0-beta.34
4
10
 
5
11
  ### 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, SystemModelMessage, ModelMessage, AssistantModelMessage, ToolModelMessage, ReasoningPart, ReasoningFilePart, 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 { EmbeddingModelV4, EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV4Embedding, EmbeddingModelV4Middleware, ImageModelV4, ImageModelV3, ImageModelV2, ImageModelV4ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV4Middleware, JSONValue as JSONValue$1, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4Warning, LanguageModelV4Source, LanguageModelV4Middleware, RerankingModelV4, RerankingModelV3, SharedV4ProviderMetadata, SpeechModelV4, SpeechModelV3, SpeechModelV2, TranscriptionModelV4, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV4Usage, LanguageModelV4CallOptions, AISDKError, LanguageModelV4ToolCall, JSONSchema7, LanguageModelV4ToolChoice, LanguageModelV4ResponseMetadata, JSONParseError, TypeValidationError, Experimental_VideoModelV4, Experimental_VideoModelV3, EmbeddingModelV4CallOptions, ProviderV4, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV4, EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV4Embedding, EmbeddingModelV4Middleware, ImageModelV4, ImageModelV3, ImageModelV2, ImageModelV4ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV4Middleware, JSONValue as JSONValue$1, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4Warning, LanguageModelV4Source, LanguageModelV4Middleware, RerankingModelV4, RerankingModelV3, SharedV4ProviderMetadata, SpeechModelV4, SpeechModelV3, SpeechModelV2, TranscriptionModelV4, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV4Usage, LanguageModelV4CallOptions, AISDKError, LanguageModelV4ToolCall, JSONSchema7, LanguageModelV4ResponseMetadata, LanguageModelV4Prompt, LanguageModelV4ToolChoice, JSONParseError, TypeValidationError, Experimental_VideoModelV4, Experimental_VideoModelV3, EmbeddingModelV4CallOptions, ProviderV4, 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 { Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -1377,6 +1377,45 @@ declare function smoothStream<TOOLS extends ToolSet>({ delayInMs, chunking, _int
1377
1377
  tools: TOOLS;
1378
1378
  }) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
1379
1379
 
1380
+ type UglyTransformedStreamTextPart<TOOLS extends ToolSet> = Exclude<TextStreamPart<TOOLS>, {
1381
+ type: 'finish' | 'stream-start' | 'tool-output-denied' | 'start-step' | 'finish-step' | 'start' | 'abort';
1382
+ }> | TextStreamTextDeltaPart | TextStreamReasoningDeltaPart | TextStreamFilePart | TextStreamReasoningFilePart | TextStreamToolApprovalRequestPart<TOOLS> | TextStreamToolCallPart<TOOLS> | TextStreamToolResultPart<TOOLS> | TextStreamToolErrorPart<TOOLS> | {
1383
+ type: 'finish';
1384
+ finishReason: FinishReason;
1385
+ rawFinishReason: string | undefined;
1386
+ usage: LanguageModelUsage;
1387
+ providerMetadata?: ProviderMetadata;
1388
+ } | {
1389
+ type: 'stream-start';
1390
+ warnings: Array<SharedV4Warning>;
1391
+ } | ({
1392
+ type: 'response-metadata';
1393
+ } & LanguageModelV4ResponseMetadata);
1394
+
1395
+ declare function streamModelCall<TOOLS extends ToolSet, OUTPUT extends Output = Output>({ model, tools, output, toolChoice, activeTools, prompt, system, messages, download, maxRetries, abortSignal, headers, includeRawChunks, providerOptions, repairToolCall, onStart, ...callSettings }: {
1396
+ model: LanguageModel;
1397
+ tools?: TOOLS;
1398
+ output?: OUTPUT;
1399
+ toolChoice?: ToolChoice<TOOLS>;
1400
+ activeTools?: Array<keyof NoInfer<TOOLS>>;
1401
+ download?: DownloadFunction;
1402
+ headers?: Record<string, string | undefined>;
1403
+ includeRawChunks?: boolean;
1404
+ providerOptions?: ProviderOptions;
1405
+ repairToolCall?: ToolCallRepairFunction<TOOLS> | undefined;
1406
+ onStart?: (args: {
1407
+ promptMessages: LanguageModelV4Prompt;
1408
+ }) => Promise<void> | void;
1409
+ } & Prompt & CallSettings): Promise<{
1410
+ stream: AsyncIterableStream<UglyTransformedStreamTextPart<TOOLS>>;
1411
+ response: {
1412
+ headers?: _ai_sdk_provider.SharedV4Headers;
1413
+ } | undefined;
1414
+ request: {
1415
+ body?: unknown;
1416
+ } | undefined;
1417
+ }>;
1418
+
1380
1419
  /**
1381
1420
  * Tool output when the tool execution has been denied (for static tools).
1382
1421
  */
@@ -4947,21 +4986,6 @@ declare class InvalidArgumentError extends AISDKError {
4947
4986
  static isInstance(error: unknown): error is InvalidArgumentError;
4948
4987
  }
4949
4988
 
4950
- type UglyTransformedStreamTextPart<TOOLS extends ToolSet> = Exclude<TextStreamPart<TOOLS>, {
4951
- type: 'finish' | 'stream-start' | 'tool-output-denied' | 'start-step' | 'finish-step' | 'start' | 'abort';
4952
- }> | TextStreamTextDeltaPart | TextStreamReasoningDeltaPart | TextStreamFilePart | TextStreamReasoningFilePart | TextStreamToolApprovalRequestPart<TOOLS> | TextStreamToolCallPart<TOOLS> | TextStreamToolResultPart<TOOLS> | TextStreamToolErrorPart<TOOLS> | {
4953
- type: 'finish';
4954
- finishReason: FinishReason;
4955
- rawFinishReason: string | undefined;
4956
- usage: LanguageModelUsage;
4957
- providerMetadata?: ProviderMetadata;
4958
- } | {
4959
- type: 'stream-start';
4960
- warnings: Array<SharedV4Warning>;
4961
- } | ({
4962
- type: 'response-metadata';
4963
- } & LanguageModelV4ResponseMetadata);
4964
-
4965
4989
  declare const symbol$g: unique symbol;
4966
4990
  declare class InvalidStreamPartError extends AISDKError {
4967
4991
  private readonly [symbol$g];
@@ -6863,4 +6887,4 @@ declare global {
6863
6887
  var AI_SDK_TELEMETRY_INTEGRATIONS: TelemetryIntegration[] | undefined;
6864
6888
  }
6865
6889
 
6866
- export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatAddToolOutputFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, CustomContentUIPart, DataUIPart, DeepPartial, DefaultChatTransport, DefaultGeneratedFile, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedOnFinishEvent, EmbedOnStartEvent, 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, GenerateTextOnStartCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextOnToolCallFinishCallback, GenerateTextOnToolCallStartCallback, GenerateTextResult, GenerateVideoPrompt, GenerateVideoResult, 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, MissingToolResultsError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankOnFinishEvent, RerankOnStartEvent, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStartCallback, StreamTextOnStepFinishCallback, StreamTextOnStepStartCallback, StreamTextOnToolCallFinishCallback, StreamTextOnToolCallStartCallback, StreamTextResult, StreamTextTransform, TelemetryIntegration, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStartCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentOnStepStartCallback, ToolLoopAgentOnToolCallFinishCallback, ToolLoopAgentOnToolCallStartCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, bindTelemetryIntegration, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, experimental_generateVideo, transcribe as experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetryIntegration, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
6890
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatAddToolOutputFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, CustomContentUIPart, DataUIPart, DeepPartial, DefaultChatTransport, DefaultGeneratedFile, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedOnFinishEvent, EmbedOnStartEvent, 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, GenerateTextOnStartCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextOnToolCallFinishCallback, GenerateTextOnToolCallStartCallback, GenerateTextResult, GenerateVideoPrompt, GenerateVideoResult, 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, MissingToolResultsError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankOnFinishEvent, RerankOnStartEvent, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStartCallback, StreamTextOnStepFinishCallback, StreamTextOnStepStartCallback, StreamTextOnToolCallFinishCallback, StreamTextOnToolCallStartCallback, StreamTextResult, StreamTextTransform, TelemetryIntegration, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStartCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentOnStepStartCallback, ToolLoopAgentOnToolCallFinishCallback, ToolLoopAgentOnToolCallStartCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, bindTelemetryIntegration, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, experimental_generateVideo, streamModelCall as experimental_streamModelCall, transcribe as experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetryIntegration, 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, SystemModelMessage, ModelMessage, AssistantModelMessage, ToolModelMessage, ReasoningPart, ReasoningFilePart, 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 { EmbeddingModelV4, EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV4Embedding, EmbeddingModelV4Middleware, ImageModelV4, ImageModelV3, ImageModelV2, ImageModelV4ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV4Middleware, JSONValue as JSONValue$1, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4Warning, LanguageModelV4Source, LanguageModelV4Middleware, RerankingModelV4, RerankingModelV3, SharedV4ProviderMetadata, SpeechModelV4, SpeechModelV3, SpeechModelV2, TranscriptionModelV4, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV4Usage, LanguageModelV4CallOptions, AISDKError, LanguageModelV4ToolCall, JSONSchema7, LanguageModelV4ToolChoice, LanguageModelV4ResponseMetadata, JSONParseError, TypeValidationError, Experimental_VideoModelV4, Experimental_VideoModelV3, EmbeddingModelV4CallOptions, ProviderV4, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV4, EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV4Embedding, EmbeddingModelV4Middleware, ImageModelV4, ImageModelV3, ImageModelV2, ImageModelV4ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV4Middleware, JSONValue as JSONValue$1, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4Warning, LanguageModelV4Source, LanguageModelV4Middleware, RerankingModelV4, RerankingModelV3, SharedV4ProviderMetadata, SpeechModelV4, SpeechModelV3, SpeechModelV2, TranscriptionModelV4, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV4Usage, LanguageModelV4CallOptions, AISDKError, LanguageModelV4ToolCall, JSONSchema7, LanguageModelV4ResponseMetadata, LanguageModelV4Prompt, LanguageModelV4ToolChoice, JSONParseError, TypeValidationError, Experimental_VideoModelV4, Experimental_VideoModelV3, EmbeddingModelV4CallOptions, ProviderV4, 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 { Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -1377,6 +1377,45 @@ declare function smoothStream<TOOLS extends ToolSet>({ delayInMs, chunking, _int
1377
1377
  tools: TOOLS;
1378
1378
  }) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
1379
1379
 
1380
+ type UglyTransformedStreamTextPart<TOOLS extends ToolSet> = Exclude<TextStreamPart<TOOLS>, {
1381
+ type: 'finish' | 'stream-start' | 'tool-output-denied' | 'start-step' | 'finish-step' | 'start' | 'abort';
1382
+ }> | TextStreamTextDeltaPart | TextStreamReasoningDeltaPart | TextStreamFilePart | TextStreamReasoningFilePart | TextStreamToolApprovalRequestPart<TOOLS> | TextStreamToolCallPart<TOOLS> | TextStreamToolResultPart<TOOLS> | TextStreamToolErrorPart<TOOLS> | {
1383
+ type: 'finish';
1384
+ finishReason: FinishReason;
1385
+ rawFinishReason: string | undefined;
1386
+ usage: LanguageModelUsage;
1387
+ providerMetadata?: ProviderMetadata;
1388
+ } | {
1389
+ type: 'stream-start';
1390
+ warnings: Array<SharedV4Warning>;
1391
+ } | ({
1392
+ type: 'response-metadata';
1393
+ } & LanguageModelV4ResponseMetadata);
1394
+
1395
+ declare function streamModelCall<TOOLS extends ToolSet, OUTPUT extends Output = Output>({ model, tools, output, toolChoice, activeTools, prompt, system, messages, download, maxRetries, abortSignal, headers, includeRawChunks, providerOptions, repairToolCall, onStart, ...callSettings }: {
1396
+ model: LanguageModel;
1397
+ tools?: TOOLS;
1398
+ output?: OUTPUT;
1399
+ toolChoice?: ToolChoice<TOOLS>;
1400
+ activeTools?: Array<keyof NoInfer<TOOLS>>;
1401
+ download?: DownloadFunction;
1402
+ headers?: Record<string, string | undefined>;
1403
+ includeRawChunks?: boolean;
1404
+ providerOptions?: ProviderOptions;
1405
+ repairToolCall?: ToolCallRepairFunction<TOOLS> | undefined;
1406
+ onStart?: (args: {
1407
+ promptMessages: LanguageModelV4Prompt;
1408
+ }) => Promise<void> | void;
1409
+ } & Prompt & CallSettings): Promise<{
1410
+ stream: AsyncIterableStream<UglyTransformedStreamTextPart<TOOLS>>;
1411
+ response: {
1412
+ headers?: _ai_sdk_provider.SharedV4Headers;
1413
+ } | undefined;
1414
+ request: {
1415
+ body?: unknown;
1416
+ } | undefined;
1417
+ }>;
1418
+
1380
1419
  /**
1381
1420
  * Tool output when the tool execution has been denied (for static tools).
1382
1421
  */
@@ -4947,21 +4986,6 @@ declare class InvalidArgumentError extends AISDKError {
4947
4986
  static isInstance(error: unknown): error is InvalidArgumentError;
4948
4987
  }
4949
4988
 
4950
- type UglyTransformedStreamTextPart<TOOLS extends ToolSet> = Exclude<TextStreamPart<TOOLS>, {
4951
- type: 'finish' | 'stream-start' | 'tool-output-denied' | 'start-step' | 'finish-step' | 'start' | 'abort';
4952
- }> | TextStreamTextDeltaPart | TextStreamReasoningDeltaPart | TextStreamFilePart | TextStreamReasoningFilePart | TextStreamToolApprovalRequestPart<TOOLS> | TextStreamToolCallPart<TOOLS> | TextStreamToolResultPart<TOOLS> | TextStreamToolErrorPart<TOOLS> | {
4953
- type: 'finish';
4954
- finishReason: FinishReason;
4955
- rawFinishReason: string | undefined;
4956
- usage: LanguageModelUsage;
4957
- providerMetadata?: ProviderMetadata;
4958
- } | {
4959
- type: 'stream-start';
4960
- warnings: Array<SharedV4Warning>;
4961
- } | ({
4962
- type: 'response-metadata';
4963
- } & LanguageModelV4ResponseMetadata);
4964
-
4965
4989
  declare const symbol$g: unique symbol;
4966
4990
  declare class InvalidStreamPartError extends AISDKError {
4967
4991
  private readonly [symbol$g];
@@ -6863,4 +6887,4 @@ declare global {
6863
6887
  var AI_SDK_TELEMETRY_INTEGRATIONS: TelemetryIntegration[] | undefined;
6864
6888
  }
6865
6889
 
6866
- export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatAddToolOutputFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, CustomContentUIPart, DataUIPart, DeepPartial, DefaultChatTransport, DefaultGeneratedFile, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedOnFinishEvent, EmbedOnStartEvent, 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, GenerateTextOnStartCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextOnToolCallFinishCallback, GenerateTextOnToolCallStartCallback, GenerateTextResult, GenerateVideoPrompt, GenerateVideoResult, 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, MissingToolResultsError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankOnFinishEvent, RerankOnStartEvent, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStartCallback, StreamTextOnStepFinishCallback, StreamTextOnStepStartCallback, StreamTextOnToolCallFinishCallback, StreamTextOnToolCallStartCallback, StreamTextResult, StreamTextTransform, TelemetryIntegration, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStartCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentOnStepStartCallback, ToolLoopAgentOnToolCallFinishCallback, ToolLoopAgentOnToolCallStartCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, bindTelemetryIntegration, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, experimental_generateVideo, transcribe as experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetryIntegration, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
6890
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatAddToolOutputFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, CustomContentUIPart, DataUIPart, DeepPartial, DefaultChatTransport, DefaultGeneratedFile, DirectChatTransport, DirectChatTransportOptions, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedOnFinishEvent, EmbedOnStartEvent, 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, GenerateTextOnStartCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextOnToolCallFinishCallback, GenerateTextOnToolCallStartCallback, GenerateTextResult, GenerateVideoPrompt, GenerateVideoResult, 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, MissingToolResultsError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankOnFinishEvent, RerankOnStartEvent, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStartCallback, StreamTextOnStepFinishCallback, StreamTextOnStepStartCallback, StreamTextOnToolCallFinishCallback, StreamTextOnToolCallStartCallback, StreamTextResult, StreamTextTransform, TelemetryIntegration, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToolApprovalRequestOutput, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStartCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentOnStepStartCallback, ToolLoopAgentOnToolCallFinishCallback, ToolLoopAgentOnToolCallStartCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, bindTelemetryIntegration, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateImage, generateSpeech as experimental_generateSpeech, experimental_generateVideo, streamModelCall as experimental_streamModelCall, transcribe as experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetryIntegration, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -96,6 +96,7 @@ __export(src_exports, {
96
96
  experimental_generateImage: () => experimental_generateImage,
97
97
  experimental_generateSpeech: () => generateSpeech,
98
98
  experimental_generateVideo: () => experimental_generateVideo,
99
+ experimental_streamModelCall: () => streamModelCall,
99
100
  experimental_transcribe: () => transcribe,
100
101
  extractJsonMiddleware: () => extractJsonMiddleware,
101
102
  extractReasoningMiddleware: () => extractReasoningMiddleware,
@@ -1362,7 +1363,7 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
1362
1363
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1363
1364
 
1364
1365
  // src/version.ts
1365
- var VERSION = true ? "7.0.0-beta.34" : "0.0.0-test";
1366
+ var VERSION = true ? "7.0.0-beta.35" : "0.0.0-test";
1366
1367
 
1367
1368
  // src/util/download/download.ts
1368
1369
  var download = async ({
@@ -6618,6 +6619,69 @@ function createExecuteToolsTransformation({
6618
6619
  });
6619
6620
  }
6620
6621
 
6622
+ // src/generate-text/invoke-tool-callbacks-from-stream.ts
6623
+ function invokeToolCallbacksFromStream({
6624
+ stream,
6625
+ tools,
6626
+ stepInputMessages,
6627
+ abortSignal,
6628
+ experimental_context
6629
+ }) {
6630
+ if (tools == null)
6631
+ return stream;
6632
+ const ongoingToolCallToolNames = {};
6633
+ return stream.pipeThrough(
6634
+ new TransformStream({
6635
+ async transform(chunk, controller) {
6636
+ controller.enqueue(chunk);
6637
+ switch (chunk.type) {
6638
+ case "tool-input-start": {
6639
+ ongoingToolCallToolNames[chunk.id] = chunk.toolName;
6640
+ const tool2 = tools == null ? void 0 : tools[chunk.toolName];
6641
+ if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
6642
+ await tool2.onInputStart({
6643
+ toolCallId: chunk.id,
6644
+ messages: stepInputMessages,
6645
+ abortSignal,
6646
+ experimental_context
6647
+ });
6648
+ }
6649
+ break;
6650
+ }
6651
+ case "tool-input-delta": {
6652
+ const toolName = ongoingToolCallToolNames[chunk.id];
6653
+ const tool2 = tools == null ? void 0 : tools[toolName];
6654
+ if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
6655
+ await tool2.onInputDelta({
6656
+ inputTextDelta: chunk.delta,
6657
+ toolCallId: chunk.id,
6658
+ messages: stepInputMessages,
6659
+ abortSignal,
6660
+ experimental_context
6661
+ });
6662
+ }
6663
+ break;
6664
+ }
6665
+ case "tool-call": {
6666
+ const toolName = ongoingToolCallToolNames[chunk.toolCallId];
6667
+ const tool2 = tools == null ? void 0 : tools[toolName];
6668
+ delete ongoingToolCallToolNames[chunk.toolCallId];
6669
+ if ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) {
6670
+ await tool2.onInputAvailable({
6671
+ input: chunk.input,
6672
+ toolCallId: chunk.toolCallId,
6673
+ messages: stepInputMessages,
6674
+ abortSignal,
6675
+ experimental_context
6676
+ });
6677
+ }
6678
+ }
6679
+ }
6680
+ }
6681
+ })
6682
+ );
6683
+ }
6684
+
6621
6685
  // src/generate-text/create-stream-text-part-transform.ts
6622
6686
  var import_provider28 = require("@ai-sdk/provider");
6623
6687
  function createStreamTextPartTransform({
@@ -6758,67 +6822,81 @@ function createStreamTextPartTransform({
6758
6822
  });
6759
6823
  }
6760
6824
 
6761
- // src/generate-text/invoke-tool-callbacks-from-stream.ts
6762
- function invokeToolCallbacksFromStream({
6763
- stream,
6825
+ // src/generate-text/stream-model-call.ts
6826
+ async function streamModelCall({
6827
+ model,
6764
6828
  tools,
6765
- stepInputMessages,
6829
+ output,
6830
+ toolChoice,
6831
+ activeTools,
6832
+ prompt,
6833
+ system,
6834
+ messages,
6835
+ download: download2,
6836
+ maxRetries,
6766
6837
  abortSignal,
6767
- experimental_context
6838
+ headers,
6839
+ includeRawChunks,
6840
+ providerOptions,
6841
+ repairToolCall,
6842
+ onStart,
6843
+ ...callSettings
6768
6844
  }) {
6769
- if (tools == null)
6770
- return stream;
6771
- const ongoingToolCallToolNames = {};
6772
- return stream.pipeThrough(
6773
- new TransformStream({
6774
- async transform(chunk, controller) {
6775
- controller.enqueue(chunk);
6776
- switch (chunk.type) {
6777
- case "tool-input-start": {
6778
- ongoingToolCallToolNames[chunk.id] = chunk.toolName;
6779
- const tool2 = tools == null ? void 0 : tools[chunk.toolName];
6780
- if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
6781
- await tool2.onInputStart({
6782
- toolCallId: chunk.id,
6783
- messages: stepInputMessages,
6784
- abortSignal,
6785
- experimental_context
6786
- });
6787
- }
6788
- break;
6789
- }
6790
- case "tool-input-delta": {
6791
- const toolName = ongoingToolCallToolNames[chunk.id];
6792
- const tool2 = tools == null ? void 0 : tools[toolName];
6793
- if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
6794
- await tool2.onInputDelta({
6795
- inputTextDelta: chunk.delta,
6796
- toolCallId: chunk.id,
6797
- messages: stepInputMessages,
6798
- abortSignal,
6799
- experimental_context
6800
- });
6801
- }
6802
- break;
6803
- }
6804
- case "tool-call": {
6805
- const toolName = ongoingToolCallToolNames[chunk.toolCallId];
6806
- const tool2 = tools == null ? void 0 : tools[toolName];
6807
- delete ongoingToolCallToolNames[chunk.toolCallId];
6808
- if ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) {
6809
- await tool2.onInputAvailable({
6810
- input: chunk.input,
6811
- toolCallId: chunk.toolCallId,
6812
- messages: stepInputMessages,
6813
- abortSignal,
6814
- experimental_context
6815
- });
6816
- }
6817
- }
6818
- }
6819
- }
6845
+ const resolvedModel = resolveLanguageModel(model);
6846
+ const { retry } = prepareRetries({ maxRetries, abortSignal });
6847
+ const standardizedPrompt = await standardizePrompt({
6848
+ system,
6849
+ prompt,
6850
+ messages
6851
+ });
6852
+ const promptMessages = await convertToLanguageModelPrompt({
6853
+ prompt: {
6854
+ system: standardizedPrompt.system,
6855
+ messages: standardizedPrompt.messages
6856
+ },
6857
+ supportedUrls: await resolvedModel.supportedUrls,
6858
+ download: download2
6859
+ });
6860
+ const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
6861
+ tools,
6862
+ toolChoice,
6863
+ activeTools
6864
+ });
6865
+ await notify({
6866
+ event: { promptMessages },
6867
+ callbacks: onStart
6868
+ });
6869
+ const {
6870
+ stream: languageModelStream,
6871
+ response,
6872
+ request
6873
+ } = await retry(
6874
+ async () => resolvedModel.doStream({
6875
+ ...callSettings,
6876
+ tools: stepTools,
6877
+ toolChoice: stepToolChoice,
6878
+ responseFormat: await (output == null ? void 0 : output.responseFormat),
6879
+ prompt: promptMessages,
6880
+ providerOptions,
6881
+ abortSignal,
6882
+ headers,
6883
+ includeRawChunks
6820
6884
  })
6821
6885
  );
6886
+ return {
6887
+ stream: createAsyncIterableStream(
6888
+ languageModelStream.pipeThrough(
6889
+ createStreamTextPartTransform({
6890
+ tools,
6891
+ system: standardizedPrompt.system,
6892
+ messages: standardizedPrompt.messages,
6893
+ repairToolCall
6894
+ })
6895
+ )
6896
+ ),
6897
+ response,
6898
+ request
6899
+ };
6822
6900
  }
6823
6901
 
6824
6902
  // src/generate-text/stream-text.ts
@@ -7320,18 +7398,29 @@ var DefaultStreamTextResult = class {
7320
7398
  return stitchableStream.stream.cancel(reason);
7321
7399
  }
7322
7400
  });
7401
+ let isRunning = true;
7402
+ stream = stream.pipeThrough(
7403
+ new TransformStream({
7404
+ async transform(chunk, controller) {
7405
+ if (isRunning) {
7406
+ controller.enqueue(chunk);
7407
+ }
7408
+ }
7409
+ })
7410
+ );
7323
7411
  for (const transform of transforms) {
7324
7412
  stream = stream.pipeThrough(
7325
7413
  transform({
7326
7414
  tools,
7327
7415
  stopStream() {
7328
7416
  stitchableStream.terminate();
7417
+ isRunning = false;
7329
7418
  }
7330
7419
  })
7331
7420
  );
7332
7421
  }
7333
7422
  this.baseStream = stream.pipeThrough(createOutputTransformStream(output != null ? output : text())).pipeThrough(eventProcessor);
7334
- const { maxRetries, retry } = prepareRetries({
7423
+ const { maxRetries } = prepareRetries({
7335
7424
  maxRetries: maxRetriesArg,
7336
7425
  abortSignal
7337
7426
  });
@@ -7517,7 +7606,7 @@ var DefaultStreamTextResult = class {
7517
7606
  responseMessages,
7518
7607
  usage
7519
7608
  }) {
7520
- var _a21, _b, _c, _d, _e, _f, _g, _h, _i;
7609
+ var _a21, _b, _c, _d, _e, _f, _g, _h, _i, _j;
7521
7610
  const includeRawChunks2 = self.includeRawChunks;
7522
7611
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
7523
7612
  let chunkTimeoutId = void 0;
@@ -7556,85 +7645,75 @@ var DefaultStreamTextResult = class {
7556
7645
  const stepModel = resolveLanguageModel(
7557
7646
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
7558
7647
  );
7559
- const promptMessages = await convertToLanguageModelPrompt({
7560
- prompt: {
7561
- system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
7562
- messages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages
7563
- },
7564
- supportedUrls: await stepModel.supportedUrls,
7565
- download: download2
7566
- });
7567
- const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
7648
+ const stepActiveTools = (_b = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _b : activeTools;
7568
7649
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
7569
7650
  tools,
7570
- toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
7651
+ toolChoice: (_c = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _c : toolChoice,
7571
7652
  activeTools: stepActiveTools
7572
7653
  });
7573
- experimental_context = (_f = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _f : experimental_context;
7574
- const stepMessages = (_g = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _g : stepInputMessages;
7575
- const stepSystem = (_h = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _h : initialPrompt.system;
7654
+ experimental_context = (_d = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _d : experimental_context;
7655
+ const stepMessages = (_e = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _e : stepInputMessages;
7656
+ const stepSystem = (_f = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _f : initialPrompt.system;
7576
7657
  const stepProviderOptions = mergeObjects(
7577
7658
  providerOptions,
7578
7659
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
7579
7660
  );
7580
- await notify({
7581
- event: {
7582
- callId,
7583
- stepNumber: recordedSteps.length,
7584
- provider: stepModel.provider,
7585
- modelId: stepModel.modelId,
7586
- system: stepSystem,
7587
- messages: stepMessages,
7588
- tools,
7589
- toolChoice: stepToolChoice,
7590
- activeTools: stepActiveTools,
7591
- steps: [...recordedSteps],
7592
- providerOptions: stepProviderOptions,
7593
- timeout,
7594
- headers,
7595
- stopWhen,
7596
- output,
7597
- abortSignal: originalAbortSignal,
7598
- include,
7599
- ...callbackTelemetryProps,
7600
- experimental_context,
7601
- promptMessages,
7602
- stepTools,
7603
- stepToolChoice
7604
- },
7605
- callbacks: [
7606
- onStepStart,
7607
- globalTelemetry.onStepStart
7608
- ]
7609
- });
7610
7661
  const stepStartTimestampMs = now2();
7611
7662
  const {
7612
7663
  stream: languageModelStream,
7613
- response,
7614
- request
7615
- } = await retry(
7616
- async () => stepModel.doStream({
7617
- ...callSettings,
7618
- tools: stepTools,
7619
- toolChoice: stepToolChoice,
7620
- responseFormat: await (output == null ? void 0 : output.responseFormat),
7621
- prompt: promptMessages,
7622
- providerOptions: stepProviderOptions,
7623
- abortSignal,
7624
- headers,
7625
- includeRawChunks: includeRawChunks2
7626
- })
7627
- );
7628
- const stream1 = languageModelStream.pipeThrough(
7629
- createStreamTextPartTransform({
7630
- tools,
7631
- system,
7632
- messages: stepInputMessages,
7633
- repairToolCall
7634
- })
7635
- );
7664
+ request,
7665
+ response
7666
+ } = await streamModelCall({
7667
+ model: (_g = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _g : model,
7668
+ tools,
7669
+ activeTools: (_h = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _h : activeTools,
7670
+ toolChoice: (_i = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _i : toolChoice,
7671
+ system: stepSystem,
7672
+ messages: stepMessages,
7673
+ repairToolCall,
7674
+ abortSignal,
7675
+ headers,
7676
+ includeRawChunks: includeRawChunks2,
7677
+ providerOptions: stepProviderOptions,
7678
+ download: download2,
7679
+ maxRetries,
7680
+ output,
7681
+ onStart: async ({ promptMessages }) => {
7682
+ await notify({
7683
+ event: {
7684
+ callId,
7685
+ stepNumber: recordedSteps.length,
7686
+ provider: stepModel.provider,
7687
+ modelId: stepModel.modelId,
7688
+ system: stepSystem,
7689
+ messages: stepMessages,
7690
+ tools,
7691
+ toolChoice: stepToolChoice,
7692
+ activeTools: stepActiveTools,
7693
+ steps: [...recordedSteps],
7694
+ providerOptions: stepProviderOptions,
7695
+ timeout,
7696
+ headers,
7697
+ stopWhen,
7698
+ output,
7699
+ abortSignal: originalAbortSignal,
7700
+ include,
7701
+ ...callbackTelemetryProps,
7702
+ experimental_context,
7703
+ promptMessages,
7704
+ stepTools,
7705
+ stepToolChoice
7706
+ },
7707
+ callbacks: [
7708
+ onStepStart,
7709
+ globalTelemetry.onStepStart
7710
+ ]
7711
+ });
7712
+ },
7713
+ ...callSettings
7714
+ });
7636
7715
  const stream2 = invokeToolCallbacksFromStream({
7637
- stream: stream1,
7716
+ stream: languageModelStream,
7638
7717
  tools,
7639
7718
  stepInputMessages,
7640
7719
  abortSignal,
@@ -7664,7 +7743,7 @@ var DefaultStreamTextResult = class {
7664
7743
  executeToolInTelemetryContext: globalTelemetry.executeTool
7665
7744
  })
7666
7745
  );
7667
- const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? request != null ? request : {} : { ...request, body: void 0 };
7746
+ const stepRequest = ((_j = include == null ? void 0 : include.requestBody) != null ? _j : true) ? request != null ? request : {} : { ...request, body: void 0 };
7668
7747
  const stepToolCalls = [];
7669
7748
  const stepToolOutputs = [];
7670
7749
  let warnings;
@@ -14230,6 +14309,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
14230
14309
  experimental_generateImage,
14231
14310
  experimental_generateSpeech,
14232
14311
  experimental_generateVideo,
14312
+ experimental_streamModelCall,
14233
14313
  experimental_transcribe,
14234
14314
  extractJsonMiddleware,
14235
14315
  extractReasoningMiddleware,