Skip to main content

Module components

Module components 

Source
Expand description

TUI components for the swarm monitor

This module contains reusable UI components for the terminal interface. Components follow ratatui patterns and can be composed into larger views.

§Components

  • ModelSelector: For selecting AI models/harnesses when spawning agents
  • AgentSelector: For selecting and switching between running agents
  • StreamingView: For displaying streaming output from agents

§Usage

Components are designed to be used with ratatui’s StatefulWidget pattern:

use scud_cli::commands::spawn::tui::components::*;

// Create widget state
let mut state = ModelSelectorState::new(0);

// Render widget with state
let widget = ModelSelector::new(&models).focused(true);
frame.render_stateful_widget(widget, area, &mut state);

// Handle input to update state
state.next(models.len());

Re-exports§

pub use agent_selector::AgentBadge;
pub use agent_selector::AgentDisplayStatus;
pub use agent_selector::AgentInfo;
pub use agent_selector::AgentSelector;
pub use agent_selector::AgentSelectorState;
pub use model_selector::default_models;
pub use model_selector::ModelOption;
pub use model_selector::ModelSelector;
pub use model_selector::ModelSelectorCompact;
pub use model_selector::ModelSelectorState;
pub use streaming_view::OutputDisplay;
pub use streaming_view::OutputLine;
pub use streaming_view::OutputLineType;
pub use streaming_view::StreamingView;
pub use streaming_view::StreamingViewState;
pub use streaming_view::StreamingViewStrings;

Modules§

agent_selector
Agent selector component for TUI
model_selector
Model selector component for TUI
streaming_view
Streaming view component for TUI