@ai-sdk/anthropic 3.0.0-beta.78 → 3.0.0-beta.80

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.
@@ -36,6 +36,29 @@ var anthropicFailedResponseHandler = createJsonErrorResponseHandler({
36
36
  errorToMessage: (data) => data.error.message
37
37
  });
38
38
 
39
+ // src/convert-anthropic-messages-usage.ts
40
+ function convertAnthropicMessagesUsage(usage) {
41
+ var _a, _b;
42
+ const inputTokens = usage.input_tokens;
43
+ const outputTokens = usage.output_tokens;
44
+ const cacheCreationTokens = (_a = usage.cache_creation_input_tokens) != null ? _a : 0;
45
+ const cacheReadTokens = (_b = usage.cache_read_input_tokens) != null ? _b : 0;
46
+ return {
47
+ inputTokens: {
48
+ total: inputTokens + cacheCreationTokens + cacheReadTokens,
49
+ noCache: inputTokens,
50
+ cacheRead: cacheReadTokens,
51
+ cacheWrite: cacheCreationTokens
52
+ },
53
+ outputTokens: {
54
+ total: outputTokens,
55
+ text: void 0,
56
+ reasoning: void 0
57
+ },
58
+ raw: usage
59
+ };
60
+ }
61
+
39
62
  // src/anthropic-messages-api.ts
40
63
  import { lazySchema as lazySchema2, zodSchema as zodSchema2 } from "@ai-sdk/provider-utils";
41
64
  import { z as z2 } from "zod/v4";
@@ -867,7 +890,7 @@ var webSearch_20250305OutputSchema = lazySchema4(
867
890
  z5.array(
868
891
  z5.object({
869
892
  url: z5.string(),
870
- title: z5.string(),
893
+ title: z5.string().nullable(),
871
894
  pageAge: z5.string().nullable(),
872
895
  encryptedContent: z5.string(),
873
896
  type: z5.literal("web_search_result")
@@ -916,7 +939,7 @@ var webFetch_20250910OutputSchema = lazySchema5(
916
939
  url: z6.string(),
917
940
  content: z6.object({
918
941
  type: z6.literal("document"),
919
- title: z6.string(),
942
+ title: z6.string().nullable(),
920
943
  citations: z6.object({ enabled: z6.boolean() }).optional(),
921
944
  source: z6.union([
922
945
  z6.object({
@@ -2499,7 +2522,7 @@ var AnthropicMessagesLanguageModel = class {
2499
2522
  });
2500
2523
  }
2501
2524
  async doGenerate(options) {
2502
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2525
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2503
2526
  const { args, warnings, betas, usesJsonResponseTool, toolNameMapping } = await this.getArgs({
2504
2527
  ...options,
2505
2528
  stream: false,
@@ -2798,16 +2821,11 @@ var AnthropicMessagesLanguageModel = class {
2798
2821
  finishReason: response.stop_reason,
2799
2822
  isJsonResponseFromTool
2800
2823
  }),
2801
- usage: {
2802
- inputTokens: response.usage.input_tokens,
2803
- outputTokens: response.usage.output_tokens,
2804
- totalTokens: response.usage.input_tokens + response.usage.output_tokens,
2805
- cachedInputTokens: (_b = response.usage.cache_read_input_tokens) != null ? _b : void 0
2806
- },
2824
+ usage: convertAnthropicMessagesUsage(response.usage),
2807
2825
  request: { body: args },
2808
2826
  response: {
2809
- id: (_c = response.id) != null ? _c : void 0,
2810
- modelId: (_d = response.model) != null ? _d : void 0,
2827
+ id: (_b = response.id) != null ? _b : void 0,
2828
+ modelId: (_c = response.model) != null ? _c : void 0,
2811
2829
  headers: responseHeaders,
2812
2830
  body: rawResponse
2813
2831
  },
@@ -2815,20 +2833,20 @@ var AnthropicMessagesLanguageModel = class {
2815
2833
  providerMetadata: {
2816
2834
  anthropic: {
2817
2835
  usage: response.usage,
2818
- cacheCreationInputTokens: (_e = response.usage.cache_creation_input_tokens) != null ? _e : null,
2819
- stopSequence: (_f = response.stop_sequence) != null ? _f : null,
2836
+ cacheCreationInputTokens: (_d = response.usage.cache_creation_input_tokens) != null ? _d : null,
2837
+ stopSequence: (_e = response.stop_sequence) != null ? _e : null,
2820
2838
  container: response.container ? {
2821
2839
  expiresAt: response.container.expires_at,
2822
2840
  id: response.container.id,
2823
- skills: (_h = (_g = response.container.skills) == null ? void 0 : _g.map((skill) => ({
2841
+ skills: (_g = (_f = response.container.skills) == null ? void 0 : _f.map((skill) => ({
2824
2842
  type: skill.type,
2825
2843
  skillId: skill.skill_id,
2826
2844
  version: skill.version
2827
- }))) != null ? _h : null
2845
+ }))) != null ? _g : null
2828
2846
  } : null,
2829
- contextManagement: (_i = mapAnthropicResponseContextManagement(
2847
+ contextManagement: (_h = mapAnthropicResponseContextManagement(
2830
2848
  response.context_management
2831
- )) != null ? _i : null
2849
+ )) != null ? _h : null
2832
2850
  }
2833
2851
  }
2834
2852
  };
@@ -2861,9 +2879,10 @@ var AnthropicMessagesLanguageModel = class {
2861
2879
  });
2862
2880
  let finishReason = "unknown";
2863
2881
  const usage = {
2864
- inputTokens: void 0,
2865
- outputTokens: void 0,
2866
- totalTokens: void 0
2882
+ input_tokens: 0,
2883
+ output_tokens: 0,
2884
+ cache_creation_input_tokens: 0,
2885
+ cache_read_input_tokens: 0
2867
2886
  };
2868
2887
  const contentBlocks = {};
2869
2888
  const mcpToolCalls = {};
@@ -2881,7 +2900,7 @@ var AnthropicMessagesLanguageModel = class {
2881
2900
  controller.enqueue({ type: "stream-start", warnings });
2882
2901
  },
2883
2902
  transform(chunk, controller) {
2884
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j;
2903
+ var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
2885
2904
  if (options.includeRawChunks) {
2886
2905
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
2887
2906
  }
@@ -3320,35 +3339,35 @@ var AnthropicMessagesLanguageModel = class {
3320
3339
  }
3321
3340
  }
3322
3341
  case "message_start": {
3323
- usage.inputTokens = value.message.usage.input_tokens;
3324
- usage.cachedInputTokens = (_b2 = value.message.usage.cache_read_input_tokens) != null ? _b2 : void 0;
3342
+ usage.input_tokens = value.message.usage.input_tokens;
3343
+ usage.cache_read_input_tokens = (_b2 = value.message.usage.cache_read_input_tokens) != null ? _b2 : 0;
3344
+ usage.cache_creation_input_tokens = (_c = value.message.usage.cache_creation_input_tokens) != null ? _c : 0;
3325
3345
  rawUsage = {
3326
3346
  ...value.message.usage
3327
3347
  };
3328
- cacheCreationInputTokens = (_c = value.message.usage.cache_creation_input_tokens) != null ? _c : null;
3348
+ cacheCreationInputTokens = (_d = value.message.usage.cache_creation_input_tokens) != null ? _d : null;
3329
3349
  controller.enqueue({
3330
3350
  type: "response-metadata",
3331
- id: (_d = value.message.id) != null ? _d : void 0,
3332
- modelId: (_e = value.message.model) != null ? _e : void 0
3351
+ id: (_e = value.message.id) != null ? _e : void 0,
3352
+ modelId: (_f = value.message.model) != null ? _f : void 0
3333
3353
  });
3334
3354
  return;
3335
3355
  }
3336
3356
  case "message_delta": {
3337
- usage.outputTokens = value.usage.output_tokens;
3338
- usage.totalTokens = ((_f = usage.inputTokens) != null ? _f : 0) + ((_g = value.usage.output_tokens) != null ? _g : 0);
3357
+ usage.output_tokens = value.usage.output_tokens;
3339
3358
  finishReason = mapAnthropicStopReason({
3340
3359
  finishReason: value.delta.stop_reason,
3341
3360
  isJsonResponseFromTool
3342
3361
  });
3343
- stopSequence = (_h = value.delta.stop_sequence) != null ? _h : null;
3362
+ stopSequence = (_g = value.delta.stop_sequence) != null ? _g : null;
3344
3363
  container = value.delta.container != null ? {
3345
3364
  expiresAt: value.delta.container.expires_at,
3346
3365
  id: value.delta.container.id,
3347
- skills: (_j = (_i = value.delta.container.skills) == null ? void 0 : _i.map((skill) => ({
3366
+ skills: (_i = (_h = value.delta.container.skills) == null ? void 0 : _h.map((skill) => ({
3348
3367
  type: skill.type,
3349
3368
  skillId: skill.skill_id,
3350
3369
  version: skill.version
3351
- }))) != null ? _j : null
3370
+ }))) != null ? _i : null
3352
3371
  } : null;
3353
3372
  if (value.delta.context_management) {
3354
3373
  contextManagement = mapAnthropicResponseContextManagement(
@@ -3365,7 +3384,7 @@ var AnthropicMessagesLanguageModel = class {
3365
3384
  controller.enqueue({
3366
3385
  type: "finish",
3367
3386
  finishReason,
3368
- usage,
3387
+ usage: convertAnthropicMessagesUsage(usage),
3369
3388
  providerMetadata: {
3370
3389
  anthropic: {
3371
3390
  usage: rawUsage != null ? rawUsage : null,