diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 1a3deabda6a9c4350166d1d9aefd533be21f0d27..d9bd7b28ad1112aadc60ab3fbf8b84d9e18a3c0c 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -21,7 +21,7 @@ use editor::{ Editor, EditorEvent, EditorMode, MultiBuffer, PathKey, SelectionEffects, SizingBehavior, }; use feature_flags::{ - AgentSharingFeatureFlag, AgentV2FeatureFlag, CloudThinkingToggleFeatureFlag, + AgentSharingFeatureFlag, AgentV2FeatureFlag, CloudThinkingEffortFeatureFlag, FeatureFlagAppExt as _, }; use file_icons::FileIcons; diff --git a/crates/agent_ui/src/acp/thread_view/active_thread.rs b/crates/agent_ui/src/acp/thread_view/active_thread.rs index 9fca0cfe1fb8b6ca5bcd6dc2724e673faba6e363..de3b9038c715a5141023b65f7f973350ca65ab24 100644 --- a/crates/agent_ui/src/acp/thread_view/active_thread.rs +++ b/crates/agent_ui/src/acp/thread_view/active_thread.rs @@ -2696,7 +2696,7 @@ impl AcpThreadView { } fn render_thinking_control(&self, cx: &mut Context) -> Option { - if !cx.has_flag::() { + if !cx.has_flag::() { return None; } diff --git a/crates/feature_flags/src/flags.rs b/crates/feature_flags/src/flags.rs index ebe67c43ab7232a6c8ed57bb0a982706490c451e..43f4898da40e4a3f8edfb973ad2a4c5a1c79a1fe 100644 --- a/crates/feature_flags/src/flags.rs +++ b/crates/feature_flags/src/flags.rs @@ -60,11 +60,12 @@ impl FeatureFlag for DiffReviewFeatureFlag { } } -/// Controls whether we show the new thinking toggle in the Agent Panel when using models through the Zed provider (Cloud). -pub struct CloudThinkingToggleFeatureFlag; +/// Controls whether we show the new thinking and effort level controls in the Agent Panel when using applicable models +/// through the Zed provider (Cloud). +pub struct CloudThinkingEffortFeatureFlag; -impl FeatureFlag for CloudThinkingToggleFeatureFlag { - const NAME: &'static str = "cloud-thinking-toggle"; +impl FeatureFlag for CloudThinkingEffortFeatureFlag { + const NAME: &'static str = "cloud-thinking-effort"; fn enabled_for_staff() -> bool { false diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 6f9f500713ca304bc16c6a563d0ee030169c0586..ae344bb245d47ddb378d9b0ec3f26dc6c40c2b67 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -9,7 +9,7 @@ use cloud_llm_client::{ CompletionEvent, CountTokensBody, CountTokensResponse, ListModelsResponse, SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, ZED_VERSION_HEADER_NAME, }; -use feature_flags::{CloudThinkingToggleFeatureFlag, FeatureFlagAppExt as _}; +use feature_flags::{CloudThinkingEffortFeatureFlag, FeatureFlagAppExt as _}; use futures::{ AsyncBufReadExt, FutureExt, Stream, StreamExt, future::BoxFuture, stream::BoxStream, }; @@ -168,14 +168,14 @@ impl State { } fn update_models(&mut self, response: ListModelsResponse, cx: &mut Context) { - let is_thinking_toggle_enabled = cx.has_flag::(); + let is_thinking_effort_enabled = cx.has_flag::(); let mut models = Vec::new(); for model in response.models { models.push(Arc::new(model.clone())); - if !is_thinking_toggle_enabled { + if !is_thinking_effort_enabled { // Right now we represent thinking variants of models as separate models on the client, // so we need to insert variants for any model that supports thinking. if model.supports_thinking { @@ -740,9 +740,9 @@ impl LanguageModel for CloudLanguageModel { let intent = request.intent; let app_version = Some(cx.update(|cx| AppVersion::global(cx))); let thinking_allowed = request.thinking_allowed; - let is_thinking_toggle_enabled = - cx.update(|cx| cx.has_flag::()); - let enable_thinking = if is_thinking_toggle_enabled { + let is_thinking_effort_enabled = + cx.update(|cx| cx.has_flag::()); + let enable_thinking = if is_thinking_effort_enabled { thinking_allowed && self.model.supports_thinking } else { thinking_allowed && self.model.id.0.ends_with("-thinking")