diff --git a/crates/language_model/src/api_key.rs b/crates/language_model/src/api_key.rs index d2e156992130186373ad3307b9f51bb079946ff3..754fde069295d8799820020bef286b1a1a3c590c 100644 --- a/crates/language_model/src/api_key.rs +++ b/crates/language_model/src/api_key.rs @@ -228,6 +228,10 @@ impl ApiKeyState { } impl ApiKey { + pub fn key(&self) -> &str { + &self.key + } + pub fn from_env(env_var_name: SharedString, key: &str) -> Self { Self { source: ApiKeySource::EnvVar(env_var_name), @@ -235,6 +239,16 @@ impl ApiKey { } } + pub async fn load_from_system_keychain( + url: &str, + credentials_provider: &dyn CredentialsProvider, + cx: &AsyncApp, + ) -> Result { + Self::load_from_system_keychain_impl(url, credentials_provider, cx) + .await + .into_authenticate_result() + } + async fn load_from_system_keychain_impl( url: &str, credentials_provider: &dyn CredentialsProvider,