pub enum InputEvent {
Show 166 variants
AssistantMessage(String),
AddUserMessage(String),
StreamAssistantMessage(Uuid, String),
RunToolCall(ToolCall),
ToolResult(ToolCallResult),
StreamToolResult(ToolCallResultProgress),
StreamToolCallProgress(Vec<ToolCallStreamInfo>),
StartLoadingOperation(LoadingOperation),
EndLoadingOperation(LoadingOperation),
InputChanged(char),
ShellMode,
RunShellCommand(String),
RunShellWithCommand(String),
GetStatus(String),
BillingInfoLoaded(BillingResponse),
Error(String),
SetSessions(Vec<SessionInfo>),
SetBannerMessage(String, BannerStyle),
InputBackspace,
InputChangedNewline,
InputSubmitted,
InputSubmittedWith(String),
InputSubmittedWithColor(String, Color),
MessageToolCalls(Vec<ToolCall>),
ScrollUp,
ScrollDown,
PageUp,
PageDown,
DropdownUp,
DropdownDown,
Up,
Down,
Quit,
HandleEsc,
HandleReject(Option<String>, bool, Option<Color>),
CursorLeft,
CursorRight,
ToggleCursorVisible,
Resized(u16, u16),
ShowConfirmationDialog(ToolCall),
HasUserMessage,
Tab,
ToggleApprovalStatus,
ShellOutput(String),
ShellError(String),
ShellWaitingForInput,
ShellCompleted(i32),
ShellClear,
ShellKill,
HandlePaste(String),
HandleClipboardImagePaste,
InputDelete,
InputDeleteWord,
InputCursorStart,
InputCursorEnd,
InputCursorPrevWord,
InputCursorNextWord,
ToggleAutoApprove,
AutoApproveCurrentTool,
ToggleDialogFocus,
RetryLastToolCall,
InteractiveStallDetected(String),
AttemptQuit,
ToggleCollapsedMessages,
ShowFileChangesPopup,
ShowAutoApprovePopup,
FileChangesRevertFile,
FileChangesRevertAll,
FileChangesOpenEditor,
EmergencyClearTerminal,
ToggleMouseCapture,
OpenFileInEditor,
ApprovalPopupNextTab,
ApprovalPopupPrevTab,
ApprovalPopupToggleApproval,
ApprovalPopupSubmit,
ApprovalPopupEscape,
ApprovalBarApproveAll,
ApprovalBarRejectAll,
ApprovalBarSelectAction(usize),
ApprovalBarApproveSelected,
ApprovalBarRejectSelected,
ApprovalBarNextAction,
ApprovalBarPrevAction,
ApprovalBarCollapse,
ShowProfileSwitcher,
ProfilesLoaded(Vec<String>, String),
ProfileSwitchRequested(String),
ProfileSwitchProgress(String),
ProfileSwitchComplete(String),
ProfileSwitchFailed(String),
ShowCommandPalette,
CommandPaletteSearchInputChanged(char),
CommandPaletteSearchBackspace,
ProfileSwitcherSelect,
ProfileSwitcherCancel,
ShowShortcuts,
ShortcutsCancel,
ShowRulebookSwitcher,
RulebooksLoaded(Vec<ListRuleBook>),
CurrentRulebooksLoaded(Vec<String>),
RulebookSwitcherSelect,
RulebookSwitcherToggle,
RulebookSwitcherCancel,
RulebookSwitcherConfirm,
RulebookSwitcherSelectAll,
RulebookSwitcherDeselectAll,
RulebookSearchInputChanged(char),
RulebookSearchBackspace,
HandleCtrlS,
ToggleMoreShortcuts,
StreamUsage(LLMTokenUsage),
RequestTotalUsage,
TotalUsage(LLMTokenUsage),
StreamModel(Model),
ShowModelSwitcher,
AvailableModelsLoaded(Vec<Model>),
ModelSwitcherSelect,
ModelSwitcherCancel,
ModelSwitcherSearchInputChanged(char),
ModelSwitcherSearchBackspace,
RecentModelsUpdated(Vec<String>),
ToggleSidePanel,
SidePanelNextSection,
SidePanelToggleSection,
MouseClick(u16, u16),
MouseDragStart(u16, u16),
MouseDrag(u16, u16),
MouseDragEnd(u16, u16),
MouseMove(u16, u16),
RefreshBoardTasks,
BoardTasksLoaded(FetchTasksResult),
BoardTasksError(String),
PlanModeChanged(bool),
ExistingPlanFound(ExistingPlanPrompt),
TogglePlanReview,
PlanReviewClose,
PlanReviewCursorUp,
PlanReviewCursorDown,
PlanReviewComment,
PlanReviewApprove,
PlanReviewFeedback,
PlanReviewNextComment,
PlanReviewPrevComment,
PlanReviewResolve,
PlanReviewPageUp,
PlanReviewPageDown,
ShowAskUserPopup(ToolCall, Vec<AskUserQuestion>),
AskUserNextTab,
AskUserPrevTab,
AskUserNextOption,
AskUserPrevOption,
AskUserSelectOption,
AskUserConfirmQuestion,
AskUserCustomInputChanged(char),
AskUserCustomInputBackspace,
AskUserCustomInputDelete,
AskUserSubmit,
AskUserCancel,
CopySessionId,
SetSessionId(String),
RunningBackgroundTasksCount(usize),
ShowApprovalSettingsPersistenceModal,
ApprovalSettingsPersistenceNavigate(i32),
ApprovalSettingsPersistenceConfirm,
ApprovalSettingsPersistenceCancel,
}Variants§
AssistantMessage(String)
AddUserMessage(String)
StreamAssistantMessage(Uuid, String)
RunToolCall(ToolCall)
ToolResult(ToolCallResult)
StreamToolResult(ToolCallResultProgress)
StreamToolCallProgress(Vec<ToolCallStreamInfo>)
Progress update while tool calls are being streamed/generated by the LLM
StartLoadingOperation(LoadingOperation)
EndLoadingOperation(LoadingOperation)
InputChanged(char)
ShellMode
RunShellCommand(String)
RunShellWithCommand(String)
Spawn the user’s shell and then execute a command in it (for interactive stall recovery)
GetStatus(String)
BillingInfoLoaded(BillingResponse)
Error(String)
SetSessions(Vec<SessionInfo>)
SetBannerMessage(String, BannerStyle)
InputBackspace
InputChangedNewline
InputSubmitted
InputSubmittedWith(String)
InputSubmittedWithColor(String, Color)
MessageToolCalls(Vec<ToolCall>)
ScrollUp
ScrollDown
PageUp
PageDown
DropdownUp
DropdownDown
Up
Down
Quit
HandleEsc
HandleReject(Option<String>, bool, Option<Color>)
CursorLeft
CursorRight
ToggleCursorVisible
Resized(u16, u16)
ShowConfirmationDialog(ToolCall)
HasUserMessage
Tab
ToggleApprovalStatus
ShellOutput(String)
ShellError(String)
ShellWaitingForInput
ShellCompleted(i32)
ShellClear
ShellKill
HandlePaste(String)
HandleClipboardImagePaste
Ctrl+V clipboard image paste (non-text, via system clipboard).
InputDelete
InputDeleteWord
InputCursorStart
InputCursorEnd
InputCursorPrevWord
InputCursorNextWord
ToggleAutoApprove
AutoApproveCurrentTool
ToggleDialogFocus
RetryLastToolCall
InteractiveStallDetected(String)
Interactive stall detected - automatically switch to shell mode and fire the command
AttemptQuit
ToggleCollapsedMessages
ShowFileChangesPopup
ShowAutoApprovePopup
FileChangesRevertFile
FileChangesRevertAll
FileChangesOpenEditor
EmergencyClearTerminal
ToggleMouseCapture
OpenFileInEditor
ApprovalPopupNextTab
ApprovalPopupPrevTab
ApprovalPopupToggleApproval
ApprovalPopupSubmit
ApprovalPopupEscape
ApprovalBarApproveAll
ApprovalBarRejectAll
ApprovalBarSelectAction(usize)
ApprovalBarApproveSelected
ApprovalBarRejectSelected
ApprovalBarNextAction
ApprovalBarPrevAction
ApprovalBarCollapse
ShowProfileSwitcher
ProfilesLoaded(Vec<String>, String)
ProfileSwitchRequested(String)
ProfileSwitchProgress(String)
ProfileSwitchComplete(String)
ProfileSwitchFailed(String)
ShowCommandPalette
CommandPaletteSearchInputChanged(char)
CommandPaletteSearchBackspace
ProfileSwitcherSelect
ProfileSwitcherCancel
ShowShortcuts
ShortcutsCancel
ShowRulebookSwitcher
RulebooksLoaded(Vec<ListRuleBook>)
CurrentRulebooksLoaded(Vec<String>)
RulebookSwitcherSelect
RulebookSwitcherToggle
RulebookSwitcherCancel
RulebookSwitcherConfirm
RulebookSwitcherSelectAll
RulebookSwitcherDeselectAll
RulebookSearchInputChanged(char)
RulebookSearchBackspace
HandleCtrlS
ToggleMoreShortcuts
StreamUsage(LLMTokenUsage)
RequestTotalUsage
TotalUsage(LLMTokenUsage)
StreamModel(Model)
ShowModelSwitcher
AvailableModelsLoaded(Vec<Model>)
ModelSwitcherSelect
ModelSwitcherCancel
ModelSwitcherSearchInputChanged(char)
ModelSwitcherSearchBackspace
RecentModelsUpdated(Vec<String>)
Update recent models list (sent after model switch is saved)
ToggleSidePanel
SidePanelNextSection
SidePanelToggleSection
MouseClick(u16, u16)
MouseDragStart(u16, u16)
MouseDrag(u16, u16)
MouseDragEnd(u16, u16)
MouseMove(u16, u16)
RefreshBoardTasks
BoardTasksLoaded(FetchTasksResult)
BoardTasksError(String)
PlanModeChanged(bool)
Plan mode toggled on/off (sent from backend to TUI to sync state)
ExistingPlanFound(ExistingPlanPrompt)
Existing plan found at startup — show the modal with metadata and stashed prompt
TogglePlanReview
Toggle plan review overlay (Ctrl+P in plan mode)
PlanReviewClose
Close plan review overlay
PlanReviewCursorUp
Move cursor up in plan review
PlanReviewCursorDown
Move cursor down in plan review
PlanReviewComment
Open comment modal for current line
PlanReviewApprove
Approve the plan
PlanReviewFeedback
Submit feedback (unresolved comments)
PlanReviewNextComment
Jump to next commented line
PlanReviewPrevComment
Jump to previous commented line
PlanReviewResolve
Toggle resolve on selected comment
PlanReviewPageUp
Scroll plan review up by a page
PlanReviewPageDown
Scroll plan review down by a page
ShowAskUserPopup(ToolCall, Vec<AskUserQuestion>)
AskUserNextTab
AskUserPrevTab
AskUserNextOption
AskUserPrevOption
AskUserSelectOption
AskUserConfirmQuestion
AskUserCustomInputChanged(char)
AskUserCustomInputBackspace
AskUserCustomInputDelete
AskUserSubmit
AskUserCancel
CopySessionId
SetSessionId(String)
RunningBackgroundTasksCount(usize)
ShowApprovalSettingsPersistenceModal
ApprovalSettingsPersistenceConfirm
ApprovalSettingsPersistenceCancel
Implementations§
Source§impl InputEvent
impl InputEvent
Sourcepub fn is_backend_event(&self) -> bool
pub fn is_backend_event(&self) -> bool
Returns true for events sent by the backend (stream, CLI) that must never be consumed by popup interceptors. These events drive the message pipeline and blocking them causes the TUI to get stuck in a loading state.
Important: When adding new InputEvent variants that originate from the
backend (mode_interactive, stream, helpers, etc.), add them here too —
otherwise they’ll be silently dropped when any popup is open.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InputEvent
impl RefUnwindSafe for InputEvent
impl Send for InputEvent
impl Sync for InputEvent
impl Unpin for InputEvent
impl UnsafeUnpin for InputEvent
impl UnwindSafe for InputEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request