ApprovalChange
The change an approval/updated event reports. kind says what happened,
and only the fields for that kind are present.
Fields and variants
Section titled “Fields and variants”choiceIddecisionexecutablekindreasonreparsedrequirementIdstatus
Source
schema/msp/experimental/msp.schema.json#/types/ApprovalChange
{ "description": "The change an `approval/updated` event reports. `kind` says what happened,\nand only the fields for that kind are present.", "properties": { "choiceId": { "description": "The `choiceId` that satisfied the stage. Present only when `kind` is\n`stageResolved`.", "type": "string" }, "decision": { "$ref": "#/$defs/ApprovalDecision", "description": "The decision the chosen option applied to the stage. Present only when\n`kind` is `stageResolved`." }, "executable": { "description": "A recovery detail: whether the action could run without a new decision.\nPresent only when `kind` is `restartRecovered`.", "type": "boolean" }, "kind": { "description": "What happened: for example `stageResolved` (a shell stage was\nsatisfied), `policyPersistence` (saving a rule succeeded or failed),\n`reviewStarted` or `reviewCompleted` (the automated LLM judge started or\nfinished reviewing), `restartRecovered` (a host restart recovered this\napproval: either the host first resolves it `abort` and a re-ask comes\nas a new approval with a new `approvalId`, or it stays pending under\nthe same `approvalId` with refreshed choices), `alreadyTerminal`\n(recovery found it already decided) or `resolving` (a\n`computerUseTakeover` approval was marked resolving and waits for the\nlock broker; a decide now answers -32059). The set is open, so newer\nhosts may add kinds.", "type": "string" }, "reason": { "description": "Why saving the policy rule failed, as human-readable text. Present only\nwhen `kind` is `policyPersistence` and `status` is `failed`.", "type": "string" }, "reparsed": { "description": "A recovery detail: whether the command was re-parsed during recovery.\nPresent only when `kind` is `restartRecovered`.", "type": "boolean" }, "requirementId": { "$ref": "#/$defs/ApprovalRequirementRef", "description": "The stage requirement that was satisfied. Present only when `kind` is\n`stageResolved`." }, "status": { "$ref": "#/$defs/ApprovalPersistenceStatus", "description": "Whether saving the policy rule succeeded or failed; present only when\n`kind` is `policyPersistence`. A failure does not undo the decision;\nonly the saved rule is missing." } }, "required": [ "kind" ], "type": "object"}