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