@@ -91,6 +91,13 @@ pub enum Model {
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(
+ rename = "claude-haiku-4-5-thinking",
+ 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")]
@@ -168,6 +175,14 @@ impl Model {
return Ok(Self::Claude3_5Sonnet);
}
+ if id.starts_with("claude-haiku-4-5-thinking") {
+ return Ok(Self::ClaudeHaiku4_5Thinking);
+ }
+
+ if id.starts_with("claude-haiku-4-5") {
+ return Ok(Self::ClaudeHaiku4_5);
+ }
+
if id.starts_with("claude-3-5-haiku") {
return Ok(Self::Claude3_5Haiku);
}
@@ -200,6 +215,8 @@ impl Model {
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",
@@ -217,6 +234,7 @@ impl Model {
Self::ClaudeSonnet4_5 | Self::ClaudeSonnet4_5Thinking => "claude-sonnet-4-5-20250929",
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",
@@ -238,6 +256,8 @@ impl Model {
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",
@@ -259,6 +279,8 @@ impl Model {
| Self::ClaudeSonnet4_5
| Self::ClaudeSonnet4_5Thinking
| Self::Claude3_5Sonnet
+ | Self::ClaudeHaiku4_5
+ | Self::ClaudeHaiku4_5Thinking
| Self::Claude3_5Haiku
| Self::Claude3_7Sonnet
| Self::Claude3_7SonnetThinking
@@ -286,6 +308,8 @@ impl Model {
| Self::ClaudeSonnet4_5
| Self::ClaudeSonnet4_5Thinking
| Self::Claude3_5Sonnet
+ | Self::ClaudeHaiku4_5
+ | Self::ClaudeHaiku4_5Thinking
| Self::Claude3_5Haiku
| Self::Claude3_7Sonnet
| Self::Claude3_7SonnetThinking
@@ -310,6 +334,7 @@ impl Model {
| Self::Claude3_7Sonnet
| Self::Claude3_7SonnetThinking
| Self::Claude3_5Haiku => 8_192,
+ Self::ClaudeHaiku4_5 | Self::ClaudeHaiku4_5Thinking => 64_000,
Self::Claude3Opus | Self::Claude3Sonnet | Self::Claude3Haiku => 4_096,
Self::Custom {
max_output_tokens, ..
@@ -330,6 +355,8 @@ impl Model {
| Self::Claude3_5Sonnet
| Self::Claude3_7Sonnet
| Self::Claude3_7SonnetThinking
+ | Self::ClaudeHaiku4_5
+ | Self::ClaudeHaiku4_5Thinking
| Self::Claude3_5Haiku
| Self::Claude3Opus
| Self::Claude3Sonnet
@@ -349,6 +376,7 @@ impl Model {
| Self::ClaudeSonnet4_5
| Self::Claude3_5Sonnet
| Self::Claude3_7Sonnet
+ | Self::ClaudeHaiku4_5
| Self::Claude3_5Haiku
| Self::Claude3Opus
| Self::Claude3Sonnet
@@ -357,6 +385,7 @@ impl Model {
| Self::ClaudeOpus4_1Thinking
| Self::ClaudeSonnet4Thinking
| Self::ClaudeSonnet4_5Thinking
+ | Self::ClaudeHaiku4_5Thinking
| Self::Claude3_7SonnetThinking => AnthropicModelMode::Thinking {
budget_tokens: Some(4_096),
},