Commit Graph

9 Commits

Author SHA1 Message Date
Carlos Narro
659edfa68e feat(video): adaptar video-service a la H3 API (ref2va) — dormante hasta go-live
Sustituye BytePlus Ark/Seedance por el contrato async de essia-server (h3api.essia.coop):
POST /v1/jobs (multipart, mode=ref2va) -> poll GET /v1/jobs/{id} -> download /video (X-API-Key).
Firma de generateVideo/downloadVideo sin cambios (el route no se toca). Env: H3API_BASE_URL, H3API_KEY.
Coste 0 (self-hosted). Sin key no rompe el arranque (lazy).

Limitación anotada: jobs pedidos fuera de la ventana nocturna pueden tardar horas; el polling
síncrono solo es viable en ventana. Cola SQLite + worker pendiente de decidir UX. NO mergear a
master hasta que essia-server confirme "live" + provea H3API_KEY.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-14 00:43:20 +02:00
Carlos Narro
5aa5129865 feat(mcp): servidor MCP para controlar la app desde agentes
Nuevo paquete en mcp-server/ (TypeScript SDK, stdio) que envuelve la API HTTP de Story Studio
y expone 36 tools con prefijo story_ para conducir todo el pipeline: proyectos, idea motriz,
personajes (+assets de imagen), capítulos, guión, pre-escaleta, escaleta, prompts, fondos,
imágenes, vídeos y render. Base URL configurable via STORY_STUDIO_URL (default localhost:3000).

Excluido del build de Next (.dockerignore) — es una herramienta aparte, no se despliega con la app.
Verificado end-to-end contra la app desplegada (list_projects, get_idea_motriz).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-13 02:55:16 +02:00
Carlos Narro
2c08d47a0f fix: bugs y mejoras de la revisión de código
- guión conductor: al crear capítulo con virtud sugerida se generaba con GPT-4o pero se descartaba;
  ahora se persiste con saveGuionConductor (antes se pagaba y se perdía).
- escaleta GET: la condición de migración nunca se apagaba (planos sin personajes → []), reescribiendo
  toda la BD en cada carga; ahora migra solo si hay personajesEnPlano legacy y devuelve lo migrado.
- ficheros huérfanos: al borrar un personaje se elimina su carpeta de imágenes; savePromptsPlanos y
  saveFondos borran las imágenes de IDs que desaparecen (los reutilizados no se tocan).
- race en "generar todos": imágenes de plano y variaciones de personaje se persisten por fila
  (updatePromptPlano / nuevo updateCharacterAsset) en vez de reescribir todo el set por iteración.
- path traversal: path.basename en los segmentos de URL que forman rutas de fichero (image-service +
  serving routes de vídeo/fondo).
- hardcodes de localhost (Remotion chapter-data + CORS) ahora configurables por env con default local.
- IDs de personaje: backfill/dedup de id en generatePersonajes/improvePersonajes (evita 500 y sobrescritura).
- render: cola en memoria con TTL/purga (evita fuga y jobs zombie tras reinicio).
- selectVideoVariation valida pertenencia al plano/capítulo; createProject rechaza slug vacío;
  las migraciones loguean el error en vez de tragarlo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-12 18:15:22 +02:00
Carlos Narro
f2ea2f45c3 docs: document Dokploy autodeploy setup in README
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-11 10:37:19 +02:00
Carlos Narro
e93adc8d69 build: enable production build for Dokploy deploy
- build script usa --webpack (Next 16 default es Turbopack, incompatible con la config webpack de @remotion)
- tsconfig excluye remotion/ (subproyecto autocontenido con su propio tsconfig; rompía el type-check con un import faltante)
- Dockerfile de producción (build + next start) y .dockerignore que deja fuera projects/ y data/ (llegan por volúmenes)
- CLAUDE.md actualizado al estado real (SQLite, webpack, Ark, Remotion integrado)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-11 04:37:01 +02:00
Carlos
3aaffd7358 node_modules 2026-02-21 10:39:19 +01:00
Carlos
9d955bf338 init commit 2026-02-21 10:33:18 +01:00
Carlos
c863a943ed first commit 2026-02-21 10:31:46 +01:00
Carlos
17ca405add Initial commit from Create Next App 2026-02-01 12:40:54 +01:00