@ai-sdk/anthropic 3.0.127 → 3.0.128

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,16 @@
1
1
  # @ai-sdk/anthropic
2
2
 
3
+ ## 3.0.128
4
+
5
+ ### Patch Changes
6
+
7
+ - bedd5bb: feat(anthropic): add Claude Haiku 5.5 support
8
+
9
+ - add the `claude-haiku-5-5` model ID to `@ai-sdk/anthropic` and `@ai-sdk/google-vertex`, `anthropic.claude-haiku-5-5` and `us.anthropic.claude-haiku-5-5` to `@ai-sdk/amazon-bedrock`, and `anthropic/claude-haiku-5.5` to `@ai-sdk/gateway`
10
+ - recognize `claude-haiku-5-5` as a known model with a 128k max output token limit and all five effort levels; thinking can be disabled up to `high` effort, and `xhigh` and `max` are lowered to `high` with a warning when thinking is disabled
11
+ - `claude-haiku-5-5` does not support thinking token budgets: `thinking: { type: 'enabled', budgetTokens }` is converted to adaptive thinking with a warning
12
+ - use the JSON tool fallback for structured output on Amazon Bedrock for `claude-haiku-5-5`
13
+
3
14
  ## 3.0.127
4
15
 
5
16
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -220,7 +220,7 @@ interface AnthropicMessageMetadata {
220
220
  } | null;
221
221
  }
222
222
 
223
- type AnthropicMessagesModelId = 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-opus-4-0' | 'claude-opus-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-0' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-5' | 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-5-5' | 'claude-fable-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-sonnet-5-5' | (string & {});
223
+ type AnthropicMessagesModelId = 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-haiku-5-5' | 'claude-opus-4-0' | 'claude-opus-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-0' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-5' | 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-5-5' | 'claude-fable-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-sonnet-5-5' | (string & {});
224
224
  /**
225
225
  * Anthropic provider options for system messages.
226
226
  */
package/dist/index.d.ts CHANGED
@@ -220,7 +220,7 @@ interface AnthropicMessageMetadata {
220
220
  } | null;
221
221
  }
222
222
 
223
- type AnthropicMessagesModelId = 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-opus-4-0' | 'claude-opus-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-0' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-5' | 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-5-5' | 'claude-fable-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-sonnet-5-5' | (string & {});
223
+ type AnthropicMessagesModelId = 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-haiku-5-5' | 'claude-opus-4-0' | 'claude-opus-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-0' | 'claude-sonnet-4-20250514' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-5' | 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-opus-5' | 'claude-opus-5-5' | 'claude-fable-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-sonnet-5-5' | (string & {});
224
224
  /**
225
225
  * Anthropic provider options for system messages.
226
226
  */
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ var import_provider4 = require("@ai-sdk/provider");
32
32
  var import_provider_utils27 = require("@ai-sdk/provider-utils");
33
33
 
34
34
  // src/version.ts
35
- var VERSION = true ? "3.0.127" : "0.0.0-test";
35
+ var VERSION = true ? "3.0.128" : "0.0.0-test";
36
36
 
37
37
  // src/anthropic-messages-language-model.ts
38
38
  var import_provider3 = require("@ai-sdk/provider");
@@ -3822,6 +3822,7 @@ var AnthropicMessagesLanguageModel = class {
3822
3822
  rejectsSamplingParameters,
3823
3823
  rejectsThinkingDisabledAboveHighEffort,
3824
3824
  rejectsThinkingDisabled,
3825
+ rejectsBudgetThinking,
3825
3826
  rejectsForcedToolUse,
3826
3827
  supportsBetweenToolsThinking,
3827
3828
  isKnownModel
@@ -3939,15 +3940,16 @@ var AnthropicMessagesLanguageModel = class {
3939
3940
  details: `thinking cannot be disabled for ${this.modelId}; it always uses adaptive thinking. The thinking setting has been removed. Lower 'effort' to reduce thinking.`
3940
3941
  });
3941
3942
  anthropicOptions.thinking = void 0;
3942
- } else if (requestedType === "enabled") {
3943
- warnings.push({
3944
- type: "unsupported",
3945
- feature: "providerOptions.anthropic.thinking",
3946
- details: `budget-based thinking is not supported by ${this.modelId}; it always uses adaptive thinking. Using adaptive thinking instead. Use 'effort' to control how much the model thinks.`
3947
- });
3948
- anthropicOptions.thinking = { type: "adaptive" };
3949
3943
  }
3950
3944
  }
3945
+ if (rejectsBudgetThinking && (anthropicOptions == null ? void 0 : anthropicOptions.thinking) != null && "type" in anthropicOptions.thinking && anthropicOptions.thinking.type === "enabled") {
3946
+ warnings.push({
3947
+ type: "unsupported",
3948
+ feature: "providerOptions.anthropic.thinking",
3949
+ details: rejectsThinkingDisabled ? `budget-based thinking is not supported by ${this.modelId}; it always uses adaptive thinking. Using adaptive thinking instead. Use 'effort' to control how much the model thinks.` : `budget-based thinking is not supported by ${this.modelId}. Using adaptive thinking instead. Use 'effort' to control how much the model thinks.`
3950
+ });
3951
+ anthropicOptions.thinking = { type: "adaptive" };
3952
+ }
3951
3953
  const thinking = anthropicOptions == null ? void 0 : anthropicOptions.thinking;
3952
3954
  const thinkingType = thinking != null && "type" in thinking ? thinking.type : void 0;
3953
3955
  if (rejectsThinkingDisabledAboveHighEffort && thinkingType === "disabled" && (anthropicOptions.effort === "xhigh" || anthropicOptions.effort === "max")) {
@@ -5826,6 +5828,7 @@ function getModelCapabilities(modelId) {
5826
5828
  rejectsSamplingParameters: true,
5827
5829
  rejectsThinkingDisabledAboveHighEffort: true,
5828
5830
  rejectsThinkingDisabled: true,
5831
+ rejectsBudgetThinking: true,
5829
5832
  rejectsForcedToolUse: true,
5830
5833
  supportsBetweenToolsThinking: true,
5831
5834
  isKnownModel: true
@@ -5837,10 +5840,23 @@ function getModelCapabilities(modelId) {
5837
5840
  rejectsSamplingParameters: true,
5838
5841
  rejectsThinkingDisabledAboveHighEffort: true,
5839
5842
  rejectsThinkingDisabled: true,
5843
+ rejectsBudgetThinking: true,
5840
5844
  rejectsForcedToolUse: true,
5841
5845
  supportsBetweenToolsThinking: false,
5842
5846
  isKnownModel: true
5843
5847
  };
5848
+ } else if (modelId.includes("claude-haiku-5-5")) {
5849
+ return {
5850
+ maxOutputTokens: 128e3,
5851
+ supportsStructuredOutput: true,
5852
+ rejectsSamplingParameters: true,
5853
+ rejectsThinkingDisabledAboveHighEffort: true,
5854
+ rejectsThinkingDisabled: false,
5855
+ rejectsBudgetThinking: true,
5856
+ rejectsForcedToolUse: false,
5857
+ supportsBetweenToolsThinking: false,
5858
+ isKnownModel: true
5859
+ };
5844
5860
  } else if (modelId.includes("claude-opus-5")) {
5845
5861
  return {
5846
5862
  maxOutputTokens: 128e3,
@@ -5848,6 +5864,7 @@ function getModelCapabilities(modelId) {
5848
5864
  rejectsSamplingParameters: true,
5849
5865
  rejectsThinkingDisabledAboveHighEffort: true,
5850
5866
  rejectsThinkingDisabled: false,
5867
+ rejectsBudgetThinking: false,
5851
5868
  rejectsForcedToolUse: false,
5852
5869
  supportsBetweenToolsThinking: false,
5853
5870
  isKnownModel: true
@@ -5859,6 +5876,7 @@ function getModelCapabilities(modelId) {
5859
5876
  rejectsSamplingParameters: true,
5860
5877
  rejectsThinkingDisabledAboveHighEffort: false,
5861
5878
  rejectsThinkingDisabled: true,
5879
+ rejectsBudgetThinking: true,
5862
5880
  rejectsForcedToolUse: true,
5863
5881
  supportsBetweenToolsThinking: false,
5864
5882
  isKnownModel: true
@@ -5870,6 +5888,7 @@ function getModelCapabilities(modelId) {
5870
5888
  rejectsSamplingParameters: true,
5871
5889
  rejectsThinkingDisabledAboveHighEffort: false,
5872
5890
  rejectsThinkingDisabled: true,
5891
+ rejectsBudgetThinking: true,
5873
5892
  rejectsForcedToolUse: false,
5874
5893
  supportsBetweenToolsThinking: false,
5875
5894
  isKnownModel: true
@@ -5881,6 +5900,7 @@ function getModelCapabilities(modelId) {
5881
5900
  rejectsSamplingParameters: true,
5882
5901
  rejectsThinkingDisabledAboveHighEffort: false,
5883
5902
  rejectsThinkingDisabled: false,
5903
+ rejectsBudgetThinking: false,
5884
5904
  rejectsForcedToolUse: false,
5885
5905
  supportsBetweenToolsThinking: false,
5886
5906
  isKnownModel: true
@@ -5892,6 +5912,7 @@ function getModelCapabilities(modelId) {
5892
5912
  rejectsSamplingParameters: false,
5893
5913
  rejectsThinkingDisabledAboveHighEffort: false,
5894
5914
  rejectsThinkingDisabled: false,
5915
+ rejectsBudgetThinking: false,
5895
5916
  rejectsForcedToolUse: false,
5896
5917
  supportsBetweenToolsThinking: false,
5897
5918
  isKnownModel: true
@@ -5903,6 +5924,7 @@ function getModelCapabilities(modelId) {
5903
5924
  rejectsSamplingParameters: false,
5904
5925
  rejectsThinkingDisabledAboveHighEffort: false,
5905
5926
  rejectsThinkingDisabled: false,
5927
+ rejectsBudgetThinking: false,
5906
5928
  rejectsForcedToolUse: false,
5907
5929
  supportsBetweenToolsThinking: false,
5908
5930
  isKnownModel: true
@@ -5914,6 +5936,7 @@ function getModelCapabilities(modelId) {
5914
5936
  rejectsSamplingParameters: false,
5915
5937
  rejectsThinkingDisabledAboveHighEffort: false,
5916
5938
  rejectsThinkingDisabled: false,
5939
+ rejectsBudgetThinking: false,
5917
5940
  rejectsForcedToolUse: false,
5918
5941
  supportsBetweenToolsThinking: false,
5919
5942
  isKnownModel: true
@@ -5925,6 +5948,7 @@ function getModelCapabilities(modelId) {
5925
5948
  rejectsSamplingParameters: false,
5926
5949
  rejectsThinkingDisabledAboveHighEffort: false,
5927
5950
  rejectsThinkingDisabled: false,
5951
+ rejectsBudgetThinking: false,
5928
5952
  rejectsForcedToolUse: false,
5929
5953
  supportsBetweenToolsThinking: false,
5930
5954
  isKnownModel: true
@@ -5936,6 +5960,7 @@ function getModelCapabilities(modelId) {
5936
5960
  rejectsSamplingParameters: false,
5937
5961
  rejectsThinkingDisabledAboveHighEffort: false,
5938
5962
  rejectsThinkingDisabled: false,
5963
+ rejectsBudgetThinking: false,
5939
5964
  rejectsForcedToolUse: false,
5940
5965
  supportsBetweenToolsThinking: false,
5941
5966
  isKnownModel: true
@@ -5947,6 +5972,7 @@ function getModelCapabilities(modelId) {
5947
5972
  rejectsSamplingParameters: false,
5948
5973
  rejectsThinkingDisabledAboveHighEffort: false,
5949
5974
  rejectsThinkingDisabled: false,
5975
+ rejectsBudgetThinking: false,
5950
5976
  rejectsForcedToolUse: false,
5951
5977
  supportsBetweenToolsThinking: false,
5952
5978
  isKnownModel: true
@@ -5958,6 +5984,7 @@ function getModelCapabilities(modelId) {
5958
5984
  rejectsSamplingParameters: false,
5959
5985
  rejectsThinkingDisabledAboveHighEffort: false,
5960
5986
  rejectsThinkingDisabled: false,
5987
+ rejectsBudgetThinking: false,
5961
5988
  rejectsForcedToolUse: false,
5962
5989
  supportsBetweenToolsThinking: false,
5963
5990
  isKnownModel: false
@@ -5969,6 +5996,7 @@ function getModelCapabilities(modelId) {
5969
5996
  rejectsSamplingParameters: true,
5970
5997
  rejectsThinkingDisabledAboveHighEffort: true,
5971
5998
  rejectsThinkingDisabled: false,
5999
+ rejectsBudgetThinking: false,
5972
6000
  rejectsForcedToolUse: false,
5973
6001
  supportsBetweenToolsThinking: false,
5974
6002
  isKnownModel: false
@@ -5980,6 +6008,7 @@ function getModelCapabilities(modelId) {
5980
6008
  rejectsSamplingParameters: false,
5981
6009
  rejectsThinkingDisabledAboveHighEffort: false,
5982
6010
  rejectsThinkingDisabled: false,
6011
+ rejectsBudgetThinking: false,
5983
6012
  rejectsForcedToolUse: false,
5984
6013
  supportsBetweenToolsThinking: false,
5985
6014
  isKnownModel: false