@ai-sdk/anthropic 2.0.108 → 2.0.109

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,15 @@
1
1
  # @ai-sdk/anthropic
2
2
 
3
+ ## 2.0.109
4
+
5
+ ### Patch Changes
6
+
7
+ - 4a65dd5: 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
+
3
13
  ## 2.0.108
4
14
 
5
15
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -169,7 +169,7 @@ interface AnthropicMessageMetadata {
169
169
  } | null;
170
170
  }
171
171
 
172
- type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-latest' | 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-opus-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-20250514' | '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 & {});
172
+ type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-latest' | 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-haiku-5-5' | 'claude-opus-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-20250514' | '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 & {});
173
173
  /**
174
174
  * Anthropic provider options for system messages.
175
175
  */
package/dist/index.d.ts CHANGED
@@ -169,7 +169,7 @@ interface AnthropicMessageMetadata {
169
169
  } | null;
170
170
  }
171
171
 
172
- type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-latest' | 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-opus-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-20250514' | '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 & {});
172
+ type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-latest' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-latest' | 'claude-3-haiku-20240307' | 'claude-haiku-4-5-20251001' | 'claude-haiku-4-5' | 'claude-haiku-5-5' | 'claude-opus-4-0' | 'claude-opus-4-1-20250805' | 'claude-opus-4-1' | 'claude-opus-4-20250514' | '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 & {});
173
173
  /**
174
174
  * Anthropic provider options for system messages.
175
175
  */
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ var import_provider4 = require("@ai-sdk/provider");
31
31
  var import_provider_utils21 = require("@ai-sdk/provider-utils");
32
32
 
33
33
  // src/version.ts
34
- var VERSION = true ? "2.0.108" : "0.0.0-test";
34
+ var VERSION = true ? "2.0.109" : "0.0.0-test";
35
35
 
36
36
  // src/anthropic-messages-language-model.ts
37
37
  var import_provider3 = require("@ai-sdk/provider");
@@ -2649,6 +2649,7 @@ var AnthropicMessagesLanguageModel = class {
2649
2649
  rejectsSamplingParameters,
2650
2650
  rejectsThinkingDisabledAboveHighEffort,
2651
2651
  rejectsThinkingDisabled,
2652
+ rejectsBudgetThinking,
2652
2653
  rejectsForcedToolUse,
2653
2654
  supportsBetweenToolsThinking,
2654
2655
  isKnownModel
@@ -2735,20 +2736,22 @@ var AnthropicMessagesLanguageModel = class {
2735
2736
  details: `thinking cannot be disabled for ${this.modelId}; it always uses adaptive thinking. The thinking setting has been removed. Lower 'effort' to reduce thinking.`
2736
2737
  });
2737
2738
  anthropicOptions.thinking = void 0;
2738
- } else if ("type" in thinking && thinking.type === "enabled") {
2739
- warnings.push({
2740
- type: "unsupported-setting",
2741
- setting: "providerOptions.anthropic.thinking",
2742
- 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.`
2743
- });
2744
- anthropicOptions.thinking = {
2745
- type: "adaptive",
2746
- ...thinking.blockBinding != null && {
2747
- blockBinding: thinking.blockBinding
2748
- }
2749
- };
2750
2739
  }
2751
2740
  }
2741
+ const budgetThinking = anthropicOptions == null ? void 0 : anthropicOptions.thinking;
2742
+ if (anthropicOptions != null && rejectsBudgetThinking && budgetThinking != null && "type" in budgetThinking && budgetThinking.type === "enabled") {
2743
+ warnings.push({
2744
+ type: "unsupported-setting",
2745
+ setting: "providerOptions.anthropic.thinking",
2746
+ 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.`
2747
+ });
2748
+ anthropicOptions.thinking = {
2749
+ type: "adaptive",
2750
+ ...budgetThinking.blockBinding != null && {
2751
+ blockBinding: budgetThinking.blockBinding
2752
+ }
2753
+ };
2754
+ }
2752
2755
  const thinkingOptions = anthropicOptions == null ? void 0 : anthropicOptions.thinking;
2753
2756
  const thinkingType = thinkingOptions != null && "type" in thinkingOptions ? thinkingOptions.type : void 0;
2754
2757
  if (rejectsThinkingDisabledAboveHighEffort && thinkingType === "disabled" && anthropicOptions != null && (anthropicOptions.effort === "xhigh" || anthropicOptions.effort === "max")) {
@@ -4139,6 +4142,7 @@ function getModelCapabilities(modelId) {
4139
4142
  rejectsSamplingParameters: true,
4140
4143
  rejectsThinkingDisabledAboveHighEffort: true,
4141
4144
  rejectsThinkingDisabled: true,
4145
+ rejectsBudgetThinking: true,
4142
4146
  rejectsForcedToolUse: true,
4143
4147
  supportsBetweenToolsThinking: true,
4144
4148
  isKnownModel: true
@@ -4150,10 +4154,23 @@ function getModelCapabilities(modelId) {
4150
4154
  rejectsSamplingParameters: true,
4151
4155
  rejectsThinkingDisabledAboveHighEffort: true,
4152
4156
  rejectsThinkingDisabled: true,
4157
+ rejectsBudgetThinking: true,
4153
4158
  rejectsForcedToolUse: true,
4154
4159
  supportsBetweenToolsThinking: false,
4155
4160
  isKnownModel: true
4156
4161
  };
4162
+ } else if (modelId.includes("claude-haiku-5-5")) {
4163
+ return {
4164
+ maxOutputTokens: 128e3,
4165
+ supportsStructuredOutput: true,
4166
+ rejectsSamplingParameters: true,
4167
+ rejectsThinkingDisabledAboveHighEffort: true,
4168
+ rejectsThinkingDisabled: false,
4169
+ rejectsBudgetThinking: true,
4170
+ rejectsForcedToolUse: false,
4171
+ supportsBetweenToolsThinking: false,
4172
+ isKnownModel: true
4173
+ };
4157
4174
  } else if (modelId.includes("claude-opus-5")) {
4158
4175
  return {
4159
4176
  maxOutputTokens: 128e3,
@@ -4161,6 +4178,7 @@ function getModelCapabilities(modelId) {
4161
4178
  rejectsSamplingParameters: true,
4162
4179
  rejectsThinkingDisabledAboveHighEffort: true,
4163
4180
  rejectsThinkingDisabled: false,
4181
+ rejectsBudgetThinking: false,
4164
4182
  rejectsForcedToolUse: false,
4165
4183
  supportsBetweenToolsThinking: false,
4166
4184
  isKnownModel: true
@@ -4172,6 +4190,7 @@ function getModelCapabilities(modelId) {
4172
4190
  rejectsSamplingParameters: true,
4173
4191
  rejectsThinkingDisabledAboveHighEffort: false,
4174
4192
  rejectsThinkingDisabled: true,
4193
+ rejectsBudgetThinking: true,
4175
4194
  rejectsForcedToolUse: true,
4176
4195
  supportsBetweenToolsThinking: false,
4177
4196
  isKnownModel: true
@@ -4183,6 +4202,7 @@ function getModelCapabilities(modelId) {
4183
4202
  rejectsSamplingParameters: true,
4184
4203
  rejectsThinkingDisabledAboveHighEffort: false,
4185
4204
  rejectsThinkingDisabled: true,
4205
+ rejectsBudgetThinking: true,
4186
4206
  rejectsForcedToolUse: false,
4187
4207
  supportsBetweenToolsThinking: false,
4188
4208
  isKnownModel: true
@@ -4194,6 +4214,7 @@ function getModelCapabilities(modelId) {
4194
4214
  rejectsSamplingParameters: true,
4195
4215
  rejectsThinkingDisabledAboveHighEffort: false,
4196
4216
  rejectsThinkingDisabled: false,
4217
+ rejectsBudgetThinking: false,
4197
4218
  rejectsForcedToolUse: false,
4198
4219
  supportsBetweenToolsThinking: false,
4199
4220
  isKnownModel: true
@@ -4205,6 +4226,7 @@ function getModelCapabilities(modelId) {
4205
4226
  rejectsSamplingParameters: false,
4206
4227
  rejectsThinkingDisabledAboveHighEffort: false,
4207
4228
  rejectsThinkingDisabled: false,
4229
+ rejectsBudgetThinking: false,
4208
4230
  rejectsForcedToolUse: false,
4209
4231
  supportsBetweenToolsThinking: false,
4210
4232
  isKnownModel: true
@@ -4216,6 +4238,7 @@ function getModelCapabilities(modelId) {
4216
4238
  rejectsSamplingParameters: false,
4217
4239
  rejectsThinkingDisabledAboveHighEffort: false,
4218
4240
  rejectsThinkingDisabled: false,
4241
+ rejectsBudgetThinking: false,
4219
4242
  rejectsForcedToolUse: false,
4220
4243
  supportsBetweenToolsThinking: false,
4221
4244
  isKnownModel: true
@@ -4227,6 +4250,7 @@ function getModelCapabilities(modelId) {
4227
4250
  rejectsSamplingParameters: false,
4228
4251
  rejectsThinkingDisabledAboveHighEffort: false,
4229
4252
  rejectsThinkingDisabled: false,
4253
+ rejectsBudgetThinking: false,
4230
4254
  rejectsForcedToolUse: false,
4231
4255
  supportsBetweenToolsThinking: false,
4232
4256
  isKnownModel: true
@@ -4238,6 +4262,7 @@ function getModelCapabilities(modelId) {
4238
4262
  rejectsSamplingParameters: false,
4239
4263
  rejectsThinkingDisabledAboveHighEffort: false,
4240
4264
  rejectsThinkingDisabled: false,
4265
+ rejectsBudgetThinking: false,
4241
4266
  rejectsForcedToolUse: false,
4242
4267
  supportsBetweenToolsThinking: false,
4243
4268
  isKnownModel: true
@@ -4249,6 +4274,7 @@ function getModelCapabilities(modelId) {
4249
4274
  rejectsSamplingParameters: false,
4250
4275
  rejectsThinkingDisabledAboveHighEffort: false,
4251
4276
  rejectsThinkingDisabled: false,
4277
+ rejectsBudgetThinking: false,
4252
4278
  rejectsForcedToolUse: false,
4253
4279
  supportsBetweenToolsThinking: false,
4254
4280
  isKnownModel: true
@@ -4260,6 +4286,7 @@ function getModelCapabilities(modelId) {
4260
4286
  rejectsSamplingParameters: false,
4261
4287
  rejectsThinkingDisabledAboveHighEffort: false,
4262
4288
  rejectsThinkingDisabled: false,
4289
+ rejectsBudgetThinking: false,
4263
4290
  rejectsForcedToolUse: false,
4264
4291
  supportsBetweenToolsThinking: false,
4265
4292
  isKnownModel: true
@@ -4271,6 +4298,7 @@ function getModelCapabilities(modelId) {
4271
4298
  rejectsSamplingParameters: false,
4272
4299
  rejectsThinkingDisabledAboveHighEffort: false,
4273
4300
  rejectsThinkingDisabled: false,
4301
+ rejectsBudgetThinking: false,
4274
4302
  rejectsForcedToolUse: false,
4275
4303
  supportsBetweenToolsThinking: false,
4276
4304
  isKnownModel: false
@@ -4282,6 +4310,7 @@ function getModelCapabilities(modelId) {
4282
4310
  rejectsSamplingParameters: true,
4283
4311
  rejectsThinkingDisabledAboveHighEffort: true,
4284
4312
  rejectsThinkingDisabled: false,
4313
+ rejectsBudgetThinking: false,
4285
4314
  rejectsForcedToolUse: false,
4286
4315
  supportsBetweenToolsThinking: false,
4287
4316
  isKnownModel: false
@@ -4293,6 +4322,7 @@ function getModelCapabilities(modelId) {
4293
4322
  rejectsSamplingParameters: false,
4294
4323
  rejectsThinkingDisabledAboveHighEffort: false,
4295
4324
  rejectsThinkingDisabled: false,
4325
+ rejectsBudgetThinking: false,
4296
4326
  rejectsForcedToolUse: false,
4297
4327
  supportsBetweenToolsThinking: false,
4298
4328
  isKnownModel: false