Make agent tools schema-driven
This commit is contained in:
@@ -479,6 +479,8 @@ impl App {
|
||||
return;
|
||||
}
|
||||
#[cfg(target_os = "macos")]
|
||||
self.reset_agent_tool_repeats();
|
||||
#[cfg(target_os = "macos")]
|
||||
let opening_turn = self.selected_session.is_none();
|
||||
#[cfg(target_os = "macos")]
|
||||
let opening_agents = if opening_turn {
|
||||
@@ -1193,6 +1195,20 @@ impl App {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
fn reset_agent_tool_repeats(&mut self) {
|
||||
let Some((session_id, tools)) = &self.agent_tools else {
|
||||
return;
|
||||
};
|
||||
if Some(*session_id) != self.selected_session {
|
||||
return;
|
||||
}
|
||||
tools
|
||||
.lock()
|
||||
.unwrap_or_else(|poisoned| poisoned.into_inner())
|
||||
.reset_repeated_calls();
|
||||
}
|
||||
|
||||
fn finish_turn_summary(&mut self) {
|
||||
self.context_notice = None;
|
||||
let Some(turn) = self.active_turn.take() else {
|
||||
@@ -1307,6 +1323,7 @@ impl App {
|
||||
let assistant_reasoning = effective.turn.reasoning_mode != ReasoningMode::Direct;
|
||||
let queued = queued_prompt(self.queued_inputs.drain(..));
|
||||
if queued.is_some() {
|
||||
self.reset_agent_tool_repeats();
|
||||
self.a2ui_auto_switch_pending = true;
|
||||
}
|
||||
let reminders = if self.system_prompt_reminder_due() {
|
||||
|
||||
Reference in New Issue
Block a user