pub enum Action {
Show 85 variants
Tick,
Render,
Resize(u16, u16),
Quit,
Suspend,
Resume,
Error(String),
Help,
FocusNext,
FocusPrev,
Focus,
UnFocus,
Up,
Down,
Submit,
Update,
Tab(u32),
ToggleFullScreen,
StatusLine(String),
TimedStatusLine(String, u64),
InputSubmit(String),
ReconnectGateway,
DisconnectGateway,
RestartGateway,
SendToGateway(String),
GatewayDisconnected(String),
ShowSkills,
ShowSecrets,
CopyMessage,
ShowProviderSelector,
SetProvider(String),
PromptApiKey(String),
ConfirmStoreSecret {
provider: String,
key: String,
},
FetchModels(String),
FetchModelsFailed(String),
ShowModelSelector {
provider: String,
models: Vec<String>,
},
StartDeviceFlow(String),
DeviceFlowCodeReady {
url: String,
code: String,
},
DeviceFlowAuthenticated {
provider: String,
token: String,
},
DeviceFlowFailed(String),
ShowCredentialDialog {
name: String,
disabled: bool,
policy: String,
},
ShowTotpSetup,
GatewayAuthChallenge,
GatewayAuthResponse(String),
GatewayVaultLocked,
GatewayUnlockVault(String),
CloseHatching,
BeginHatchingExchange,
HatchingResponse(String),
FinishHatching(String),
SecretsListResult {
entries: Vec<SecretEntryDto>,
},
SecretsGetResult {
key: String,
value: Option<String>,
},
SecretsStoreResult {
ok: bool,
message: String,
},
SecretsPeekResult {
name: String,
ok: bool,
fields: Vec<(String, String)>,
message: Option<String>,
},
SecretsSetPolicyResult {
ok: bool,
message: Option<String>,
},
SecretsSetDisabledResult {
ok: bool,
cred_name: String,
disabled: bool,
},
SecretsDeleteCredentialResult {
ok: bool,
cred_name: String,
},
SecretsHasTotpResult {
has_totp: bool,
},
SecretsSetupTotpResult {
ok: bool,
uri: Option<String>,
message: Option<String>,
},
SecretsVerifyTotpResult {
ok: bool,
},
SecretsRemoveTotpResult {
ok: bool,
},
GatewayStreamStart,
GatewayThinkingStart,
GatewayThinkingDelta,
GatewayThinkingEnd,
GatewayChunk(String),
GatewayResponseDone,
GatewayToolCall {
id: String,
name: String,
arguments: String,
},
GatewayToolResult {
id: String,
name: String,
result: String,
is_error: bool,
},
GatewayAuthenticated,
GatewayReloaded {
provider: String,
model: String,
},
GatewayVaultUnlocked,
Info(String),
Success(String),
Warning(String),
ShowToolPermissions,
SaveToolPermissions(HashMap<String, ToolPermission>),
ToolApprovalRequest {
id: String,
name: String,
arguments: String,
},
ToolApprovalResponse {
id: String,
approved: bool,
},
UserPromptRequest(UserPrompt),
UserPromptResponse(UserPromptResponse),
ThreadsUpdate {
threads: Vec<ThreadInfo>,
foreground_id: Option<u64>,
},
ThreadSwitched {
thread_id: u64,
context_summary: Option<String>,
},
ToolCommandDone {
message: String,
is_error: bool,
},
Noop,
}Expand description
Actions that drive the application, inspired by openapi-tui.
Variants§
Tick
Render
Resize(u16, u16)
Quit
Suspend
Resume
Error(String)
Help
FocusNext
FocusPrev
Focus
UnFocus
Up
Down
Submit
Update
Tab(u32)
ToggleFullScreen
StatusLine(String)
TimedStatusLine(String, u64)
InputSubmit(String)
The user submitted text from the input bar (prompt or /command)
ReconnectGateway
Request to connect (or reconnect) to the gateway
DisconnectGateway
Request to disconnect from the gateway
RestartGateway
Request to restart the gateway (stop + start)
SendToGateway(String)
Send a text message to the gateway (prompt from the input bar)
GatewayDisconnected(String)
The gateway reader detected a connection drop
ShowSkills
Toggle the skills dialog overlay
ShowSecrets
Toggle the secrets dialog overlay
CopyMessage
Copy the currently selected message to clipboard
ShowProviderSelector
Show the provider-selection dialog
SetProvider(String)
Set the active provider (triggers auth check + model fetch)
PromptApiKey(String)
Open the API-key input dialog for the given provider
ConfirmStoreSecret
The user entered an API key in the dialog — proceed to store confirmation
FetchModels(String)
Fetch models from the provider API, then open the model selector
FetchModelsFailed(String)
The model fetch failed
ShowModelSelector
Open the model-selection dialog with a fetched list
StartDeviceFlow(String)
Begin OAuth device flow authentication for the given provider
DeviceFlowCodeReady
Device flow: verification URL and user code are ready for display
DeviceFlowAuthenticated
Device flow authentication succeeded — store the token and proceed
DeviceFlowFailed(String)
Device flow authentication failed
ShowCredentialDialog
Open the credential-management dialog for a secret
ShowTotpSetup
Open the 2FA (TOTP) setup / management dialog
GatewayAuthChallenge
Gateway sent an auth_challenge — prompt user for TOTP code
GatewayAuthResponse(String)
User submitted a TOTP code for gateway authentication
GatewayVaultLocked
Gateway vault is locked — prompt user for password
GatewayUnlockVault(String)
User submitted a password to unlock the gateway vault
CloseHatching
Close the hatching animation and transition to normal TUI
BeginHatchingExchange
Begin the hatching exchange — send the identity prompt to the gateway
HatchingResponse(String)
A gateway response routed to the hatching exchange
FinishHatching(String)
The hatching exchange is complete — save SOUL.md and close
SecretsListResult
Gateway returned the secrets list
Fields
entries: Vec<SecretEntryDto>SecretsGetResult
Gateway returned a secret value (for provider probing, device flow, etc.)
SecretsStoreResult
Gateway stored a secret successfully
SecretsPeekResult
Gateway returned peek result (for secret viewer)
SecretsSetPolicyResult
Gateway set policy result
SecretsSetDisabledResult
Gateway set disabled result
SecretsDeleteCredentialResult
Gateway deleted credential result
SecretsHasTotpResult
Gateway returned TOTP status
SecretsSetupTotpResult
Gateway returned TOTP setup URI
SecretsVerifyTotpResult
Gateway returned TOTP verification result
SecretsRemoveTotpResult
Gateway returned TOTP removal result
GatewayStreamStart
Gateway stream started (API connected, waiting for response)
GatewayThinkingStart
Gateway extended thinking started
GatewayThinkingDelta
Gateway extended thinking delta (update loading indicator)
GatewayThinkingEnd
Gateway extended thinking ended
GatewayChunk(String)
Gateway sent a text chunk
GatewayResponseDone
Gateway response is complete
GatewayToolCall
Gateway sent a tool call from the model
GatewayToolResult
Gateway sent a tool result from execution
GatewayAuthenticated
Gateway authenticated successfully
GatewayReloaded
Gateway config reloaded with new provider/model
GatewayVaultUnlocked
Gateway vault unlocked successfully
Info(String)
Info message
Success(String)
Success message
Warning(String)
Warning message
ShowToolPermissions
Show the tool permissions editor dialog
SaveToolPermissions(HashMap<String, ToolPermission>)
Save updated tool permissions to config
ToolApprovalRequest
Gateway is requesting user approval to run a tool (Ask mode)
ToolApprovalResponse
User responded to a tool approval request
UserPromptRequest(UserPrompt)
Gateway is requesting structured user input (ask_user tool)
UserPromptResponse(UserPromptResponse)
User responded to a structured prompt
ThreadsUpdate
Gateway sent a threads update (unified tasks + threads)
ThreadSwitched
Gateway confirmed thread switch
ToolCommandDone
A long-running slash-command tool finished (msg, is_error)
Noop
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Action
impl<'de> Deserialize<'de> for Action
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Action
Auto Trait Implementations§
impl Freeze for Action
impl RefUnwindSafe for Action
impl Send for Action
impl Sync for Action
impl Unpin for Action
impl UnsafeUnpin for Action
impl UnwindSafe for Action
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.