@ai-sdk/provider-utils 5.0.16 → 5.0.18

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,18 @@
1
1
  # @ai-sdk/provider-utils
2
2
 
3
+ ## 5.0.18
4
+
5
+ ### Patch Changes
6
+
7
+ - 5fc7da5: chore: centralize empty language model usage creation in provider utilities.
8
+ - 93b2acd: chore: centralize response metadata conversion
9
+
10
+ ## 5.0.17
11
+
12
+ ### Patch Changes
13
+
14
+ - fa95504: feat(ai): support experimental tool callers in ToolLoopAgent
15
+
3
16
  ## 5.0.16
4
17
 
5
18
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SharedV4FileDataUrl, SharedV4FileDataReference, SharedV4FileDataText, SharedV4ProviderOptions, SharedV4ProviderReference, JSONValue, ImageModelV4File, LanguageModelV4FunctionTool, LanguageModelV4ProviderTool, AISDKError, JSONSchema7, JSONParseError, TypeValidationError, APICallError, LanguageModelV4Prompt, LanguageModelV4CallOptions, SharedV4Warning, JSONObject, LanguageModelV4FilePart, LanguageModelV4StreamPart, SharedV4ProviderMetadata, Experimental_TranscriptionModelV4StreamPart, TypeValidationContext } from '@ai-sdk/provider';
1
+ import { SharedV4FileDataUrl, SharedV4FileDataReference, SharedV4FileDataText, SharedV4ProviderOptions, SharedV4ProviderReference, JSONValue, ImageModelV4File, LanguageModelV4ResponseMetadata, LanguageModelV4Usage, LanguageModelV4FunctionTool, LanguageModelV4ProviderTool, AISDKError, JSONSchema7, JSONParseError, TypeValidationError, APICallError, LanguageModelV4Prompt, LanguageModelV4CallOptions, SharedV4Warning, JSONObject, LanguageModelV4FilePart, LanguageModelV4StreamPart, SharedV4ProviderMetadata, Experimental_TranscriptionModelV4StreamPart, TypeValidationContext } from '@ai-sdk/provider';
2
2
  export { getErrorMessage } from '@ai-sdk/provider';
3
3
  import { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec';
4
4
  export * from '@standard-schema/spec';
@@ -679,6 +679,21 @@ declare function convertToFormData<T extends Record<string, unknown>>(input: T,
679
679
  useArrayBrackets?: boolean;
680
680
  }): FormData;
681
681
 
682
+ /**
683
+ * Converts common provider response fields into language model response
684
+ * metadata.
685
+ */
686
+ declare function createLanguageModelResponseMetadata({ id, model, created, }: {
687
+ id?: string | null;
688
+ model?: string | null;
689
+ created?: number | null;
690
+ }): LanguageModelV4ResponseMetadata;
691
+
692
+ /**
693
+ * Creates an empty language model usage result for unavailable usage data.
694
+ */
695
+ declare function createNullLanguageModelUsage(): LanguageModelV4Usage;
696
+
682
697
  /**
683
698
  * Interface for mapping between custom tool names and provider tool names.
684
699
  */
@@ -2609,7 +2624,6 @@ interface ToolCall<NAME extends string, INPUT> {
2609
2624
  dynamic?: boolean;
2610
2625
  }
2611
2626
 
2612
- declare const toolCallerSymbol: unique symbol;
2613
2627
  type ToolCallerDefinition = {
2614
2628
  type: 'local';
2615
2629
  bind: (tools: ToolSet) => Tool;
@@ -2618,7 +2632,7 @@ type ToolCallerDefinition = {
2618
2632
  prepareProviderOptions: (providerOptions: ProviderOptions | undefined) => ProviderOptions;
2619
2633
  };
2620
2634
  type ToolCallerTool<TOOL extends Tool = Tool> = TOOL & {
2621
- readonly [toolCallerSymbol]: ToolCallerDefinition;
2635
+ readonly experimental_toolCaller: ToolCallerDefinition;
2622
2636
  };
2623
2637
  declare function toolCaller<TOOL extends Tool>(tool: TOOL, definition: ToolCallerDefinition): ToolCallerTool<TOOL>;
2624
2638
  declare function getToolCaller(tool: Tool | undefined): ToolCallerDefinition | undefined;
@@ -2654,4 +2668,4 @@ interface ToolResult<NAME extends string, INPUT, OUTPUT> {
2654
2668
  dynamic?: boolean;
2655
2669
  }
2656
2670
 
2657
- export { type Arrayable, type AssistantContent, type AssistantModelMessage, type Context, type CustomPart, DEFAULT_MAX_DOWNLOAD_SIZE, type DataContent, DelayedPromise, DownloadError, type DynamicTool, TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE as EXPERIMENTAL_TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE, TRANSCRIPTION_STREAM_START_FRAME_TYPE as EXPERIMENTAL_TRANSCRIPTION_STREAM_START_FRAME_TYPE, type ExecutableTool, type SandboxProcess as Experimental_SandboxProcess, type SandboxSession as Experimental_SandboxSession, type ToolCallerDefinition as Experimental_ToolCallerDefinition, type ToolCallerTool as Experimental_ToolCallerTool, type TranscriptionStreamClientFrame as Experimental_TranscriptionStreamClientFrame, type TranscriptionStreamStartFrame as Experimental_TranscriptionStreamStartFrame, type FetchFunction, type FileData, type FileDataData, type FileDataReference, type FileDataText, type FileDataUrl, type FilePart, type FlexibleSchema, type FunctionTool, type HasRequiredKey, type IdGenerator, type ImagePart, type InferSchema, type InferToolContext, type InferToolInput, type InferToolOutput, type InferToolSetContext, type LazySchema, type MaybePromiseLike, type ModelMessage, type ParseResult, type ProviderDefinedTool, type ProviderDefinedToolFactory, type ProviderDefinedToolFactoryWithOutputSchema, type ProviderExecutedTool, type ProviderExecutedToolFactory, type ProviderOptions, type ProviderReference, type ReasoningFilePart, type ReasoningPart, type Resolvable, type ResponseHandler, type RetryDelayProvider, type RetryErrorFactory, type RetryErrorReason, type RetryFunction, type Schema, SerializationError, type ShouldRetryFunction, type StreamingToolCallDelta, StreamingToolCallTracker, type StreamingToolCallTrackerOptions, type SystemModelMessage, type TextPart, type Tool, type ToolApprovalRequest, type ToolApprovalResponse, type ToolCall, type ToolCallPart, type ToolContent, type ToolExecuteFunction, type ToolExecutionOptions, type ToolModelMessage, type ToolNameMapping, type ToolNeedsApprovalFunction, type ToolResult, type ToolResultOutput, type ToolResultPart, type ToolSet, type UserContent, type UserModelMessage, VERSION, type ValidationResult, type WebSocketConnection, type WebSocketConstructor, type WebSocketLike, asArray, asSchema, cancelResponseBody, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertImageModelFileToDataUri, convertInlineFileDataToUint8Array, convertToBase64, convertToFormData, convertUint8ArrayToBase64, createBinaryResponseHandler, createEventSourceResponseHandler, createIdGenerator, createJsonErrorResponseHandler, createJsonResponseHandler, createProviderDefinedToolFactory, createProviderDefinedToolFactoryWithOutputSchema, createProviderExecutedToolFactory, createStatusCodeErrorResponseHandler, createToolNameMapping, delay, detectMediaType, downloadBlob, dynamicTool, executeTool, getToolCaller as experimental_getToolCaller, parseTranscriptionStreamClientFrame as experimental_parseTranscriptionStreamClientFrame, parseTranscriptionStreamPart as experimental_parseTranscriptionStreamPart, serializeTranscriptionStreamPart as experimental_serializeTranscriptionStreamPart, toolCaller as experimental_toolCaller, extractLines, extractResponseHeaders, fetchWithValidatedRedirects, filterNullable, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, getWebSocketConstructor, injectJsonInstructionIntoMessages, isAbortError, isBrowserRuntime, isBuffer, isCustomReasoning, isExecutableTool, isFullMediaType, isNonNullable, isParsableJson, isProviderReference, isRecord, isSameOrigin, isUrlSupported, jsonSchema, lazySchema, loadApiKey, loadOptionalSetting, loadSetting, mapReasoningToProviderBudget, mapReasoningToProviderEffort, mediaTypeToExtension, normalizeHeaders, parseJSON, parseJsonEventStream, parseProviderOptions, postFormDataToApi, postJsonToApi, postToApi, readResponseWithSizeLimit, readWebSocketMessageText, removeUndefinedEntries, resolve, resolveFullMediaType, resolveProviderReference, retryWithExponentialBackoff, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, stripFileExtension, toWebSocketUrl, tool, validateBaseURL, validateDownloadUrl, validateTypes, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema };
2671
+ export { type Arrayable, type AssistantContent, type AssistantModelMessage, type Context, type CustomPart, DEFAULT_MAX_DOWNLOAD_SIZE, type DataContent, DelayedPromise, DownloadError, type DynamicTool, TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE as EXPERIMENTAL_TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE, TRANSCRIPTION_STREAM_START_FRAME_TYPE as EXPERIMENTAL_TRANSCRIPTION_STREAM_START_FRAME_TYPE, type ExecutableTool, type SandboxProcess as Experimental_SandboxProcess, type SandboxSession as Experimental_SandboxSession, type ToolCallerDefinition as Experimental_ToolCallerDefinition, type ToolCallerTool as Experimental_ToolCallerTool, type TranscriptionStreamClientFrame as Experimental_TranscriptionStreamClientFrame, type TranscriptionStreamStartFrame as Experimental_TranscriptionStreamStartFrame, type FetchFunction, type FileData, type FileDataData, type FileDataReference, type FileDataText, type FileDataUrl, type FilePart, type FlexibleSchema, type FunctionTool, type HasRequiredKey, type IdGenerator, type ImagePart, type InferSchema, type InferToolContext, type InferToolInput, type InferToolOutput, type InferToolSetContext, type LazySchema, type MaybePromiseLike, type ModelMessage, type ParseResult, type ProviderDefinedTool, type ProviderDefinedToolFactory, type ProviderDefinedToolFactoryWithOutputSchema, type ProviderExecutedTool, type ProviderExecutedToolFactory, type ProviderOptions, type ProviderReference, type ReasoningFilePart, type ReasoningPart, type Resolvable, type ResponseHandler, type RetryDelayProvider, type RetryErrorFactory, type RetryErrorReason, type RetryFunction, type Schema, SerializationError, type ShouldRetryFunction, type StreamingToolCallDelta, StreamingToolCallTracker, type StreamingToolCallTrackerOptions, type SystemModelMessage, type TextPart, type Tool, type ToolApprovalRequest, type ToolApprovalResponse, type ToolCall, type ToolCallPart, type ToolContent, type ToolExecuteFunction, type ToolExecutionOptions, type ToolModelMessage, type ToolNameMapping, type ToolNeedsApprovalFunction, type ToolResult, type ToolResultOutput, type ToolResultPart, type ToolSet, type UserContent, type UserModelMessage, VERSION, type ValidationResult, type WebSocketConnection, type WebSocketConstructor, type WebSocketLike, asArray, asSchema, cancelResponseBody, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertImageModelFileToDataUri, convertInlineFileDataToUint8Array, convertToBase64, convertToFormData, convertUint8ArrayToBase64, createBinaryResponseHandler, createEventSourceResponseHandler, createIdGenerator, createJsonErrorResponseHandler, createJsonResponseHandler, createLanguageModelResponseMetadata, createNullLanguageModelUsage, createProviderDefinedToolFactory, createProviderDefinedToolFactoryWithOutputSchema, createProviderExecutedToolFactory, createStatusCodeErrorResponseHandler, createToolNameMapping, delay, detectMediaType, downloadBlob, dynamicTool, executeTool, getToolCaller as experimental_getToolCaller, parseTranscriptionStreamClientFrame as experimental_parseTranscriptionStreamClientFrame, parseTranscriptionStreamPart as experimental_parseTranscriptionStreamPart, serializeTranscriptionStreamPart as experimental_serializeTranscriptionStreamPart, toolCaller as experimental_toolCaller, extractLines, extractResponseHeaders, fetchWithValidatedRedirects, filterNullable, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, getWebSocketConstructor, injectJsonInstructionIntoMessages, isAbortError, isBrowserRuntime, isBuffer, isCustomReasoning, isExecutableTool, isFullMediaType, isNonNullable, isParsableJson, isProviderReference, isRecord, isSameOrigin, isUrlSupported, jsonSchema, lazySchema, loadApiKey, loadOptionalSetting, loadSetting, mapReasoningToProviderBudget, mapReasoningToProviderEffort, mediaTypeToExtension, normalizeHeaders, parseJSON, parseJsonEventStream, parseProviderOptions, postFormDataToApi, postJsonToApi, postToApi, readResponseWithSizeLimit, readWebSocketMessageText, removeUndefinedEntries, resolve, resolveFullMediaType, resolveProviderReference, retryWithExponentialBackoff, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, stripFileExtension, toWebSocketUrl, tool, validateBaseURL, validateDownloadUrl, validateTypes, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema };
package/dist/index.js CHANGED
@@ -266,6 +266,37 @@ function convertToFormData(input, options = {}) {
266
266
  return formData;
267
267
  }
268
268
 
269
+ // src/create-language-model-response-metadata.ts
270
+ function createLanguageModelResponseMetadata({
271
+ id,
272
+ model,
273
+ created
274
+ }) {
275
+ return {
276
+ id: id != null ? id : void 0,
277
+ modelId: model != null ? model : void 0,
278
+ timestamp: created != null ? new Date(created * 1e3) : void 0
279
+ };
280
+ }
281
+
282
+ // src/create-null-language-model-usage.ts
283
+ function createNullLanguageModelUsage() {
284
+ return {
285
+ inputTokens: {
286
+ total: void 0,
287
+ noCache: void 0,
288
+ cacheRead: void 0,
289
+ cacheWrite: void 0
290
+ },
291
+ outputTokens: {
292
+ total: void 0,
293
+ text: void 0,
294
+ reasoning: void 0
295
+ },
296
+ raw: void 0
297
+ };
298
+ }
299
+
269
300
  // src/create-tool-name-mapping.ts
270
301
  function createToolNameMapping({
271
302
  tools = [],
@@ -1294,7 +1325,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
1294
1325
  }
1295
1326
 
1296
1327
  // src/version.ts
1297
- var VERSION = true ? "5.0.16" : "0.0.0-test";
1328
+ var VERSION = true ? "5.0.18" : "0.0.0-test";
1298
1329
 
1299
1330
  // src/get-from-api.ts
1300
1331
  var getOriginalFetch = () => globalThis.fetch;
@@ -4015,14 +4046,13 @@ async function* executeTool({
4015
4046
  }
4016
4047
 
4017
4048
  // src/types/tool-caller.ts
4018
- var toolCallerSymbol = /* @__PURE__ */ Symbol.for("vercel.ai.experimental.toolCaller");
4019
4049
  function toolCaller(tool2, definition) {
4020
- return Object.defineProperty({ ...tool2 }, toolCallerSymbol, {
4050
+ return Object.defineProperty({ ...tool2 }, "experimental_toolCaller", {
4021
4051
  value: definition
4022
4052
  });
4023
4053
  }
4024
4054
  function getToolCaller(tool2) {
4025
- return tool2 == null ? void 0 : tool2[toolCallerSymbol];
4055
+ return tool2 == null ? void 0 : tool2.experimental_toolCaller;
4026
4056
  }
4027
4057
 
4028
4058
  // src/index.ts
@@ -4059,6 +4089,8 @@ export {
4059
4089
  createIdGenerator,
4060
4090
  createJsonErrorResponseHandler,
4061
4091
  createJsonResponseHandler,
4092
+ createLanguageModelResponseMetadata,
4093
+ createNullLanguageModelUsage,
4062
4094
  createProviderDefinedToolFactory,
4063
4095
  createProviderDefinedToolFactoryWithOutputSchema,
4064
4096
  createProviderExecutedToolFactory,