mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
- skill + command finos: shot list é a fonte única; ajuste regenera, nada publica - scripts/build-reel.mjs + scripts/lib/reel*.mjs: captura CDP com timestamps de parede (sem drift), cursor/halo DOM-injected, zoompan do log de cliques, legendas queimadas, capa 1080x1350-safe, concat H.264 1080x1920/30fps - ffmpeg: FFMPEG_PATH -> PATH -> @ffmpeg-installer (registry-only) com probe fail-closed - kit oficial da campanha: public/campaign-kit (marcas positiva/negativa, numero, estrela) + manual em docs/campaign-kit + README de regras; skill e agente de design referenciam o material - 26 testes unit novos + pin do command; changelog 2026-09-18-c196 Closes #1155
28 lines
649 B
JavaScript
28 lines
649 B
JavaScript
/**
|
|
* C196 — the reel package metadata: the contract the private library (C195)
|
|
* ingests. `shotListHash` identifies the reel version; re-rendering the same
|
|
* shot list updates the same entry.
|
|
*/
|
|
|
|
import { REEL } from './reelTimeline.mjs'
|
|
|
|
export const buildReelMetadata = ({
|
|
shotList,
|
|
hash,
|
|
durationMs,
|
|
ffmpeg,
|
|
generatedAt = new Date(),
|
|
}) => ({
|
|
slug: shotList.slug,
|
|
title: shotList.title,
|
|
feature: shotList.feature,
|
|
shotListHash: hash,
|
|
durationMs: Math.round(durationMs),
|
|
width: REEL.width,
|
|
height: REEL.height,
|
|
fps: REEL.fps,
|
|
codec: 'h264',
|
|
audio: false,
|
|
generatedAt: generatedAt.toISOString(),
|
|
ffmpeg,
|
|
})
|