feat: corrigido o KeyError 'totalTracks' no cliente MCP: extração

- corrigido o KeyError 'totalTracks' no cliente MCP: extração de structuredContent.data na resposta do servidor (SDK 2.0+)
- sincronizado cortes de vídeo e áudio usando razor_all_tracks em vez de split_clip por faixa, eliminando drift entre cortes
- atualizado hook para usar razor_all_tracks, isolando vídeo e áudio no mesmo instante
- adicionado simulador razor_all_tracks no dublê de teste

Resumo:
- 5 arquivos alterados
- 0 novos
- 5 modificados
- 0 removidos

 5 files changed, 264 insertions(+), 12 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/engine/editor/aplicador_de_plano_de_edicao.py
  - code/engine/editor/escrita/escrita_no_editor.py
  - code/engine/integracoes/visual/apple_vision_runner.swift
  - code/engine/testes/duplos_de_premiere.py
This commit is contained in:
João Henrique
2026-09-10 17:31:10 -04:00
parent fc7310be39
commit 2c11ba8dda
5 changed files with 264 additions and 12 deletions
@@ -79,6 +79,23 @@ class EscritaNoEditor:
f"em {instante_da_timeline:.3f}s: {erro}"
) from erro
def dividir_todas_as_faixas(self, instante_da_timeline: float) -> None:
"""Corta todas as faixas de vídeo e áudio no mesmo instante.
Usa ``razor_all_tracks`` para garantir que vídeo e áudio sejam
divididos no mesmo ponto de tempo, evitando drift entre chamadas
separadas de ``split_clip``.
"""
try:
self.cliente_mcp.chamar(
"razor_all_tracks",
{"time_seconds": instante_da_timeline, "track_type": "both"},
)
except ErroDeFerramentaMCP as erro:
raise ErroDeEscritaNoEditor(
f"Não foi possível cortar todas as faixas em {instante_da_timeline:.3f}s: {erro}"
) from erro
def remover_trecho(self, identificador_do_clipe: str) -> None:
"""Remove o clipe da timeline fechando o espaço que ele ocupava.