Транспорт и envelope
JSONL stdio, loopback WebSocket, формат Request/Response, коды ошибок и таймауты.
Источник полноты. Каталог построен по живому FastDocShellApi + preload: 304 routes. Датированный generated registry содержит 241; отстаёт на 63. Поэтому registry metadata показывается только там, где она существует.
1.1. JSONL stdio
Заголовок раздела «1.1. JSONL stdio»fastdoc-cli serve{ "schema": "fastdoc.session-serve.v1", "stage_id": "D7", "session_kind": "jsonl-stdio-document-session-prototype", "supported_commands": [ "apply-composition", "apply-text-transaction", "commit-snapshot", "commit-structural-snapshot", "compatibility-inspect", "compose", "model", "mutate", "open", "paginate", "ping", "print", "print-delta", "print-summary", "print-window", "redo", "report", "review", "save", "save-checkpoint", "set-selection", "shutdown", "simple-field-inventory", "squash-history", "status", "style", "track-revisions-state", "undo" ], "ready": true}1.2. WebSocket
Заголовок раздела «1.2. WebSocket»fastdoc-cli serve --ws 0 [--token <token>]{"schema":"fastdoc.session-ws-bootstrap.v1","transport":"websocket","host":"127.0.0.1","port":49152,"token":"<64 hex>","ready":true}WS принимает только UTF-8 text frames, слушает 127.0.0.1 и проверяет token в handshake query. После соединения отправляет ту же ready-схему, что stdio.
1.3. Envelopes
Заголовок раздела «1.3. Envelopes»interface Request { id?: unknown; cmd: SessionCommandName; /* command fields flattened */ }interface Response<T=unknown> { id:unknown; ok:boolean; cmd?:string; elapsed_ms?:number; result?:T; error?:string; }| Показатель | Значение |
|---|---|
| parse / no cmd | ok:false; each request line must be a JSON object with a string cmd field |
| unknown cmd | ok:false; unknown session command: <cmd> |
| no open document | ok:false; no document is open in this session |
| panic boundary | ok:false; internal error … panicked; SessionHost остаётся жив |
| shell request timeout | 30 000 ms |
| full snapshot timeout | 120 000 ms |
| surface request timeout | 15 000 ms |