@@ -16,7 +16,9 @@ use gpui::{
Focusable, ScrollHandle, Subscription, Task, Transformation, WeakEntity, percentage,
};
use language::LanguageRegistry;
-use language_model::{LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry};
+use language_model::{
+ LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID,
+};
use notifications::status_toast::{StatusToast, ToastIcon};
use project::{
context_server_store::{ContextServerConfiguration, ContextServerStatus, ContextServerStore},
@@ -86,6 +88,14 @@ impl AgentConfiguration {
let scroll_handle = ScrollHandle::new();
let scrollbar_state = ScrollbarState::new(scroll_handle.clone());
+ let mut expanded_provider_configurations = HashMap::default();
+ if LanguageModelRegistry::read_global(cx)
+ .provider(&ZED_CLOUD_PROVIDER_ID)
+ .map_or(false, |cloud_provider| cloud_provider.must_accept_terms(cx))
+ {
+ expanded_provider_configurations.insert(ZED_CLOUD_PROVIDER_ID, true);
+ }
+
let mut this = Self {
fs,
language_registry,
@@ -94,7 +104,7 @@ impl AgentConfiguration {
configuration_views_by_provider: HashMap::default(),
context_server_store,
expanded_context_server_tools: HashMap::default(),
- expanded_provider_configurations: HashMap::default(),
+ expanded_provider_configurations,
tools,
_registry_subscription: registry_subscription,
scroll_handle,
@@ -394,7 +394,8 @@ impl LanguageModelProvider for CloudLanguageModelProvider {
}
fn is_authenticated(&self, cx: &App) -> bool {
- !self.state.read(cx).is_signed_out()
+ let state = self.state.read(cx);
+ !state.is_signed_out() && state.has_accepted_terms_of_service(cx)
}
fn authenticate(&self, _cx: &mut App) -> Task<Result<(), AuthenticateError>> {