ai 5.1.0-beta.24 → 5.1.0-beta.26

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
+ ## 5.1.0-beta.26
4
+
5
+ ### Patch Changes
6
+
7
+ - c99da05: feat(ai): add onFinish to Agent
8
+
9
+ ## 5.1.0-beta.25
10
+
11
+ ### Patch Changes
12
+
13
+ - 457f1c6: feat(ai): onFinish callback for generateText
14
+
3
15
  ## 5.1.0-beta.24
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -991,6 +991,21 @@ Callback that is set using the `onStepFinish` option.
991
991
  */
992
992
  type GenerateTextOnStepFinishCallback<TOOLS extends ToolSet> = (stepResult: StepResult<TOOLS>) => Promise<void> | void;
993
993
  /**
994
+ Callback that is set using the `onFinish` option.
995
+
996
+ @param event - The event that is passed to the callback.
997
+ */
998
+ type GenerateTextOnFinishCallback<TOOLS extends ToolSet> = (event: StepResult<TOOLS> & {
999
+ /**
1000
+ Details for all steps.
1001
+ */
1002
+ readonly steps: StepResult<TOOLS>[];
1003
+ /**
1004
+ Total usage for all steps. This is the sum of the usage of all steps.
1005
+ */
1006
+ readonly totalUsage: LanguageModelUsage;
1007
+ }) => PromiseLike<void> | void;
1008
+ /**
994
1009
  Generate a text and call tools for a given prompt using a language model.
995
1010
 
996
1011
  This function does not stream the output. If you want to stream the output, use `streamText` instead.
@@ -1032,11 +1047,12 @@ If set and supported by the model, calls will generate deterministic results.
1032
1047
  @param experimental_generateMessageId - Generate a unique ID for each message.
1033
1048
 
1034
1049
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1050
+ @param onFinish - Callback that is called when all steps are finished and the response is complete.
1035
1051
 
1036
1052
  @returns
1037
1053
  A result object that contains the generated text, the results of the tool calls, and additional information.
1038
1054
  */
1039
- declare function generateText<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never>({ model: modelArg, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, providerOptions, experimental_activeTools, activeTools, experimental_prepareStep, prepareStep, experimental_repairToolCall: repairToolCall, experimental_download: download, experimental_context, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1055
+ declare function generateText<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never>({ model: modelArg, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, providerOptions, experimental_activeTools, activeTools, experimental_prepareStep, prepareStep, experimental_repairToolCall: repairToolCall, experimental_download: download, experimental_context, _internal: { generateId, currentDate, }, onStepFinish, onFinish, ...settings }: CallSettings & Prompt & {
1040
1056
  /**
1041
1057
  The language model to use.
1042
1058
  */
@@ -1098,9 +1114,13 @@ A function that attempts to repair a tool call that failed to parse.
1098
1114
  */
1099
1115
  experimental_repairToolCall?: ToolCallRepairFunction<NoInfer<TOOLS>>;
1100
1116
  /**
1101
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
1102
- */
1117
+ * Callback that is called when each step (LLM call) is finished, including intermediate steps.
1118
+ */
1103
1119
  onStepFinish?: GenerateTextOnStepFinishCallback<NoInfer<TOOLS>>;
1120
+ /**
1121
+ * Callback that is called when all steps are finished and the response is complete.
1122
+ */
1123
+ onFinish?: GenerateTextOnFinishCallback<NoInfer<TOOLS>>;
1104
1124
  /**
1105
1125
  * Context that is passed into tool execution.
1106
1126
  *
@@ -1244,13 +1264,10 @@ If set and supported by the model, calls will generate deterministic results.
1244
1264
  @param abortSignal - An optional abort signal that can be used to cancel the call.
1245
1265
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
1246
1266
 
1247
- @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
1248
-
1249
1267
  @param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
1250
1268
  @param onError - Callback that is called when an error occurs during streaming. You can use it to log errors.
1251
1269
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1252
- @param onFinish - Callback that is called when the LLM response and all request tool executions
1253
- (for tools that have an `execute` function) are finished.
1270
+ @param onFinish - Callback that is called when all steps are finished and the response is complete.
1254
1271
 
1255
1272
  @return
1256
1273
  A result object for accessing different stream types and additional information.
@@ -2279,6 +2296,22 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2279
2296
  rawValue: unknown;
2280
2297
  };
2281
2298
 
2299
+ /**
2300
+ Callback that is set using the `onFinish` option.
2301
+
2302
+ @param event - The event that is passed to the callback.
2303
+ */
2304
+ type AgentOnFinishCallback<TOOLS extends ToolSet> = (event: StepResult<TOOLS> & {
2305
+ /**
2306
+ Details for all steps.
2307
+ */
2308
+ readonly steps: StepResult<TOOLS>[];
2309
+ /**
2310
+ Total usage for all steps. This is the sum of the usage of all steps.
2311
+ */
2312
+ readonly totalUsage: LanguageModelUsage;
2313
+ }) => PromiseLike<void> | void;
2314
+
2282
2315
  /**
2283
2316
  Callback that is set using the `onStepFinish` option.
2284
2317
 
@@ -2343,10 +2376,14 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2343
2376
  */
2344
2377
  experimental_repairToolCall?: ToolCallRepairFunction<NoInfer<TOOLS>>;
2345
2378
  /**
2346
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
2347
- */
2379
+ * Callback that is called when each step (LLM call) is finished, including intermediate steps.
2380
+ */
2348
2381
  onStepFinish?: AgentOnStepFinishCallback<NoInfer<TOOLS>>;
2349
2382
  /**
2383
+ * Callback that is called when all steps are finished and the response is complete.
2384
+ */
2385
+ onFinish?: AgentOnFinishCallback<NoInfer<TOOLS>>;
2386
+ /**
2350
2387
  Additional provider-specific options. They are passed through
2351
2388
  to the provider from the AI SDK and enable provider-specific
2352
2389
  functionality that can be fully encapsulated in the provider.
@@ -4755,4 +4792,4 @@ declare global {
4755
4792
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4756
4793
  }
4757
4794
 
4758
- export { AbstractChat, Agent, AgentOnStepFinishCallback, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4795
+ export { AbstractChat, Agent, AgentOnFinishCallback, AgentOnStepFinishCallback, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -991,6 +991,21 @@ Callback that is set using the `onStepFinish` option.
991
991
  */
992
992
  type GenerateTextOnStepFinishCallback<TOOLS extends ToolSet> = (stepResult: StepResult<TOOLS>) => Promise<void> | void;
993
993
  /**
994
+ Callback that is set using the `onFinish` option.
995
+
996
+ @param event - The event that is passed to the callback.
997
+ */
998
+ type GenerateTextOnFinishCallback<TOOLS extends ToolSet> = (event: StepResult<TOOLS> & {
999
+ /**
1000
+ Details for all steps.
1001
+ */
1002
+ readonly steps: StepResult<TOOLS>[];
1003
+ /**
1004
+ Total usage for all steps. This is the sum of the usage of all steps.
1005
+ */
1006
+ readonly totalUsage: LanguageModelUsage;
1007
+ }) => PromiseLike<void> | void;
1008
+ /**
994
1009
  Generate a text and call tools for a given prompt using a language model.
995
1010
 
996
1011
  This function does not stream the output. If you want to stream the output, use `streamText` instead.
@@ -1032,11 +1047,12 @@ If set and supported by the model, calls will generate deterministic results.
1032
1047
  @param experimental_generateMessageId - Generate a unique ID for each message.
1033
1048
 
1034
1049
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1050
+ @param onFinish - Callback that is called when all steps are finished and the response is complete.
1035
1051
 
1036
1052
  @returns
1037
1053
  A result object that contains the generated text, the results of the tool calls, and additional information.
1038
1054
  */
1039
- declare function generateText<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never>({ model: modelArg, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, providerOptions, experimental_activeTools, activeTools, experimental_prepareStep, prepareStep, experimental_repairToolCall: repairToolCall, experimental_download: download, experimental_context, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1055
+ declare function generateText<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never>({ model: modelArg, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, providerOptions, experimental_activeTools, activeTools, experimental_prepareStep, prepareStep, experimental_repairToolCall: repairToolCall, experimental_download: download, experimental_context, _internal: { generateId, currentDate, }, onStepFinish, onFinish, ...settings }: CallSettings & Prompt & {
1040
1056
  /**
1041
1057
  The language model to use.
1042
1058
  */
@@ -1098,9 +1114,13 @@ A function that attempts to repair a tool call that failed to parse.
1098
1114
  */
1099
1115
  experimental_repairToolCall?: ToolCallRepairFunction<NoInfer<TOOLS>>;
1100
1116
  /**
1101
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
1102
- */
1117
+ * Callback that is called when each step (LLM call) is finished, including intermediate steps.
1118
+ */
1103
1119
  onStepFinish?: GenerateTextOnStepFinishCallback<NoInfer<TOOLS>>;
1120
+ /**
1121
+ * Callback that is called when all steps are finished and the response is complete.
1122
+ */
1123
+ onFinish?: GenerateTextOnFinishCallback<NoInfer<TOOLS>>;
1104
1124
  /**
1105
1125
  * Context that is passed into tool execution.
1106
1126
  *
@@ -1244,13 +1264,10 @@ If set and supported by the model, calls will generate deterministic results.
1244
1264
  @param abortSignal - An optional abort signal that can be used to cancel the call.
1245
1265
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
1246
1266
 
1247
- @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
1248
-
1249
1267
  @param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
1250
1268
  @param onError - Callback that is called when an error occurs during streaming. You can use it to log errors.
1251
1269
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1252
- @param onFinish - Callback that is called when the LLM response and all request tool executions
1253
- (for tools that have an `execute` function) are finished.
1270
+ @param onFinish - Callback that is called when all steps are finished and the response is complete.
1254
1271
 
1255
1272
  @return
1256
1273
  A result object for accessing different stream types and additional information.
@@ -2279,6 +2296,22 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2279
2296
  rawValue: unknown;
2280
2297
  };
2281
2298
 
2299
+ /**
2300
+ Callback that is set using the `onFinish` option.
2301
+
2302
+ @param event - The event that is passed to the callback.
2303
+ */
2304
+ type AgentOnFinishCallback<TOOLS extends ToolSet> = (event: StepResult<TOOLS> & {
2305
+ /**
2306
+ Details for all steps.
2307
+ */
2308
+ readonly steps: StepResult<TOOLS>[];
2309
+ /**
2310
+ Total usage for all steps. This is the sum of the usage of all steps.
2311
+ */
2312
+ readonly totalUsage: LanguageModelUsage;
2313
+ }) => PromiseLike<void> | void;
2314
+
2282
2315
  /**
2283
2316
  Callback that is set using the `onStepFinish` option.
2284
2317
 
@@ -2343,10 +2376,14 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2343
2376
  */
2344
2377
  experimental_repairToolCall?: ToolCallRepairFunction<NoInfer<TOOLS>>;
2345
2378
  /**
2346
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
2347
- */
2379
+ * Callback that is called when each step (LLM call) is finished, including intermediate steps.
2380
+ */
2348
2381
  onStepFinish?: AgentOnStepFinishCallback<NoInfer<TOOLS>>;
2349
2382
  /**
2383
+ * Callback that is called when all steps are finished and the response is complete.
2384
+ */
2385
+ onFinish?: AgentOnFinishCallback<NoInfer<TOOLS>>;
2386
+ /**
2350
2387
  Additional provider-specific options. They are passed through
2351
2388
  to the provider from the AI SDK and enable provider-specific
2352
2389
  functionality that can be fully encapsulated in the provider.
@@ -4755,4 +4792,4 @@ declare global {
4755
4792
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4756
4793
  }
4757
4794
 
4758
- export { AbstractChat, Agent, AgentOnStepFinishCallback, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4795
+ export { AbstractChat, Agent, AgentOnFinishCallback, AgentOnStepFinishCallback, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -809,7 +809,7 @@ function detectMediaType({
809
809
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
810
810
 
811
811
  // src/version.ts
812
- var VERSION = true ? "5.1.0-beta.24" : "0.0.0-test";
812
+ var VERSION = true ? "5.1.0-beta.26" : "0.0.0-test";
813
813
 
814
814
  // src/util/download/download.ts
815
815
  var download = async ({ url }) => {
@@ -2459,6 +2459,7 @@ async function generateText({
2459
2459
  currentDate = () => /* @__PURE__ */ new Date()
2460
2460
  } = {},
2461
2461
  onStepFinish,
2462
+ onFinish,
2462
2463
  ...settings
2463
2464
  }) {
2464
2465
  const model = resolveLanguageModel(modelArg);
@@ -2800,8 +2801,43 @@ async function generateText({
2800
2801
  })
2801
2802
  );
2802
2803
  const lastStep = steps[steps.length - 1];
2804
+ const totalUsage = steps.reduce(
2805
+ (totalUsage2, step) => {
2806
+ return addLanguageModelUsage(totalUsage2, step.usage);
2807
+ },
2808
+ {
2809
+ inputTokens: void 0,
2810
+ outputTokens: void 0,
2811
+ totalTokens: void 0,
2812
+ reasoningTokens: void 0,
2813
+ cachedInputTokens: void 0
2814
+ }
2815
+ );
2816
+ await (onFinish == null ? void 0 : onFinish({
2817
+ finishReason: lastStep.finishReason,
2818
+ usage: lastStep.usage,
2819
+ content: lastStep.content,
2820
+ text: lastStep.text,
2821
+ reasoningText: lastStep.reasoningText,
2822
+ reasoning: lastStep.reasoning,
2823
+ files: lastStep.files,
2824
+ sources: lastStep.sources,
2825
+ toolCalls: lastStep.toolCalls,
2826
+ staticToolCalls: lastStep.staticToolCalls,
2827
+ dynamicToolCalls: lastStep.dynamicToolCalls,
2828
+ toolResults: lastStep.toolResults,
2829
+ staticToolResults: lastStep.staticToolResults,
2830
+ dynamicToolResults: lastStep.dynamicToolResults,
2831
+ request: lastStep.request,
2832
+ response: lastStep.response,
2833
+ warnings: lastStep.warnings,
2834
+ providerMetadata: lastStep.providerMetadata,
2835
+ steps,
2836
+ totalUsage
2837
+ }));
2803
2838
  return new DefaultGenerateTextResult({
2804
2839
  steps,
2840
+ totalUsage,
2805
2841
  resolvedOutput: await (output == null ? void 0 : output.parseOutput(
2806
2842
  { text: lastStep.text },
2807
2843
  {
@@ -2847,6 +2883,7 @@ var DefaultGenerateTextResult = class {
2847
2883
  constructor(options) {
2848
2884
  this.steps = options.steps;
2849
2885
  this.resolvedOutput = options.resolvedOutput;
2886
+ this.totalUsage = options.totalUsage;
2850
2887
  }
2851
2888
  get finalStep() {
2852
2889
  return this.steps[this.steps.length - 1];
@@ -2905,20 +2942,6 @@ var DefaultGenerateTextResult = class {
2905
2942
  get usage() {
2906
2943
  return this.finalStep.usage;
2907
2944
  }
2908
- get totalUsage() {
2909
- return this.steps.reduce(
2910
- (totalUsage, step) => {
2911
- return addLanguageModelUsage(totalUsage, step.usage);
2912
- },
2913
- {
2914
- inputTokens: void 0,
2915
- outputTokens: void 0,
2916
- totalTokens: void 0,
2917
- reasoningTokens: void 0,
2918
- cachedInputTokens: void 0
2919
- }
2920
- );
2921
- }
2922
2945
  get experimental_output() {
2923
2946
  if (this.resolvedOutput == null) {
2924
2947
  throw new NoOutputSpecifiedError();