API Documentation
Phase 3 — автоматизация ChatGPT и Cursor
Аутентификация
Защищённые endpoints требуют переменную ORCHESTRATOR_API_TOKEN на сервере.
Authorization: Bearer <ORCHESTRATOR_API_TOKEN>
При неверном токене: 401 и {"error":"..."}
Автоматизация итерации
POST /api/iterations/:id/prompt
ChatGPT загружает промпт для Cursor
Request body
{
"promptToCursor": "string (required)"
}Response
{
"iteration": { ... },
"project": { ... }
}Example
curl -X POST "http://localhost:3000/api/iterations/ITERATION_ID/prompt" \
-H "Authorization: Bearer $ORCHESTRATOR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"promptToCursor":"[ARCH] Задача..."}'POST /api/iterations/:id/report
Cursor загружает отчёт
Request body
{
"cursorReport": "string"
}Response
{
"iteration": { ... },
"project": { ... }
}Example
curl -X POST "http://localhost:3000/api/iterations/ITERATION_ID/report" \
-H "Authorization: Bearer $ORCHESTRATOR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cursorReport":"Сделано: ..."}'POST /api/iterations/:id/analysis
ChatGPT сохраняет анализ
Request body
{
"chatgptAnalysis": "string"
}Response
{
"iteration": { ... },
"project": { ... }
}Example
curl -X POST "http://localhost:3000/api/iterations/ITERATION_ID/analysis" \
-H "Authorization: Bearer $ORCHESTRATOR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"chatgptAnalysis":"Рекомендую approve..."}'Статус workflow
GET /api/projects/:id/status
Проверка состояния для webhook / ChatGPT
Request body
—
Response
{
"project": "Название",
"projectId": "cuid",
"slug": "my-project",
"stage": "Текущий этап",
"nextActor": "USER",
"status": "ACTIVE",
"latestIterationId": "cuid",
"hasPrompt": true,
"hasReport": true,
"hasAnalysis": false,
"approved": false
}Example
curl "http://localhost:3000/api/projects/PROJECT_ID/status" \ -H "Authorization: Bearer $ORCHESTRATOR_API_TOKEN"
Approve (UI / без токена)
POST /api/iterations/:id/approve
Пользователь одобряет итерацию. Создаётся новая пустая итерация, nextActor → CURSOR.
Request body
—
Response
{
"approvedIteration": { ... },
"newIteration": { ... },
"project": { ... }
}Example
curl -X POST "http://localhost:3000/api/iterations/ITERATION_ID/approve"
Цикл автоматизации
- ChatGPT → POST prompt
- Cursor выполняет → POST report
- ChatGPT → POST analysis
- GET status → nextActor = USER
- Пользователь → Approve → новая итерация
Health
GET http://localhost:3000/api/health
{
"status": "ok",
"timestamp": "ISO",
"version": "phase-3",
"database": "connected"
}