O que VideoHero faz?
Use o VideoHero apenas através de sua CLI videohero suportada. Não automatize a interface SwiftUI, edite o armazenamento SwiftData do VideoHero, chame seus executáveis auxiliares privados ou construa arquivos dentro de seus diretórios de projeto.
Resolva o executável da CLI a partir de um caminho absoluto fornecido pelo usuário ou kit de teste, depois a partir de um VIDEOHERO_CLI absoluto, e só então a partir do comando videohero no PATH. Continue usando esse executável exato resolvido para todo o fluxo de trabalho. Comece com:
CLI="/caminho/absoluto/fornecido/pelo/usuario/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json
Se nenhum caminho absoluto foi fornecido, resolva command -v videohero e use seu caminho absoluto retornado como CLI.
Se o executável estiver ausente, a automação estiver desabilitada ou o protocolo reportado for incompatível, pare e explique o que o usuário deve habilitar ou instalar no VideoHero. Não substitua por comandos adivinhados. O primeiro protocolo estável esperado é a versão 1.
Fluxo de Trabalho
- Leia as capacidades atuais em vez de confiar em mecanismos, vozes, formatos ou padrões lembrados.
- Execute
videohero doctor --workflow <workflow> --format jsonantes de uma geração cara. Para uma solicitação concreta, inclua seus parâmetros de entrada e saída quando a CLI instalada os suportar. - Resolva a voz solicitada a partir de
videohero voices list --format json. Use seuidestável, não seu título localizado. Se a descrição do usuário corresponder a várias vozes, apresente os candidatos significativos em vez de escolher silenciosamente. - Submeta a operação com caminhos absolutos e
--format jsonsem--wait, depois analise o id do trabalho retornado. Prefira--text-filepara texto longo ou sensível. - Para um id de trabalho retornado, use
videohero jobs wait <job-id> --format ndjsonquando o usuário quiser que a vez atual espere; caso contrário, reporte o id do trabalho e usejobs statusmais tarde. Durante trabalhos de apresentação, retransmita mudanças significativas de estágio/progresso e umaestimatequando presente. Uma estimativa ausente significa que o VideoHero não tem histórico compatível suficiente; nunca invente um tempo de conclusão. Usejobs cancelapenas quando o usuário solicitar cancelamento ou a tarefa atual autorizar explicitamente. - Trate sucesso como confirmado apenas quando o estado final for
succeeded,delivery.statefordeliverede a CLI sair com código 0. Retorne odestinationPathreal do recibo e quaisquer avisos.
A renderização de apresentação cria e salva continuamente um projeto VideoHero editável por padrão quando capabilities.presentation.persistsProject é verdadeiro. Não adicione ou invente uma opção --save-project. A conversão de texto em fala permanece um trabalho de áudio temporário e não deve criar um projeto VideoHero. Em ambos os casos, nunca escreva o armazenamento SwiftData do VideoHero ou diretório de projeto você mesmo; o App possui a persistência.
Não baixe modelos, aceite licenças, habilite controle de agente, autorize uma voz pessoal, sobrescreva uma saída existente ou tente novamente uma geração falhada com configurações materialmente diferentes, a menos que o usuário tenha autorizado essa ação. Um timeout não é evidência de que a submissão falhou: consulte o trabalho ou tente novamente com a mesma chave de idempotência.
Rotas
- Para conversão de texto em fala, leia references/cli-protocol.md.
- Para PPTX/PDF para vídeo, leia references/cli-protocol.md.
- Para estados de trabalho, erros estruturados, recuperação ou cancelamento, leia references/cli-protocol.md.
- Quando o usuário pedir para instalar, configurar ou testar a integração local, leia references/setup-and-testing.md.
Mantenha caminhos como argumentos de comando separados. Não interpole texto do usuário em sintaxe de shell. Quando uma solicitação for complexa, escreva um JSON de solicitação versionado suportado por capabilities e passe seu caminho em vez de montar uma linha de comando frágil.