@@ -6,8 +6,7 @@ use cloud_api_types::OrganizationId;
use cloud_api_types::Plan;
use futures::StreamExt;
use futures::future::BoxFuture;
-use gpui::AsyncApp;
-use gpui::{AnyElement, AnyView, App, Context, Entity, Subscription, Task};
+use gpui::{AnyElement, AnyView, App, AppContext, Context, Entity, Subscription, Task};
use language_model::{
AuthenticateError, IconOrSvg, LanguageModel, LanguageModelProvider, LanguageModelProviderId,
LanguageModelProviderName, LanguageModelProviderState, ZED_CLOUD_PROVIDER_ID,
@@ -34,7 +33,7 @@ struct ClientTokenProvider {
impl CloudLlmTokenProvider for ClientTokenProvider {
type AuthContext = Option<OrganizationId>;
- fn auth_context(&self, cx: &AsyncApp) -> Self::AuthContext {
+ fn auth_context(&self, cx: &impl AppContext) -> Self::AuthContext {
self.user_store.read_with(cx, |user_store, _| {
user_store
.current_organization()
@@ -57,7 +57,7 @@ const PROVIDER_NAME: LanguageModelProviderName = ZED_CLOUD_PROVIDER_NAME;
pub trait CloudLlmTokenProvider: Send + Sync {
type AuthContext: Clone + Send + 'static;
- fn auth_context(&self, cx: &AsyncApp) -> Self::AuthContext;
+ fn auth_context(&self, cx: &impl AppContext) -> Self::AuthContext;
fn acquire_token(&self, auth_context: Self::AuthContext) -> BoxFuture<'static, Result<String>>;
fn refresh_token(&self, auth_context: Self::AuthContext) -> BoxFuture<'static, Result<String>>;
}
@@ -405,7 +405,7 @@ impl<TP: CloudLlmTokenProvider + 'static> LanguageModel for CloudLanguageModel<T
let model_id = self.model.id.to_string();
let generate_content_request =
into_google(request, model_id.clone(), GoogleModelMode::Default);
- let auth_context = token_provider.auth_context(&cx.to_async());
+ let auth_context = token_provider.auth_context(cx);
async move {
let token = token_provider.acquire_token(auth_context).await?;