# Narración, títulos e infografías desde un agente

El MCP público es `https://api.auroflow.club/v1/mcp`. Cada agente utiliza la
credencial propia y revocable de una cuenta verificada; se aplican las mismas
restricciones de acceso que en la web. El navegador, los archivos y las colas
permanecen en Auroflow. No se necesita acceso a Chrome ni al servidor.

1. Consultar `auroflow_capabilities {area:"production"}` (`GET /v1/production-capabilities`).
   Distingue qué contrato está instalado, qué runtime se ha comprobado y qué
   proveedor exige un preflight vivo. No consulta saldos ni demuestra que
   Chrome responda. Los motores gráficos tienen disponibilidad independiente.
2. Para una narración independiente, elegir un ID observado mediante
   `auroflow_capabilities {area:"vids_voices"}`. Validar texto literal con `auroflow_plan_narration`.
   Guardar intención e ID `tts-` antes de `auroflow_generate_narration_zero`.
   Esa llamada exige autorización, cuenta incluida y coste vivo exactamente 0.
   Leer `auroflow_get` hasta `completed`; ante incertidumbre recuperar
   el mismo ID. Nunca crear otro como reintento. Ver [contrato de voces](vids-voices.md).
3. Leer `auroflow_list {kind:"sources"}` para obtener vídeo y audio propios ya terminados.
   Una locución terminada se enlaza como `audio.source` con
   `{"kind":"narration","id":"<tts-ID-observado>","variant":1}`.
   El placeholder es explicativo y no es una petición enviable. La cuenta
   debe ser dueña del trabajo y del WAV verificado. No se aceptan rutas ni
   URLs arbitrarias. `variant` es opcional y sólo admite el entero 1.
4. Elegir un estilo y una plantilla con `auroflow_capabilities {area:"graphics_styles"}` y
   `auroflow_graphics_templates`. Resolver textos, datos y medios propios;
   conservar identificadores de cada capa. Los títulos, rótulos, logos,
   tickers y gráficas se almacenan por separado de las tomas y el audio.
   Un bumper se compone como una pieza `standalone` con sus capas tipadas;
   para superponerlas se usa `overlay` con un fondo propio.
5. `auroflow_plan_finishing` recibe `{"request":{"track": ...}}` por MCP.
   `track` usa exactamente el schema de `auroflow_create_graphics_track`:
   `id`, `name` opcional y `composition`. REST `POST /v1/finishing/plan`
   recibe el objeto interior sin `request`. Devuelve el request validado y
   pasos concretos; no lee medios, guarda, llama a IA ni renderiza.
6. Guardar con `auroflow_create_graphics_track`, leer su revisión y ejecutar
   `auroflow_plan_graphics_track`. Este plan sí verifica propiedad, hashes y
   runtime; exigir `render_ready=true` y `assets_verified=true`. Renderizar
   la revisión autorizada con `auroflow_render_graphics_track_zero`,
   `motion_id` estable y `cost_max:0`. Leer el mismo `auroflow_get`.
7. Para cambiar un título, aplicar `auroflow_patch_graphics_track` con la
   revisión observada, `op:set`, el `layer_id` existente y `changes.text`
   o `changes.title` según el tipo. Planificar y renderizar esa nueva revisión.
   Las fuentes conservan sus hashes; no se generan tomas ni voz de nuevo.

El recorrido soporta vertical y horizontal, HyperFrames y Remotion según su
runtime, pistas de 1–60 segundos y hasta 12 capas a 24 fps. Para una película
larga, planificar capítulos con límites reales; una pista no representa una
composición ilimitada. Ver [capas editables](graphics-layers.md).

El audio explícito **sustituye** el audio del fondo. La forma simple
`audio.source` conserva su velocidad, aplica el inicio indicado, recorta y
añade silencio si termina antes. La forma alternativa `audio.tracks` mezcla
hasta ocho pistas de música propia, locución y sonido de tomas. Permite por
pista posición en el montaje, inicio dentro de la fuente, duración, volumen,
fundidos y silencio. El sonido de la toma debe incluirse como otra pista para
conservarlo en la mezcla. No aplica ducking, normalización o cambio de velocidad
automáticos. No genera tiempos por palabra. No deducir sincronización de una
transcripción o una duración estimada.
El MP4 final exige revisión completa de imagen y escucha; estado `completed`,
decodificación correcta y SHA no constituyen aprobación audiovisual ni
certifican acento regional.

La [skill de montaje](https://auroflow.club/skills/auroflow-editing/SKILL.md)
incluye el recorrido y un ejemplo tipado; usar descubrimiento MCP `editing`.
`auroflow_upload_audio` o `POST /v1/audio/uploads` sube un archivo propio de
hasta 10 MiB y 600 segundos, lo convierte a PCM estéreo y devuelve un ID `aud_`
privado. Para archivos grandes, preferir REST binario para evitar texto base64
en el contexto del agente. `auroflow_list {kind:"sources"}` lista fuentes propias;
`auroflow_patch_graphics_track` cambia una mezcla guardada con revisión esperada.
`set_audio:null` restaura el sonido base; `tracks:[]` produce silencio explícito.
Cambiar de fuente requiere otro ID de pista; editar volumen o tiempos lo conserva.
Se puede renderizar una composición con sólo audio y `layers:[]`.

Flow Music figura como no disponible mientras falten una cotización nativa
exacta y un colector de resultados correlacionado. Un saldo incluido no prueba
precio 0 ni autoriza compras, recargas o upgrades. `music_requested:true` en el
plan de acabado devuelve ese bloqueo; nunca inventa una pista ni cambia de
proveedor. Los planes y la reutilización de audio no consumen créditos de Flow.
