Class: SwarmCLI::UI::Components::AgentBadge

Inherits:
Object
  • Object
show all
Defined in:
lib/swarm_cli/ui/components/agent_badge.rb

Overview

Renders agent names with consistent colors using cache

Instance Method Summary collapse

Constructor Details

#initialize(pastel:, color_cache:) ⇒ AgentBadge

Returns a new instance of AgentBadge.



8
9
10
11
# File 'lib/swarm_cli/ui/components/agent_badge.rb', line 8

def initialize(pastel:, color_cache:)
  @pastel = pastel
  @color_cache = color_cache
end

Instance Method Details

#render(agent_name, icon: nil, bold: false) ⇒ Object

Render agent name with cached color architect → "architect" (in cyan)



15
16
17
18
19
20
21
22
23
# File 'lib/swarm_cli/ui/components/agent_badge.rb', line 15

def render(agent_name, icon: nil, bold: false)
  color = @color_cache.get(agent_name)
  text = icon ? "#{icon} #{agent_name}" : agent_name.to_s

  styled = @pastel.public_send(color, text)
  styled = @pastel.bold(styled) if bold

  styled
end

#render_list(agent_names, separator: ", ") ⇒ Object

Render agent list (comma-separated, each colored) [architect, worker] → "architect, worker" (each colored differently)



27
28
29
# File 'lib/swarm_cli/ui/components/agent_badge.rb', line 27

def render_list(agent_names, separator: ", ")
  agent_names.map { |name| render(name) }.join(separator)
end