Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .changeset/fable-model-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
'@tanstack/ai-anthropic': patch
'@tanstack/ai-openrouter': patch
---

Add support for Anthropic's Claude Fable 5 model (`claude-fable-5` on the Anthropic adapter, `anthropic/claude-fable-5` on the OpenRouter adapter), including model metadata, per-model provider option types, and input modality types.

Also correct Anthropic model metadata against the live Models API and https://platform.claude.com/docs/en/about-claude/pricing:

- `claude-opus-4-5` pricing is $5/MTok input and $25/MTok output (was wrongly listed at $15/$75); cache-read (`cached`) prices are now populated for all models that publish them.
- Fix invalid OpenRouter-style ids `claude-opus-4.8`/`claude-opus-4.8-fast` to the real Anthropic API ids `claude-opus-4-8`/`claude-opus-4-8-fast` (the dotted ids 404 against the Anthropic API).
- Correct stale context windows and output limits per the Models API: Opus 4.6, Sonnet 4.5, and Sonnet 4 have 1M context; Sonnet 4.6 supports 128K output; Opus 4.5 supports 64K output; Opus 4.1 caps at 32K output.
- Register `claude-fable-5`, `claude-opus-4-7-fast`, `claude-opus-4-8`, and `claude-opus-4-8-fast` in `AnthropicChatModelToolCapabilitiesByName` so server tools type-check on those models (the sync script now maintains this map too).
- Update `@anthropic-ai/sdk` to ^0.104.0, whose `Model` union includes `claude-fable-5` and `claude-opus-4-8`.
15 changes: 11 additions & 4 deletions .github/workflows/sync-models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ jobs:

- name: Fetch and sync model metadata
run: pnpm generate:models
env:
# Required by generate:anthropic-models:fetch — Anthropic models are
# synced from the first-party Models API, not OpenRouter.
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

- name: Check for package changes
id: changes
Expand All @@ -44,8 +48,8 @@ jobs:
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add packages/ scripts/openrouter.models.json scripts/.sync-models-last-run .changeset/
git commit -m "chore: sync model metadata from OpenRouter"
git add packages/ scripts/openrouter.models.json scripts/anthropic.models.json scripts/.sync-models-last-run .changeset/
git commit -m "chore: sync model metadata from provider APIs"
git push --force origin HEAD:automated/sync-models
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -61,16 +65,19 @@ jobs:

if [ -z "$EXISTING_PR" ] || [ "$EXISTING_PR" = "null" ]; then
BODY=$(cat <<'PRBODY'
Automated daily sync of model metadata from the OpenRouter API.
Automated daily sync of model metadata from provider APIs.

- Fetches the latest model list from OpenRouter
- Converts to the internal adapter format
- Syncs provider-specific model metadata for affected packages
- Fetches the Anthropic catalog from the first-party Models API and
adds any new models to `@tanstack/ai-anthropic` (new models fail
the job until a pricing row is added to `sync-anthropic-models.ts`)
- Creates a patch changeset for all changed packages
PRBODY
)
gh pr create \
--title "chore: sync model metadata from OpenRouter" \
--title "chore: sync model metadata from provider APIs" \
--body "$BODY" \
--base main \
--head "$BRANCH"
Expand Down
4 changes: 2 additions & 2 deletions docs/adapters/anthropic.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ Creates an Anthropic chat adapter.

**Parameters:**

- `model` - Claude model id (e.g. `"claude-sonnet-4-6"`, `"claude-opus-4.8"`)
- `model` - Claude model id (e.g. `"claude-sonnet-4-6"`, `"claude-opus-4-8"`)
- `config?.baseURL` - Custom base URL (optional)

### `anthropicSummarize(model, config?)` / `createAnthropicSummarize(model, apiKey, config?)`
Expand Down Expand Up @@ -242,7 +242,7 @@ import { anthropicText } from "@tanstack/ai-anthropic";
import { webSearchTool } from "@tanstack/ai-anthropic/tools";

const stream = chat({
adapter: anthropicText("claude-opus-4.8"),
adapter: anthropicText("claude-opus-4-8"),
messages: [{ role: "user", content: "What's new in AI this week?" }],
tools: [
webSearchTool({
Expand Down
2 changes: 1 addition & 1 deletion docs/advanced/multimodal-content.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ const docMessage = {
```

**Supported modalities:**
- Most Claude models (e.g. `claude-haiku-3`, `claude-haiku-4-5`, `claude-sonnet-4-6`, `claude-opus-4.8`): text, image, and document (PDF)
- Most Claude models (e.g. `claude-haiku-3`, `claude-haiku-4-5`, `claude-sonnet-4-6`, `claude-opus-4-8`): text, image, and document (PDF)

Check each model's `supports.input` in `@tanstack/ai-anthropic`'s `model-meta.ts` for the authoritative per-model list.

Expand Down
2 changes: 1 addition & 1 deletion docs/tools/provider-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import { anthropicText } from '@tanstack/ai-anthropic'
import { webSearchTool } from '@tanstack/ai-anthropic/tools'

const stream = chat({
adapter: anthropicText('claude-opus-4.8'),
adapter: anthropicText('claude-opus-4-8'),
messages: [{ role: 'user', content: "Summarize today's AI news." }],
tools: [
webSearchTool({
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@
"dev:chat": "pnpm --filter ts-react-chat dev",
"format": "prettier --experimental-cli --ignore-unknown '**/*' --write",
"generate-docs": "node scripts/generate-docs.ts && pnpm run copy:readme",
"generate:models": "pnpm generate:models:fetch && pnpm regenerate:models && tsx scripts/sync-provider-models.ts && pnpm format",
"generate:models": "pnpm generate:models:fetch && pnpm regenerate:models && tsx scripts/sync-provider-models.ts && pnpm generate:anthropic-models:fetch && pnpm regenerate:anthropic-models && pnpm format",
"generate:models:fetch": "tsx scripts/fetch-openrouter-models.ts",
"regenerate:models": "tsx scripts/convert-openrouter-models.ts",
"generate:anthropic-models": "pnpm generate:anthropic-models:fetch && pnpm regenerate:anthropic-models && pnpm format",
"generate:anthropic-models:fetch": "tsx scripts/fetch-anthropic-models.ts",
"regenerate:anthropic-models": "tsx scripts/sync-anthropic-models.ts",
"sync-docs-config": "node scripts/sync-docs-config.ts",
"copy:readme": "node scripts/copy-readme.js",
"changeset": "changeset",
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-anthropic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"test:types": "tsc"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.97.1",
"@anthropic-ai/sdk": "^0.104.0",
"@tanstack/ai-utils": "workspace:*"
},
"peerDependencies": {
Expand Down
88 changes: 76 additions & 12 deletions packages/ai-anthropic/src/model-meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ interface ModelMeta<
const CLAUDE_OPUS_4_6 = {
name: 'claude-opus-4-6',
id: 'claude-opus-4-6',
context_window: 200_000,
context_window: 1_000_000,
max_output_tokens: 128_000,
knowledge_cutoff: '2025-05-01',
pricing: {
input: {
normal: 5,
cached: 0.5,
},
output: {
normal: 25,
Expand Down Expand Up @@ -100,14 +101,15 @@ const CLAUDE_OPUS_4_5 = {
name: 'claude-opus-4-5',
id: 'claude-opus-4-5',
context_window: 200_000,
max_output_tokens: 32_000,
max_output_tokens: 64_000,
knowledge_cutoff: '2025-11-01',
pricing: {
input: {
normal: 15,
normal: 5,
cached: 0.5,
},
output: {
normal: 75,
normal: 25,
},
},
supports: {
Expand Down Expand Up @@ -139,11 +141,12 @@ const CLAUDE_SONNET_4_6 = {
name: 'claude-sonnet-4-6',
id: 'claude-sonnet-4-6',
context_window: 1_000_000,
max_output_tokens: 64_000,
max_output_tokens: 128_000,
knowledge_cutoff: '2025-08-01',
pricing: {
input: {
normal: 3,
cached: 0.3,
},
output: {
normal: 15,
Expand Down Expand Up @@ -178,12 +181,13 @@ const CLAUDE_SONNET_4_6 = {
const CLAUDE_SONNET_4_5 = {
name: 'claude-sonnet-4-5',
id: 'claude-sonnet-4-5',
context_window: 200_000,
context_window: 1_000_000,
max_output_tokens: 64_000,
knowledge_cutoff: '2025-09-29',
pricing: {
input: {
normal: 3,
cached: 0.3,
},
output: {
normal: 15,
Expand Down Expand Up @@ -223,6 +227,7 @@ const CLAUDE_HAIKU_4_5 = {
pricing: {
input: {
normal: 1,
cached: 0.1,
},
output: {
normal: 5,
Expand Down Expand Up @@ -257,11 +262,12 @@ const CLAUDE_OPUS_4_1 = {
name: 'claude-opus-4-1',
id: 'claude-opus-4-1',
context_window: 200_000,
max_output_tokens: 64_000,
max_output_tokens: 32_000,
knowledge_cutoff: '2025-08-05',
pricing: {
input: {
normal: 15,
cached: 1.5,
},
output: {
normal: 75,
Expand Down Expand Up @@ -295,12 +301,13 @@ const CLAUDE_OPUS_4_1 = {
const CLAUDE_SONNET_4 = {
name: 'claude-sonnet-4',
id: 'claude-sonnet-4',
context_window: 200_000,
context_window: 1_000_000,
max_output_tokens: 64_000,
knowledge_cutoff: '2025-05-14',
pricing: {
input: {
normal: 3,
cached: 0.3,
},
output: {
normal: 15,
Expand Down Expand Up @@ -378,6 +385,7 @@ const CLAUDE_OPUS_4 = {
pricing: {
input: {
normal: 15,
cached: 1.5,
},
output: {
normal: 75,
Expand Down Expand Up @@ -417,6 +425,7 @@ const CLAUDE_HAIKU_3_5 = {
pricing: {
input: {
normal: 0.8,
cached: 0.08,
},
output: {
normal: 4,
Expand Down Expand Up @@ -633,8 +642,8 @@ const CLAUDE_OPUS_4_7_FAST = {
>

const CLAUDE_OPUS_4_8 = {
name: 'claude-opus-4.8',
id: 'claude-opus-4.8',
name: 'claude-opus-4-8',
id: 'claude-opus-4-8',
context_window: 1_000_000,
max_output_tokens: 128_000,
supports: {
Expand Down Expand Up @@ -672,8 +681,8 @@ const CLAUDE_OPUS_4_8 = {
>

const CLAUDE_OPUS_4_8_FAST = {
name: 'claude-opus-4.8-fast',
id: 'claude-opus-4.8-fast',
name: 'claude-opus-4-8-fast',
id: 'claude-opus-4-8-fast',
context_window: 1_000_000,
max_output_tokens: 128_000,
supports: {
Expand Down Expand Up @@ -710,6 +719,46 @@ const CLAUDE_OPUS_4_8_FAST = {
AnthropicSamplingOptions
>

const CLAUDE_FABLE_5 = {
name: 'claude-fable-5',
id: 'claude-fable-5',
context_window: 1_000_000,
max_output_tokens: 128_000,
supports: {
input: ['text', 'image', 'document'],
extended_thinking: false,
adaptive_thinking: true,
priority_tier: true,
tools: [
'web_search',
'web_fetch',
'code_execution',
'computer_use',
'bash',
'text_editor',
'memory',
],
},
pricing: {
input: {
normal: 10,
cached: 1,
},
output: {
normal: 50,
},
},
} as const satisfies ModelMeta<
AnthropicContainerOptions &
AnthropicContextManagementOptions &
AnthropicMCPOptions &
AnthropicServiceTierOptions &
AnthropicStopSequencesOptions &
AnthropicThinkingOptions &
AnthropicToolChoiceOptions &
AnthropicSamplingOptions
>
Comment on lines +722 to +760

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Does Anthropic's Claude Fable 5 model support extended thinking or thinking budget configuration via the thinking parameter?

💡 Result:

Anthropic's Claude Fable 5 model does not support manual extended thinking configuration via the traditional thinking parameter and budget_tokens [1][2][3]. Instead, Claude Fable 5 uses "adaptive thinking," which is permanently enabled and cannot be disabled [1][3]. Because thinking is always active, attempting to use the manual thinking: {type: "enabled", budget_tokens: N} configuration will result in a 400 error [2][3]. Similarly, attempting to disable it with thinking: {type: "disabled"} is not supported and will also trigger an error [2]. In place of a manual token budget, you manage the trade-off between intelligence, latency, and cost on Claude Fable 5 using the effort parameter [4][3]. The effort parameter allows you to guide the model's adaptive thinking process, with options such as high (recommended default), xhigh (for maximum capability), and medium or low (for routine tasks) [4].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"

# Show the Fable 5 block with nearby type intersections
sed -n '700,790p' "$FILE" | nl -ba

# Show the Haiku 3.5 and Haiku 3 blocks that were referenced
sed -n '860,940p' "$FILE" | nl -ba

# Search for AnthropicThinkingOptions usage within this file
rg -n "AnthropicThinkingOptions" "$FILE"

Repository: TanStack/ai

Length of output: 98


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"

echo "== Fable 5 block (approx 700-790) =="
sed -n '700,790p' "$FILE" | awk '{printf "%5d\t%s\n", NR, $0}'

echo
echo "== Haiku blocks (approx 860-940) =="
sed -n '860,940p' "$FILE" | awk '{printf "%5d\t%s\n", NR, $0}'

echo
echo "== All AnthropicThinkingOptions occurrences =="
rg -n "AnthropicThinkingOptions" "$FILE" || true

Repository: TanStack/ai

Length of output: 7131


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate definition(s) of AnthropicThinkingOptions and what parameters it covers
rg -n "type\s+AnthropicThinkingOptions|interface\s+AnthropicThinkingOptions|export\s+type\s+AnthropicThinkingOptions|export\s+interface\s+AnthropicThinkingOptions" packages/ai-anthropic/src/model-meta.ts packages/ai-anthropic/src -S || true

echo "---- Search for budget_tokens / effort in the repo (ai-anthropic) ----"
rg -n "budget_tokens|effort'\s*:|effort\b" packages/ai-anthropic/src -S || true

echo "---- Show lines around AnthropicThinkingOptions occurrences in model-meta.ts ----"
FILE="packages/ai-anthropic/src/model-meta.ts"
for L in 700 720 740 750 760 820 840 860 900 945 950; do
  # best-effort; only print if within file
  if [ "$(wc -l < "$FILE")" -ge "$L" ]; then
    sed -n "$((L-5)),$((L+10))p" "$FILE" | awk -v start="$L" 'NR==1{printf "=== around %s ===\n", start} {print}'
  fi
done

Repository: TanStack/ai

Length of output: 8295


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/text/text-provider-options.ts"

# Show AnthropicThinkingOptions interface + nearby comments
sed -n '70,230p' "$FILE" | awk '{print}' | nl -ba | sed -n '1,200p'

echo
echo "---- Also show relevant adapter usage for thinking/effort ----"
ADAPTER="packages/ai-anthropic/src/adapters/text.ts"
sed -n '330,520p' "$ADAPTER" | awk '{print}' | nl -ba | head -n 220

Repository: TanStack/ai

Length of output: 98


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/text/text-provider-options.ts"
ADAPTER="packages/ai-anthropic/src/adapters/text.ts"

echo "== AnthropicThinkingOptions + comments (text-provider-options.ts:70-230) =="
awk '{printf "%5d\t%s\n", NR, $0}' <(sed -n '70,230p' "$FILE")

echo
echo "== adapter text.ts: thinking/effort handling (text.ts:330-520) =="
awk '{printf "%5d\t%s\n", NR, $0}' <(sed -n '330,520p' "$ADAPTER") | head -n 260

Repository: TanStack/ai

Length of output: 15363


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"
echo "== Search for AnthropicAdaptiveThinkingOptions and AnthropicEffortOptions in model-meta.ts =="
rg -n "AnthropicAdaptiveThinkingOptions|AnthropicEffortOptions" "$FILE" || true

echo
echo "== Search for 'extended_thinking' usage in model-meta.ts =="
rg -n "extended_thinking" "$FILE" || true

echo
echo "== Show imports near top of model-meta.ts (first 80 lines) =="
sed -n '1,120p' "$FILE" | awk '{print NR"\t"$0}'

echo
echo "== Show how Fable 5 typing is declared around type mapping near lines ~900-970 =="
sed -n '900,970p' "$FILE" | awk '{print NR"\t"$0}'

Repository: TanStack/ai

Length of output: 7337


🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n "validateTextProviderOptions|InternalTextProviderOptions|AnthropicTextProviderOptions" packages/ai-anthropic/src -S

echo "---- extended_thinking / CLAUDE_FABLE_5 usage ----"
rg -n "extended_thinking|CLAUDE_FABLE_5|claude-fable-5" packages/ai-anthropic/src -S

echo "---- show validateTextProviderOptions implementation (if any) ----"
rg -n "function validateTextProviderOptions|const validateTextProviderOptions|validateTextProviderOptions\s*=" packages/ai-anthropic/src -S

# Print candidate file sections around validateTextProviderOptions
FILE_MATCHES=$(rg -l "validateTextProviderOptions" packages/ai-anthropic/src -S || true)
for f in $FILE_MATCHES; do
  echo
  echo "== $f =="
  sed -n '1,240p' "$f" | head -n 240
done

Repository: TanStack/ai

Length of output: 21944


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/text/text-provider-options.ts"
sed -n '220,370p' "$FILE" | awk '{printf "%5d\t%s\n", NR+220, $0}'

Repository: TanStack/ai

Length of output: 4262


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"

echo "== ProviderOptions mapping for non-extended models around comments ~860-940 =="
sed -n '850,930p' "$FILE" | awk '{print}' | head -n 240

echo
echo "== ProviderOptions mapping around CLAUDE_FABLE_5 entry (~930-960) =="
sed -n '930,970p' "$FILE" | awk '{print}'

echo
echo "== Check models with extended_thinking:false and what provider options they map to =="
# Print lines mentioning extended_thinking:false and nearby following provider option mapping entries
rg -n "extended_thinking:\s*false" "$FILE"

echo
echo "== Show around extended_thinking:false blocks near first occurrences (~420-520) =="
sed -n '400,520p' "$FILE" | awk '{print}' | head -n 260

echo
echo "== Show around extended_thinking:false blocks near ~450-490 for Haiku/others =="
sed -n '440,510p' "$FILE" | awk '{print}'

Repository: TanStack/ai

Length of output: 9999


🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n "output_config\.effort|output_config.*effort|effort.*output_config" packages/ai-anthropic/src -S || true
rg -n "model.*FABLE|fable" packages/ai-anthropic/src/adapters/text.ts packages/ai-anthropic/src/model-meta.ts -S || true
rg -n "effort'\s*,|effort\W" packages/ai-anthropic/src/adapters/text.ts -S || true

Repository: TanStack/ai

Length of output: 644


🏁 Script executed:

#!/bin/bash
set -euo pipefail
rg -n "adaptive_thinking\s*:" packages/ai-anthropic/src/model-meta.ts

Repository: TanStack/ai

Length of output: 121


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"

echo "== Around line ~130-190 =="
sed -n '120,200p' "$FILE" | awk '{print NR "\t" $0}'

echo
echo "== Around line ~710-750 =="
sed -n '710,750p' "$FILE" | awk '{print NR "\t" $0}'

Repository: TanStack/ai

Length of output: 3042


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/ai-anthropic/src/model-meta.ts"

echo "== model-meta.ts: lines 710-770 =="
awk 'NR>=710 && NR<=770 {printf "%5d\t%s\n", NR, $0}' "$FILE"

echo
echo "== model-meta.ts: lines 930-970 =="
awk 'NR>=930 && NR<=970 {printf "%5d\t%s\n", NR, $0}' "$FILE"

Repository: TanStack/ai

Length of output: 3910


Fix AnthropicThinkingOptions typing for CLAUDE_FABLE_5
packages/ai-anthropic/src/model-meta.ts sets CLAUDE_FABLE_5.supports.extended_thinking: false but the model’s provider options still include AnthropicThinkingOptions (lines 722-760, 945-952). Claude Fable 5 only supports “adaptive thinking” via effort and does not accept thinking: { type: 'enabled', budget_tokens } (400). Remove AnthropicThinkingOptions from the Fable 5 provider-options type and type the adaptive/effort controls instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/ai-anthropic/src/model-meta.ts` around lines 722 - 760,
CLAUDE_FABLE_5 is typed with AnthropicThinkingOptions but the model only
supports adaptive/effort controls (extended_thinking: false); remove
AnthropicThinkingOptions from the generic type list for CLAUDE_FABLE_5 and
replace it with the specific adaptive/effort options type used by your codebase
(e.g., AnthropicAdaptiveThinkingOptions or AnthropicEffortOptions) so the
provider-options reflect effort/`effort`-style controls instead of the
`thinking: { type: 'enabled', budget_tokens }` shape; update the satisfies
ModelMeta<...> clause for CLAUDE_FABLE_5 accordingly and ensure imports/types
are adjusted to reference the adaptive/effort options symbol.


export const ANTHROPIC_MODELS = [
CLAUDE_OPUS_4_6.id,
CLAUDE_OPUS_4_5.id,
Expand All @@ -731,6 +780,8 @@ export const ANTHROPIC_MODELS = [

CLAUDE_OPUS_4_8.id,
CLAUDE_OPUS_4_8_FAST.id,

CLAUDE_FABLE_5.id,
] as const

/**
Expand Down Expand Up @@ -891,6 +942,14 @@ export type AnthropicChatModelProviderOptionsByName = {
AnthropicThinkingOptions &
AnthropicToolChoiceOptions &
AnthropicSamplingOptions
[CLAUDE_FABLE_5.id]: AnthropicContainerOptions &
AnthropicContextManagementOptions &
AnthropicMCPOptions &
AnthropicServiceTierOptions &
AnthropicStopSequencesOptions &
AnthropicThinkingOptions &
AnthropicToolChoiceOptions &
AnthropicSamplingOptions
}

export type AnthropicChatModelToolCapabilitiesByName = {
Expand All @@ -907,6 +966,10 @@ export type AnthropicChatModelToolCapabilitiesByName = {
[CLAUDE_HAIKU_3.id]: typeof CLAUDE_HAIKU_3.supports.tools
[CLAUDE_OPUS_4_6_FAST.id]: typeof CLAUDE_OPUS_4_6_FAST.supports.tools
[CLAUDE_OPUS_4_7.id]: typeof CLAUDE_OPUS_4_7.supports.tools
[CLAUDE_OPUS_4_7_FAST.id]: typeof CLAUDE_OPUS_4_7_FAST.supports.tools
[CLAUDE_OPUS_4_8.id]: typeof CLAUDE_OPUS_4_8.supports.tools
[CLAUDE_OPUS_4_8_FAST.id]: typeof CLAUDE_OPUS_4_8_FAST.supports.tools
[CLAUDE_FABLE_5.id]: typeof CLAUDE_FABLE_5.supports.tools
}

/**
Expand Down Expand Up @@ -937,4 +1000,5 @@ export type AnthropicModelInputModalitiesByName = {
[CLAUDE_OPUS_4_7_FAST.id]: typeof CLAUDE_OPUS_4_7_FAST.supports.input
[CLAUDE_OPUS_4_8.id]: typeof CLAUDE_OPUS_4_8.supports.input
[CLAUDE_OPUS_4_8_FAST.id]: typeof CLAUDE_OPUS_4_8_FAST.supports.input
[CLAUDE_FABLE_5.id]: typeof CLAUDE_FABLE_5.supports.input
}
Loading
Loading