MCPcopy Create free account
hub / github.com/GCWing/BitFun / switch_agent_by_offset

Method switch_agent_by_offset

src/apps/cli/src/modes/chat.rs:1981–2004  ·  view source on GitHub ↗
(
        &mut self,
        offset: isize,
        _chat_view: &mut ChatView,
        chat_state: &mut ChatState,
        rt_handle: &tokio::runtime::Handle,
    )

Source from the content-addressed store, hash-verified

1979 }
1980
1981 fn switch_agent_by_offset(
1982 &mut self,
1983 offset: isize,
1984 _chat_view: &mut ChatView,
1985 chat_state: &mut ChatState,
1986 rt_handle: &tokio::runtime::Handle,
1987 ) {
1988 let modes = self.get_mode_agents(rt_handle);
1989 if modes.len() <= 1 {
1990 return;
1991 }
1992
1993 let current_idx = modes
1994 .iter()
1995 .position(|m| m.id == self.agent_type)
1996 .unwrap_or(0);
1997
1998 let len = modes.len() as isize;
1999 let next_idx = ((current_idx as isize + offset) % len + len) % len;
2000 let next = &modes[next_idx as usize];
2001
2002 self.agent_type = next.id.clone();
2003 chat_state.agent_type = next.id.clone();
2004 }
2005
2006 /// Load current model name from global config for display
2007 fn load_current_model_name(

Callers 2

cycle_agentMethod · 0.80
cycle_agent_reverseMethod · 0.80

Calls 4

iterMethod · 0.80
get_mode_agentsMethod · 0.45
lenMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected