#[repr(u32)]pub enum EventTag {
Show 37 variants
ProjectTrust = 0,
ResourcesDiscover = 1,
SessionStart = 2,
SessionInfoChanged = 3,
SessionBeforeSwitch = 4,
SessionBeforeFork = 5,
SessionBeforeCompact = 6,
SessionCompact = 7,
SessionShutdown = 8,
SessionBeforeTree = 9,
SessionTree = 10,
Context = 11,
BeforeProviderRequest = 12,
BeforeProviderHeaders = 13,
AfterProviderResponse = 14,
BeforeAgentStart = 15,
AgentStart = 16,
AgentEnd = 17,
AgentSettled = 18,
TurnStart = 19,
TurnEnd = 20,
MessageStart = 21,
MessageUpdate = 22,
MessageEnd = 23,
ToolExecutionStart = 24,
ToolExecutionUpdate = 25,
ToolExecutionEnd = 26,
ModelSelect = 27,
ThinkingLevelSelect = 28,
ToolCall = 29,
ToolResult = 30,
UserBash = 31,
Input = 32,
BeforeTuiStart = 33,
UiPromptStart = 34,
UiPromptEnd = 35,
EditorChange = 36,
}Expand description
Discriminant for StablePluginEvent, one variant per pi on() category
(33 total) plus one rpi-specific category (34 total). #[repr(u32)] pins
the discriminant width.
The 33 Pi categories (verified against extensions/types.ts:1203-1244):
project_trust, resources_discover, session_start, session_info_changed,
session_before_switch, session_before_fork, session_before_compact,
session_compact, session_shutdown, session_before_tree, session_tree,
context, before_provider_request, before_provider_headers,
after_provider_response, before_agent_start, agent_start, agent_end,
agent_settled, turn_start, turn_end, message_start, message_update,
message_end, tool_execution_start, tool_execution_update,
tool_execution_end, model_select, thinking_level_select, tool_call,
tool_result, user_bash, input.
BeforeTuiStart is rpi-specific (not a Pi category): dispatched once
before the interactive TUI is initialized, so extensions can prepare
(connect a server, load a resource) before the UI starts. Appended last so
existing discriminants keep their values (ABI-safe for already-compiled
plugins).
Variants§
ProjectTrust = 0
ResourcesDiscover = 1
SessionStart = 2
SessionInfoChanged = 3
SessionBeforeSwitch = 4
SessionBeforeFork = 5
SessionBeforeCompact = 6
SessionCompact = 7
SessionShutdown = 8
SessionBeforeTree = 9
SessionTree = 10
Context = 11
BeforeProviderRequest = 12
BeforeProviderHeaders = 13
AfterProviderResponse = 14
BeforeAgentStart = 15
The start of a run, carrying the user prompt ({"prompt", "imageCount", "sessionId", "host"}). Fire-and-forget like every other tag: subscribe to
observe the turn. To change the system prompt for the run, register a
handler with register_before_agent_start — that slot carries an out
pointer, which this fire-and-forget signature cannot.
AgentStart = 16
AgentEnd = 17
AgentSettled = 18
TurnStart = 19
TurnEnd = 20
MessageStart = 21
MessageUpdate = 22
MessageEnd = 23
ToolExecutionStart = 24
ToolExecutionUpdate = 25
ToolExecutionEnd = 26
ModelSelect = 27
ThinkingLevelSelect = 28
ToolCall = 29
ToolResult = 30
UserBash = 31
Input = 32
BeforeTuiStart = 33
rpi-specific: dispatched before the interactive TUI initializes (not a
Pi on() category). Appended last so existing discriminants are stable.
UiPromptStart = 34
Pi on() category: dispatched when the TUI shows an interactive prompt
(selector, dialog, etc.) that blocks agent work.
UiPromptEnd = 35
Pi on() category: dispatched when the TUI prompt is dismissed.
EditorChange = 36
rpi-specific (not a Pi on() category): dispatched whenever the
interactive prompt editor’s text changes — typing, pasting, deleting,
or a programmatic rewrite. Appended last so existing discriminants are
stable. The payload is {"chars":N,"empty":bool}; the draft text itself
is deliberately not shipped, because subscribers (a voice extension
barging in on playback) only need to know that the user is composing.
Trait Implementations§
impl Copy for EventTag
impl Eq for EventTag
impl StructuralPartialEq for EventTag
Auto Trait Implementations§
impl Freeze for EventTag
impl RefUnwindSafe for EventTag
impl Send for EventTag
impl Sync for EventTag
impl Unpin for EventTag
impl UnsafeUnpin for EventTag
impl UnwindSafe for EventTag
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.