diff --git a/crates/agent/src/message_editor.rs b/crates/agent/src/message_editor.rs index 79790c7ac4..5fd464d05e 100644 --- a/crates/agent/src/message_editor.rs +++ b/crates/agent/src/message_editor.rs @@ -429,12 +429,12 @@ impl MessageEditor { IconButton::new("max-mode", IconName::ZedMaxMode) .icon_size(IconSize::Small) .icon_color(Color::Muted) - .toggle_state(active_completion_mode == Some(CompletionMode::Max)) + .toggle_state(active_completion_mode == CompletionMode::Max) .on_click(cx.listener(move |this, _event, _window, cx| { this.thread.update(cx, |thread, _cx| { thread.set_completion_mode(match active_completion_mode { - Some(CompletionMode::Max) => Some(CompletionMode::Normal), - Some(CompletionMode::Normal) | None => Some(CompletionMode::Max), + CompletionMode::Max => CompletionMode::Normal, + CompletionMode::Normal => CompletionMode::Max, }); }); })) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 61cae185b0..efea5d740c 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -301,6 +301,14 @@ pub enum TokenUsageRatio { Exceeded, } +fn default_completion_mode(cx: &App) -> CompletionMode { + if cx.is_staff() { + CompletionMode::Max + } else { + CompletionMode::Normal + } +} + /// A thread of conversation with the LLM. pub struct Thread { id: ThreadId, @@ -310,7 +318,7 @@ pub struct Thread { detailed_summary_task: Task>, detailed_summary_tx: postage::watch::Sender, detailed_summary_rx: postage::watch::Receiver, - completion_mode: Option, + completion_mode: CompletionMode, messages: Vec, next_message_id: MessageId, last_prompt_id: PromptId, @@ -366,7 +374,7 @@ impl Thread { detailed_summary_task: Task::ready(None), detailed_summary_tx, detailed_summary_rx, - completion_mode: None, + completion_mode: default_completion_mode(cx), messages: Vec::new(), next_message_id: MessageId(0), last_prompt_id: PromptId::new(), @@ -440,7 +448,7 @@ impl Thread { detailed_summary_task: Task::ready(None), detailed_summary_tx, detailed_summary_rx, - completion_mode: None, + completion_mode: default_completion_mode(cx), messages: serialized .messages .into_iter() @@ -569,11 +577,11 @@ impl Thread { } } - pub fn completion_mode(&self) -> Option { + pub fn completion_mode(&self) -> CompletionMode { self.completion_mode } - pub fn set_completion_mode(&mut self, mode: Option) { + pub fn set_completion_mode(&mut self, mode: CompletionMode) { self.completion_mode = mode; } @@ -1152,9 +1160,9 @@ impl Thread { request.tools = available_tools; request.mode = if model.supports_max_mode() { - self.completion_mode + Some(self.completion_mode) } else { - None + Some(CompletionMode::Normal) }; request