pub enum SessionCmd {
Prompt(String),
PromptTagged {
text: String,
synthetic: SyntheticReason,
},
Continue,
Steer(String),
Snapshot {
reply: Sender<Arc<Vec<Item>>>,
},
Propose {
entries: Vec<EntryPayload>,
reply: Sender<bool>,
},
WriteBlob {
tool_use_id: String,
content: String,
reply: Sender<Result<String, String>>,
},
TurnFinished {
end: TurnEnd,
usage: TokenUsage,
},
}Variants§
Prompt(String)
A user prompt. Starts a turn, or queues (one-at-a-time promotion).
PromptTagged
A prompt whose committed item carries a provenance tag (T2: schema contract + validation-retry feedback ride in as tagged user items).
Continue
Continue an interrupted turn (M4/#8): sample against the current projection with no new user item — used on resume when the last item is a user/tool turn the model never answered. No-op if already running.
Steer(String)
Mid-turn guidance: admitted durably now, woven into the next sample.
Snapshot
Turn task → actor: sample-boundary snapshot refresh.
Propose
Turn task → actor: commit these entries (durable-ack before reply).
WriteBlob
Turn task → actor: write an oversized tool result to a masked blob
(T4 — the actor owns the log, the turn never touches it directly).
Replies Ok(path) on success; on write failure the content is handed
back in Err so eviction never loses data.
TurnFinished
Turn task → actor: the turn is over (or needs a compaction respawn).