/health | GET | Health check |
/hitl/escalations | POST | Create escalation |
/hitl/escalations | GET | List escalations (filter: status, mine) |
/hitl/escalations/:id | GET | Get escalation + notes |
/hitl/escalations/:id/claim | POST | Claim from queue |
/hitl/escalations/:id/respond | POST | Send operator message |
/hitl/escalations/:id/handback | POST | Hand back to AI |
/hitl/escalations/:id/close | POST | Close escalation |
/hitl/escalations/:id/notes | POST | Add internal note |
/hitl/approvals | GET | List approvals (filter: status). Returns id, conversationId, botId, botName, userMessage, originalResponse, status, createdAt |
/hitl/approvals/:id/approve | POST | Approve response as-is. Publishes approved response to Redis, records billing, broadcasts WS approval.resolved |
/hitl/approvals/:id/edit | POST | Edit and approve response. Publishes edited response to Redis with wasEdited: true, sets status to edited, records billing, broadcasts WS approval.resolved with status: "edited" |
/hitl/approvals/:id/reject | POST | Reject with reason. Publishes rejection to Redis, broadcasts WS approval.resolved with status: "rejected" |
/hitl/operators | GET | List org operators |
/hitl/operators/me | GET | Current operator session |
/hitl/operators/status | PUT | Update operator status |
/hitl/operators/schedule | PUT | Update working hours |
/hitl/operators/heartbeat | POST | Heartbeat + Redis refresh |
/hitl/operators/availability | GET | Check operator availability |
/hitl/ws | WS | WebSocket for real-time operator feed |