@@ -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<Self> {
@@ -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, ..
} => {