- el modo stream de
POST /documents; - reengancharse o seguir un documento con
GET /documents/{id}/events; - los webhooks (solo los eventos finales; próximamente).
Forma de un evento
Tipos
Ciclo de vida
⏹ = evento final: después de él no llega nada más.
Contenido (se pinta en vivo)
Proceso
Orden típico
Crear desde una frase- Crear desde texto: igual, pero los bloques llegan casi de golpe.
- Revisar: sin
content.*: render, revisión, arreglos, páginas y final. - Editar:
edit.planned, unedit.operation_applied(o_rejected) por cada cambio y después como revisar.
style.resolved preparas los estilos; con content.* vas construyendo la vista (aproximada, sin páginas); con preview.page_ready la sustituyes por las páginas reales.
SSE (stream y /events)
- Reengancharse:
GET /documents/{id}/eventscon la cabeceraLast-Event-ID: 13(o?after=13). Primero se reenvían los eventos guardados posteriores (los bloques completos) y después se sigue en vivo. El documento se sigue haciendo aunque el cliente se desconecte. - Latido (
: heartbeat) cada 15 s para que ningún proxy corte la conexión. - Tras el evento final, el servidor cierra.
- Los eventos se guardan 7 días. Pasado ese tiempo,
GET /documents/{id}/eventsresponde410 events_expired, aunque la ficha del documento sigue disponible.
Webhooks (próximamente)
- Mismo formato de evento. Por defecto solo los finales (
document.ready,document.failed,document.canceled). Nunca eventos con contenido. - Firma según Standard Webhooks: cabeceras
webhook-id,webhook-timestampywebhook-signature(HMAC-SHA256 con secretowhsec_…). - Reintentos durante ~10 h con esperas crecientes (5 s, 30 s, 2 min, 10 min, 30 min, 1 h, 3 h, 6 h). El cliente debe deduplicar por
webhook-id. - Solo URLs HTTPS públicas (protección SSRF).