From 82f7fbbe0f43cc5af89ac75a2fe601c4ca65dbf3 Mon Sep 17 00:00:00 2001 From: Baha Abu Nojaim Date: Sat, 21 Mar 2026 12:32:26 +0300 Subject: [PATCH] feat(providers): add DeepMyst as OpenAI-compatible provider (#4103) Register DeepMyst (https://deepmyst.com) as an OpenAI-compatible provider with Bearer auth and DEEPMYST_API_KEY env var support. Aliases: "deepmyst", "deep-myst". Co-authored-by: Claude Opus 4.6 --- src/providers/mod.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/providers/mod.rs b/src/providers/mod.rs index ab174cb07..b2bd68902 100644 --- a/src/providers/mod.rs +++ b/src/providers/mod.rs @@ -909,6 +909,7 @@ fn resolve_provider_credential(name: &str, credential_override: Option<&str>) -> "ovhcloud" | "ovh" => vec!["OVH_AI_ENDPOINTS_ACCESS_TOKEN"], "astrai" => vec!["ASTRAI_API_KEY"], "avian" => vec!["AVIAN_API_KEY"], + "deepmyst" | "deep-myst" => vec!["DEEPMYST_API_KEY"], "llamacpp" | "llama.cpp" => vec!["LLAMACPP_API_KEY"], "sglang" => vec!["SGLANG_API_KEY"], "vllm" => vec!["VLLM_API_KEY"], @@ -1499,6 +1500,9 @@ fn create_provider_with_url_and_options( "avian" => Ok(compat(OpenAiCompatibleProvider::new( "Avian", "https://api.avian.io/v1", key, AuthStyle::Bearer, ))), + "deepmyst" | "deep-myst" => Ok(compat(OpenAiCompatibleProvider::new( + "DeepMyst", "https://api.deepmyst.com/v1", key, AuthStyle::Bearer, + ))), // ── Cloud AI endpoints ─────────────────────────────── "ovhcloud" | "ovh" => Ok(Box::new(openai::OpenAiProvider::with_base_url( @@ -2872,6 +2876,20 @@ mod tests { assert!(create_provider("avian", Some("sk-avian-test")).is_ok()); } + #[test] + fn factory_deepmyst() { + assert!(create_provider("deepmyst", Some("key")).is_ok()); + assert!(create_provider("deep-myst", Some("key")).is_ok()); + } + + #[test] + fn resolve_provider_credential_deepmyst_env() { + let _env_lock = env_lock(); + let _guard = EnvGuard::set("DEEPMYST_API_KEY", Some("dm-test-key")); + let resolved = resolve_provider_credential("deepmyst", None); + assert_eq!(resolved, Some("dm-test-key".to_string())); + } + // ── Custom / BYOP provider ───────────────────────────── #[test]