diff --git a/crates/forge_domain/src/provider.rs b/crates/forge_domain/src/provider.rs index a65b43e416..832ec98064 100644 --- a/crates/forge_domain/src/provider.rs +++ b/crates/forge_domain/src/provider.rs @@ -73,6 +73,7 @@ impl ProviderId { pub const FIREWORKS_AI: ProviderId = ProviderId(Cow::Borrowed("fireworks-ai")); pub const NOVITA: ProviderId = ProviderId(Cow::Borrowed("novita")); pub const GOOGLE_AI_STUDIO: ProviderId = ProviderId(Cow::Borrowed("google_ai_studio")); + pub const ADAL: ProviderId = ProviderId(Cow::Borrowed("adal")); /// Returns all built-in provider IDs /// @@ -106,6 +107,7 @@ impl ProviderId { ProviderId::FIREWORKS_AI, ProviderId::NOVITA, ProviderId::GOOGLE_AI_STUDIO, + ProviderId::ADAL, ] } @@ -132,6 +134,7 @@ impl ProviderId { "fireworks-ai" => "FireworksAI".to_string(), "novita" => "Novita".to_string(), "google_ai_studio" => "GoogleAIStudio".to_string(), + "adal" => "AdaL".to_string(), _ => { // For other providers, use UpperCamelCase conversion use convert_case::{Case, Casing}; @@ -176,7 +179,11 @@ impl std::str::FromStr for ProviderId { "codex" => ProviderId::CODEX, "fireworks-ai" => ProviderId::FIREWORKS_AI, "novita" => ProviderId::NOVITA, + "vertex_ai_anthropic" => ProviderId::VERTEX_AI_ANTHROPIC, + "bedrock" => ProviderId::BEDROCK, + "opencode_zen" => ProviderId::OPENCODE_ZEN, "google_ai_studio" => ProviderId::GOOGLE_AI_STUDIO, + "adal" => ProviderId::ADAL, // For custom providers, use Cow::Owned to avoid memory leaks custom => ProviderId(Cow::Owned(custom.to_string())), }; @@ -581,6 +588,24 @@ mod tests { assert_eq!(actual, expected); } + #[test] + fn test_adal_from_str() { + let actual = ProviderId::from_str("adal").unwrap(); + let expected = ProviderId::ADAL; + assert_eq!(actual, expected); + } + + #[test] + fn test_adal_display_name() { + assert_eq!(ProviderId::ADAL.to_string(), "AdaL"); + } + + #[test] + fn test_adal_in_built_in_providers() { + let built_in = ProviderId::built_in_providers(); + assert!(built_in.contains(&ProviderId::ADAL)); + } + #[test] fn test_io_intelligence() { let fixture = "test_key"; diff --git a/crates/forge_repo/src/provider/provider.json b/crates/forge_repo/src/provider/provider.json index 16dc7899f6..56434a6800 100644 --- a/crates/forge_repo/src/provider/provider.json +++ b/crates/forge_repo/src/provider/provider.json @@ -3099,5 +3099,14 @@ "input_modalities": ["text"] } ] + }, + { + "id": "adal", + "api_key_vars": "ADAL_API_KEY", + "url_param_vars": [], + "response_type": "OpenAI", + "url": "https://api.sylph.ai/v1/chat/completions", + "models": "https://api.sylph.ai/v1/models", + "auth_methods": ["api_key"] } ]