aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/fsm/effects.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/atuin-ai/src/fsm/effects.rs')
-rw-r--r--crates/atuin-ai/src/fsm/effects.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/crates/atuin-ai/src/fsm/effects.rs b/crates/atuin-ai/src/fsm/effects.rs
index ede72a42..306f1401 100644
--- a/crates/atuin-ai/src/fsm/effects.rs
+++ b/crates/atuin-ai/src/fsm/effects.rs
@@ -61,14 +61,27 @@ pub(crate) enum Effect {
ArchiveSession,
// ─── Timers ─────────────────────────────────────────────────
- /// Schedule a timer that will fire ConfirmationTimeout after delay.
- ScheduleTimeout { timeout_id: u64, duration: Duration },
+ /// Schedule a timer that fires an event after the given delay.
+ ScheduleTimeout {
+ timeout_id: u64,
+ duration: Duration,
+ kind: TimeoutKind,
+ },
// ─── Exit ───────────────────────────────────────────────────
/// Exit the application with the given action.
ExitApp(ExitAction),
}
+/// What kind of timeout was scheduled.
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub(crate) enum TimeoutKind {
+ /// Dangerous command confirmation dialog auto-dismiss.
+ Confirmation,
+ /// Shell tool execution timeout — abort the tool if it's still running.
+ ToolExecution { tool_id: String },
+}
+
/// What to do when exiting the TUI.
#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) enum ExitAction {