Resolve escalation
The escalation destination’s callback. Authenticated by the per-escalation bearer, not an API key.
Path Parameters
Escalation id (esc_<uuid>)
Body
The resolve callback body.
Deliberately a SUPERSET with defaults, because the deployed escalation destination does not send
the field set this endpoint would most like. Its resume POST is
{"source": "handoff", "handoff_id": "<id>", "answer": <str|null>} — cleared and by are
captured on ITS resolve API but are not forwarded to us (app/main.py:179 in the handoff repo).
So: cleared defaults to TRUE, because that callback fires only from the destination's resolve
path and never on expiry — its arrival IS the human's "done" signal. resolved_by falls back to
source, then to a constant. A runtime that DOES send the richer shape gets it honoured. This
keeps the contract runtime-agnostic without requiring a change to a product we do not own.
The human's answer, for a question.
Whether the human reports the wall actually cleared. Defaults true — see above.
Opaque label for who answered.
Accepted as a fallback for resolved_by — what the deployed destination actually sends.