diff --git a/src/config/mod.rs b/src/config/mod.rs index 34e0234..7e184d9 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -1,10 +1,10 @@ mod agent; mod input; mod macros; +mod prompts; mod role; mod session; pub(crate) mod todo; -mod prompts; pub use self::agent::{Agent, AgentVariables, complete_agent_variables, list_agents}; pub use self::input::Input; @@ -1898,6 +1898,10 @@ impl Config { self.exit_session()?; self.load_functions()?; if self.agent.take().is_some() { + if let Some(ref supervisor) = self.supervisor { + supervisor.read().cancel_all(); + } + self.supervisor.take(); self.rag.take(); self.discontinuous_last_message(); } diff --git a/src/function/supervisor.rs b/src/function/supervisor.rs index 075b11f..67c60b9 100644 --- a/src/function/supervisor.rs +++ b/src/function/supervisor.rs @@ -305,6 +305,10 @@ fn run_child_agent( input = input.merge_tool_results(output, tool_results); } + if let Some(ref supervisor) = child_config.read().supervisor { + supervisor.read().cancel_all(); + } + Ok(accumulated_output) }) }