ai 7.0.0-beta.180 → 7.0.0-beta.182

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,17 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.182
4
+
5
+ ### Patch Changes
6
+
7
+ - cc6ab90: feat(ai): rename ui message stream onFinish to onEnd
8
+
9
+ ## 7.0.0-beta.181
10
+
11
+ ### Patch Changes
12
+
13
+ - 6a2caf9: Serialize `undefined` tool output to `null` in UI message chunks
14
+
3
15
  ## 7.0.0-beta.180
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -2542,7 +2542,7 @@ type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataT
2542
2542
  };
2543
2543
  type InferUIMessageChunk<T extends UIMessage> = UIMessageChunk<InferUIMessageMetadata<T>, InferUIMessageData<T>>;
2544
2544
 
2545
- type UIMessageStreamOnFinishCallback<UI_MESSAGE extends UIMessage> = (event: {
2545
+ type UIMessageStreamOnEndCallback<UI_MESSAGE extends UIMessage> = (event: {
2546
2546
  /**
2547
2547
  * The updated list of UI messages.
2548
2548
  */
@@ -2633,9 +2633,13 @@ type UIMessageStreamOptions<UI_MESSAGE extends UIMessage> = {
2633
2633
  * the original messages are provided and the last message is an assistant message).
2634
2634
  */
2635
2635
  generateMessageId?: IdGenerator;
2636
- onFinish?: UIMessageStreamOnFinishCallback<UI_MESSAGE>;
2636
+ onEnd?: UIMessageStreamOnEndCallback<UI_MESSAGE>;
2637
2637
  /**
2638
- * Extracts message metadata that will be send to the client.
2638
+ * @deprecated Use `onEnd` instead.
2639
+ */
2640
+ onFinish?: UIMessageStreamOnEndCallback<UI_MESSAGE>;
2641
+ /**
2642
+ * Extracts message metadata that will be sent to the client.
2639
2643
  *
2640
2644
  * Called on `start` and `finish` events.
2641
2645
  */
@@ -5952,13 +5956,14 @@ interface UIMessageStreamWriter<UI_MESSAGE extends UIMessage = UIMessage> {
5952
5956
  * and a message ID is provided for the response message.
5953
5957
  * @param options.onStepEnd - A callback that is called when each step ends. Useful for persisting intermediate messages.
5954
5958
  * @param options.onStepFinish - Deprecated alias for `onStepEnd`.
5955
- * @param options.onFinish - A callback that is called when the stream finishes.
5959
+ * @param options.onEnd - A callback that is called when the stream ends.
5960
+ * @param options.onFinish - Deprecated alias for `onEnd`.
5956
5961
  * @param options.generateId - A function that generates a unique ID. Defaults to the built-in ID generator.
5957
5962
  *
5958
5963
  * @returns A `ReadableStream` of UI message chunks.
5959
5964
  */
5960
5965
  declare function createUIMessageStream<UI_MESSAGE extends UIMessage>({ execute, onError, // prevent leaking server error details to the client by default
5961
- originalMessages, onStepEnd, onStepFinish, onFinish, generateId, }: {
5966
+ originalMessages, onStepEnd, onStepFinish, onEnd, onFinish, generateId, }: {
5962
5967
  execute: (options: {
5963
5968
  writer: UIMessageStreamWriter<UI_MESSAGE>;
5964
5969
  }) => Promise<void> | void;
@@ -5978,7 +5983,11 @@ originalMessages, onStepEnd, onStepFinish, onFinish, generateId, }: {
5978
5983
  * @deprecated Use `onStepEnd` instead.
5979
5984
  */
5980
5985
  onStepFinish?: UIMessageStreamOnStepFinishCallback<UI_MESSAGE>;
5981
- onFinish?: UIMessageStreamOnFinishCallback<UI_MESSAGE>;
5986
+ onEnd?: UIMessageStreamOnEndCallback<UI_MESSAGE>;
5987
+ /**
5988
+ * @deprecated Use `onEnd` instead.
5989
+ */
5990
+ onFinish?: UIMessageStreamOnEndCallback<UI_MESSAGE>;
5982
5991
  generateId?: IdGenerator;
5983
5992
  }): ReadableStream<InferUIMessageChunk<UI_MESSAGE>>;
5984
5993
 
@@ -6064,10 +6073,10 @@ messageMetadata, responseMessageId, }?: ToUIMessageChunkOptions<TOOLS, UI_MESSAG
6064
6073
  * Converts a stream of `TextStreamPart<TOOLS>` chunks (as emitted by
6065
6074
  * `streamText`'s `stream`) into a stream of `UIMessageChunk`s suitable for
6066
6075
  * UI message streaming, including response message ID injection and
6067
- * `onFinish` handling.
6076
+ * `onEnd` handling.
6068
6077
  */
6069
6078
  declare function toUIMessageStream<TOOLS extends ToolSet = ToolSet, UI_MESSAGE extends UIMessage = UIMessage>({ stream, tools, sendReasoning, sendSources, sendStart, sendFinish, onError, // prevent leaking server error details to the client by default
6070
- messageMetadata, originalMessages, generateMessageId, onFinish, }: {
6079
+ messageMetadata, originalMessages, generateMessageId, onEnd, onFinish, }: {
6071
6080
  stream: ReadableStream<TextStreamPart<TOOLS>>;
6072
6081
  tools?: TOOLS;
6073
6082
  } & UIMessageStreamOptions<UI_MESSAGE>): ReadableStream<InferUIMessageChunk<UI_MESSAGE>>;
@@ -6080,6 +6089,11 @@ declare const UI_MESSAGE_STREAM_HEADERS: {
6080
6089
  'x-accel-buffering': string;
6081
6090
  };
6082
6091
 
6092
+ /**
6093
+ * @deprecated Use `UIMessageStreamOnEndCallback` instead.
6094
+ */
6095
+ type UIMessageStreamOnFinishCallback<UI_MESSAGE extends UIMessage> = UIMessageStreamOnEndCallback<UI_MESSAGE>;
6096
+
6083
6097
  /**
6084
6098
  * Runs the agent and stream the output as a UI message stream.
6085
6099
  *
@@ -8738,4 +8752,4 @@ declare function uploadSkill({ api, files, displayTitle, providerOptions, }: {
8738
8752
  files: UploadSkillFile[];
8739
8753
  }): Promise<UploadSkillResult>;
8740
8754
 
8741
- export { AI_SDK_TELEMETRY_TRACING_CHANNEL, AbstractChat, ActiveTools, 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, EmbedEndEvent, EmbedManyResult, EmbedResult, EmbedStartEvent, Embedding, EmbeddingModel, EmbeddingModelCallEndEvent, EmbeddingModelCallStartEvent, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, AbstractRealtimeSession as Experimental_AbstractRealtimeSession, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LanguageModelStreamPart as Experimental_LanguageModelStreamPart, LogWarningsFunction as Experimental_LogWarningsFunction, RealtimeClientEvent as Experimental_RealtimeClientEvent, RealtimeFactory as Experimental_RealtimeFactory, RealtimeFactoryGetTokenOptions as Experimental_RealtimeFactoryGetTokenOptions, RealtimeFactoryGetTokenResult as Experimental_RealtimeFactoryGetTokenResult, RealtimeModel as Experimental_RealtimeModel, RealtimeServerEvent as Experimental_RealtimeServerEvent, RealtimeSessionConfig as Experimental_RealtimeSessionConfig, RealtimeSessionOptions as Experimental_RealtimeSessionOptions, RealtimeSetupResponse as Experimental_RealtimeSetupResponse, RealtimeState as Experimental_RealtimeState, RealtimeStatus as Experimental_RealtimeStatus, RealtimeToolDefinition as Experimental_RealtimeToolDefinition, Experimental_SpeechResult, Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectEndEvent, GenerateObjectResult, GenerateObjectStartEvent, GenerateObjectStepEndEvent, GenerateObjectStepStartEvent, GenerateTextAbortEvent, GenerateTextEndEvent, GenerateTextInclude, GenerateTextOnAbortCallback, GenerateTextOnEndCallback, GenerateTextOnFinishCallback, GenerateTextOnStartCallback, GenerateTextOnStepEndCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextResult, GenerateTextStartEvent, GenerateTextStepEndEvent, GenerateTextStepStartEvent, GenerateVideoPrompt, GenerateVideoResult, GeneratedAudioFile, GeneratedFile, GenericToolApprovalFunction, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelMiddleware, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferTelemetryEvent, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, Instructions, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolApprovalSignatureError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelCallEndEvent, LanguageModelCallOptions, LanguageModelCallStartEvent, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, MissingToolResultsError, ModelInfo, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnLanguageModelCallEndCallback, OnLanguageModelCallStartCallback, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, OnToolExecutionEndCallback, OnToolExecutionStartCallback, output as Output, OutputChunkTimingStats, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderReference, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RequestOptions, RerankEndEvent, RerankResult, RerankStartEvent, RerankingModel, RerankingModelCallEndEvent, RerankingModelCallStartEvent, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SingleToolApprovalFunction, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechResult, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepResultPerformance, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextInclude, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextResult, StreamTextTransform, Telemetry, TelemetryOptions, TelemetryTracingChannelMessage, TelemetryTracingEventType, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToUIMessageChunkOptions, ToolApprovalConfiguration, ToolApprovalRequestOutput, ToolApprovalResponseOutput, ToolApprovalStatus, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolExecutionEndEvent, ToolExecutionStartEvent, ToolInputRefinement, ToolLoopAgent, ToolLoopAgentSettings, ToolOrder, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionResult, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepEndCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UploadFileResult, UploadSkillResult, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertDataContentToBase64String, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, decodeRealtimeAudio as experimental_decodeRealtimeAudio, encodeRealtimeAudio as experimental_encodeRealtimeAudio, filterActiveTools as experimental_filterActiveTools, experimental_generateSpeech, experimental_generateVideo, getRealtimeToolDefinitions as experimental_getRealtimeToolDefinitions, resampleAudio as experimental_resampleAudio, streamLanguageModelCall as experimental_streamLanguageModelCall, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateSpeech, generateText, getChunkTimeoutMs, getStaticToolName, getStepTimeoutMs, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, getToolTimeoutMs, getTotalTimeoutMs, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isDynamicToolUIPart, isFileUIPart, isLoopFinished, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isStepCount, isTextUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetry, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, isStepCount as stepCountIs, streamObject, streamText, systemModelMessageSchema, toTextStream, toUIMessageChunk, toUIMessageStream, toolModelMessageSchema, transcribe, uiMessageChunkSchema, uploadFile, uploadSkill, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
8755
+ export { AI_SDK_TELEMETRY_TRACING_CHANNEL, AbstractChat, ActiveTools, 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, EmbedEndEvent, EmbedManyResult, EmbedResult, EmbedStartEvent, Embedding, EmbeddingModel, EmbeddingModelCallEndEvent, EmbeddingModelCallStartEvent, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, AbstractRealtimeSession as Experimental_AbstractRealtimeSession, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LanguageModelStreamPart as Experimental_LanguageModelStreamPart, LogWarningsFunction as Experimental_LogWarningsFunction, RealtimeClientEvent as Experimental_RealtimeClientEvent, RealtimeFactory as Experimental_RealtimeFactory, RealtimeFactoryGetTokenOptions as Experimental_RealtimeFactoryGetTokenOptions, RealtimeFactoryGetTokenResult as Experimental_RealtimeFactoryGetTokenResult, RealtimeModel as Experimental_RealtimeModel, RealtimeServerEvent as Experimental_RealtimeServerEvent, RealtimeSessionConfig as Experimental_RealtimeSessionConfig, RealtimeSessionOptions as Experimental_RealtimeSessionOptions, RealtimeSetupResponse as Experimental_RealtimeSetupResponse, RealtimeState as Experimental_RealtimeState, RealtimeStatus as Experimental_RealtimeStatus, RealtimeToolDefinition as Experimental_RealtimeToolDefinition, Experimental_SpeechResult, Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateImageResult, GenerateObjectEndEvent, GenerateObjectResult, GenerateObjectStartEvent, GenerateObjectStepEndEvent, GenerateObjectStepStartEvent, GenerateTextAbortEvent, GenerateTextEndEvent, GenerateTextInclude, GenerateTextOnAbortCallback, GenerateTextOnEndCallback, GenerateTextOnFinishCallback, GenerateTextOnStartCallback, GenerateTextOnStepEndCallback, GenerateTextOnStepFinishCallback, GenerateTextOnStepStartCallback, GenerateTextResult, GenerateTextStartEvent, GenerateTextStepEndEvent, GenerateTextStepStartEvent, GenerateVideoPrompt, GenerateVideoResult, GeneratedAudioFile, GeneratedFile, GenericToolApprovalFunction, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelMiddleware, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferTelemetryEvent, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, Instructions, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolApprovalError, InvalidToolApprovalSignatureError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelCallEndEvent, LanguageModelCallOptions, LanguageModelCallStartEvent, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, MissingToolResultsError, ModelInfo, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, NoTranscriptGeneratedError, NoVideoGeneratedError, ObjectStreamPart, OnFinishEvent, OnLanguageModelCallEndCallback, OnLanguageModelCallStartCallback, OnStartEvent, OnStepFinishEvent, OnStepStartEvent, OnToolCallFinishEvent, OnToolCallStartEvent, OnToolExecutionEndCallback, OnToolExecutionStartCallback, output as Output, OutputChunkTimingStats, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderReference, ProviderRegistryProvider, ReasoningFileOutput, ReasoningFileUIPart, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RequestOptions, RerankEndEvent, RerankResult, RerankStartEvent, RerankingModel, RerankingModelCallEndEvent, RerankingModelCallStartEvent, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SingleToolApprovalFunction, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechResult, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepResultPerformance, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextInclude, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextResult, StreamTextTransform, Telemetry, TelemetryOptions, TelemetryTracingChannelMessage, TelemetryTracingEventType, TextStreamChatTransport, TextStreamPart, TextUIPart, TimeoutConfiguration, ToUIMessageChunkOptions, ToolApprovalConfiguration, ToolApprovalRequestOutput, ToolApprovalResponseOutput, ToolApprovalStatus, ToolCallNotFoundForApprovalError, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolExecutionEndEvent, ToolExecutionStartEvent, ToolInputRefinement, ToolLoopAgent, ToolLoopAgentSettings, ToolOrder, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionResult, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamError, UIMessageStreamOnEndCallback, UIMessageStreamOnFinishCallback, UIMessageStreamOnStepEndCallback, UIMessageStreamOnStepFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UploadFileResult, UploadSkillResult, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertDataContentToBase64String, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createDownload, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, decodeRealtimeAudio as experimental_decodeRealtimeAudio, encodeRealtimeAudio as experimental_encodeRealtimeAudio, filterActiveTools as experimental_filterActiveTools, experimental_generateSpeech, experimental_generateVideo, getRealtimeToolDefinitions as experimental_getRealtimeToolDefinitions, resampleAudio as experimental_resampleAudio, streamLanguageModelCall as experimental_streamLanguageModelCall, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, generateImage, generateObject, generateSpeech, generateText, getChunkTimeoutMs, getStaticToolName, getStepTimeoutMs, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, getToolTimeoutMs, getTotalTimeoutMs, hasToolCall, isCustomContentUIPart, isDataUIPart, isDeepEqualData, isDynamicToolUIPart, isFileUIPart, isLoopFinished, isReasoningFileUIPart, isReasoningUIPart, isStaticToolUIPart, isStepCount, isTextUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, registerTelemetry, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, isStepCount as stepCountIs, streamObject, streamText, systemModelMessageSchema, toTextStream, toUIMessageChunk, toUIMessageStream, toolModelMessageSchema, transcribe, uiMessageChunkSchema, uploadFile, uploadSkill, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -1088,7 +1088,7 @@ import {
1088
1088
  } from "@ai-sdk/provider-utils";
1089
1089
 
1090
1090
  // src/version.ts
1091
- var VERSION = true ? "7.0.0-beta.180" : "0.0.0-test";
1091
+ var VERSION = true ? "7.0.0-beta.182" : "0.0.0-test";
1092
1092
 
1093
1093
  // src/util/download/download.ts
1094
1094
  var download = async ({
@@ -7100,6 +7100,7 @@ function handleUIMessageStreamFinish({
7100
7100
  originalMessages = [],
7101
7101
  onStepEnd,
7102
7102
  onStepFinish,
7103
+ onEnd,
7103
7104
  onFinish,
7104
7105
  onError,
7105
7106
  stream
@@ -7128,7 +7129,8 @@ function handleUIMessageStreamFinish({
7128
7129
  })
7129
7130
  );
7130
7131
  const resolvedOnStepEnd = onStepEnd != null ? onStepEnd : onStepFinish;
7131
- if (onFinish == null && resolvedOnStepEnd == null) {
7132
+ const resolvedOnEnd = onEnd != null ? onEnd : onFinish;
7133
+ if (resolvedOnEnd == null && resolvedOnStepEnd == null) {
7132
7134
  return idInjectedStream;
7133
7135
  }
7134
7136
  const state = createStreamingUIMessageState({
@@ -7141,13 +7143,13 @@ function handleUIMessageStreamFinish({
7141
7143
  } });
7142
7144
  };
7143
7145
  let finishCalled = false;
7144
- const callOnFinish = async () => {
7145
- if (finishCalled || !onFinish) {
7146
+ const callOnEnd = async () => {
7147
+ if (finishCalled || !resolvedOnEnd) {
7146
7148
  return;
7147
7149
  }
7148
7150
  finishCalled = true;
7149
7151
  const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
7150
- await onFinish({
7152
+ await resolvedOnEnd({
7151
7153
  isAborted,
7152
7154
  isContinuation,
7153
7155
  responseMessage: state.message,
@@ -7190,10 +7192,10 @@ function handleUIMessageStreamFinish({
7190
7192
  },
7191
7193
  // @ts-expect-error cancel is still new and missing from types https://developer.mozilla.org/en-US/docs/Web/API/TransformStream#browser_compatibility
7192
7194
  async cancel() {
7193
- await callOnFinish();
7195
+ await callOnEnd();
7194
7196
  },
7195
7197
  async flush() {
7196
- await callOnFinish();
7198
+ await callOnEnd();
7197
7199
  }
7198
7200
  })
7199
7201
  );
@@ -7379,7 +7381,9 @@ function toUIMessageChunk(part, {
7379
7381
  return {
7380
7382
  type: "tool-output-available",
7381
7383
  toolCallId: part.toolCallId,
7382
- output: part.output,
7384
+ // UI stream chunks are serialized as JSON, which drops undefined
7385
+ // properties. Use null so tool outputs always keep the output field.
7386
+ output: part.output === void 0 ? null : part.output,
7383
7387
  ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},
7384
7388
  ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
7385
7389
  ...part.toolMetadata != null ? { toolMetadata: part.toolMetadata } : {},
@@ -7464,6 +7468,7 @@ function toUIMessageStream({
7464
7468
  messageMetadata,
7465
7469
  originalMessages,
7466
7470
  generateMessageId,
7471
+ onEnd,
7467
7472
  onFinish
7468
7473
  }) {
7469
7474
  const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
@@ -7500,7 +7505,7 @@ function toUIMessageStream({
7500
7505
  stream: uiMessageChunkStream,
7501
7506
  messageId: responseMessageId != null ? responseMessageId : generateMessageId == null ? void 0 : generateMessageId(),
7502
7507
  originalMessages,
7503
- onFinish,
7508
+ onEnd: onEnd != null ? onEnd : onFinish,
7504
7509
  onError
7505
7510
  });
7506
7511
  }
@@ -9835,6 +9840,7 @@ var DefaultStreamTextResult = class {
9835
9840
  toUIMessageStream({
9836
9841
  originalMessages,
9837
9842
  generateMessageId,
9843
+ onEnd,
9838
9844
  onFinish,
9839
9845
  messageMetadata,
9840
9846
  sendReasoning,
@@ -9849,7 +9855,7 @@ var DefaultStreamTextResult = class {
9849
9855
  tools: this.tools,
9850
9856
  originalMessages,
9851
9857
  generateMessageId,
9852
- onFinish,
9858
+ onEnd: onEnd != null ? onEnd : onFinish,
9853
9859
  messageMetadata,
9854
9860
  sendReasoning,
9855
9861
  sendSources,
@@ -9862,6 +9868,7 @@ var DefaultStreamTextResult = class {
9862
9868
  pipeUIMessageStreamToResponse(response, {
9863
9869
  originalMessages,
9864
9870
  generateMessageId,
9871
+ onEnd,
9865
9872
  onFinish,
9866
9873
  messageMetadata,
9867
9874
  sendReasoning,
@@ -9876,7 +9883,7 @@ var DefaultStreamTextResult = class {
9876
9883
  stream: this.toUIMessageStream({
9877
9884
  originalMessages,
9878
9885
  generateMessageId,
9879
- onFinish,
9886
+ onEnd: onEnd != null ? onEnd : onFinish,
9880
9887
  messageMetadata,
9881
9888
  sendReasoning,
9882
9889
  sendSources,
@@ -9897,6 +9904,7 @@ var DefaultStreamTextResult = class {
9897
9904
  toUIMessageStreamResponse({
9898
9905
  originalMessages,
9899
9906
  generateMessageId,
9907
+ onEnd,
9900
9908
  onFinish,
9901
9909
  messageMetadata,
9902
9910
  sendReasoning,
@@ -9910,7 +9918,7 @@ var DefaultStreamTextResult = class {
9910
9918
  stream: this.toUIMessageStream({
9911
9919
  originalMessages,
9912
9920
  generateMessageId,
9913
- onFinish,
9921
+ onEnd: onEnd != null ? onEnd : onFinish,
9914
9922
  messageMetadata,
9915
9923
  sendReasoning,
9916
9924
  sendSources,
@@ -10133,6 +10141,7 @@ function createUIMessageStream({
10133
10141
  originalMessages,
10134
10142
  onStepEnd,
10135
10143
  onStepFinish,
10144
+ onEnd,
10136
10145
  onFinish,
10137
10146
  generateId: generateId2 = generateIdFunc
10138
10147
  }) {
@@ -10209,7 +10218,7 @@ function createUIMessageStream({
10209
10218
  messageId: generateId2(),
10210
10219
  originalMessages,
10211
10220
  onStepEnd: onStepEnd != null ? onStepEnd : onStepFinish,
10212
- onFinish,
10221
+ onEnd: onEnd != null ? onEnd : onFinish,
10213
10222
  onError
10214
10223
  });
10215
10224
  }