undo_composition_event
Reverse a previous lift or split composition event on threat models, persisting inverse state and emitting audit events. Refuses with 409 if the model state has changed since the forward event.
Instructions
Apply the inverse of a previous composition event. Mutating — persists inverse state across multiple models.
Re-runs the divergence detector immediately before applying and
refuses with 409 + the structured refusal block when state has
materially evolved since the forward event (assertions submitted on
the affected entity, downstream COs added that reference it, the
entity edited, etc.). On success, persists the inverse state
operations across every affected model and emits a structured
lift_undone / split_undone activity event citing
original_event_id so the audit pack can chain undo to its forward.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Either the surrogate id of the forward ``lift_applied`` / ``split_applied`` activity event, or the structured ``lift_id`` / ``split_id`` carried in the event payload. | |
| model_id | Yes | The model whose composition view originated the event. Must match the cited event's ``threat_model_id`` — the server rejects cross-model citations with 404. | |
| event_type | Yes | Which forward composition event to undo. One of: - ``"lift"``: undo a ``lift_applied`` event. On success, persists the inverse across the LCA + every affected source descendant and emits a ``lift_undone`` event. The returned ``models`` block carries ``lca_model`` and ``source_descendant_models``. - ``"split"``: undo a ``split_applied`` event. On success, restores the ancestor's entity, tombstones the duplicated copies on every target descendant, persists across all affected models, and emits a ``split_undone`` event. The returned ``models`` block carries ``ancestor_model`` and ``descendant_models``. | |
| server_version | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||