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

Method set_subagent_enabled

src/apps/cli/src/modes/chat.rs:3218–3256  ·  view source on GitHub ↗
(
        &self,
        selected: &SubagentItem,
        enabled: bool,
        chat_state: &mut ChatState,
        rt_handle: &tokio::runtime::Handle,
    )

Source from the content-addressed store, hash-verified

3216 }
3217
3218 fn set_subagent_enabled(
3219 &self,
3220 selected: &SubagentItem,
3221 enabled: bool,
3222 chat_state: &mut ChatState,
3223 rt_handle: &tokio::runtime::Handle,
3224 ) {
3225 let registry = get_agent_registry();
3226 let workspace = self.agent.workspace_path_buf();
3227 let mode_id = self.agent_type.clone();
3228 let subagent = selected.clone();
3229
3230 let result: Result<(), String> = tokio::task::block_in_place(|| {
3231 rt_handle.block_on(async {
3232 registry
3233 .update_subagent_override(
3234 &mode_id,
3235 &subagent.id,
3236 enabled,
3237 Some(workspace.as_path()),
3238 )
3239 .await
3240 .map_err(|error| error.to_string())
3241 })
3242 });
3243
3244 match result {
3245 Ok(()) => chat_state.add_system_message(format!(
3246 "Subagent '{}' {} for mode '{}'.",
3247 selected.name,
3248 if enabled { "enabled" } else { "disabled" },
3249 self.agent_type
3250 )),
3251 Err(error) => chat_state.add_system_message(format!(
3252 "Failed to update subagent '{}': {}",
3253 selected.name, error
3254 )),
3255 }
3256 }
3257
3258 fn subagent_item_from_info(info: AgentInfo) -> SubagentItem {
3259 let source = match info.subagent_source {

Callers 1

Calls 5

get_agent_registryFunction · 0.85
add_system_messageMethod · 0.80
workspace_path_bufMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected