ai 7.0.42 → 7.0.43

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,16 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.43
4
+
5
+ ### Patch Changes
6
+
7
+ - b192878: feat: add experimental_toolCaller routing to generateText for code mode
8
+ - Updated dependencies [d8210b6]
9
+ - Updated dependencies [af3f400]
10
+ - Updated dependencies [b192878]
11
+ - @ai-sdk/provider-utils@5.0.16
12
+ - @ai-sdk/gateway@4.0.33
13
+
3
14
  ## 7.0.42
4
15
 
5
16
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -3,8 +3,8 @@ export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, I
3
3
  import { GatewayModelId } from '@ai-sdk/gateway';
4
4
  export { GatewayModelId, createGateway, gateway } from '@ai-sdk/gateway';
5
5
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
6
- import { ModelMessage, AssistantModelMessage, ToolModelMessage, ProviderOptions, ToolSet, SystemModelMessage, UserModelMessage, DataContent, FlexibleSchema, InferSchema, Context, Arrayable, InferToolSetContext, InferToolInput, InferToolOutput, ReasoningPart, ReasoningFilePart, Experimental_SandboxSession, Tool, ToolCall, IdGenerator, ToolExecutionOptions, MaybePromiseLike, InferToolContext, HasRequiredKey, TextPart, FilePart, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
7
- export { AssistantContent, AssistantModelMessage, DataContent, DownloadError, Experimental_SandboxProcess, Experimental_SandboxSession, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, ToolSet, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
+ import { ModelMessage, AssistantModelMessage, ToolModelMessage, ProviderOptions, ToolSet, SystemModelMessage, UserModelMessage, DataContent, FlexibleSchema, InferSchema, Context, Arrayable, InferToolSetContext, InferToolInput, InferToolOutput, ReasoningPart, ReasoningFilePart, Experimental_SandboxSession, Tool, ToolCall, IdGenerator, ToolExecutionOptions, MaybePromiseLike, InferToolContext, HasRequiredKey, Experimental_ToolCallerTool, TextPart, FilePart, Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
7
+ export { AssistantContent, AssistantModelMessage, DataContent, DownloadError, Experimental_SandboxProcess, Experimental_SandboxSession, Experimental_ToolCallerTool, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, ToolSet, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, experimental_toolCaller, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
8
8
  import { ServerResponse } from 'node:http';
9
9
  import { ServerResponse as ServerResponse$1 } from 'http';
10
10
  import { z } from 'zod/v4';
@@ -4610,6 +4610,21 @@ interface Agent<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, RUNTIME_CONTEX
4610
4610
  stream(options: AgentStreamParameters<CALL_OPTIONS, TOOLS, RUNTIME_CONTEXT>): PromiseLike<StreamTextResult<TOOLS, RUNTIME_CONTEXT, OUTPUT>>;
4611
4611
  }
4612
4612
 
4613
+ interface Experimental_ToolCallerReference<NAME extends string = string> {
4614
+ readonly toolName: NAME;
4615
+ }
4616
+ type ToolCallerName<TOOLS extends ToolSet> = {
4617
+ [NAME in keyof TOOLS]: TOOLS[NAME] extends Experimental_ToolCallerTool ? NAME : never;
4618
+ }[keyof TOOLS] & string;
4619
+ type ToolCallerReferenceUnion<TOOLS extends ToolSet> = {
4620
+ [NAME in ToolCallerName<TOOLS>]: Experimental_ToolCallerReference<NAME>;
4621
+ }[ToolCallerName<TOOLS>];
4622
+ type Experimental_ToolCallers<TOOLS extends ToolSet> = (callers: {
4623
+ [NAME in ToolCallerName<TOOLS>]: Experimental_ToolCallerReference<NAME>;
4624
+ }) => {
4625
+ [NAME in keyof TOOLS]?: ReadonlyArray<'direct' | ToolCallerReferenceUnion<TOOLS>>;
4626
+ };
4627
+
4613
4628
  type GenerateTextInclude = {
4614
4629
  /**
4615
4630
  * Whether to retain the request body in step results.
@@ -4699,7 +4714,7 @@ type GenerateTextInclude = {
4699
4714
  * @returns
4700
4715
  * A result object that contains the generated text, the results of the tool calls, and additional information.
4701
4716
  */
4702
- declare function generateText<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context = Context, OUTPUT extends Output = Output<string, string>>({ model: modelArg, tools, toolChoice, instructions, system, prompt, messages, allowSystemInMessages, maxRetries: maxRetriesArg, abortSignal, timeout, headers, stopWhen, experimental_sandbox: sandbox, output, toolApproval, experimental_toolApprovalSecret, experimental_telemetry, telemetry, providerOptions, activeTools, toolOrder, prepareStep, experimental_repairToolCall, repairToolCall, experimental_refineToolInput: refineToolInput, experimental_download: download, runtimeContext, toolsContext, experimental_include, include, _internal: { generateId, generateCallId, now, }, onStart, experimental_onStart, onStepStart, experimental_onStepStart, onLanguageModelCallStart, experimental_onLanguageModelCallStart, onLanguageModelCallEnd, experimental_onLanguageModelCallEnd, onToolExecutionStart, onToolExecutionEnd, experimental_onToolCallStart, experimental_onToolCallFinish, onStepEnd, onStepFinish, onFinish, onEnd, ...settings }: LanguageModelCallOptions & RequestOptions<TOOLS> & Prompt & ToolsContextParameter<TOOLS> & {
4717
+ declare function generateText<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context = Context, OUTPUT extends Output = Output<string, string>>({ model: modelArg, tools, toolChoice, instructions, system, prompt, messages, allowSystemInMessages, maxRetries: maxRetriesArg, abortSignal, timeout, headers, stopWhen, experimental_sandbox: sandbox, output, toolApproval, experimental_toolCallers, experimental_toolApprovalSecret, experimental_telemetry, telemetry, providerOptions, activeTools, toolOrder, prepareStep, experimental_repairToolCall, repairToolCall, experimental_refineToolInput: refineToolInput, experimental_download: download, runtimeContext, toolsContext, experimental_include, include, _internal: { generateId, generateCallId, now, }, onStart, experimental_onStart, onStepStart, experimental_onStepStart, onLanguageModelCallStart, experimental_onLanguageModelCallStart, onLanguageModelCallEnd, experimental_onLanguageModelCallEnd, onToolExecutionStart, onToolExecutionEnd, experimental_onToolCallStart, experimental_onToolCallFinish, onStepEnd, onStepFinish, onFinish, onEnd, ...settings }: LanguageModelCallOptions & RequestOptions<TOOLS> & Prompt & ToolsContextParameter<TOOLS> & {
4703
4718
  /**
4704
4719
  * The language model to use.
4705
4720
  */
@@ -4763,6 +4778,10 @@ declare function generateText<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Con
4763
4778
  * This configuration takes precedence over tool-defined approval settings.
4764
4779
  */
4765
4780
  toolApproval?: ToolApprovalConfiguration<TOOLS, RUNTIME_CONTEXT>;
4781
+ /**
4782
+ * Configures which caller tools may invoke each tool.
4783
+ */
4784
+ experimental_toolCallers?: Experimental_ToolCallers<NoInfer<TOOLS>>;
4766
4785
  /**
4767
4786
  * Secret for HMAC-signing tool approval requests. When set, the server
4768
4787
  * signs each approval request at issuance and verifies the signature when
@@ -9096,4 +9115,4 @@ declare function uploadSkill({ api, files, displayTitle, providerOptions, }: {
9096
9115
  files: UploadSkillFile[];
9097
9116
  }): Promise<UploadSkillResult>;
9098
9117
 
9099
- 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, 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, StreamTranslationResult as Experimental_StreamTranslationResult, Experimental_TranscriptionResult, TranslationStreamPart as Experimental_TranslationStreamPart, 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, NoTranslationGeneratedError, 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, StreamTranscriptionResult, 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, TranscriptionStreamPart, 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, detectToolDrift, 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, streamTranscribe as experimental_streamTranscribe, streamTranslate as experimental_streamTranslate, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, fingerprintTools, generateImage, generateObject, generateSpeech, generateText, getChunkTimeoutMs, getFirstChunkTimeoutMs, 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 };
9118
+ 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, 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, StreamTranslationResult as Experimental_StreamTranslationResult, Experimental_ToolCallerReference, Experimental_ToolCallers, Experimental_TranscriptionResult, TranslationStreamPart as Experimental_TranslationStreamPart, 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, NoTranslationGeneratedError, 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, StreamTranscriptionResult, 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, TranscriptionStreamPart, 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, detectToolDrift, 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, streamTranscribe as experimental_streamTranscribe, streamTranslate as experimental_streamTranslate, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, fingerprintTools, generateImage, generateObject, generateSpeech, generateText, getChunkTimeoutMs, getFirstChunkTimeoutMs, 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
@@ -10,6 +10,7 @@ import {
10
10
  asSchema as asSchema8,
11
11
  createIdGenerator as createIdGenerator9,
12
12
  dynamicTool,
13
+ experimental_toolCaller,
13
14
  generateId,
14
15
  jsonSchema,
15
16
  parseJsonEventStream as parseJsonEventStream3,
@@ -1142,7 +1143,7 @@ import {
1142
1143
  } from "@ai-sdk/provider-utils";
1143
1144
 
1144
1145
  // src/version.ts
1145
- var VERSION = true ? "7.0.42" : "0.0.0-test";
1146
+ var VERSION = true ? "7.0.43" : "0.0.0-test";
1146
1147
 
1147
1148
  // src/util/download/download.ts
1148
1149
  var download = async ({
@@ -4876,6 +4877,124 @@ function sortToolResultContentByToolCallOrder({
4876
4877
  );
4877
4878
  }
4878
4879
 
4880
+ // src/generate-text/tool-caller-configuration.ts
4881
+ import {
4882
+ experimental_getToolCaller
4883
+ } from "@ai-sdk/provider-utils";
4884
+ function resolveToolCallerConfiguration({
4885
+ tools,
4886
+ toolCallers
4887
+ }) {
4888
+ if (tools == null || toolCallers == null) {
4889
+ return void 0;
4890
+ }
4891
+ const namesByReference = /* @__PURE__ */ new WeakMap();
4892
+ const callerReferences = {};
4893
+ for (const [toolName, tool2] of Object.entries(tools)) {
4894
+ if (experimental_getToolCaller(tool2) == null) {
4895
+ continue;
4896
+ }
4897
+ const reference = Object.freeze({ toolName });
4898
+ namesByReference.set(reference, toolName);
4899
+ callerReferences[toolName] = reference;
4900
+ }
4901
+ const configuration = toolCallers(callerReferences);
4902
+ const resolved = {};
4903
+ for (const [toolName, callers] of Object.entries(configuration)) {
4904
+ if (!Object.prototype.hasOwnProperty.call(tools, toolName)) {
4905
+ throw new InvalidArgumentError({
4906
+ parameter: "experimental_toolCallers",
4907
+ value: configuration,
4908
+ message: `unknown tool "${toolName}".`
4909
+ });
4910
+ }
4911
+ if (!Array.isArray(callers)) {
4912
+ throw new InvalidArgumentError({
4913
+ parameter: "experimental_toolCallers",
4914
+ value: configuration,
4915
+ message: `callers for tool "${toolName}" must be an array.`
4916
+ });
4917
+ }
4918
+ resolved[toolName] = callers.map((caller) => {
4919
+ if (caller === "direct") {
4920
+ return caller;
4921
+ }
4922
+ const callerName = caller != null && typeof caller === "object" ? namesByReference.get(caller) : void 0;
4923
+ if (callerName == null) {
4924
+ throw new InvalidArgumentError({
4925
+ parameter: "experimental_toolCallers",
4926
+ value: configuration,
4927
+ message: `tool "${toolName}" contains an invalid caller reference.`
4928
+ });
4929
+ }
4930
+ return callerName;
4931
+ });
4932
+ }
4933
+ return resolved;
4934
+ }
4935
+ function prepareToolsForToolCallers({
4936
+ tools,
4937
+ toolCallers
4938
+ }) {
4939
+ var _a23, _b;
4940
+ if (tools == null || toolCallers == null) {
4941
+ return { executionTools: tools, modelTools: tools };
4942
+ }
4943
+ const executionTools = { ...tools };
4944
+ const modelTools = { ...tools };
4945
+ const localToolsByCaller = /* @__PURE__ */ new Map();
4946
+ for (const [toolName, callerNames] of Object.entries(toolCallers)) {
4947
+ const tool2 = executionTools[toolName];
4948
+ if (tool2 == null) {
4949
+ continue;
4950
+ }
4951
+ let availableDirectly = false;
4952
+ let availableToProvider = false;
4953
+ let preparedTool = tool2;
4954
+ for (const callerName of callerNames) {
4955
+ if (callerName === "direct") {
4956
+ availableDirectly = true;
4957
+ continue;
4958
+ }
4959
+ const caller = experimental_getToolCaller(executionTools[callerName]);
4960
+ if (caller == null) {
4961
+ continue;
4962
+ }
4963
+ if (caller.type === "provider") {
4964
+ availableToProvider = true;
4965
+ preparedTool = {
4966
+ ...preparedTool,
4967
+ providerOptions: caller.prepareProviderOptions(
4968
+ preparedTool.providerOptions
4969
+ )
4970
+ };
4971
+ } else {
4972
+ const localTools = (_a23 = localToolsByCaller.get(callerName)) != null ? _a23 : {};
4973
+ localTools[toolName] = preparedTool;
4974
+ localToolsByCaller.set(callerName, localTools);
4975
+ }
4976
+ }
4977
+ executionTools[toolName] = preparedTool;
4978
+ if (availableDirectly || availableToProvider) {
4979
+ modelTools[toolName] = preparedTool;
4980
+ } else {
4981
+ delete modelTools[toolName];
4982
+ }
4983
+ }
4984
+ for (const [callerName, callerTool] of Object.entries(executionTools)) {
4985
+ const caller = experimental_getToolCaller(callerTool);
4986
+ if ((caller == null ? void 0 : caller.type) !== "local") {
4987
+ continue;
4988
+ }
4989
+ const boundCaller = caller.bind((_b = localToolsByCaller.get(callerName)) != null ? _b : {});
4990
+ executionTools[callerName] = boundCaller;
4991
+ if (Object.prototype.hasOwnProperty.call(modelTools, callerName)) {
4992
+ modelTools[callerName] = boundCaller;
4993
+ }
4994
+ }
4995
+ return { executionTools, modelTools };
4996
+ }
4997
+
4879
4998
  // src/generate-text/tool-approval-signature.ts
4880
4999
  import { convertBase64ToUint8Array as convertBase64ToUint8Array2 } from "@ai-sdk/provider-utils";
4881
5000
 
@@ -5102,6 +5221,7 @@ async function generateText({
5102
5221
  experimental_sandbox: sandbox,
5103
5222
  output,
5104
5223
  toolApproval,
5224
+ experimental_toolCallers,
5105
5225
  experimental_toolApprovalSecret,
5106
5226
  experimental_telemetry,
5107
5227
  telemetry = experimental_telemetry,
@@ -5147,6 +5267,10 @@ async function generateText({
5147
5267
  responseBody: (_c = include == null ? void 0 : include.responseBody) != null ? _c : false
5148
5268
  };
5149
5269
  const model = resolveLanguageModel(modelArg);
5270
+ const resolvedToolCallers = resolveToolCallerConfiguration({
5271
+ tools,
5272
+ toolCallers: experimental_toolCallers
5273
+ });
5150
5274
  const stopConditions = asArray5(stopWhen);
5151
5275
  const resolvedOnStart = onStart != null ? onStart : experimental_onStart;
5152
5276
  const resolvedOnStepStart = onStepStart != null ? onStepStart : experimental_onStepStart;
@@ -5385,9 +5509,16 @@ async function generateText({
5385
5509
  tools,
5386
5510
  activeTools: (_h = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _h : activeTools
5387
5511
  });
5512
+ const {
5513
+ executionTools: stepExecutionTools,
5514
+ modelTools: stepModelTools
5515
+ } = prepareToolsForToolCallers({
5516
+ tools: stepActiveTools,
5517
+ toolCallers: resolvedToolCallers
5518
+ });
5388
5519
  const stepToolOrder = (_i = prepareStepResult == null ? void 0 : prepareStepResult.toolOrder) != null ? _i : toolOrder;
5389
5520
  const stepTools = await prepareTools({
5390
- tools: stepActiveTools,
5521
+ tools: stepModelTools,
5391
5522
  toolOrder: stepToolOrder,
5392
5523
  // active tools context is a subset of the tools context, so we can cast to the unknown type
5393
5524
  toolsContext,
@@ -5488,7 +5619,7 @@ async function generateText({
5488
5619
  ).map(
5489
5620
  (toolCall) => parseToolCall({
5490
5621
  toolCall,
5491
- tools,
5622
+ tools: stepExecutionTools,
5492
5623
  repairToolCall,
5493
5624
  refineToolInput,
5494
5625
  instructions: stepInstructions,
@@ -5543,7 +5674,7 @@ async function generateText({
5543
5674
  if (toolCall.invalid) {
5544
5675
  continue;
5545
5676
  }
5546
- const tool2 = getOwn(tools, toolCall.toolName);
5677
+ const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
5547
5678
  if (tool2 == null) {
5548
5679
  continue;
5549
5680
  }
@@ -5565,7 +5696,7 @@ async function generateText({
5565
5696
  });
5566
5697
  }
5567
5698
  const toolApprovalStatus = await resolveToolApproval({
5568
- tools,
5699
+ tools: stepExecutionTools,
5569
5700
  toolApproval,
5570
5701
  toolCall,
5571
5702
  messages: stepMessages,
@@ -5655,12 +5786,12 @@ async function generateText({
5655
5786
  (toolApprovalResponse) => toolApprovalResponse.approved === false
5656
5787
  );
5657
5788
  const toolExecutionMs = {};
5658
- if (tools != null) {
5789
+ if (stepExecutionTools != null) {
5659
5790
  const toolExecutionResults = await executeTools({
5660
5791
  toolCalls: clientToolCalls.filter(
5661
5792
  (toolCall) => !toolCall.invalid && !blockedToolCallIds.has(toolCall.toolCallId)
5662
5793
  ),
5663
- tools,
5794
+ tools: stepExecutionTools,
5664
5795
  callId,
5665
5796
  messages: stepMessages,
5666
5797
  abortSignal: mergedAbortSignal,
@@ -5712,7 +5843,7 @@ async function generateText({
5712
5843
  for (const toolCall of stepToolCalls) {
5713
5844
  if (!toolCall.providerExecuted)
5714
5845
  continue;
5715
- const tool2 = getOwn(tools, toolCall.toolName);
5846
+ const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
5716
5847
  if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
5717
5848
  const hasResultInResponse = currentModelResponse.content.some(
5718
5849
  (part) => part.type === "tool-result" && part.toolCallId === toolCall.toolCallId
@@ -17625,6 +17756,7 @@ export {
17625
17756
  streamLanguageModelCall as experimental_streamLanguageModelCall,
17626
17757
  streamTranscribe as experimental_streamTranscribe,
17627
17758
  streamTranslate as experimental_streamTranslate,
17759
+ experimental_toolCaller,
17628
17760
  experimental_transcribe,
17629
17761
  extractJsonMiddleware,
17630
17762
  extractReasoningMiddleware,