@ai-sdk/anthropic 2.0.29 → 2.0.31

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.
@@ -2,7 +2,7 @@ import { LanguageModelV2, JSONSchema7, LanguageModelV2CallOptions, LanguageModel
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
3
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
4
4
 
5
- type AnthropicMessagesModelId = 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-1' | 'claude-opus-4-0' | 'claude-sonnet-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-20250514' | 'claude-sonnet-4-20250514' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-5-haiku-latest' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | (string & {});
5
+ type AnthropicMessagesModelId = 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001' | 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-1' | 'claude-opus-4-0' | 'claude-sonnet-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-20250514' | 'claude-sonnet-4-20250514' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-5-haiku-latest' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | (string & {});
6
6
 
7
7
  type AnthropicMessagesConfig = {
8
8
  provider: string;
@@ -2,7 +2,7 @@ import { LanguageModelV2, JSONSchema7, LanguageModelV2CallOptions, LanguageModel
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
3
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
4
4
 
5
- type AnthropicMessagesModelId = 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-1' | 'claude-opus-4-0' | 'claude-sonnet-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-20250514' | 'claude-sonnet-4-20250514' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-5-haiku-latest' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | (string & {});
5
+ type AnthropicMessagesModelId = 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001' | 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | 'claude-opus-4-1' | 'claude-opus-4-0' | 'claude-sonnet-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-20250514' | 'claude-sonnet-4-20250514' | 'claude-3-7-sonnet-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-5-haiku-latest' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | (string & {});
6
6
 
7
7
  type AnthropicMessagesConfig = {
8
8
  provider: string;
@@ -1629,8 +1629,7 @@ var AnthropicMessagesLanguageModel = class {
1629
1629
  }
1630
1630
  async getArgs({
1631
1631
  prompt,
1632
- maxOutputTokens = 4096,
1633
- // 4096: max model output tokens TODO update default in v5
1632
+ maxOutputTokens,
1634
1633
  temperature,
1635
1634
  topP,
1636
1635
  topK,
@@ -1696,11 +1695,13 @@ var AnthropicMessagesLanguageModel = class {
1696
1695
  });
1697
1696
  const isThinking = ((_b = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _b.type) === "enabled";
1698
1697
  const thinkingBudget = (_c = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _c.budgetTokens;
1698
+ const maxOutputTokensForModel = getMaxOutputTokensForModel(this.modelId);
1699
+ const maxTokens = maxOutputTokens != null ? maxOutputTokens : maxOutputTokensForModel;
1699
1700
  const baseArgs = {
1700
1701
  // model id:
1701
1702
  model: this.modelId,
1702
1703
  // standardized settings:
1703
- max_tokens: maxOutputTokens,
1704
+ max_tokens: maxTokens,
1704
1705
  temperature,
1705
1706
  top_k: topK,
1706
1707
  top_p: topP,
@@ -1743,7 +1744,17 @@ var AnthropicMessagesLanguageModel = class {
1743
1744
  details: "topP is not supported when thinking is enabled"
1744
1745
  });
1745
1746
  }
1746
- baseArgs.max_tokens = maxOutputTokens + thinkingBudget;
1747
+ baseArgs.max_tokens = maxTokens + thinkingBudget;
1748
+ }
1749
+ if (baseArgs.max_tokens > maxOutputTokensForModel) {
1750
+ if (maxOutputTokens != null) {
1751
+ warnings.push({
1752
+ type: "unsupported-setting",
1753
+ setting: "maxOutputTokens",
1754
+ details: `${maxTokens} (maxOutputTokens + thinkingBudget) is greater than ${this.modelId} ${maxOutputTokensForModel} max output tokens. The max output tokens have been limited to ${maxOutputTokensForModel}.`
1755
+ });
1756
+ }
1757
+ baseArgs.max_tokens = maxOutputTokensForModel;
1747
1758
  }
1748
1759
  const {
1749
1760
  tools: anthropicTools2,
@@ -2523,6 +2534,17 @@ var AnthropicMessagesLanguageModel = class {
2523
2534
  };
2524
2535
  }
2525
2536
  };
2537
+ function getMaxOutputTokensForModel(modelId) {
2538
+ if (modelId.includes("claude-sonnet-4-") || modelId.includes("claude-3-7-sonnet") || modelId.includes("claude-haiku-4-5")) {
2539
+ return 64e3;
2540
+ } else if (modelId.includes("claude-opus-4-")) {
2541
+ return 32e3;
2542
+ } else if (modelId.includes("claude-3-5-haiku")) {
2543
+ return 8192;
2544
+ } else {
2545
+ return 4096;
2546
+ }
2547
+ }
2526
2548
 
2527
2549
  // src/tool/bash_20241022.ts
2528
2550
  var import_provider_utils12 = require("@ai-sdk/provider-utils");