¿Qué hace VideoHero?
Utilice VideoHero solo a través de su CLI videohero compatible. No automatice la interfaz SwiftUI, modifique el almacén SwiftData de VideoHero, llame a sus ejecutables auxiliares privados ni construya archivos dentro de sus directorios de proyecto.
Resuelva el ejecutable de la CLI a partir de una ruta absoluta proporcionada por el usuario o el kit de pruebas, luego a partir de un VIDEOHERO_CLI absoluto, y solo entonces a partir del comando videohero en PATH. Siga usando ese mismo ejecutable resuelto para todo el flujo de trabajo. Comience con:
CLI="/ruta/absoluta/proporcionada/por/el/usuario/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json
Si no se proporcionó una ruta absoluta, resuelva command -v videohero y use su ruta absoluta devuelta como CLI.
Si el ejecutable falta, la automatización está deshabilitada o el protocolo informado es incompatible, deténgase y explique qué debe habilitar o instalar el usuario en VideoHero. No sustituya comandos supuestos. El primer protocolo estable esperado es la versión 1.
Flujo de trabajo
- Lea las capacidades actuales en lugar de confiar en motores, voces, formatos o valores predeterminados recordados.
- Ejecute
videohero doctor --workflow <flujo> --format jsonantes de una generación costosa. Para una solicitud concreta, incluya sus parámetros de entrada y salida cuando la CLI instalada los soporte. - Resuelva la voz solicitada desde
videohero voices list --format json. Use suidestable, no su título localizado. Si la descripción del usuario coincide con varias voces, presente los candidatos significativos en lugar de elegir en silencio. - Envíe la operación con rutas absolutas y
--format jsonsin--wait, luego analice el id de trabajo devuelto. Prefiera--text-filepara texto largo o sensible. - Para un id de trabajo devuelto, use
videohero jobs wait <job-id> --format ndjsoncuando el usuario desee que el turno actual espere; de lo contrario, informe el id de trabajo y usejobs statusmás tarde. Durante los trabajos de presentación, transmita cambios significativos de etapa/progreso y unaestimationcuando esté presente. Una estimación ausente significa que VideoHero no tiene suficiente historial compatible; nunca invente un tiempo de finalización. Usejobs cancelsolo cuando el usuario solicite la cancelación o la tarea actual autorice explícitamente la cancelación. - Considere el éxito como confirmado solo cuando el estado final sea
succeeded,delivery.stateseadeliveredy la CLI salga con código 0. Devuelva eldestinationPathreal del recibo y cualquier advertencia.
La representación de presentaciones crea y guarda continuamente un proyecto de VideoHero editable por defecto cuando capabilities.presentation.persistsProject es verdadero. No agregue ni invente una opción --save-project. La conversión de texto a voz sigue siendo un trabajo de audio temporal y no debe crear un proyecto de VideoHero. En ambos casos, nunca escriba usted mismo el almacén SwiftData de VideoHero o el directorio del proyecto; la aplicación posee la persistencia.
No descargue modelos, acepte licencias, habilite el control del agente, autorice una voz personal, sobrescriba una salida existente ni reintente una generación fallida con configuraciones materialmente diferentes a menos que el usuario haya autorizado esa acción. Un tiempo de espera no es evidencia de que el envío falló: consulte el trabajo o reintente con la misma clave de idempotencia.
Rutas
- Para conversión de texto a voz, lea references/cli-protocol.md.
- Para conversión de PPTX/PDF a video, lea references/cli-protocol.md.
- Para estados de trabajos, errores estructurados, recuperación o cancelación, lea references/cli-protocol.md.
- Cuando el usuario solicite instalar, configurar o probar la integración local, lea references/setup-and-testing.md.
Mantenga las rutas como argumentos de comando separados. No interpole texto del usuario en la sintaxis del shell. Cuando una solicitud sea compleja, escriba un JSON de solicitud versionado compatible con capabilities y pase su ruta en lugar de ensamblar una línea de comandos frágil.