Was macht VideoHero?
Verwende VideoHero nur über seine unterstützte videohero CLI. Automatisiere nicht die SwiftUI-Oberfläche, bearbeite nicht den SwiftData-Speicher von VideoHero, rufe keine privaten Hilfsprogramme auf und erstelle keine Dateien in seinen Projektverzeichnissen.
Ermittle das CLI-Executable zuerst aus einem absoluten Pfad, der vom Benutzer oder Testkit bereitgestellt wird, dann aus einer absoluten VIDEOHERO_CLI und erst dann aus dem Befehl videohero auf PATH. Verwende dieses exakte aufgelöste Executable für den gesamten Workflow. Beginne mit:
CLI="/absolute/path/supplied/by/the/user/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json
Wenn kein absoluter Pfad bereitgestellt wurde, löse command -v videohero auf und verwende den zurückgegebenen absoluten Pfad als CLI.
Wenn das Executable fehlt, die Automatisierung deaktiviert ist oder das gemeldete Protokoll inkompatibel ist, stoppe und erkläre, was der Benutzer in VideoHero aktivieren oder installieren muss. Ersetze keine erratenen Befehle. Das erwartete erste stabile Protokoll ist Version 1.
Workflow
- Lies die aktuellen Fähigkeiten, anstatt dich auf gespeicherte Engines, Stimmen, Formate oder Standardwerte zu verlassen.
- Führe
videohero doctor --workflow <workflow> --format jsonvor teuren Generierungen aus. Bei einer konkreten Anfrage füge deren Eingabe- und Ausgabeparameter hinzu, wenn die installierte CLI sie unterstützt. - Löse die angeforderte Stimme aus
videohero voices list --format jsonauf. Verwende ihre stabileid, nicht ihren lokalisierten Titel. Wenn die Beschreibung des Benutzers auf mehrere Stimmen zutrifft, präsentiere die sinnvollen Kandidaten, anstatt still zu wählen. - Sende den Vorgang mit absoluten Pfaden und
--format jsonohne--wait, dann parse die zurückgegebene Job-ID. Bevorzuge--text-filefür lange oder sensible Texte. - Verwende für eine zurückgegebene Job-ID
videohero jobs wait <job-id> --format ndjson, wenn der Benutzer möchte, dass die aktuelle Runde wartet; ansonsten melde die Job-ID und verwende späterjobs status. Gib während Präsentationsjobs sinnvolle Phasen-/Fortschrittsänderungen und eineestimateweiter, wenn vorhanden. Ein fehlender Schätzwert bedeutet, dass VideoHero nicht genügend kompatible Historie hat; erfinde niemals eine Fertigstellungszeit. Verwendejobs cancelnur, wenn der Benutzer den Abbruch verlangt oder die aktuelle Aufgabe ihn explizit autorisiert. - Betrachte Erfolg nur als bestätigt, wenn der Endzustand
succeeded,delivery.state=deliveredund der CLI mit Code 0 beendet ist. Gib den tatsächlichendestinationPathder Quittung und alle Warnungen zurück.
Das Rendern von Präsentationen erstellt und speichert standardmäßig ein bearbeitbares VideoHero-Projekt, wenn capabilities.presentation.persistsProject wahr ist. Füge keine --save-project-Option hinzu oder erfinde sie. Text-to-Speech bleibt ein temporärer Audio-Job und darf kein VideoHero-Projekt erstellen. Schreibe in beiden Fällen niemals selbst in den SwiftData-Speicher oder das Projektverzeichnis von VideoHero; die App besitzt die Persistenz.
Lade keine Modelle herunter, akzeptiere keine Lizenzen, aktiviere keine Agentensteuerung, autorisiere keine persönliche Stimme, überschreibe keine vorhandene Ausgabe oder wiederhole eine fehlgeschlagene Generierung mit wesentlich anderen Einstellungen, es sei denn, der Benutzer hat diese Aktion autorisiert. Ein Timeout ist kein Beweis dafür, dass die Übermittlung fehlgeschlagen ist: Frage den Job ab oder wiederhole ihn mit demselben Idempotenz-Schlüssel.
Routen
- Für Text-to-Speech lies references/cli-protocol.md.
- Für PPTX/PDF-zu-Video lies references/cli-protocol.md.
- Für Job-Zustände, strukturierte Fehler, Wiederherstellung oder Abbruch lies references/cli-protocol.md.
- Wenn der Benutzer nach Installation, Konfiguration oder Test der lokalen Integration fragt, lies references/setup-and-testing.md.
Halte Pfade als separate Befehlsargumente. Interpoliere keinen Benutzertext in die Shell-Syntax. Wenn eine Anfrage komplex ist, erstelle ein versioniertes JSON-Anfrage, das von capabilities unterstützt wird, und übergebe dessen Pfad, anstatt eine fragile Befehlszeile zusammenzubauen.