@ai-sdk/anthropic 4.0.91 → 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 +28 -0
- package/dist/index.js +341 -229
- 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 +341 -229
- 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 +11 -285
- 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,
|
|
@@ -3667,6 +3390,13 @@ function resolveAnthropicReasoningConfig({
|
|
|
3667
3390
|
// `between_tools` is the lowest thinking setting on models that support
|
|
3668
3391
|
// it: no upfront thinking, only short progress notes between tool calls.
|
|
3669
3392
|
if (supportsBetweenToolsThinking) {
|
|
3393
|
+
warnings.push({
|
|
3394
|
+
type: 'compatibility',
|
|
3395
|
+
feature: 'reasoning',
|
|
3396
|
+
details:
|
|
3397
|
+
`reasoning 'none' is not supported by ${modelId}; thinking cannot be disabled. ` +
|
|
3398
|
+
`Using 'between_tools' thinking, the lowest thinking setting, instead.`,
|
|
3399
|
+
});
|
|
3670
3400
|
return { thinking: { type: 'between_tools' } };
|
|
3671
3401
|
}
|
|
3672
3402
|
|
|
@@ -3691,11 +3421,10 @@ function resolveAnthropicReasoningConfig({
|
|
|
3691
3421
|
const effort = mapReasoningToProviderEffort({
|
|
3692
3422
|
reasoning,
|
|
3693
3423
|
effortMap: {
|
|
3694
|
-
minimal: 'low' as const,
|
|
3695
3424
|
low: 'low' as const,
|
|
3696
3425
|
medium: 'medium' as const,
|
|
3697
3426
|
high: 'high' as const,
|
|
3698
|
-
|
|
3427
|
+
...(supportsXhighEffort && { xhigh: 'xhigh' as const }),
|
|
3699
3428
|
max: 'max' as const,
|
|
3700
3429
|
},
|
|
3701
3430
|
warnings,
|
|
@@ -3712,9 +3441,6 @@ function resolveAnthropicReasoningConfig({
|
|
|
3712
3441
|
maxReasoningBudget: maxOutputTokensForModel,
|
|
3713
3442
|
warnings,
|
|
3714
3443
|
});
|
|
3715
|
-
if (budgetTokens == null) {
|
|
3716
|
-
return undefined;
|
|
3717
|
-
}
|
|
3718
3444
|
return { thinking: { type: 'enabled', budgetTokens } };
|
|
3719
3445
|
}
|
|
3720
3446
|
|