Patrón de tarea texto a vídeo
Extiende la demo opcional con entitlements, cuotas, créditos, idempotencia y reembolsos de organización.
Starter source:
e632762.
Los ejemplos de vídeo e imagen comparten la admisión durable de tareas de pago. Solo funcionan en desarrollo; clonar el starter no activa un proveedor comercial.
Activa ENABLE_DEMO_FEATURES=true y ENABLE_TEXT2VIDEO_MOCK=true, ejecuta pnpm dev:seed -- --paid-examples y arranca pnpm dev:all. La preparación local añade un permiso manual idempotente sin comprar nada en Stripe. El proveedor simulado devuelve el clip de ocho segundos /demo-video.mp4, o TEXT2VIDEO_MOCK_URL; no sintetiza el prompt, formato ni duración solicitados.
POST /api/tasks/text-to-video exige autenticación, una organización explícita y una clave idempotente en el cuerpo o en Idempotency-Key. El prompt admite hasta 1.000 caracteres y la duración 1–60 segundos enteros. El servicio resuelve reintentos antes de comprobar permisos para operaciones nuevas. Una transacción reserva cuota mensual, descuenta créditos, crea la tarea y guarda el despacho. Un fallo de cola revierte todos esos efectos.
La respuesta 202 contiene una tarea en cola. El worker usa su UUID como identidad del proveedor, reintenta fallos transitorios y reembolsa créditos de forma idempotente antes del fallo terminal. Consulta GET /api/tasks/[uuid]. La UI recupera lecturas fallidas y conserva la tarea y los ajustes al recargar, sin enviar otra solicitud. «Generar otro vídeo» inicia una operación nueva explícita.
Los precios están en src/config/tasks.ts, los permisos en src/services/entitlements.ts, la ejecución en src/services/tasks/video.ts y el adaptador en src/services/ai/video.ts. Revisa la economía y los límites de ejemplo antes de adoptarlos.
No se reenvían automáticamente tareas síncronas antiguas sin huella: reconcilia primero su resultado. Despliega un worker compatible con text_to_video antes de admitirlo. Los adaptadores reales deben preservar identidad, cancelación, aislamiento y compensación; si el proveedor no admite idempotencia, reconcilia antes de reintentar. También debes sustituir las puertas de demostración de página, ruta y servicio por una admisión de producción revisada.
Relacionado: Imágenes, Créditos, Planes y Jobs.
Si TEXT2VIDEO_MOCK_URL falta, está vacío o solo contiene espacios, se usa /demo-video.mp4. Una salida vacía del proveedor es un fallo, nunca un resultado de pago exitoso; al agotar reintentos se compensa mediante la transacción original.