ai 6.0.0-beta.138 → 6.0.0-beta.140

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,21 @@
1
1
  # ai
2
2
 
3
+ ## 6.0.0-beta.140
4
+
5
+ ### Patch Changes
6
+
7
+ - 7fdd89d: feat(agent): export AgentCallParameters and AgentStreamParameters types
8
+
9
+ ## 6.0.0-beta.139
10
+
11
+ ### Patch Changes
12
+
13
+ - 3bd2689: feat: extended token usage
14
+ - Updated dependencies [3bd2689]
15
+ - @ai-sdk/provider@3.0.0-beta.26
16
+ - @ai-sdk/gateway@2.0.0-beta.74
17
+ - @ai-sdk/provider-utils@4.0.0-beta.45
18
+
3
19
  ## 6.0.0-beta.138
4
20
 
5
21
  ### Patch Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # AI SDK
4
4
 
5
- The [AI SDK](https://ai-sdk.dev/docs) is a TypeScript toolkit designed to help you build AI-powered applications and agents using popular frameworks like Next.js, React, Svelte, Vue and runtimes like Node.js.
5
+ The [AI SDK](https://ai-sdk.dev/docs) is a provider-agnostic TypeScript toolkit designed to help you build AI-powered applications and agents using popular UI frameworks like Next.js, React, Svelte, Vue, Angular, and runtimes like Node.js.
6
6
 
7
7
  To learn more about how to use the AI SDK, check out our [API Reference](https://ai-sdk.dev/docs/reference) and [Documentation](https://ai-sdk.dev/docs).
8
8
 
@@ -75,7 +75,7 @@ const sandboxAgent = new ToolLoopAgent({
75
75
  model: 'openai/gpt-5-codex',
76
76
  system: 'You are an agent with access to a shell environment.',
77
77
  tools: {
78
- local_shell: openai.tools.localShell({
78
+ shell: openai.tools.localShell({
79
79
  execute: async ({ action }) => {
80
80
  const [cmd, ...args] = action.command;
81
81
  const sandbox = await getSandbox(); // Vercel Sandbox
@@ -106,7 +106,7 @@ import { ToolLoopAgent, InferAgentUIMessage } from 'ai';
106
106
  export const imageGenerationAgent = new ToolLoopAgent({
107
107
  model: openai('gpt-5'),
108
108
  tools: {
109
- image_generation: openai.tools.imageGeneration({
109
+ generateImage: openai.tools.imageGeneration({
110
110
  partialImages: 3,
111
111
  }),
112
112
  },
@@ -182,7 +182,7 @@ export default function Page() {
182
182
  switch (part.type) {
183
183
  case 'text':
184
184
  return <div key={index}>{part.text}</div>;
185
- case 'tool-image_generation':
185
+ case 'tool-generateImage':
186
186
  return <ImageGenerationView key={index} invocation={part} />;
187
187
  }
188
188
  })}
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
- import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, LanguageModelV3Usage, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, JSONObject, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
8
8
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, JSONSchema7, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, TooManyEmbeddingValuesForCallError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
9
9
  import { AttributeValue, Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -260,9 +260,67 @@ type TranscriptionModelResponseMetadata = {
260
260
  };
261
261
 
262
262
  /**
263
- Represents the number of tokens used in a prompt and completion.
263
+ * Represents the number of tokens used in a prompt and completion.
264
264
  */
265
- type LanguageModelUsage = LanguageModelV3Usage;
265
+ type LanguageModelUsage = {
266
+ /**
267
+ * The total number of input (prompt) tokens used.
268
+ */
269
+ inputTokens: number | undefined;
270
+ /**
271
+ * Detailed information about the input tokens.
272
+ */
273
+ inputTokenDetails: {
274
+ /**
275
+ * The number of non-cached input (prompt) tokens used.
276
+ */
277
+ noCacheTokens: number | undefined;
278
+ /**
279
+ * The number of cached input (prompt) tokens read.
280
+ */
281
+ cacheReadTokens: number | undefined;
282
+ /**
283
+ * The number of cached input (prompt) tokens written.
284
+ */
285
+ cacheWriteTokens: number | undefined;
286
+ };
287
+ /**
288
+ * The number of total output (completion) tokens used.
289
+ */
290
+ outputTokens: number | undefined;
291
+ /**
292
+ * Detailed information about the output tokens.
293
+ */
294
+ outputTokenDetails: {
295
+ /**
296
+ * The number of text tokens used.
297
+ */
298
+ textTokens: number | undefined;
299
+ /**
300
+ * The number of reasoning tokens used.
301
+ */
302
+ reasoningTokens: number | undefined;
303
+ };
304
+ /**
305
+ * The total number of tokens used.
306
+ */
307
+ totalTokens: number | undefined;
308
+ /**
309
+ * @deprecated Use outputTokenDetails.reasoning instead.
310
+ */
311
+ reasoningTokens?: number | undefined;
312
+ /**
313
+ * @deprecated Use inputTokenDetails.cacheRead instead.
314
+ */
315
+ cachedInputTokens?: number | undefined;
316
+ /**
317
+ * Raw usage information from the provider.
318
+ *
319
+ * This is the usage information in the shape that the provider returns.
320
+ * It can include additional information that is not part of the standard usage information.
321
+ */
322
+ raw?: JSONObject;
323
+ };
266
324
  /**
267
325
  Represents the number of tokens used in an embedding.
268
326
  */
@@ -5185,4 +5243,4 @@ declare global {
5185
5243
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
5186
5244
  }
5187
5245
 
5188
- export { AbstractChat, Agent, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
5246
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolExecutionOptions, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
- import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, LanguageModelV3Usage, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, JSONObject, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
7
+ import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, EmbeddingModelV3Middleware, ImageModelV3, ImageModelV2, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, SharedV3Warning, LanguageModelV3Source, LanguageModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
8
8
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, JSONSchema7, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, TooManyEmbeddingValuesForCallError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
9
9
  import { AttributeValue, Tracer } from '@opentelemetry/api';
10
10
  import { ServerResponse } from 'node:http';
@@ -260,9 +260,67 @@ type TranscriptionModelResponseMetadata = {
260
260
  };
261
261
 
262
262
  /**
263
- Represents the number of tokens used in a prompt and completion.
263
+ * Represents the number of tokens used in a prompt and completion.
264
264
  */
265
- type LanguageModelUsage = LanguageModelV3Usage;
265
+ type LanguageModelUsage = {
266
+ /**
267
+ * The total number of input (prompt) tokens used.
268
+ */
269
+ inputTokens: number | undefined;
270
+ /**
271
+ * Detailed information about the input tokens.
272
+ */
273
+ inputTokenDetails: {
274
+ /**
275
+ * The number of non-cached input (prompt) tokens used.
276
+ */
277
+ noCacheTokens: number | undefined;
278
+ /**
279
+ * The number of cached input (prompt) tokens read.
280
+ */
281
+ cacheReadTokens: number | undefined;
282
+ /**
283
+ * The number of cached input (prompt) tokens written.
284
+ */
285
+ cacheWriteTokens: number | undefined;
286
+ };
287
+ /**
288
+ * The number of total output (completion) tokens used.
289
+ */
290
+ outputTokens: number | undefined;
291
+ /**
292
+ * Detailed information about the output tokens.
293
+ */
294
+ outputTokenDetails: {
295
+ /**
296
+ * The number of text tokens used.
297
+ */
298
+ textTokens: number | undefined;
299
+ /**
300
+ * The number of reasoning tokens used.
301
+ */
302
+ reasoningTokens: number | undefined;
303
+ };
304
+ /**
305
+ * The total number of tokens used.
306
+ */
307
+ totalTokens: number | undefined;
308
+ /**
309
+ * @deprecated Use outputTokenDetails.reasoning instead.
310
+ */
311
+ reasoningTokens?: number | undefined;
312
+ /**
313
+ * @deprecated Use inputTokenDetails.cacheRead instead.
314
+ */
315
+ cachedInputTokens?: number | undefined;
316
+ /**
317
+ * Raw usage information from the provider.
318
+ *
319
+ * This is the usage information in the shape that the provider returns.
320
+ * It can include additional information that is not part of the standard usage information.
321
+ */
322
+ raw?: JSONObject;
323
+ };
266
324
  /**
267
325
  Represents the number of tokens used in an embedding.
268
326
  */
@@ -5185,4 +5243,4 @@ declare global {
5185
5243
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
5186
5244
  }
5187
5245
 
5188
- export { AbstractChat, Agent, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
5246
+ export { AbstractChat, Agent, AgentCallParameters, AgentStreamParameters, AsyncIterableStream, CallSettings, CallWarning, ChatAddToolApproveResponseFunction, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, ContentPart, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelMiddleware, EmbeddingModelUsage, ErrorHandler, ToolLoopAgent as Experimental_Agent, ToolLoopAgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageModelProviderMetadata, ImageModelResponseMetadata, ImageModelUsage, InferAgentUIMessage, InferCompleteOutput as InferGenerateOutput, InferPartialOutput as InferStreamOutput, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LogWarningsFunction, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RerankResult, RerankingModel, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, StaticToolCall, StaticToolError, StaticToolOutputDenied, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolApprovalRequestOutput, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolLoopAgent, ToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TypedToolCall, TypedToolError, TypedToolOutputDenied, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, Warning, addToolInputExamplesMiddleware, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -596,12 +596,65 @@ function asLanguageModelV3(model) {
596
596
  });
597
597
  return new Proxy(model, {
598
598
  get(target, prop) {
599
- if (prop === "specificationVersion")
600
- return "v3";
601
- return target[prop];
599
+ switch (prop) {
600
+ case "specificationVersion":
601
+ return "v3";
602
+ case "doGenerate":
603
+ return async (...args) => {
604
+ const result = await target.doGenerate(...args);
605
+ return {
606
+ ...result,
607
+ usage: convertV2UsageToV3(result.usage)
608
+ };
609
+ };
610
+ case "doStream":
611
+ return async (...args) => {
612
+ const result = await target.doStream(...args);
613
+ return {
614
+ ...result,
615
+ stream: convertV2StreamToV3(result.stream)
616
+ };
617
+ };
618
+ default:
619
+ return target[prop];
620
+ }
602
621
  }
603
622
  });
604
623
  }
624
+ function convertV2StreamToV3(stream) {
625
+ return stream.pipeThrough(
626
+ new TransformStream({
627
+ transform(chunk, controller) {
628
+ switch (chunk.type) {
629
+ case "finish":
630
+ controller.enqueue({
631
+ ...chunk,
632
+ usage: convertV2UsageToV3(chunk.usage)
633
+ });
634
+ break;
635
+ default:
636
+ controller.enqueue(chunk);
637
+ break;
638
+ }
639
+ }
640
+ })
641
+ );
642
+ }
643
+ function convertV2UsageToV3(usage) {
644
+ return {
645
+ inputTokens: {
646
+ total: usage.inputTokens,
647
+ noCache: void 0,
648
+ cacheRead: usage.cachedInputTokens,
649
+ cacheWrite: void 0
650
+ },
651
+ outputTokens: {
652
+ total: usage.outputTokens,
653
+ text: void 0,
654
+ reasoning: usage.reasoningTokens
655
+ }
656
+ };
657
+ }
605
658
 
606
659
  // src/model/as-speech-model-v3.ts
607
660
  function asSpeechModelV3(model) {
@@ -909,7 +962,7 @@ function detectMediaType({
909
962
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
910
963
 
911
964
  // src/version.ts
912
- var VERSION = true ? "6.0.0-beta.138" : "0.0.0-test";
965
+ var VERSION = true ? "6.0.0-beta.140" : "0.0.0-test";
913
966
 
914
967
  // src/util/download/download.ts
915
968
  var download = async ({ url }) => {
@@ -1998,10 +2051,74 @@ function stringifyForTelemetry(prompt) {
1998
2051
  }
1999
2052
 
2000
2053
  // src/types/usage.ts
2054
+ function asLanguageModelUsage(usage) {
2055
+ return {
2056
+ inputTokens: usage.inputTokens.total,
2057
+ inputTokenDetails: {
2058
+ noCacheTokens: usage.inputTokens.noCache,
2059
+ cacheReadTokens: usage.inputTokens.cacheRead,
2060
+ cacheWriteTokens: usage.inputTokens.cacheWrite
2061
+ },
2062
+ outputTokens: usage.outputTokens.total,
2063
+ outputTokenDetails: {
2064
+ textTokens: usage.outputTokens.text,
2065
+ reasoningTokens: usage.outputTokens.reasoning
2066
+ },
2067
+ totalTokens: addTokenCounts(
2068
+ usage.inputTokens.total,
2069
+ usage.outputTokens.total
2070
+ ),
2071
+ raw: usage.raw,
2072
+ reasoningTokens: usage.outputTokens.reasoning,
2073
+ cachedInputTokens: usage.inputTokens.cacheRead
2074
+ };
2075
+ }
2076
+ function createNullLanguageModelUsage() {
2077
+ return {
2078
+ inputTokens: void 0,
2079
+ inputTokenDetails: {
2080
+ noCacheTokens: void 0,
2081
+ cacheReadTokens: void 0,
2082
+ cacheWriteTokens: void 0
2083
+ },
2084
+ outputTokens: void 0,
2085
+ outputTokenDetails: {
2086
+ textTokens: void 0,
2087
+ reasoningTokens: void 0
2088
+ },
2089
+ totalTokens: void 0,
2090
+ raw: void 0
2091
+ };
2092
+ }
2001
2093
  function addLanguageModelUsage(usage1, usage2) {
2094
+ var _a15, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2002
2095
  return {
2003
2096
  inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
2097
+ inputTokenDetails: {
2098
+ noCacheTokens: addTokenCounts(
2099
+ (_a15 = usage1.inputTokenDetails) == null ? void 0 : _a15.noCacheTokens,
2100
+ (_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
2101
+ ),
2102
+ cacheReadTokens: addTokenCounts(
2103
+ (_c = usage1.inputTokenDetails) == null ? void 0 : _c.cacheReadTokens,
2104
+ (_d = usage2.inputTokenDetails) == null ? void 0 : _d.cacheReadTokens
2105
+ ),
2106
+ cacheWriteTokens: addTokenCounts(
2107
+ (_e = usage1.inputTokenDetails) == null ? void 0 : _e.cacheWriteTokens,
2108
+ (_f = usage2.inputTokenDetails) == null ? void 0 : _f.cacheWriteTokens
2109
+ )
2110
+ },
2004
2111
  outputTokens: addTokenCounts(usage1.outputTokens, usage2.outputTokens),
2112
+ outputTokenDetails: {
2113
+ textTokens: addTokenCounts(
2114
+ (_g = usage1.outputTokenDetails) == null ? void 0 : _g.textTokens,
2115
+ (_h = usage2.outputTokenDetails) == null ? void 0 : _h.textTokens
2116
+ ),
2117
+ reasoningTokens: addTokenCounts(
2118
+ (_i = usage1.outputTokenDetails) == null ? void 0 : _i.reasoningTokens,
2119
+ (_j = usage2.outputTokenDetails) == null ? void 0 : _j.reasoningTokens
2120
+ )
2121
+ },
2005
2122
  totalTokens: addTokenCounts(usage1.totalTokens, usage2.totalTokens),
2006
2123
  reasoningTokens: addTokenCounts(
2007
2124
  usage1.reasoningTokens,
@@ -3530,14 +3647,14 @@ async function generateText({
3530
3647
  result.providerMetadata
3531
3648
  ),
3532
3649
  // TODO rename telemetry attributes to inputTokens and outputTokens
3533
- "ai.usage.promptTokens": result.usage.inputTokens,
3534
- "ai.usage.completionTokens": result.usage.outputTokens,
3650
+ "ai.usage.promptTokens": result.usage.inputTokens.total,
3651
+ "ai.usage.completionTokens": result.usage.outputTokens.total,
3535
3652
  // standardized gen-ai llm span attributes:
3536
3653
  "gen_ai.response.finish_reasons": [result.finishReason],
3537
3654
  "gen_ai.response.id": responseData.id,
3538
3655
  "gen_ai.response.model": responseData.modelId,
3539
- "gen_ai.usage.input_tokens": result.usage.inputTokens,
3540
- "gen_ai.usage.output_tokens": result.usage.outputTokens
3656
+ "gen_ai.usage.input_tokens": result.usage.inputTokens.total,
3657
+ "gen_ai.usage.output_tokens": result.usage.outputTokens.total
3541
3658
  }
3542
3659
  })
3543
3660
  );
@@ -3637,7 +3754,7 @@ async function generateText({
3637
3754
  const currentStepResult = new DefaultStepResult({
3638
3755
  content: stepContent,
3639
3756
  finishReason: currentModelResponse.finishReason,
3640
- usage: currentModelResponse.usage,
3757
+ usage: asLanguageModelUsage(currentModelResponse.usage),
3641
3758
  warnings: currentModelResponse.warnings,
3642
3759
  providerMetadata: currentModelResponse.providerMetadata,
3643
3760
  request: (_f = currentModelResponse.request) != null ? _f : {},
@@ -3678,8 +3795,8 @@ async function generateText({
3678
3795
  currentModelResponse.providerMetadata
3679
3796
  ),
3680
3797
  // TODO rename telemetry attributes to inputTokens and outputTokens
3681
- "ai.usage.promptTokens": currentModelResponse.usage.inputTokens,
3682
- "ai.usage.completionTokens": currentModelResponse.usage.outputTokens
3798
+ "ai.usage.promptTokens": currentModelResponse.usage.inputTokens.total,
3799
+ "ai.usage.completionTokens": currentModelResponse.usage.outputTokens.total
3683
3800
  }
3684
3801
  })
3685
3802
  );
@@ -5117,7 +5234,7 @@ function runToolsTransformation({
5117
5234
  finishChunk = {
5118
5235
  type: "finish",
5119
5236
  finishReason: chunk.finishReason,
5120
- usage: chunk.usage,
5237
+ usage: asLanguageModelUsage(chunk.usage),
5121
5238
  providerMetadata: chunk.providerMetadata
5122
5239
  };
5123
5240
  break;
@@ -5600,11 +5717,7 @@ var DefaultStreamTextResult = class {
5600
5717
  return;
5601
5718
  }
5602
5719
  const finishReason = recordedFinishReason != null ? recordedFinishReason : "unknown";
5603
- const totalUsage = recordedTotalUsage != null ? recordedTotalUsage : {
5604
- inputTokens: void 0,
5605
- outputTokens: void 0,
5606
- totalTokens: void 0
5607
- };
5720
+ const totalUsage = recordedTotalUsage != null ? recordedTotalUsage : createNullLanguageModelUsage();
5608
5721
  self._finishReason.resolve(finishReason);
5609
5722
  self._totalUsage.resolve(totalUsage);
5610
5723
  self._steps.resolve(recordedSteps);
@@ -5925,11 +6038,7 @@ var DefaultStreamTextResult = class {
5925
6038
  let warnings;
5926
6039
  const activeToolCallToolNames = {};
5927
6040
  let stepFinishReason = "unknown";
5928
- let stepUsage = {
5929
- inputTokens: void 0,
5930
- outputTokens: void 0,
5931
- totalTokens: void 0
5932
- };
6041
+ let stepUsage = createNullLanguageModelUsage();
5933
6042
  let stepProviderMetadata;
5934
6043
  let stepFirstChunk = true;
5935
6044
  let stepResponse = {
@@ -6195,11 +6304,7 @@ var DefaultStreamTextResult = class {
6195
6304
  await streamStep({
6196
6305
  currentStep: 0,
6197
6306
  responseMessages: initialResponseMessages,
6198
- usage: {
6199
- inputTokens: void 0,
6200
- outputTokens: void 0,
6201
- totalTokens: void 0
6202
- }
6307
+ usage: createNullLanguageModelUsage()
6203
6308
  });
6204
6309
  }
6205
6310
  }).catch((error) => {
@@ -8653,7 +8758,7 @@ async function generateObject(options) {
8653
8758
  throw new NoObjectGeneratedError({
8654
8759
  message: "No object generated: the model did not return a response.",
8655
8760
  response: responseData,
8656
- usage: result2.usage,
8761
+ usage: asLanguageModelUsage(result2.usage),
8657
8762
  finishReason: result2.finishReason
8658
8763
  });
8659
8764
  }
@@ -8670,14 +8775,14 @@ async function generateObject(options) {
8670
8775
  result2.providerMetadata
8671
8776
  ),
8672
8777
  // TODO rename telemetry attributes to inputTokens and outputTokens
8673
- "ai.usage.promptTokens": result2.usage.inputTokens,
8674
- "ai.usage.completionTokens": result2.usage.outputTokens,
8778
+ "ai.usage.promptTokens": result2.usage.inputTokens.total,
8779
+ "ai.usage.completionTokens": result2.usage.outputTokens.total,
8675
8780
  // standardized gen-ai llm span attributes:
8676
8781
  "gen_ai.response.finish_reasons": [result2.finishReason],
8677
8782
  "gen_ai.response.id": responseData.id,
8678
8783
  "gen_ai.response.model": responseData.modelId,
8679
- "gen_ai.usage.input_tokens": result2.usage.inputTokens,
8680
- "gen_ai.usage.output_tokens": result2.usage.outputTokens
8784
+ "gen_ai.usage.input_tokens": result2.usage.inputTokens.total,
8785
+ "gen_ai.usage.output_tokens": result2.usage.outputTokens.total
8681
8786
  }
8682
8787
  })
8683
8788
  );
@@ -8692,7 +8797,7 @@ async function generateObject(options) {
8692
8797
  );
8693
8798
  result = generateResult.objectText;
8694
8799
  finishReason = generateResult.finishReason;
8695
- usage = generateResult.usage;
8800
+ usage = asLanguageModelUsage(generateResult.usage);
8696
8801
  warnings = generateResult.warnings;
8697
8802
  resultProviderMetadata = generateResult.providerMetadata;
8698
8803
  request = (_a15 = generateResult.request) != null ? _a15 : {};
@@ -9126,11 +9231,7 @@ var DefaultStreamObjectResult = class {
9126
9231
  );
9127
9232
  self._request.resolve(request != null ? request : {});
9128
9233
  let warnings;
9129
- let usage = {
9130
- inputTokens: void 0,
9131
- outputTokens: void 0,
9132
- totalTokens: void 0
9133
- };
9234
+ let usage = createNullLanguageModelUsage();
9134
9235
  let finishReason;
9135
9236
  let providerMetadata;
9136
9237
  let object2;
@@ -9210,7 +9311,7 @@ var DefaultStreamObjectResult = class {
9210
9311
  controller.enqueue({ type: "text-delta", textDelta });
9211
9312
  }
9212
9313
  finishReason = chunk.finishReason;
9213
- usage = chunk.usage;
9314
+ usage = asLanguageModelUsage(chunk.usage);
9214
9315
  providerMetadata = chunk.providerMetadata;
9215
9316
  controller.enqueue({
9216
9317
  ...chunk,