From 0fdf175c32b2d1297b3c3c1ee29c4a288140c4f5 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Wed, 18 Feb 2026 21:19:38 +0100 Subject: [PATCH] anthropic: Remove deprecated models (#49522) Release Notes: - anthropic: Removed models that have been deprecated from their API. --- crates/anthropic/src/anthropic.rs | 93 +------------------------------ 1 file changed, 3 insertions(+), 90 deletions(-) diff --git a/crates/anthropic/src/anthropic.rs b/crates/anthropic/src/anthropic.rs index a0baead13c9766bf596ab4070c868769bb4e1d8c..bd72fe1ef3db09c97ea853f7691f50a202b7f5ae 100644 --- a/crates/anthropic/src/anthropic.rs +++ b/crates/anthropic/src/anthropic.rs @@ -137,15 +137,6 @@ pub enum Model { alias = "claude-sonnet-4-6-1m-context-thinking-latest" )] ClaudeSonnet4_6_1mContextThinking, - #[serde(rename = "claude-3-7-sonnet", alias = "claude-3-7-sonnet-latest")] - Claude3_7Sonnet, - #[serde( - rename = "claude-3-7-sonnet-thinking", - alias = "claude-3-7-sonnet-thinking-latest" - )] - Claude3_7SonnetThinking, - #[serde(rename = "claude-3-5-sonnet", alias = "claude-3-5-sonnet-latest")] - Claude3_5Sonnet, #[serde(rename = "claude-haiku-4-5", alias = "claude-haiku-4-5-latest")] ClaudeHaiku4_5, #[serde( @@ -153,12 +144,6 @@ pub enum Model { alias = "claude-haiku-4-5-thinking-latest" )] ClaudeHaiku4_5Thinking, - #[serde(rename = "claude-3-5-haiku", alias = "claude-3-5-haiku-latest")] - Claude3_5Haiku, - #[serde(rename = "claude-3-opus", alias = "claude-3-opus-latest")] - Claude3Opus, - #[serde(rename = "claude-3-sonnet", alias = "claude-3-sonnet-latest")] - Claude3Sonnet, #[serde(rename = "claude-3-haiku", alias = "claude-3-haiku-latest")] Claude3Haiku, #[serde(rename = "custom")] @@ -182,7 +167,7 @@ pub enum Model { impl Model { pub fn default_fast() -> Self { - Self::Claude3_5Haiku + Self::ClaudeHaiku4_5 } pub fn from_id(id: &str) -> Result { @@ -266,18 +251,6 @@ impl Model { return Ok(Self::ClaudeSonnet4); } - if id.starts_with("claude-3-7-sonnet-thinking") { - return Ok(Self::Claude3_7SonnetThinking); - } - - if id.starts_with("claude-3-7-sonnet") { - return Ok(Self::Claude3_7Sonnet); - } - - if id.starts_with("claude-3-5-sonnet") { - return Ok(Self::Claude3_5Sonnet); - } - if id.starts_with("claude-haiku-4-5-thinking") { return Ok(Self::ClaudeHaiku4_5Thinking); } @@ -286,18 +259,6 @@ impl Model { return Ok(Self::ClaudeHaiku4_5); } - if id.starts_with("claude-3-5-haiku") { - return Ok(Self::Claude3_5Haiku); - } - - if id.starts_with("claude-3-opus") { - return Ok(Self::Claude3Opus); - } - - if id.starts_with("claude-3-sonnet") { - return Ok(Self::Claude3Sonnet); - } - if id.starts_with("claude-3-haiku") { return Ok(Self::Claude3Haiku); } @@ -331,14 +292,8 @@ impl Model { Self::ClaudeSonnet4_6_1mContextThinking => { "claude-sonnet-4-6-1m-context-thinking-latest" } - Self::Claude3_5Sonnet => "claude-3-5-sonnet-latest", - Self::Claude3_7Sonnet => "claude-3-7-sonnet-latest", - Self::Claude3_7SonnetThinking => "claude-3-7-sonnet-thinking-latest", Self::ClaudeHaiku4_5 => "claude-haiku-4-5-latest", Self::ClaudeHaiku4_5Thinking => "claude-haiku-4-5-thinking-latest", - Self::Claude3_5Haiku => "claude-3-5-haiku-latest", - Self::Claude3Opus => "claude-3-opus-latest", - Self::Claude3Sonnet => "claude-3-sonnet-20240229", Self::Claude3Haiku => "claude-3-haiku-20240307", Self::Custom { name, .. } => name, } @@ -363,12 +318,7 @@ impl Model { | Self::ClaudeSonnet4_6Thinking | Self::ClaudeSonnet4_6_1mContext | Self::ClaudeSonnet4_6_1mContextThinking => "claude-sonnet-4-6", - Self::Claude3_5Sonnet => "claude-3-5-sonnet-latest", - Self::Claude3_7Sonnet | Self::Claude3_7SonnetThinking => "claude-3-7-sonnet-latest", Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking => "claude-haiku-4-5-20251001", - Self::Claude3_5Haiku => "claude-3-5-haiku-latest", - Self::Claude3Opus => "claude-3-opus-latest", - Self::Claude3Sonnet => "claude-3-sonnet-20240229", Self::Claude3Haiku => "claude-3-haiku-20240307", Self::Custom { name, .. } => name, } @@ -396,14 +346,8 @@ impl Model { Self::ClaudeSonnet4_6Thinking => "Claude Sonnet 4.6 Thinking", Self::ClaudeSonnet4_6_1mContext => "Claude Sonnet 4.6 (1M context)", Self::ClaudeSonnet4_6_1mContextThinking => "Claude Sonnet 4.6 Thinking (1M context)", - Self::Claude3_7Sonnet => "Claude 3.7 Sonnet", - Self::Claude3_5Sonnet => "Claude 3.5 Sonnet", - Self::Claude3_7SonnetThinking => "Claude 3.7 Sonnet Thinking", Self::ClaudeHaiku4_5 => "Claude Haiku 4.5", Self::ClaudeHaiku4_5Thinking => "Claude Haiku 4.5 Thinking", - Self::Claude3_5Haiku => "Claude 3.5 Haiku", - Self::Claude3Opus => "Claude 3 Opus", - Self::Claude3Sonnet => "Claude 3 Sonnet", Self::Claude3Haiku => "Claude 3 Haiku", Self::Custom { name, display_name, .. @@ -433,12 +377,8 @@ impl Model { | Self::ClaudeSonnet4_6Thinking | Self::ClaudeSonnet4_6_1mContext | Self::ClaudeSonnet4_6_1mContextThinking - | Self::Claude3_5Sonnet | Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking - | Self::Claude3_5Haiku - | Self::Claude3_7Sonnet - | Self::Claude3_7SonnetThinking | Self::Claude3Haiku => Some(AnthropicModelCacheConfiguration { min_total_token: 2_048, should_speculate: true, @@ -448,7 +388,6 @@ impl Model { cache_configuration, .. } => cache_configuration.clone(), - _ => None, } } @@ -468,14 +407,8 @@ impl Model { | Self::ClaudeSonnet4_5Thinking | Self::ClaudeSonnet4_6 | Self::ClaudeSonnet4_6Thinking - | Self::Claude3_5Sonnet | Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking - | Self::Claude3_5Haiku - | Self::Claude3_7Sonnet - | Self::Claude3_7SonnetThinking - | Self::Claude3Opus - | Self::Claude3Sonnet | Self::Claude3Haiku => 200_000, Self::ClaudeOpus4_6_1mContext | Self::ClaudeOpus4_6_1mContextThinking @@ -489,7 +422,6 @@ impl Model { pub fn max_output_tokens(&self) -> u64 { match self { - Self::Claude3_5Sonnet | Self::Claude3_5Haiku => 8_192, Self::ClaudeOpus4 | Self::ClaudeOpus4Thinking | Self::ClaudeOpus4_1 @@ -506,15 +438,13 @@ impl Model { | Self::ClaudeSonnet4_6Thinking | Self::ClaudeSonnet4_6_1mContext | Self::ClaudeSonnet4_6_1mContextThinking - | Self::Claude3_7Sonnet - | Self::Claude3_7SonnetThinking | Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking => 64_000, Self::ClaudeOpus4_6 | Self::ClaudeOpus4_6Thinking | Self::ClaudeOpus4_6_1mContext | Self::ClaudeOpus4_6_1mContextThinking => 128_000, - Self::Claude3Opus | Self::Claude3Sonnet | Self::Claude3Haiku => 4_096, + Self::Claude3Haiku => 4_096, Self::Custom { max_output_tokens, .. } => max_output_tokens.unwrap_or(4_096), @@ -543,14 +473,8 @@ impl Model { | Self::ClaudeSonnet4_6Thinking | Self::ClaudeSonnet4_6_1mContext | Self::ClaudeSonnet4_6_1mContextThinking - | Self::Claude3_5Sonnet - | Self::Claude3_7Sonnet - | Self::Claude3_7SonnetThinking | Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking - | Self::Claude3_5Haiku - | Self::Claude3Opus - | Self::Claude3Sonnet | Self::Claude3Haiku => 1.0, Self::Custom { default_temperature, @@ -571,12 +495,7 @@ impl Model { | Self::ClaudeSonnet4_5_1mContext | Self::ClaudeSonnet4_6 | Self::ClaudeSonnet4_6_1mContext - | Self::Claude3_5Sonnet - | Self::Claude3_7Sonnet | Self::ClaudeHaiku4_5 - | Self::Claude3_5Haiku - | Self::Claude3Opus - | Self::Claude3Sonnet | Self::Claude3Haiku => AnthropicModelMode::Default, Self::ClaudeOpus4Thinking | Self::ClaudeOpus4_1Thinking @@ -588,8 +507,7 @@ impl Model { | Self::ClaudeSonnet4_5_1mContextThinking | Self::ClaudeSonnet4_6Thinking | Self::ClaudeSonnet4_6_1mContextThinking - | Self::ClaudeHaiku4_5Thinking - | Self::Claude3_7SonnetThinking => AnthropicModelMode::Thinking { + | Self::ClaudeHaiku4_5Thinking => AnthropicModelMode::Thinking { budget_tokens: Some(4_096), }, Self::Custom { mode, .. } => mode.clone(), @@ -608,11 +526,6 @@ impl Model { | Self::ClaudeSonnet4_6_1mContextThinking => { headers.push(CONTEXT_1M_BETA_HEADER.to_string()); } - Self::Claude3_7Sonnet | Self::Claude3_7SonnetThinking => { - // Try beta token-efficient tool use (supported in Claude 3.7 Sonnet only) - // https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use - headers.push("token-efficient-tools-2025-02-19".to_string()); - } Self::Custom { extra_beta_headers, .. } => {