@ai-sdk/anthropic 4.0.92 → 4.0.93
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 +11 -0
- package/dist/index.js +326 -218
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +17 -35
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +326 -218
- package/dist/internal/index.js.map +1 -1
- package/docs/05-anthropic.mdx +11 -7
- package/package.json +3 -3
- package/src/anthropic-language-model.ts +3 -280
- package/src/anthropic-model-catalog.ts +406 -0
package/docs/05-anthropic.mdx
CHANGED
|
@@ -2410,6 +2410,8 @@ and the `mediaType` should be set to `'application/pdf'`.
|
|
|
2410
2410
|
|
|
2411
2411
|
### Model Capabilities
|
|
2412
2412
|
|
|
2413
|
+
{/* model-capabilities:anthropic-language:start */}
|
|
2414
|
+
|
|
2413
2415
|
| Model | Image Input | Object Generation | Tool Usage | Computer Use | Web Search | Tool Search | Compaction |
|
|
2414
2416
|
| ------------------- | ----------- | ----------------- | ---------- | ------------ | ---------- | ----------- | ---------- |
|
|
2415
2417
|
| `claude-opus-5-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
@@ -2422,13 +2424,15 @@ and the `mediaType` should be set to `'application/pdf'`.
|
|
|
2422
2424
|
| `claude-opus-4-8` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2423
2425
|
| `claude-opus-4-7` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2424
2426
|
| `claude-opus-4-6` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2425
|
-
| `claude-sonnet-4-6` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2426
|
-
| `claude-opus-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2427
|
-
| `claude-haiku-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2428
|
-
| `claude-sonnet-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2429
|
-
| `claude-opus-4-1` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2430
|
-
| `claude-opus-4-0` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2431
|
-
| `claude-sonnet-4-0` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2427
|
+
| `claude-sonnet-4-6` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
2428
|
+
| `claude-opus-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> |
|
|
2429
|
+
| `claude-haiku-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> |
|
|
2430
|
+
| `claude-sonnet-4-5` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> |
|
|
2431
|
+
| `claude-opus-4-1` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> | <Cross /> |
|
|
2432
|
+
| `claude-opus-4-0` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> | <Cross /> |
|
|
2433
|
+
| `claude-sonnet-4-0` | <Check /> | <Check /> | <Check /> | <Check /> | <Check /> | <Cross /> | <Cross /> |
|
|
2434
|
+
|
|
2435
|
+
{/* model-capabilities:anthropic-language:end */}
|
|
2432
2436
|
|
|
2433
2437
|
<Note>
|
|
2434
2438
|
The table above lists popular models. Please see the [Anthropic
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/anthropic",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.93",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@ai-sdk/provider": "4.0.
|
|
39
|
-
"@ai-sdk/provider-utils": "5.0.
|
|
38
|
+
"@ai-sdk/provider": "4.0.35",
|
|
39
|
+
"@ai-sdk/provider-utils": "5.0.72"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@ai-sdk/test-server": "2.0.4",
|
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
type Resolvable,
|
|
43
43
|
} from '@ai-sdk/provider-utils';
|
|
44
44
|
import { anthropicFailedResponseHandler } from './anthropic-error';
|
|
45
|
+
import { getAnthropicModelCapabilities } from './anthropic-model-catalog';
|
|
45
46
|
import type {
|
|
46
47
|
AnthropicMessageMetadata,
|
|
47
48
|
AnthropicUsageIteration,
|
|
@@ -435,7 +436,7 @@ export class AnthropicLanguageModel implements LanguageModelV4 {
|
|
|
435
436
|
rejectsForcedToolUse,
|
|
436
437
|
supportsBetweenToolsThinking,
|
|
437
438
|
isKnownModel,
|
|
438
|
-
} =
|
|
439
|
+
} = getAnthropicModelCapabilities(modelId);
|
|
439
440
|
|
|
440
441
|
if (!isKnownModel && maxOutputTokens == null) {
|
|
441
442
|
warnings.push({
|
|
@@ -3328,285 +3329,7 @@ export class AnthropicLanguageModel implements LanguageModelV4 {
|
|
|
3328
3329
|
}
|
|
3329
3330
|
}
|
|
3330
3331
|
|
|
3331
|
-
|
|
3332
|
-
* Returns the capabilities of a Claude model that are used for defaults and feature selection.
|
|
3333
|
-
*
|
|
3334
|
-
* @see https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table
|
|
3335
|
-
* @see https://platform.claude.com/docs/en/build-with-claude/structured-outputs
|
|
3336
|
-
*/
|
|
3337
|
-
export function getModelCapabilities(modelId: string): {
|
|
3338
|
-
maxOutputTokens: number;
|
|
3339
|
-
supportsStructuredOutput: boolean;
|
|
3340
|
-
supportsAdaptiveThinking: boolean;
|
|
3341
|
-
rejectsSamplingParameters: boolean;
|
|
3342
|
-
supportsXhighEffort: boolean;
|
|
3343
|
-
rejectsThinkingDisabledAboveHighEffort: boolean;
|
|
3344
|
-
/**
|
|
3345
|
-
* Thinking is always adaptive: `thinking.type` `disabled` and `enabled`
|
|
3346
|
-
* are rejected with a 400.
|
|
3347
|
-
*/
|
|
3348
|
-
rejectsThinkingDisabled: boolean;
|
|
3349
|
-
/**
|
|
3350
|
-
* Budget-based thinking (`thinking.type` `enabled` with `budget_tokens`) is
|
|
3351
|
-
* rejected with a 400. Only adaptive thinking is supported.
|
|
3352
|
-
*/
|
|
3353
|
-
rejectsBudgetThinking: boolean;
|
|
3354
|
-
/**
|
|
3355
|
-
* Forced tool use (`tool_choice` `any` or a named tool) is rejected with a 400.
|
|
3356
|
-
*/
|
|
3357
|
-
rejectsForcedToolUse: boolean;
|
|
3358
|
-
/**
|
|
3359
|
-
* Supports `thinking.type` `between_tools`, the lowest thinking setting on
|
|
3360
|
-
* models that reject disabled thinking.
|
|
3361
|
-
*/
|
|
3362
|
-
supportsBetweenToolsThinking: boolean;
|
|
3363
|
-
isKnownModel: boolean;
|
|
3364
|
-
} {
|
|
3365
|
-
if (modelId.includes('claude-sonnet-5-5')) {
|
|
3366
|
-
return {
|
|
3367
|
-
maxOutputTokens: 128000,
|
|
3368
|
-
supportsStructuredOutput: true,
|
|
3369
|
-
supportsAdaptiveThinking: true,
|
|
3370
|
-
rejectsSamplingParameters: true,
|
|
3371
|
-
supportsXhighEffort: true,
|
|
3372
|
-
rejectsThinkingDisabledAboveHighEffort: true,
|
|
3373
|
-
rejectsThinkingDisabled: true,
|
|
3374
|
-
rejectsBudgetThinking: true,
|
|
3375
|
-
rejectsForcedToolUse: true,
|
|
3376
|
-
supportsBetweenToolsThinking: true,
|
|
3377
|
-
isKnownModel: true,
|
|
3378
|
-
};
|
|
3379
|
-
} else if (modelId.includes('claude-opus-5-5')) {
|
|
3380
|
-
return {
|
|
3381
|
-
maxOutputTokens: 128000,
|
|
3382
|
-
supportsStructuredOutput: true,
|
|
3383
|
-
supportsAdaptiveThinking: true,
|
|
3384
|
-
rejectsSamplingParameters: true,
|
|
3385
|
-
supportsXhighEffort: true,
|
|
3386
|
-
rejectsThinkingDisabledAboveHighEffort: true,
|
|
3387
|
-
rejectsThinkingDisabled: true,
|
|
3388
|
-
rejectsBudgetThinking: true,
|
|
3389
|
-
rejectsForcedToolUse: true,
|
|
3390
|
-
supportsBetweenToolsThinking: false,
|
|
3391
|
-
isKnownModel: true,
|
|
3392
|
-
};
|
|
3393
|
-
} else if (modelId.includes('claude-haiku-5-5')) {
|
|
3394
|
-
// Thinking can be turned off, but only up to `high` effort.
|
|
3395
|
-
return {
|
|
3396
|
-
maxOutputTokens: 128000,
|
|
3397
|
-
supportsStructuredOutput: true,
|
|
3398
|
-
supportsAdaptiveThinking: true,
|
|
3399
|
-
rejectsSamplingParameters: true,
|
|
3400
|
-
supportsXhighEffort: true,
|
|
3401
|
-
rejectsThinkingDisabledAboveHighEffort: true,
|
|
3402
|
-
rejectsThinkingDisabled: false,
|
|
3403
|
-
rejectsBudgetThinking: true,
|
|
3404
|
-
rejectsForcedToolUse: false,
|
|
3405
|
-
supportsBetweenToolsThinking: false,
|
|
3406
|
-
isKnownModel: true,
|
|
3407
|
-
};
|
|
3408
|
-
} else if (modelId.includes('claude-opus-5')) {
|
|
3409
|
-
return {
|
|
3410
|
-
maxOutputTokens: 128000,
|
|
3411
|
-
supportsStructuredOutput: true,
|
|
3412
|
-
supportsAdaptiveThinking: true,
|
|
3413
|
-
rejectsSamplingParameters: true,
|
|
3414
|
-
supportsXhighEffort: true,
|
|
3415
|
-
rejectsThinkingDisabledAboveHighEffort: true,
|
|
3416
|
-
rejectsThinkingDisabled: false,
|
|
3417
|
-
rejectsBudgetThinking: false,
|
|
3418
|
-
rejectsForcedToolUse: false,
|
|
3419
|
-
supportsBetweenToolsThinking: false,
|
|
3420
|
-
isKnownModel: true,
|
|
3421
|
-
};
|
|
3422
|
-
} else if (modelId.includes('claude-fable-5-1')) {
|
|
3423
|
-
return {
|
|
3424
|
-
maxOutputTokens: 128000,
|
|
3425
|
-
supportsStructuredOutput: true,
|
|
3426
|
-
supportsAdaptiveThinking: true,
|
|
3427
|
-
rejectsSamplingParameters: true,
|
|
3428
|
-
supportsXhighEffort: true,
|
|
3429
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3430
|
-
rejectsThinkingDisabled: true,
|
|
3431
|
-
rejectsBudgetThinking: true,
|
|
3432
|
-
rejectsForcedToolUse: true,
|
|
3433
|
-
supportsBetweenToolsThinking: false,
|
|
3434
|
-
isKnownModel: true,
|
|
3435
|
-
};
|
|
3436
|
-
} else if (modelId.includes('claude-fable-5')) {
|
|
3437
|
-
return {
|
|
3438
|
-
maxOutputTokens: 128000,
|
|
3439
|
-
supportsStructuredOutput: true,
|
|
3440
|
-
supportsAdaptiveThinking: true,
|
|
3441
|
-
rejectsSamplingParameters: true,
|
|
3442
|
-
supportsXhighEffort: true,
|
|
3443
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3444
|
-
rejectsThinkingDisabled: true,
|
|
3445
|
-
rejectsBudgetThinking: true,
|
|
3446
|
-
rejectsForcedToolUse: false,
|
|
3447
|
-
supportsBetweenToolsThinking: false,
|
|
3448
|
-
isKnownModel: true,
|
|
3449
|
-
};
|
|
3450
|
-
} else if (
|
|
3451
|
-
modelId.includes('claude-opus-4-8') ||
|
|
3452
|
-
modelId.includes('claude-opus-4-7') ||
|
|
3453
|
-
modelId.includes('claude-sonnet-5')
|
|
3454
|
-
) {
|
|
3455
|
-
return {
|
|
3456
|
-
maxOutputTokens: 128000,
|
|
3457
|
-
supportsStructuredOutput: true,
|
|
3458
|
-
supportsAdaptiveThinking: true,
|
|
3459
|
-
rejectsSamplingParameters: true,
|
|
3460
|
-
supportsXhighEffort: true,
|
|
3461
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3462
|
-
rejectsThinkingDisabled: false,
|
|
3463
|
-
rejectsBudgetThinking: false,
|
|
3464
|
-
rejectsForcedToolUse: false,
|
|
3465
|
-
supportsBetweenToolsThinking: false,
|
|
3466
|
-
isKnownModel: true,
|
|
3467
|
-
};
|
|
3468
|
-
} else if (
|
|
3469
|
-
modelId.includes('claude-sonnet-4-6') ||
|
|
3470
|
-
modelId.includes('claude-opus-4-6')
|
|
3471
|
-
) {
|
|
3472
|
-
return {
|
|
3473
|
-
maxOutputTokens: 128000,
|
|
3474
|
-
supportsStructuredOutput: true,
|
|
3475
|
-
supportsAdaptiveThinking: true,
|
|
3476
|
-
rejectsSamplingParameters: false,
|
|
3477
|
-
supportsXhighEffort: false,
|
|
3478
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3479
|
-
rejectsThinkingDisabled: false,
|
|
3480
|
-
rejectsBudgetThinking: false,
|
|
3481
|
-
rejectsForcedToolUse: false,
|
|
3482
|
-
supportsBetweenToolsThinking: false,
|
|
3483
|
-
isKnownModel: true,
|
|
3484
|
-
};
|
|
3485
|
-
} else if (
|
|
3486
|
-
modelId.includes('claude-sonnet-4-5') ||
|
|
3487
|
-
modelId.includes('claude-opus-4-5') ||
|
|
3488
|
-
modelId.includes('claude-haiku-4-5')
|
|
3489
|
-
) {
|
|
3490
|
-
return {
|
|
3491
|
-
maxOutputTokens: 64000,
|
|
3492
|
-
supportsStructuredOutput: true,
|
|
3493
|
-
supportsAdaptiveThinking: false,
|
|
3494
|
-
rejectsSamplingParameters: false,
|
|
3495
|
-
supportsXhighEffort: false,
|
|
3496
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3497
|
-
rejectsThinkingDisabled: false,
|
|
3498
|
-
rejectsBudgetThinking: false,
|
|
3499
|
-
rejectsForcedToolUse: false,
|
|
3500
|
-
supportsBetweenToolsThinking: false,
|
|
3501
|
-
isKnownModel: true,
|
|
3502
|
-
};
|
|
3503
|
-
} else if (modelId.includes('claude-opus-4-1')) {
|
|
3504
|
-
return {
|
|
3505
|
-
maxOutputTokens: 32000,
|
|
3506
|
-
supportsStructuredOutput: true,
|
|
3507
|
-
supportsAdaptiveThinking: false,
|
|
3508
|
-
rejectsSamplingParameters: false,
|
|
3509
|
-
supportsXhighEffort: false,
|
|
3510
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3511
|
-
rejectsThinkingDisabled: false,
|
|
3512
|
-
rejectsBudgetThinking: false,
|
|
3513
|
-
rejectsForcedToolUse: false,
|
|
3514
|
-
supportsBetweenToolsThinking: false,
|
|
3515
|
-
isKnownModel: true,
|
|
3516
|
-
};
|
|
3517
|
-
} else if (/claude-sonnet-4(?:-|@)/.test(modelId)) {
|
|
3518
|
-
return {
|
|
3519
|
-
maxOutputTokens: 64000,
|
|
3520
|
-
supportsStructuredOutput: false,
|
|
3521
|
-
supportsAdaptiveThinking: false,
|
|
3522
|
-
rejectsSamplingParameters: false,
|
|
3523
|
-
supportsXhighEffort: false,
|
|
3524
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3525
|
-
rejectsThinkingDisabled: false,
|
|
3526
|
-
rejectsBudgetThinking: false,
|
|
3527
|
-
rejectsForcedToolUse: false,
|
|
3528
|
-
supportsBetweenToolsThinking: false,
|
|
3529
|
-
isKnownModel: true,
|
|
3530
|
-
};
|
|
3531
|
-
} else if (/claude-opus-4(?:-|@)/.test(modelId)) {
|
|
3532
|
-
return {
|
|
3533
|
-
maxOutputTokens: 32000,
|
|
3534
|
-
supportsStructuredOutput: false,
|
|
3535
|
-
supportsAdaptiveThinking: false,
|
|
3536
|
-
rejectsSamplingParameters: false,
|
|
3537
|
-
supportsXhighEffort: false,
|
|
3538
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3539
|
-
rejectsThinkingDisabled: false,
|
|
3540
|
-
rejectsBudgetThinking: false,
|
|
3541
|
-
rejectsForcedToolUse: false,
|
|
3542
|
-
supportsBetweenToolsThinking: false,
|
|
3543
|
-
isKnownModel: true,
|
|
3544
|
-
};
|
|
3545
|
-
} else if (modelId.includes('claude-3-haiku')) {
|
|
3546
|
-
return {
|
|
3547
|
-
maxOutputTokens: 4096,
|
|
3548
|
-
supportsStructuredOutput: false,
|
|
3549
|
-
supportsAdaptiveThinking: false,
|
|
3550
|
-
rejectsSamplingParameters: false,
|
|
3551
|
-
supportsXhighEffort: false,
|
|
3552
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3553
|
-
rejectsThinkingDisabled: false,
|
|
3554
|
-
rejectsBudgetThinking: false,
|
|
3555
|
-
rejectsForcedToolUse: false,
|
|
3556
|
-
supportsBetweenToolsThinking: false,
|
|
3557
|
-
isKnownModel: true,
|
|
3558
|
-
};
|
|
3559
|
-
} else if (
|
|
3560
|
-
/claude-(?:instant(?:-|$)|v?2(?=$|[-.:])|3(?=$|[-.]))/.test(modelId)
|
|
3561
|
-
) {
|
|
3562
|
-
return {
|
|
3563
|
-
maxOutputTokens: 4096,
|
|
3564
|
-
supportsStructuredOutput: false,
|
|
3565
|
-
supportsAdaptiveThinking: false,
|
|
3566
|
-
rejectsSamplingParameters: false,
|
|
3567
|
-
supportsXhighEffort: false,
|
|
3568
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3569
|
-
rejectsThinkingDisabled: false,
|
|
3570
|
-
rejectsBudgetThinking: false,
|
|
3571
|
-
rejectsForcedToolUse: false,
|
|
3572
|
-
supportsBetweenToolsThinking: false,
|
|
3573
|
-
isKnownModel: false,
|
|
3574
|
-
};
|
|
3575
|
-
} else if (modelId.includes('claude-')) {
|
|
3576
|
-
// Known and legacy Claude families are handled above, so any remaining
|
|
3577
|
-
// Claude ID is assumed to be newer than the known list. Keep it unknown so
|
|
3578
|
-
// callers still receive the maxOutputTokens compatibility warning.
|
|
3579
|
-
return {
|
|
3580
|
-
maxOutputTokens: 128000,
|
|
3581
|
-
supportsStructuredOutput: true,
|
|
3582
|
-
supportsAdaptiveThinking: true,
|
|
3583
|
-
rejectsSamplingParameters: true,
|
|
3584
|
-
supportsXhighEffort: true,
|
|
3585
|
-
rejectsThinkingDisabledAboveHighEffort: true,
|
|
3586
|
-
rejectsThinkingDisabled: false,
|
|
3587
|
-
rejectsBudgetThinking: false,
|
|
3588
|
-
rejectsForcedToolUse: false,
|
|
3589
|
-
supportsBetweenToolsThinking: false,
|
|
3590
|
-
isKnownModel: false,
|
|
3591
|
-
};
|
|
3592
|
-
} else {
|
|
3593
|
-
// Non-Claude models (e.g. served through Anthropic-compatible APIs)
|
|
3594
|
-
// keep conservative defaults.
|
|
3595
|
-
return {
|
|
3596
|
-
maxOutputTokens: 4096,
|
|
3597
|
-
supportsStructuredOutput: false,
|
|
3598
|
-
supportsAdaptiveThinking: false,
|
|
3599
|
-
rejectsSamplingParameters: false,
|
|
3600
|
-
supportsXhighEffort: false,
|
|
3601
|
-
rejectsThinkingDisabledAboveHighEffort: false,
|
|
3602
|
-
rejectsThinkingDisabled: false,
|
|
3603
|
-
rejectsBudgetThinking: false,
|
|
3604
|
-
rejectsForcedToolUse: false,
|
|
3605
|
-
supportsBetweenToolsThinking: false,
|
|
3606
|
-
isKnownModel: false,
|
|
3607
|
-
};
|
|
3608
|
-
}
|
|
3609
|
-
}
|
|
3332
|
+
export { getAnthropicModelCapabilities as getModelCapabilities } from './anthropic-model-catalog';
|
|
3610
3333
|
|
|
3611
3334
|
export function hasDynamicFilteringWebToolWithoutCodeExecution(
|
|
3612
3335
|
tools: AnthropicTool[] | undefined,
|