aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/tui/events.rs
blob: a791bb80374c34dee5e8160cdceb561fb279d701 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/// Application-domain events emitted by UI components.
///
/// Components translate raw key events into these semantic events,
/// which are sent via an `mpsc::Sender<AiTuiEvent>` provided through
/// eye-declare's context system. The main event loop in `inline.rs`
/// receives them and mutates `AppState` accordingly.
#[derive(Debug)]
pub enum AiTuiEvent {
    /// User updated the input text
    InputUpdated(String),
    /// User submitted text input (Enter in Input mode)
    SubmitInput(String),
    /// User entered a slash command (e.g. "/help")
    SlashCommand(String),
    /// Cancel active generation or streaming (Esc during Generating/Streaming)
    CancelGeneration,
    /// Execute the suggested command
    ExecuteCommand,
    /// Insert command without executing
    InsertCommand,
    /// Cancel confirmation of dangerous command
    CancelConfirmation,
    /// Retry after error
    Retry,
    /// Exit the application
    Exit,
}