Ok, well, that got out of hand (#3718)

Co-authored-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
This commit is contained in:
Douwe Osinga
2025-07-30 11:41:42 +02:00
committed by GitHub
parent 601c678722
commit 21604df685
40 changed files with 359 additions and 384 deletions
+5 -8
View File
@@ -11,6 +11,7 @@ use super::base::{ConfigKey, Provider, ProviderMetadata, ProviderUsage, Usage};
use super::errors::ProviderError;
use super::utils::emit_debug_trace;
use crate::config::Config;
use crate::impl_provider_default;
use crate::message::{Message, MessageContent};
use crate::model::ModelConfig;
use rmcp::model::Tool;
@@ -26,12 +27,7 @@ pub struct ClaudeCodeProvider {
model: ModelConfig,
}
impl Default for ClaudeCodeProvider {
fn default() -> Self {
let model = ModelConfig::new(ClaudeCodeProvider::metadata().default_model);
ClaudeCodeProvider::from_env(model).expect("Failed to initialize Claude Code provider")
}
}
impl_provider_default!(ClaudeCodeProvider);
impl ClaudeCodeProvider {
pub fn from_env(model: ModelConfig) -> Result<Self> {
@@ -520,6 +516,7 @@ impl Provider for ClaudeCodeProvider {
#[cfg(test)]
mod tests {
use super::ModelConfig;
use super::*;
#[test]
@@ -547,7 +544,7 @@ mod tests {
#[test]
fn test_claude_code_invalid_model_no_fallback() {
// Test that an invalid model is kept as-is (no fallback)
let invalid_model = ModelConfig::new("invalid-model".to_string());
let invalid_model = ModelConfig::new_or_fail("invalid-model");
let provider = ClaudeCodeProvider::from_env(invalid_model).unwrap();
let config = provider.get_model_config();
@@ -557,7 +554,7 @@ mod tests {
#[test]
fn test_claude_code_valid_model() {
// Test that a valid model is preserved
let valid_model = ModelConfig::new("sonnet".to_string());
let valid_model = ModelConfig::new_or_fail("sonnet");
let provider = ClaudeCodeProvider::from_env(valid_model).unwrap();
let config = provider.get_model_config();