Skip to main content

limit_cli/tui/
mod.rs

1//! TUI (Terminal User Interface) module for limit-cli
2//!
3//! This module provides a rich terminal interface for interacting with the Limit AI agent.
4//!
5//! # Architecture
6//!
7//! The TUI system is organized into several components:
8//!
9//! - **State**: Core state types (`TuiState`, `FileAutocompleteState`)
10//! - **Bridge**: Connection between agent and UI (`TuiBridge`)
11//! - **App**: Main application loop (`TuiApp`)
12//! - **Input**: Input handling (`InputHandler`, `InputEditor`, `ClipboardHandler`)
13//! - **Activity**: Activity message formatting
14//! - **Autocomplete**: File autocomplete management
15//!
16//! # Example
17//!
18//! ```no_run
19//! use limit_cli::tui::app::{TuiBridge, TuiApp};
20//! use limit_cli::agent_bridge::{AgentBridge, AgentEvent};
21//! use tokio::sync::mpsc;
22//!
23//! // Create agent bridge and event channel
24//! let (tx, rx) = mpsc::unbounded_channel();
25//! let bridge = AgentBridge::new(config)?;
26//!
27//! // Create TUI bridge
28//! let tui_bridge = TuiBridge::new(bridge, rx)?;
29//!
30//! // Run TUI app
31//! let app = TuiApp::new(tui_bridge)?;
32//! app.run()?;
33//! ```
34
35mod state;
36
37pub mod activity;
38pub mod app;
39pub mod autocomplete;
40pub mod bridge;
41pub mod commands;
42pub mod input;
43pub mod ui;
44
45// Re-export public API
46pub use input::InputHandler;
47pub use state::{FileAutocompleteState, TuiState, MAX_PASTE_SIZE};