@ai-sdk/anthropic 3.0.0-beta.25 → 3.0.0-beta.27

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 { LanguageModelV3, JSONSchema7, LanguageModelV3CallOptions, 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 { LanguageModelV3, JSONSchema7, LanguageModelV3CallOptions, 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;
@@ -1632,8 +1632,7 @@ var AnthropicMessagesLanguageModel = class {
1632
1632
  }
1633
1633
  async getArgs({
1634
1634
  prompt,
1635
- maxOutputTokens = 4096,
1636
- // 4096: max model output tokens TODO update default in v5
1635
+ maxOutputTokens,
1637
1636
  temperature,
1638
1637
  topP,
1639
1638
  topK,
@@ -1699,11 +1698,13 @@ var AnthropicMessagesLanguageModel = class {
1699
1698
  });
1700
1699
  const isThinking = ((_b = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _b.type) === "enabled";
1701
1700
  const thinkingBudget = (_c = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _c.budgetTokens;
1701
+ const maxOutputTokensForModel = getMaxOutputTokensForModel(this.modelId);
1702
+ const maxTokens = maxOutputTokens != null ? maxOutputTokens : maxOutputTokensForModel;
1702
1703
  const baseArgs = {
1703
1704
  // model id:
1704
1705
  model: this.modelId,
1705
1706
  // standardized settings:
1706
- max_tokens: maxOutputTokens,
1707
+ max_tokens: maxTokens,
1707
1708
  temperature,
1708
1709
  top_k: topK,
1709
1710
  top_p: topP,
@@ -1746,7 +1747,17 @@ var AnthropicMessagesLanguageModel = class {
1746
1747
  details: "topP is not supported when thinking is enabled"
1747
1748
  });
1748
1749
  }
1749
- baseArgs.max_tokens = maxOutputTokens + thinkingBudget;
1750
+ baseArgs.max_tokens = maxTokens + thinkingBudget;
1751
+ }
1752
+ if (baseArgs.max_tokens > maxOutputTokensForModel) {
1753
+ if (maxOutputTokens != null) {
1754
+ warnings.push({
1755
+ type: "unsupported-setting",
1756
+ setting: "maxOutputTokens",
1757
+ details: `${maxTokens} (maxOutputTokens + thinkingBudget) is greater than ${this.modelId} ${maxOutputTokensForModel} max output tokens. The max output tokens have been limited to ${maxOutputTokensForModel}.`
1758
+ });
1759
+ }
1760
+ baseArgs.max_tokens = maxOutputTokensForModel;
1750
1761
  }
1751
1762
  const {
1752
1763
  tools: anthropicTools2,
@@ -2526,6 +2537,17 @@ var AnthropicMessagesLanguageModel = class {
2526
2537
  };
2527
2538
  }
2528
2539
  };
2540
+ function getMaxOutputTokensForModel(modelId) {
2541
+ if (modelId.includes("claude-sonnet-4-") || modelId.includes("claude-3-7-sonnet") || modelId.includes("claude-haiku-4-5")) {
2542
+ return 64e3;
2543
+ } else if (modelId.includes("claude-opus-4-")) {
2544
+ return 32e3;
2545
+ } else if (modelId.includes("claude-3-5-haiku")) {
2546
+ return 8192;
2547
+ } else {
2548
+ return 4096;
2549
+ }
2550
+ }
2529
2551
 
2530
2552
  // src/tool/bash_20241022.ts
2531
2553
  var import_provider_utils12 = require("@ai-sdk/provider-utils");