ai 7.0.41 → 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 +25 -0
- package/dist/index.d.ts +35 -9
- package/dist/index.js +175 -12
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +2 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/docs/03-agents/02-building-agents.mdx +4 -0
- package/docs/03-agents/04-loop-control.mdx +40 -0
- package/docs/03-ai-sdk-core/18-code-mode.mdx +246 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +1 -0
- package/docs/03-ai-sdk-core/65-devtools.mdx +47 -1
- package/docs/03-ai-sdk-core/index.mdx +6 -0
- package/docs/06-advanced/11-secure-url-fetching.mdx +18 -24
- package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +75 -3
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +64 -1
- package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +1 -1
- package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +7 -0
- package/package.json +4 -4
- package/src/generate-text/generate-text-result.ts +3 -1
- package/src/generate-text/generate-text.ts +40 -9
- package/src/generate-text/index.ts +4 -0
- package/src/generate-text/prepare-step-call-settings.ts +31 -0
- package/src/generate-text/prepare-step.ts +8 -3
- package/src/generate-text/step-result.ts +2 -1
- package/src/generate-text/stream-text.ts +16 -2
- package/src/generate-text/tool-caller-configuration.ts +186 -0
- package/src/index.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
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
|
+
|
|
14
|
+
## 7.0.42
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 1659cd5: Prevent validated downloads on Node.js from reaching private or internal services through DNS aliases or DNS rebinding by validating and pinning every resolved address at connection time.
|
|
19
|
+
- 60f97f6: support overriding model call settings for individual `prepareStep` invocations
|
|
20
|
+
- 6a5bdff: Fix validated Node.js downloads when the HTTP connector requests a single DNS address.
|
|
21
|
+
- 6de2ec1: Preserve provider metadata from empty text deltas in `streamText`.
|
|
22
|
+
- Updated dependencies [1659cd5]
|
|
23
|
+
- Updated dependencies [6a5bdff]
|
|
24
|
+
- Updated dependencies [0012529]
|
|
25
|
+
- @ai-sdk/provider-utils@5.0.15
|
|
26
|
+
- @ai-sdk/gateway@4.0.32
|
|
27
|
+
|
|
3
28
|
## 7.0.41
|
|
4
29
|
|
|
5
30
|
### 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';
|
|
@@ -1423,7 +1423,8 @@ type StepResult<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context = Context
|
|
|
1423
1423
|
*/
|
|
1424
1424
|
readonly content: Array<ContentPart<TOOLS>>;
|
|
1425
1425
|
/**
|
|
1426
|
-
* The
|
|
1426
|
+
* The concatenation of all text parts generated in this step.
|
|
1427
|
+
* It is an empty string if the step contains no text parts.
|
|
1427
1428
|
*/
|
|
1428
1429
|
readonly text: string;
|
|
1429
1430
|
/**
|
|
@@ -1680,9 +1681,13 @@ type PrepareStepFunction<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context
|
|
|
1680
1681
|
}) => PromiseLike<PrepareStepResult<TOOLS, RUNTIME_CONTEXT>> | PrepareStepResult<TOOLS, RUNTIME_CONTEXT>;
|
|
1681
1682
|
/**
|
|
1682
1683
|
* The result type returned by a {@link PrepareStepFunction},
|
|
1683
|
-
* allowing per-step overrides of model,
|
|
1684
|
+
* allowing per-step overrides of model call settings, model, tools,
|
|
1685
|
+
* instructions, or messages.
|
|
1686
|
+
*
|
|
1687
|
+
* Model call setting overrides apply only to the current step. Undefined
|
|
1688
|
+
* settings fall back to the outer call settings.
|
|
1684
1689
|
*/
|
|
1685
|
-
type PrepareStepResult<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context = Context> = {
|
|
1690
|
+
type PrepareStepResult<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context = Context> = ({
|
|
1686
1691
|
/**
|
|
1687
1692
|
* Optionally override which LanguageModel instance is used for this step.
|
|
1688
1693
|
*/
|
|
@@ -1746,7 +1751,7 @@ type PrepareStepResult<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Context =
|
|
|
1746
1751
|
* container IDs for Anthropic's code execution.
|
|
1747
1752
|
*/
|
|
1748
1753
|
providerOptions?: ProviderOptions;
|
|
1749
|
-
} | undefined;
|
|
1754
|
+
} & LanguageModelCallOptions) | undefined;
|
|
1750
1755
|
|
|
1751
1756
|
/**
|
|
1752
1757
|
* A predicate that decides whether a tool-calling loop should stop after the
|
|
@@ -4337,7 +4342,9 @@ interface GenerateTextResult<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Cont
|
|
|
4337
4342
|
*/
|
|
4338
4343
|
readonly content: Array<ContentPart<TOOLS>>;
|
|
4339
4344
|
/**
|
|
4340
|
-
* The text
|
|
4345
|
+
* The concatenation of all text parts generated in the final step.
|
|
4346
|
+
* It is an empty string if the final step contains no text parts.
|
|
4347
|
+
* Inspect `finalStep.content` to distinguish that case.
|
|
4341
4348
|
*/
|
|
4342
4349
|
readonly text: string;
|
|
4343
4350
|
/**
|
|
@@ -4603,6 +4610,21 @@ interface Agent<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, RUNTIME_CONTEX
|
|
|
4603
4610
|
stream(options: AgentStreamParameters<CALL_OPTIONS, TOOLS, RUNTIME_CONTEXT>): PromiseLike<StreamTextResult<TOOLS, RUNTIME_CONTEXT, OUTPUT>>;
|
|
4604
4611
|
}
|
|
4605
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
|
+
|
|
4606
4628
|
type GenerateTextInclude = {
|
|
4607
4629
|
/**
|
|
4608
4630
|
* Whether to retain the request body in step results.
|
|
@@ -4692,7 +4714,7 @@ type GenerateTextInclude = {
|
|
|
4692
4714
|
* @returns
|
|
4693
4715
|
* A result object that contains the generated text, the results of the tool calls, and additional information.
|
|
4694
4716
|
*/
|
|
4695
|
-
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> & {
|
|
4696
4718
|
/**
|
|
4697
4719
|
* The language model to use.
|
|
4698
4720
|
*/
|
|
@@ -4756,6 +4778,10 @@ declare function generateText<TOOLS extends ToolSet, RUNTIME_CONTEXT extends Con
|
|
|
4756
4778
|
* This configuration takes precedence over tool-defined approval settings.
|
|
4757
4779
|
*/
|
|
4758
4780
|
toolApproval?: ToolApprovalConfiguration<TOOLS, RUNTIME_CONTEXT>;
|
|
4781
|
+
/**
|
|
4782
|
+
* Configures which caller tools may invoke each tool.
|
|
4783
|
+
*/
|
|
4784
|
+
experimental_toolCallers?: Experimental_ToolCallers<NoInfer<TOOLS>>;
|
|
4759
4785
|
/**
|
|
4760
4786
|
* Secret for HMAC-signing tool approval requests. When set, the server
|
|
4761
4787
|
* signs each approval request at issuance and verifies the signature when
|
|
@@ -9089,4 +9115,4 @@ declare function uploadSkill({ api, files, displayTitle, providerOptions, }: {
|
|
|
9089
9115
|
files: UploadSkillFile[];
|
|
9090
9116
|
}): Promise<UploadSkillResult>;
|
|
9091
9117
|
|
|
9092
|
-
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.
|
|
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 ({
|
|
@@ -3955,6 +3956,25 @@ async function doParseToolCall({
|
|
|
3955
3956
|
};
|
|
3956
3957
|
}
|
|
3957
3958
|
|
|
3959
|
+
// src/generate-text/prepare-step-call-settings.ts
|
|
3960
|
+
function prepareStepCallSettings({
|
|
3961
|
+
callSettings,
|
|
3962
|
+
stepSettings
|
|
3963
|
+
}) {
|
|
3964
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
3965
|
+
return prepareLanguageModelCallOptions({
|
|
3966
|
+
maxOutputTokens: (_a23 = stepSettings == null ? void 0 : stepSettings.maxOutputTokens) != null ? _a23 : callSettings.maxOutputTokens,
|
|
3967
|
+
temperature: (_b = stepSettings == null ? void 0 : stepSettings.temperature) != null ? _b : callSettings.temperature,
|
|
3968
|
+
topP: (_c = stepSettings == null ? void 0 : stepSettings.topP) != null ? _c : callSettings.topP,
|
|
3969
|
+
topK: (_d = stepSettings == null ? void 0 : stepSettings.topK) != null ? _d : callSettings.topK,
|
|
3970
|
+
presencePenalty: (_e = stepSettings == null ? void 0 : stepSettings.presencePenalty) != null ? _e : callSettings.presencePenalty,
|
|
3971
|
+
frequencyPenalty: (_f = stepSettings == null ? void 0 : stepSettings.frequencyPenalty) != null ? _f : callSettings.frequencyPenalty,
|
|
3972
|
+
stopSequences: (_g = stepSettings == null ? void 0 : stepSettings.stopSequences) != null ? _g : callSettings.stopSequences,
|
|
3973
|
+
seed: (_h = stepSettings == null ? void 0 : stepSettings.seed) != null ? _h : callSettings.seed,
|
|
3974
|
+
reasoning: (_i = stepSettings == null ? void 0 : stepSettings.reasoning) != null ? _i : callSettings.reasoning
|
|
3975
|
+
});
|
|
3976
|
+
}
|
|
3977
|
+
|
|
3958
3978
|
// src/generate-text/reasoning-output.ts
|
|
3959
3979
|
function unwrapReasoningFileData(data) {
|
|
3960
3980
|
if (typeof data === "object" && data !== null && "type" in data) {
|
|
@@ -4857,6 +4877,124 @@ function sortToolResultContentByToolCallOrder({
|
|
|
4857
4877
|
);
|
|
4858
4878
|
}
|
|
4859
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
|
+
|
|
4860
4998
|
// src/generate-text/tool-approval-signature.ts
|
|
4861
4999
|
import { convertBase64ToUint8Array as convertBase64ToUint8Array2 } from "@ai-sdk/provider-utils";
|
|
4862
5000
|
|
|
@@ -5083,6 +5221,7 @@ async function generateText({
|
|
|
5083
5221
|
experimental_sandbox: sandbox,
|
|
5084
5222
|
output,
|
|
5085
5223
|
toolApproval,
|
|
5224
|
+
experimental_toolCallers,
|
|
5086
5225
|
experimental_toolApprovalSecret,
|
|
5087
5226
|
experimental_telemetry,
|
|
5088
5227
|
telemetry = experimental_telemetry,
|
|
@@ -5128,6 +5267,10 @@ async function generateText({
|
|
|
5128
5267
|
responseBody: (_c = include == null ? void 0 : include.responseBody) != null ? _c : false
|
|
5129
5268
|
};
|
|
5130
5269
|
const model = resolveLanguageModel(modelArg);
|
|
5270
|
+
const resolvedToolCallers = resolveToolCallerConfiguration({
|
|
5271
|
+
tools,
|
|
5272
|
+
toolCallers: experimental_toolCallers
|
|
5273
|
+
});
|
|
5131
5274
|
const stopConditions = asArray5(stopWhen);
|
|
5132
5275
|
const resolvedOnStart = onStart != null ? onStart : experimental_onStart;
|
|
5133
5276
|
const resolvedOnStepStart = onStepStart != null ? onStepStart : experimental_onStepStart;
|
|
@@ -5366,9 +5509,16 @@ async function generateText({
|
|
|
5366
5509
|
tools,
|
|
5367
5510
|
activeTools: (_h = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _h : activeTools
|
|
5368
5511
|
});
|
|
5512
|
+
const {
|
|
5513
|
+
executionTools: stepExecutionTools,
|
|
5514
|
+
modelTools: stepModelTools
|
|
5515
|
+
} = prepareToolsForToolCallers({
|
|
5516
|
+
tools: stepActiveTools,
|
|
5517
|
+
toolCallers: resolvedToolCallers
|
|
5518
|
+
});
|
|
5369
5519
|
const stepToolOrder = (_i = prepareStepResult == null ? void 0 : prepareStepResult.toolOrder) != null ? _i : toolOrder;
|
|
5370
5520
|
const stepTools = await prepareTools({
|
|
5371
|
-
tools:
|
|
5521
|
+
tools: stepModelTools,
|
|
5372
5522
|
toolOrder: stepToolOrder,
|
|
5373
5523
|
// active tools context is a subset of the tools context, so we can cast to the unknown type
|
|
5374
5524
|
toolsContext,
|
|
@@ -5382,6 +5532,10 @@ async function generateText({
|
|
|
5382
5532
|
providerOptions,
|
|
5383
5533
|
prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
|
|
5384
5534
|
);
|
|
5535
|
+
const stepCallSettings = prepareStepCallSettings({
|
|
5536
|
+
callSettings: callSettings2,
|
|
5537
|
+
stepSettings: prepareStepResult
|
|
5538
|
+
});
|
|
5385
5539
|
await notify({
|
|
5386
5540
|
event: {
|
|
5387
5541
|
callId,
|
|
@@ -5414,7 +5568,7 @@ async function generateText({
|
|
|
5414
5568
|
instructions: stepInstructions,
|
|
5415
5569
|
messages: stepMessages,
|
|
5416
5570
|
tools: stepTools,
|
|
5417
|
-
...
|
|
5571
|
+
...stepCallSettings
|
|
5418
5572
|
};
|
|
5419
5573
|
const languageModelCallStartEvent = {
|
|
5420
5574
|
callId,
|
|
@@ -5435,7 +5589,7 @@ async function generateText({
|
|
|
5435
5589
|
{
|
|
5436
5590
|
...languageModelCallStartEvent,
|
|
5437
5591
|
execute: async () => await stepModel.doGenerate({
|
|
5438
|
-
...
|
|
5592
|
+
...stepCallSettings,
|
|
5439
5593
|
tools: stepTools,
|
|
5440
5594
|
toolChoice: stepToolChoice,
|
|
5441
5595
|
responseFormat: await (output == null ? void 0 : output.responseFormat),
|
|
@@ -5465,7 +5619,7 @@ async function generateText({
|
|
|
5465
5619
|
).map(
|
|
5466
5620
|
(toolCall) => parseToolCall({
|
|
5467
5621
|
toolCall,
|
|
5468
|
-
tools,
|
|
5622
|
+
tools: stepExecutionTools,
|
|
5469
5623
|
repairToolCall,
|
|
5470
5624
|
refineToolInput,
|
|
5471
5625
|
instructions: stepInstructions,
|
|
@@ -5520,7 +5674,7 @@ async function generateText({
|
|
|
5520
5674
|
if (toolCall.invalid) {
|
|
5521
5675
|
continue;
|
|
5522
5676
|
}
|
|
5523
|
-
const tool2 = getOwn(
|
|
5677
|
+
const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
|
|
5524
5678
|
if (tool2 == null) {
|
|
5525
5679
|
continue;
|
|
5526
5680
|
}
|
|
@@ -5542,7 +5696,7 @@ async function generateText({
|
|
|
5542
5696
|
});
|
|
5543
5697
|
}
|
|
5544
5698
|
const toolApprovalStatus = await resolveToolApproval({
|
|
5545
|
-
tools,
|
|
5699
|
+
tools: stepExecutionTools,
|
|
5546
5700
|
toolApproval,
|
|
5547
5701
|
toolCall,
|
|
5548
5702
|
messages: stepMessages,
|
|
@@ -5632,12 +5786,12 @@ async function generateText({
|
|
|
5632
5786
|
(toolApprovalResponse) => toolApprovalResponse.approved === false
|
|
5633
5787
|
);
|
|
5634
5788
|
const toolExecutionMs = {};
|
|
5635
|
-
if (
|
|
5789
|
+
if (stepExecutionTools != null) {
|
|
5636
5790
|
const toolExecutionResults = await executeTools({
|
|
5637
5791
|
toolCalls: clientToolCalls.filter(
|
|
5638
5792
|
(toolCall) => !toolCall.invalid && !blockedToolCallIds.has(toolCall.toolCallId)
|
|
5639
5793
|
),
|
|
5640
|
-
tools,
|
|
5794
|
+
tools: stepExecutionTools,
|
|
5641
5795
|
callId,
|
|
5642
5796
|
messages: stepMessages,
|
|
5643
5797
|
abortSignal: mergedAbortSignal,
|
|
@@ -5689,7 +5843,7 @@ async function generateText({
|
|
|
5689
5843
|
for (const toolCall of stepToolCalls) {
|
|
5690
5844
|
if (!toolCall.providerExecuted)
|
|
5691
5845
|
continue;
|
|
5692
|
-
const tool2 = getOwn(
|
|
5846
|
+
const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
|
|
5693
5847
|
if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
|
|
5694
5848
|
const hasResultInResponse = currentModelResponse.content.some(
|
|
5695
5849
|
(part) => part.type === "tool-result" && part.toolCallId === toolCall.toolCallId
|
|
@@ -8777,6 +8931,10 @@ function createOutputTransformStream(output) {
|
|
|
8777
8931
|
text2 += chunk.text;
|
|
8778
8932
|
textChunk += chunk.text;
|
|
8779
8933
|
textProviderMetadata = (_a23 = chunk.providerMetadata) != null ? _a23 : textProviderMetadata;
|
|
8934
|
+
if (chunk.text.length === 0 && chunk.providerMetadata != null) {
|
|
8935
|
+
controller.enqueue({ part: chunk, partialOutput: void 0 });
|
|
8936
|
+
return;
|
|
8937
|
+
}
|
|
8780
8938
|
const result = await output.parsePartialOutput({ text: text2 });
|
|
8781
8939
|
if (result !== void 0) {
|
|
8782
8940
|
const currentValue = typeof result.partial === "string" ? result.partial : JSON.stringify(result.partial);
|
|
@@ -9480,6 +9638,10 @@ var DefaultStreamTextResult = class {
|
|
|
9480
9638
|
providerOptions,
|
|
9481
9639
|
prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
|
|
9482
9640
|
);
|
|
9641
|
+
const stepCallSettings = prepareStepCallSettings({
|
|
9642
|
+
callSettings,
|
|
9643
|
+
stepSettings: prepareStepResult
|
|
9644
|
+
});
|
|
9483
9645
|
const stepStartTimestampMs = now2();
|
|
9484
9646
|
const { retry } = prepareRetries({ maxRetries, abortSignal });
|
|
9485
9647
|
const {
|
|
@@ -9547,7 +9709,7 @@ var DefaultStreamTextResult = class {
|
|
|
9547
9709
|
_internal: {
|
|
9548
9710
|
now: now2
|
|
9549
9711
|
},
|
|
9550
|
-
...
|
|
9712
|
+
...stepCallSettings
|
|
9551
9713
|
});
|
|
9552
9714
|
}
|
|
9553
9715
|
)
|
|
@@ -9664,7 +9826,7 @@ var DefaultStreamTextResult = class {
|
|
|
9664
9826
|
break;
|
|
9665
9827
|
}
|
|
9666
9828
|
case "text-delta": {
|
|
9667
|
-
if (chunk.text.length > 0) {
|
|
9829
|
+
if (chunk.text.length > 0 || chunk.providerMetadata != null) {
|
|
9668
9830
|
controller.enqueue(chunk);
|
|
9669
9831
|
}
|
|
9670
9832
|
break;
|
|
@@ -17594,6 +17756,7 @@ export {
|
|
|
17594
17756
|
streamLanguageModelCall as experimental_streamLanguageModelCall,
|
|
17595
17757
|
streamTranscribe as experimental_streamTranscribe,
|
|
17596
17758
|
streamTranslate as experimental_streamTranslate,
|
|
17759
|
+
experimental_toolCaller,
|
|
17597
17760
|
experimental_transcribe,
|
|
17598
17761
|
extractJsonMiddleware,
|
|
17599
17762
|
extractReasoningMiddleware,
|