aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/tui/events.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/atuin-ai/src/tui/events.rs')
-rw-r--r--crates/atuin-ai/src/tui/events.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/crates/atuin-ai/src/tui/events.rs b/crates/atuin-ai/src/tui/events.rs
index a791bb80..1a422fef 100644
--- a/crates/atuin-ai/src/tui/events.rs
+++ b/crates/atuin-ai/src/tui/events.rs
@@ -5,13 +5,20 @@
/// eye-declare's context system. The main event loop in `inline.rs`
/// receives them and mutates `AppState` accordingly.
#[derive(Debug)]
-pub enum AiTuiEvent {
+pub(crate) 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")
+ #[allow(unused)]
SlashCommand(String),
+ /// Check the permission for a tool call
+ CheckToolCallPermission(String),
+ /// User selected a permission
+ SelectPermission(PermissionResult),
+ /// Continue after client tools have completed
+ ContinueAfterTools,
/// Cancel active generation or streaming (Esc during Generating/Streaming)
CancelGeneration,
/// Execute the suggested command
@@ -20,8 +27,18 @@ pub enum AiTuiEvent {
InsertCommand,
/// Cancel confirmation of dangerous command
CancelConfirmation,
+ /// Interrupt a running tool execution (Ctrl+C during ExecutingPreview)
+ InterruptToolExecution,
/// Retry after error
Retry,
/// Exit the application
Exit,
}
+
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub(crate) enum PermissionResult {
+ Allow,
+ AlwaysAllowInDir,
+ AlwaysAllow,
+ Deny,
+}