(&mut self, selected: &SubagentItem, enabled: bool)
| 1979 | } |
| 1980 | |
| 1981 | fn set_subagent_enabled(&mut self, selected: &SubagentItem, enabled: bool) { |
| 1982 | let registry = get_agent_registry(); |
| 1983 | let workspace = self.workspace_path_buf(); |
| 1984 | let mode_id = self.agent_type.clone(); |
| 1985 | let subagent = selected.clone(); |
| 1986 | |
| 1987 | let result: Result<(), String> = tokio::task::block_in_place(|| { |
| 1988 | tokio::runtime::Handle::current().block_on(async { |
| 1989 | registry |
| 1990 | .update_subagent_override( |
| 1991 | &mode_id, |
| 1992 | &subagent.id, |
| 1993 | enabled, |
| 1994 | Some(workspace.as_path()), |
| 1995 | ) |
| 1996 | .await |
| 1997 | .map_err(|error| error.to_string()) |
| 1998 | }) |
| 1999 | }); |
| 2000 | |
| 2001 | self.status = Some(match result { |
| 2002 | Ok(()) => format!( |
| 2003 | "Subagent '{}' {} for mode '{}'.", |
| 2004 | selected.name, |
| 2005 | if enabled { "enabled" } else { "disabled" }, |
| 2006 | self.agent_type |
| 2007 | ), |
| 2008 | Err(error) => format!("Failed to update subagent '{}': {}", selected.name, error), |
| 2009 | }); |
| 2010 | } |
| 2011 | |
| 2012 | fn subagent_item_from_info(info: AgentInfo) -> SubagentItem { |
| 2013 | let source = match info.subagent_source { |
no test coverage detected