Make agent tools schema-driven

This commit is contained in:
Georg Bauer
2026-08-29 20:43:56 +02:00
parent f1c177b754
commit f12aafcb2e
3 changed files with 1067 additions and 84 deletions

View File

@@ -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() {