POST /api/projects/:id/doc-content/:nodeId/generate — Сгенерировать блок (SSE)
Как открыть: откройте проект → вкладка «Doc» (▧) → у нужного блока нажмите «Сгенерировать». Текст начнёт появляться прямо в блоке по мере написания; рядом есть кнопка «Стоп», чтобы прервать.
Пишет текст одного блока за вас. В контекст идёт описание самого блока, его артефакты и — что важно — полный текст блоков-предшественников по графу зависимостей: раздел получается согласованным с тем, что уже написано «выше по течению».
Текст течёт потоком: вы видите его по мере генерации, а не ждёте готовый кусок целиком. Нажали «Стоп» — то, что успело написаться, сохраняется (не пропадает). По завершении блок остаётся открытым в режиме правки, чтобы можно было сразу поправить. Предыдущая версия уходит в историю — генерацию всегда можно откатить.
Запускать генерацию может владелец проекта (и гость — в своём проекте). На чужом документе, открытом только на чтение, кнопки нет. Точные правила — RP-111.
Связанные
- Экраны: Design Doc
- Конвенции · Роли · Ошибки · Глоссарий
Машинная сводка (HTTP, таблицы, связанные требования)
| Поле | Значение |
|---|---|
| HTTP | POST /api/projects/:id/doc-content/:nodeId/generate |
| Auth | optionalAuth, requireProjectAccess — гость + авторизованный, доступ к проекту (read/write) |
| Scope токена | read_write |
| PG-функции | api.upsert_block_doc_content, api.get_block_prerequisites_content |
| Таблицы | block_doc_content, block_doc_content_history, collection_prompt, project_edge, project_node, content_item |
| SRM | SRM-033, SRM-198 |
| RP (права) | RP-111 |
| Файл роута | server/routes/projects.js |
| Статус | partial, done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
mode | query | подтвердить | |
quality | query | подтвердить |
Коды ответов/ошибок (из хендлера): 202, 403, 429, 500 (+ 200) — уточнить причины вручную