Projects
GET /api/projects
Lista hasta 50 proyectos (id, name, updatedAt, width, height).
POST /api/projects
{ "name": "Mi short" }
Body vacío → nombre por defecto. Respuesta: { project }.
GET /api/projects/:id
Proyecto con timeline parseado, assets (probe), últimos jobs y transcript reciente si existe.
PATCH /api/projects/:id
{
"name": "Nuevo nombre",
"fps": 30,
"width": 1080,
"height": 1920,
"timeline": { }
}
timeline es el JSON del modelo Project (máx. ~5 MB). Validación Zod en servidor.
DELETE /api/projects/:id
Elimina el proyecto.
POST /api/projects/from-prompt
{ "prompt": "Explica X en 30s", "name": "Draft" }
Crea un proyecto 1080×1920 con asset placeholder. Rate limit ~20/min. Superficie experimental (feature prompt→video); el preset prompt-to-video aún no es el happy path de Automate.
curl -sS -X POST "$BASE/api/projects" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Agent demo"}'