MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / refresh_agent_dialog

Method refresh_agent_dialog

crates/opencode-tui/src/app/app.rs:2496–2534  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

2494 }
2495
2496 fn refresh_agent_dialog(&mut self) {
2497 let Some(client) = self.context.get_api_client() else {
2498 return;
2499 };
2500
2501 let Ok(agents) = client.list_agents() else {
2502 return;
2503 };
2504
2505 if agents.is_empty() {
2506 return;
2507 }
2508
2509 let theme = self.context.theme.read().clone();
2510 let mut agent_names = Vec::new();
2511 let mapped = agents
2512 .into_iter()
2513 .enumerate()
2514 .map(|(idx, agent)| {
2515 agent_names.push(agent.id.clone());
2516 Agent {
2517 name: agent.id,
2518 description: agent
2519 .description
2520 .unwrap_or_else(|| "No description".to_string()),
2521 color: theme.agent_color(idx),
2522 }
2523 })
2524 .collect::<Vec<_>>();
2525 self.agent_select.set_agents(mapped);
2526 let current = self.context.current_agent.read().clone();
2527 if !agent_names.iter().any(|name| name == &current) {
2528 if let Some(first) = agent_names.first() {
2529 self.context.set_agent(first.clone());
2530 self.sync_prompt_spinner_style();
2531 }
2532 }
2533 self.prompt.set_agent_suggestions(agent_names);
2534 }
2535
2536 fn cycle_agent(&mut self, direction: i8) {
2537 self.refresh_agent_dialog();

Callers 3

newMethod · 0.80
cycle_agentMethod · 0.80

Calls 11

newFunction · 0.85
get_api_clientMethod · 0.80
list_agentsMethod · 0.80
is_emptyMethod · 0.80
readMethod · 0.80
agent_colorMethod · 0.80
set_agentsMethod · 0.80
set_agentMethod · 0.80
set_agent_suggestionsMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected