pub enum ControlCommand {
ResolvePermission {
resolution: Resolution,
},
Pause,
Resume,
Msg {
text: String,
interrupt: bool,
},
ConfigChange {
patch: Value,
},
RequestRevision {
instructions: String,
},
ApproveRevision {
revision: u32,
},
RejectRevision {
revision: u32,
},
ApproveGrant {
command: String,
},
DenyGrant {
command: String,
reason: String,
},
AnswerQuestion {
question_id: String,
answer: String,
option: Option<u32>,
},
}Variants§
ResolvePermission
Exact invocation consent; never changes a grant or deny exception.
Fields
resolution: ResolutionPause
Resume
Msg
ConfigChange
RequestRevision
ApproveRevision
RejectRevision
ApproveGrant
Approve the parked grant request for command (extend command_grants
and respawn). The command is echoed back so a stale approval can’t apply
to a different pending request than the operator saw.
DenyGrant
Deny the parked grant request for command (fail the feature closed).
AnswerQuestion
Answer an open structured question (ticket
structured-human-question-events) — the pending-decision
projection’s input edge, submitted through this EXISTING control path
(the D-X ruling: no new server). answer is the chosen option’s text
verbatim or the operator’s free text (scrubbed + capped when the
engine lands it as question.answered); option records the 0-based
index when an offered option was picked, and the engine cross-checks
it against the parked question exactly like the grant approve/deny
commands echo their target — a stale answer can’t land on a different
question than the operator saw.