army-hitl
army-hitl
The agent asks, releases its session, and ends its turn. The human answers minutes or hours later. The next dispatch carries the verdict.
Nothing is parked in memory, no callback waits, no watchdog can trip, and a reboot between the question and the answer costs exactly nothing.
Why it cannot work any other way
The obvious design — the agent asks mid-turn and blocks until a human replies —
does not survive contact with the transport. Verified by reading acpx's
src/permissions.ts: when a permission policy says escalate and there is no
TTY, which is always true for a headless supervisor,
resolveEscalatingPermissionRequest emits a permission_escalation event and
immediately answers with the reject option.
Escalation is "deny now, loudly" — not "ask and wait". Build a HITL flow on it and every question becomes a silent denial.