VideoHero
Utilisez VideoHero uniquement via son interface en ligne de commande (CLI) videohero. N'automatisez pas l'interface SwiftUI, ne modifiez pas la base de données SwiftData de VideoHero, n'appelez pas ses exécutables auxiliaires privés, et ne construisez pas de fichiers dans ses répertoires de projet.
Résolvez l'exécutable CLI à partir d'un chemin absolu fourni par l'utilisateur ou le kit de test, puis d'un chemin absolu VIDEOHERO_CLI, et seulement ensuite de la commande videohero présente dans le PATH. Continuez à utiliser cet exécutable exact pour l'ensemble du workflow. Commencez par :
CLI="/chemin/absolu/fourni/par/l'utilisateur/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json
Si aucun chemin absolu n'a été fourni, résolvez command -v videohero et utilisez son chemin absolu retourné comme CLI.
Si l'exécutable est manquant, si l'automatisation est désactivée ou si le protocole rapporté est incompatible, arrêtez-vous et expliquez ce que l'utilisateur doit activer ou installer dans VideoHero. Ne substituez pas des commandes devinées. Le premier protocole stable attendu est la version 1.
Workflow
- Lisez les capacités actuelles au lieu de vous fier à des moteurs, voix, formats ou valeurs par défaut mémorisés.
- Exécutez
videohero doctor --workflow <workflow> --format jsonavant toute génération coûteuse. Pour une demande concrète, incluez ses paramètres d'entrée et de sortie lorsque le CLI installé les prend en charge. - Résolvez la voix demandée à partir de
videohero voices list --format json. Utilisez sonidstable, et non son titre localisé. Si la description de l'utilisateur correspond à plusieurs voix, présentez les candidats pertinents au lieu de choisir silencieusement. - Soumettez l'opération avec des chemins absolus et
--format jsonsans--wait, puis analysez l'identifiant de travail retourné. Préférez--text-filepour les textes longs ou sensibles. - Pour un identifiant de travail retourné, utilisez
videohero jobs wait <job-id> --format ndjsonlorsque l'utilisateur souhaite que le tour actuel attende ; sinon, signalez l'identifiant du travail et utilisezjobs statusplus tard. Pendant les travaux de présentation, relayez les changements de stade/progression significatifs ainsi qu'uneestimatesi présente. Uneestimateabsente signifie que VideoHero ne dispose pas d'un historique compatible suffisant ; n'inventez jamais une heure d'achèvement. Utilisezjobs canceluniquement lorsque l'utilisateur demande l'annulation ou que la tâche en cours l'autorise explicitement. - Considérez le succès comme confirmé uniquement lorsque l'état final est
succeeded,delivery.stateestdeliveredet que le CLI se termine avec le code 0. Retournez ledestinationPathréel du reçu ainsi que tout avertissement.
Le rendu de présentation crée et enregistre en continu un projet VideoHero modifiable par défaut lorsque capabilities.presentation.persistsProject est vrai. N'ajoutez ni n'inventez d'option --save-project. La synthèse vocale reste un travail audio temporaire et ne doit pas créer de projet VideoHero. Dans les deux cas, n'écrivez jamais vous-même la base de données SwiftData de VideoHero ni le répertoire du projet ; l'application gère la persistance.
Ne téléchargez pas de modèles, n'acceptez pas de licences, n'activez pas le contrôle agent, n'autorisez pas une voix personnelle, n'écrasez pas une sortie existante et ne réessayez pas une génération échouée avec des paramètres sensiblement différents, sauf si l'utilisateur a autorisé cette action. Un délai d'attente n'est pas une preuve que la soumission a échoué : interrogez le travail ou réessayez avec la même clé d'idempotence.
Routes
- Pour la synthèse vocale, lisez references/cli-protocol.md.
- Pour PPTX/PDF vers vidéo, lisez references/cli-protocol.md.
- Pour les états des travaux, les erreurs structurées, la reprise ou l'annulation, lisez references/cli-protocol.md.
- Lorsque l'utilisateur demande d'installer, configurer ou tester l'intégration locale, lisez references/setup-and-testing.md.
Conservez les chemins en tant qu'arguments séparés de la commande. N'interpolez pas le texte de l'utilisateur dans la syntaxe du shell. Lorsqu'une demande est complexe, écrivez un fichier JSON de requête versionné pris en charge par capabilities et passez son chemin plutôt que d'assembler une ligne de commande fragile.