agent: Make thread completion mode non-optional (#29772)
This PR makes the thread completion mode non-optional. Release Notes: - N/A
This commit is contained in:
parent
0c0a4ed866
commit
93cc4946d8
2 changed files with 18 additions and 10 deletions
|
@ -429,12 +429,12 @@ impl MessageEditor {
|
||||||
IconButton::new("max-mode", IconName::ZedMaxMode)
|
IconButton::new("max-mode", IconName::ZedMaxMode)
|
||||||
.icon_size(IconSize::Small)
|
.icon_size(IconSize::Small)
|
||||||
.icon_color(Color::Muted)
|
.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| {
|
.on_click(cx.listener(move |this, _event, _window, cx| {
|
||||||
this.thread.update(cx, |thread, _cx| {
|
this.thread.update(cx, |thread, _cx| {
|
||||||
thread.set_completion_mode(match active_completion_mode {
|
thread.set_completion_mode(match active_completion_mode {
|
||||||
Some(CompletionMode::Max) => Some(CompletionMode::Normal),
|
CompletionMode::Max => CompletionMode::Normal,
|
||||||
Some(CompletionMode::Normal) | None => Some(CompletionMode::Max),
|
CompletionMode::Normal => CompletionMode::Max,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -301,6 +301,14 @@ pub enum TokenUsageRatio {
|
||||||
Exceeded,
|
Exceeded,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_completion_mode(cx: &App) -> CompletionMode {
|
||||||
|
if cx.is_staff() {
|
||||||
|
CompletionMode::Max
|
||||||
|
} else {
|
||||||
|
CompletionMode::Normal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// A thread of conversation with the LLM.
|
/// A thread of conversation with the LLM.
|
||||||
pub struct Thread {
|
pub struct Thread {
|
||||||
id: ThreadId,
|
id: ThreadId,
|
||||||
|
@ -310,7 +318,7 @@ pub struct Thread {
|
||||||
detailed_summary_task: Task<Option<()>>,
|
detailed_summary_task: Task<Option<()>>,
|
||||||
detailed_summary_tx: postage::watch::Sender<DetailedSummaryState>,
|
detailed_summary_tx: postage::watch::Sender<DetailedSummaryState>,
|
||||||
detailed_summary_rx: postage::watch::Receiver<DetailedSummaryState>,
|
detailed_summary_rx: postage::watch::Receiver<DetailedSummaryState>,
|
||||||
completion_mode: Option<CompletionMode>,
|
completion_mode: CompletionMode,
|
||||||
messages: Vec<Message>,
|
messages: Vec<Message>,
|
||||||
next_message_id: MessageId,
|
next_message_id: MessageId,
|
||||||
last_prompt_id: PromptId,
|
last_prompt_id: PromptId,
|
||||||
|
@ -366,7 +374,7 @@ impl Thread {
|
||||||
detailed_summary_task: Task::ready(None),
|
detailed_summary_task: Task::ready(None),
|
||||||
detailed_summary_tx,
|
detailed_summary_tx,
|
||||||
detailed_summary_rx,
|
detailed_summary_rx,
|
||||||
completion_mode: None,
|
completion_mode: default_completion_mode(cx),
|
||||||
messages: Vec::new(),
|
messages: Vec::new(),
|
||||||
next_message_id: MessageId(0),
|
next_message_id: MessageId(0),
|
||||||
last_prompt_id: PromptId::new(),
|
last_prompt_id: PromptId::new(),
|
||||||
|
@ -440,7 +448,7 @@ impl Thread {
|
||||||
detailed_summary_task: Task::ready(None),
|
detailed_summary_task: Task::ready(None),
|
||||||
detailed_summary_tx,
|
detailed_summary_tx,
|
||||||
detailed_summary_rx,
|
detailed_summary_rx,
|
||||||
completion_mode: None,
|
completion_mode: default_completion_mode(cx),
|
||||||
messages: serialized
|
messages: serialized
|
||||||
.messages
|
.messages
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
@ -569,11 +577,11 @@ impl Thread {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn completion_mode(&self) -> Option<CompletionMode> {
|
pub fn completion_mode(&self) -> CompletionMode {
|
||||||
self.completion_mode
|
self.completion_mode
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_completion_mode(&mut self, mode: Option<CompletionMode>) {
|
pub fn set_completion_mode(&mut self, mode: CompletionMode) {
|
||||||
self.completion_mode = mode;
|
self.completion_mode = mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1152,9 +1160,9 @@ impl Thread {
|
||||||
|
|
||||||
request.tools = available_tools;
|
request.tools = available_tools;
|
||||||
request.mode = if model.supports_max_mode() {
|
request.mode = if model.supports_max_mode() {
|
||||||
self.completion_mode
|
Some(self.completion_mode)
|
||||||
} else {
|
} else {
|
||||||
None
|
Some(CompletionMode::Normal)
|
||||||
};
|
};
|
||||||
|
|
||||||
request
|
request
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue