pub enum Op {
Show 17 variants
StartSession(SessionOverrides),
UpdateSession(SessionUpdate),
Interrupt,
UserInput(String),
ShellInput(String),
Steer(String),
ApprovalResponse {
turn_id: Id,
responses: Vec<(String, ReviewDecision)>,
},
SlashCommand {
name: String,
args: String,
},
ResumeSession {
session_id: Id,
},
RegisterLocalProvider {
port: u16,
model: Option<ModelSpec>,
},
RestoreLocalProvider,
Compact,
ContextReport,
Goal(GoalCommand),
AmbientPhrase {
draft: String,
req_id: u64,
},
AmbientSuggestion {
recent_user: String,
recent_agent: String,
req_id: u64,
},
Shutdown,
}Variants§
StartSession(SessionOverrides)
UpdateSession(SessionUpdate)
Interrupt
UserInput(String)
ShellInput(String)
Steer(String)
ApprovalResponse
SlashCommand
ResumeSession
RegisterLocalProvider
RestoreLocalProvider
Compact
Manually trigger conversation compaction on the active session.
ContextReport
Request a per-category breakdown of the active session’s context-window
occupancy. Answered with Evt::ContextReport.
Goal(GoalCommand)
Set, clear, or report a goal-driven execution loop on the active session. A set goal keeps the session working — re-running turns and judging the condition after each one — until it is met, judged unreachable, or cleared.
AmbientPhrase
Request an ad-hoc “thinking phrase” prediction for the in-progress
draft. Runs off the conversation critical path on a cheap model and
answers with Evt::Ambient. req_id lets the client discard stale
results when a newer request supersedes this one.
AmbientSuggestion
Request an ad-hoc next-prompt suggestion from the last exchange, shown as
input ghost text. Like Op::AmbientPhrase it runs off the critical
path on a cheap model and answers with Evt::Ambient. The client carries
the context (so this stays a client-only feature — headless never fires
it) and a monotonic req_id to drop stale results.