Add persistent local agent tools
This commit is contained in:
@@ -57,7 +57,13 @@ impl App {
|
||||
} else {
|
||||
let markdown_style = markdown::Style::from_palette(app_theme().palette());
|
||||
for (index, message) in self.conversation.iter().enumerate() {
|
||||
let label = if message.user { "You" } else { "DS4" };
|
||||
let label = if message.user {
|
||||
"You"
|
||||
} else if message.tool {
|
||||
"Tool"
|
||||
} else {
|
||||
"DS4"
|
||||
};
|
||||
let active = self.generating && index + 1 == self.conversation.len();
|
||||
let mut body = column![text(label).size(11)].spacing(5);
|
||||
if let Some(reasoning) = &message.reasoning {
|
||||
@@ -89,11 +95,11 @@ impl App {
|
||||
}
|
||||
}
|
||||
if !message.content.is_empty() {
|
||||
if message.user || message.markdown.is_empty() {
|
||||
if message.user || message.tool || message.markdown.is_empty() {
|
||||
let content = if message.reasoning.is_some() {
|
||||
message.content.trim_start()
|
||||
crate::agent::visible_content(&message.content).trim_start()
|
||||
} else {
|
||||
&message.content
|
||||
crate::agent::visible_content(&message.content)
|
||||
};
|
||||
body = body.push(text(content).size(14));
|
||||
} else {
|
||||
@@ -109,6 +115,14 @@ impl App {
|
||||
} else if active && message.reasoning.is_none() {
|
||||
body = body.push(text("Loading model…").size(14));
|
||||
}
|
||||
if !message.user
|
||||
&& !message.tool
|
||||
&& let Some(model) = ModelChoice::from_id(&self.preferences.selected_model)
|
||||
{
|
||||
for summary in crate::agent::tool_summaries(model, &message.content) {
|
||||
body = body.push(text(summary).size(13).color(muted_text()));
|
||||
}
|
||||
}
|
||||
let user = message.user;
|
||||
messages = messages.push(
|
||||
container(body)
|
||||
|
||||
Reference in New Issue
Block a user