Remove `settings` dependency from `anthropic` (#51979)

John Tur created

Release Notes:

- N/A
-

Change summary

Cargo.lock                                       |  1 
crates/anthropic/Cargo.toml                      |  1 
crates/anthropic/src/anthropic.rs                | 20 ------------------
crates/language_models/src/provider/anthropic.rs |  7 +++++
4 files changed, 6 insertions(+), 23 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -661,7 +661,6 @@ dependencies = [
  "schemars",
  "serde",
  "serde_json",
- "settings",
  "strum 0.27.2",
  "thiserror 2.0.17",
 ]

crates/anthropic/Cargo.toml 🔗

@@ -23,7 +23,6 @@ http_client.workspace = true
 schemars = { workspace = true, optional = true }
 serde.workspace = true
 serde_json.workspace = true
-settings.workspace = true
 strum.workspace = true
 thiserror.workspace = true
 

crates/anthropic/src/anthropic.rs 🔗

@@ -8,7 +8,6 @@ use futures::{AsyncBufReadExt, AsyncReadExt, StreamExt, io::BufReader, stream::B
 use http_client::http::{self, HeaderMap, HeaderValue};
 use http_client::{AsyncBody, HttpClient, Method, Request as HttpRequest, StatusCode};
 use serde::{Deserialize, Serialize};
-pub use settings::{AnthropicAvailableModel as AvailableModel, ModelMode};
 use strum::{EnumIter, EnumString};
 use thiserror::Error;
 
@@ -37,25 +36,6 @@ pub enum AnthropicModelMode {
     AdaptiveThinking,
 }
 
-impl From<ModelMode> for AnthropicModelMode {
-    fn from(value: ModelMode) -> Self {
-        match value {
-            ModelMode::Default => AnthropicModelMode::Default,
-            ModelMode::Thinking { budget_tokens } => AnthropicModelMode::Thinking { budget_tokens },
-        }
-    }
-}
-
-impl From<AnthropicModelMode> for ModelMode {
-    fn from(value: AnthropicModelMode) -> Self {
-        match value {
-            AnthropicModelMode::Default => ModelMode::Default,
-            AnthropicModelMode::Thinking { budget_tokens } => ModelMode::Thinking { budget_tokens },
-            AnthropicModelMode::AdaptiveThinking => ModelMode::Default,
-        }
-    }
-}
-
 #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
 #[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, EnumIter)]
 pub enum Model {

crates/language_models/src/provider/anthropic.rs 🔗

@@ -175,7 +175,12 @@ impl LanguageModelProvider for AnthropicLanguageModelProvider {
                     max_output_tokens: model.max_output_tokens,
                     default_temperature: model.default_temperature,
                     extra_beta_headers: model.extra_beta_headers.clone(),
-                    mode: model.mode.unwrap_or_default().into(),
+                    mode: match model.mode.unwrap_or_default() {
+                        settings::ModelMode::Default => AnthropicModelMode::Default,
+                        settings::ModelMode::Thinking { budget_tokens } => {
+                            AnthropicModelMode::Thinking { budget_tokens }
+                        }
+                    },
                 },
             );
         }