videoclaw 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +165 -0
- package/CLAUDE.md +232 -0
- package/LICENSE +36 -0
- package/README.md +737 -0
- package/dist/cli/args.d.ts +59 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +279 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/handlers/analysis.d.ts +3 -0
- package/dist/cli/handlers/analysis.d.ts.map +1 -0
- package/dist/cli/handlers/analysis.js +111 -0
- package/dist/cli/handlers/analysis.js.map +1 -0
- package/dist/cli/handlers/audio.d.ts +25 -0
- package/dist/cli/handlers/audio.d.ts.map +1 -0
- package/dist/cli/handlers/audio.js +321 -0
- package/dist/cli/handlers/audio.js.map +1 -0
- package/dist/cli/handlers/batch.d.ts +4 -0
- package/dist/cli/handlers/batch.d.ts.map +1 -0
- package/dist/cli/handlers/batch.js +424 -0
- package/dist/cli/handlers/batch.js.map +1 -0
- package/dist/cli/handlers/candidates.d.ts +10 -0
- package/dist/cli/handlers/candidates.d.ts.map +1 -0
- package/dist/cli/handlers/candidates.js +389 -0
- package/dist/cli/handlers/candidates.js.map +1 -0
- package/dist/cli/handlers/character.d.ts +8 -0
- package/dist/cli/handlers/character.d.ts.map +1 -0
- package/dist/cli/handlers/character.js +202 -0
- package/dist/cli/handlers/character.js.map +1 -0
- package/dist/cli/handlers/clone.d.ts +5 -0
- package/dist/cli/handlers/clone.d.ts.map +1 -0
- package/dist/cli/handlers/clone.js +303 -0
- package/dist/cli/handlers/clone.js.map +1 -0
- package/dist/cli/handlers/create.d.ts +5 -0
- package/dist/cli/handlers/create.d.ts.map +1 -0
- package/dist/cli/handlers/create.js +635 -0
- package/dist/cli/handlers/create.js.map +1 -0
- package/dist/cli/handlers/execution.d.ts +5 -0
- package/dist/cli/handlers/execution.d.ts.map +1 -0
- package/dist/cli/handlers/execution.js +132 -0
- package/dist/cli/handlers/execution.js.map +1 -0
- package/dist/cli/handlers/library.d.ts +8 -0
- package/dist/cli/handlers/library.d.ts.map +1 -0
- package/dist/cli/handlers/library.js +77 -0
- package/dist/cli/handlers/library.js.map +1 -0
- package/dist/cli/handlers/media-ops.d.ts +7 -0
- package/dist/cli/handlers/media-ops.d.ts.map +1 -0
- package/dist/cli/handlers/media-ops.js +120 -0
- package/dist/cli/handlers/media-ops.js.map +1 -0
- package/dist/cli/handlers/media-production.d.ts +56 -0
- package/dist/cli/handlers/media-production.d.ts.map +1 -0
- package/dist/cli/handlers/media-production.js +673 -0
- package/dist/cli/handlers/media-production.js.map +1 -0
- package/dist/cli/handlers/motion-overlay.d.ts +10 -0
- package/dist/cli/handlers/motion-overlay.d.ts.map +1 -0
- package/dist/cli/handlers/motion-overlay.js +651 -0
- package/dist/cli/handlers/motion-overlay.js.map +1 -0
- package/dist/cli/handlers/multi-shot.d.ts +2 -0
- package/dist/cli/handlers/multi-shot.d.ts.map +1 -0
- package/dist/cli/handlers/multi-shot.js +424 -0
- package/dist/cli/handlers/multi-shot.js.map +1 -0
- package/dist/cli/handlers/project-ops.d.ts +14 -0
- package/dist/cli/handlers/project-ops.d.ts.map +1 -0
- package/dist/cli/handlers/project-ops.js +241 -0
- package/dist/cli/handlers/project-ops.js.map +1 -0
- package/dist/cli/handlers/prompt-craft.d.ts +8 -0
- package/dist/cli/handlers/prompt-craft.d.ts.map +1 -0
- package/dist/cli/handlers/prompt-craft.js +397 -0
- package/dist/cli/handlers/prompt-craft.js.map +1 -0
- package/dist/cli/handlers/provider-registration.d.ts +29 -0
- package/dist/cli/handlers/provider-registration.d.ts.map +1 -0
- package/dist/cli/handlers/provider-registration.js +225 -0
- package/dist/cli/handlers/provider-registration.js.map +1 -0
- package/dist/cli/handlers/reference-sheets.d.ts +6 -0
- package/dist/cli/handlers/reference-sheets.d.ts.map +1 -0
- package/dist/cli/handlers/reference-sheets.js +181 -0
- package/dist/cli/handlers/reference-sheets.js.map +1 -0
- package/dist/cli/handlers/reporting.d.ts +18 -0
- package/dist/cli/handlers/reporting.d.ts.map +1 -0
- package/dist/cli/handlers/reporting.js +155 -0
- package/dist/cli/handlers/reporting.js.map +1 -0
- package/dist/cli/handlers/review-portal.d.ts +8 -0
- package/dist/cli/handlers/review-portal.d.ts.map +1 -0
- package/dist/cli/handlers/review-portal.js +276 -0
- package/dist/cli/handlers/review-portal.js.map +1 -0
- package/dist/cli/handlers/show.d.ts +11 -0
- package/dist/cli/handlers/show.d.ts.map +1 -0
- package/dist/cli/handlers/show.js +136 -0
- package/dist/cli/handlers/show.js.map +1 -0
- package/dist/cli/handlers/stages.d.ts +6 -0
- package/dist/cli/handlers/stages.d.ts.map +1 -0
- package/dist/cli/handlers/stages.js +333 -0
- package/dist/cli/handlers/stages.js.map +1 -0
- package/dist/cli/handlers/studio.d.ts +2 -0
- package/dist/cli/handlers/studio.d.ts.map +1 -0
- package/dist/cli/handlers/studio.js +159 -0
- package/dist/cli/handlers/studio.js.map +1 -0
- package/dist/cli/handlers/templates.d.ts +7 -0
- package/dist/cli/handlers/templates.d.ts.map +1 -0
- package/dist/cli/handlers/templates.js +61 -0
- package/dist/cli/handlers/templates.js.map +1 -0
- package/dist/cli/provider-adapter.d.ts +3 -0
- package/dist/cli/provider-adapter.d.ts.map +1 -0
- package/dist/cli/provider-adapter.js +96 -0
- package/dist/cli/provider-adapter.js.map +1 -0
- package/dist/cli/vclaw.d.ts +15 -0
- package/dist/cli/vclaw.d.ts.map +1 -0
- package/dist/cli/vclaw.js +318 -0
- package/dist/cli/vclaw.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +27 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +168 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +55 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +80 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/video/analyze-output.d.ts +5 -0
- package/dist/video/analyze-output.d.ts.map +1 -0
- package/dist/video/analyze-output.js +7 -0
- package/dist/video/analyze-output.js.map +1 -0
- package/dist/video/archive-project.d.ts +14 -0
- package/dist/video/archive-project.d.ts.map +1 -0
- package/dist/video/archive-project.js +41 -0
- package/dist/video/archive-project.js.map +1 -0
- package/dist/video/artifact-history.d.ts +8 -0
- package/dist/video/artifact-history.d.ts.map +1 -0
- package/dist/video/artifact-history.js +12 -0
- package/dist/video/artifact-history.js.map +1 -0
- package/dist/video/artifact-store.d.ts +8 -0
- package/dist/video/artifact-store.d.ts.map +1 -0
- package/dist/video/artifact-store.js +37 -0
- package/dist/video/artifact-store.js.map +1 -0
- package/dist/video/artifact-validation.d.ts +15 -0
- package/dist/video/artifact-validation.d.ts.map +1 -0
- package/dist/video/artifact-validation.js +287 -0
- package/dist/video/artifact-validation.js.map +1 -0
- package/dist/video/artifacts.d.ts +112 -0
- package/dist/video/artifacts.d.ts.map +1 -0
- package/dist/video/artifacts.js +31 -0
- package/dist/video/artifacts.js.map +1 -0
- package/dist/video/assemble/animate-slides.d.ts +108 -0
- package/dist/video/assemble/animate-slides.d.ts.map +1 -0
- package/dist/video/assemble/animate-slides.js +152 -0
- package/dist/video/assemble/animate-slides.js.map +1 -0
- package/dist/video/assemble/animation-styles.d.ts +21 -0
- package/dist/video/assemble/animation-styles.d.ts.map +1 -0
- package/dist/video/assemble/animation-styles.js +32 -0
- package/dist/video/assemble/animation-styles.js.map +1 -0
- package/dist/video/assemble/animation-styles.json +97 -0
- package/dist/video/assemble/assemble.d.ts +24 -0
- package/dist/video/assemble/assemble.d.ts.map +1 -0
- package/dist/video/assemble/assemble.js +457 -0
- package/dist/video/assemble/assemble.js.map +1 -0
- package/dist/video/assemble/audio-concat.d.ts +61 -0
- package/dist/video/assemble/audio-concat.d.ts.map +1 -0
- package/dist/video/assemble/audio-concat.js +108 -0
- package/dist/video/assemble/audio-concat.js.map +1 -0
- package/dist/video/assemble/audio-mix-plan.d.ts +84 -0
- package/dist/video/assemble/audio-mix-plan.d.ts.map +1 -0
- package/dist/video/assemble/audio-mix-plan.js +74 -0
- package/dist/video/assemble/audio-mix-plan.js.map +1 -0
- package/dist/video/assemble/audio-utils.d.ts +32 -0
- package/dist/video/assemble/audio-utils.d.ts.map +1 -0
- package/dist/video/assemble/audio-utils.js +91 -0
- package/dist/video/assemble/audio-utils.js.map +1 -0
- package/dist/video/assemble/cut-segment.d.ts +40 -0
- package/dist/video/assemble/cut-segment.d.ts.map +1 -0
- package/dist/video/assemble/cut-segment.js +77 -0
- package/dist/video/assemble/cut-segment.js.map +1 -0
- package/dist/video/assemble/ffmpeg.d.ts +91 -0
- package/dist/video/assemble/ffmpeg.d.ts.map +1 -0
- package/dist/video/assemble/ffmpeg.js +251 -0
- package/dist/video/assemble/ffmpeg.js.map +1 -0
- package/dist/video/assemble/gemini-vision-classify.d.ts +37 -0
- package/dist/video/assemble/gemini-vision-classify.d.ts.map +1 -0
- package/dist/video/assemble/gemini-vision-classify.js +123 -0
- package/dist/video/assemble/gemini-vision-classify.js.map +1 -0
- package/dist/video/assemble/index.d.ts +47 -0
- package/dist/video/assemble/index.d.ts.map +1 -0
- package/dist/video/assemble/index.js +40 -0
- package/dist/video/assemble/index.js.map +1 -0
- package/dist/video/assemble/media-qc.d.ts +44 -0
- package/dist/video/assemble/media-qc.d.ts.map +1 -0
- package/dist/video/assemble/media-qc.js +181 -0
- package/dist/video/assemble/media-qc.js.map +1 -0
- package/dist/video/assemble/music.d.ts +51 -0
- package/dist/video/assemble/music.d.ts.map +1 -0
- package/dist/video/assemble/music.js +171 -0
- package/dist/video/assemble/music.js.map +1 -0
- package/dist/video/assemble/narration-fit.d.ts +32 -0
- package/dist/video/assemble/narration-fit.d.ts.map +1 -0
- package/dist/video/assemble/narration-fit.js +59 -0
- package/dist/video/assemble/narration-fit.js.map +1 -0
- package/dist/video/assemble/overlay.d.ts +81 -0
- package/dist/video/assemble/overlay.d.ts.map +1 -0
- package/dist/video/assemble/overlay.js +141 -0
- package/dist/video/assemble/overlay.js.map +1 -0
- package/dist/video/assemble/pdf.d.ts +46 -0
- package/dist/video/assemble/pdf.d.ts.map +1 -0
- package/dist/video/assemble/pdf.js +111 -0
- package/dist/video/assemble/pdf.js.map +1 -0
- package/dist/video/assemble/qa-dialogue-lint.d.ts +56 -0
- package/dist/video/assemble/qa-dialogue-lint.d.ts.map +1 -0
- package/dist/video/assemble/qa-dialogue-lint.js +85 -0
- package/dist/video/assemble/qa-dialogue-lint.js.map +1 -0
- package/dist/video/assemble/qa-image-filter.d.ts +52 -0
- package/dist/video/assemble/qa-image-filter.d.ts.map +1 -0
- package/dist/video/assemble/qa-image-filter.js +102 -0
- package/dist/video/assemble/qa-image-filter.js.map +1 -0
- package/dist/video/assemble/qa-image-vision.d.ts +57 -0
- package/dist/video/assemble/qa-image-vision.d.ts.map +1 -0
- package/dist/video/assemble/qa-image-vision.js +96 -0
- package/dist/video/assemble/qa-image-vision.js.map +1 -0
- package/dist/video/assemble/qa-narration-vision.d.ts +53 -0
- package/dist/video/assemble/qa-narration-vision.d.ts.map +1 -0
- package/dist/video/assemble/qa-narration-vision.js +87 -0
- package/dist/video/assemble/qa-narration-vision.js.map +1 -0
- package/dist/video/assemble/qa-narration.d.ts +53 -0
- package/dist/video/assemble/qa-narration.d.ts.map +1 -0
- package/dist/video/assemble/qa-narration.js +85 -0
- package/dist/video/assemble/qa-narration.js.map +1 -0
- package/dist/video/assemble/stitch-ad.d.ts +88 -0
- package/dist/video/assemble/stitch-ad.d.ts.map +1 -0
- package/dist/video/assemble/stitch-ad.js +161 -0
- package/dist/video/assemble/stitch-ad.js.map +1 -0
- package/dist/video/assemble/stitch.d.ts +341 -0
- package/dist/video/assemble/stitch.d.ts.map +1 -0
- package/dist/video/assemble/stitch.js +607 -0
- package/dist/video/assemble/stitch.js.map +1 -0
- package/dist/video/assemble/text-card.d.ts +78 -0
- package/dist/video/assemble/text-card.d.ts.map +1 -0
- package/dist/video/assemble/text-card.js +210 -0
- package/dist/video/assemble/text-card.js.map +1 -0
- package/dist/video/assemble/title-card.d.ts +39 -0
- package/dist/video/assemble/title-card.d.ts.map +1 -0
- package/dist/video/assemble/title-card.js +127 -0
- package/dist/video/assemble/title-card.js.map +1 -0
- package/dist/video/assemble/transcript.d.ts +66 -0
- package/dist/video/assemble/transcript.d.ts.map +1 -0
- package/dist/video/assemble/transcript.js +200 -0
- package/dist/video/assemble/transcript.js.map +1 -0
- package/dist/video/assemble/tts-elevenlabs.d.ts +52 -0
- package/dist/video/assemble/tts-elevenlabs.d.ts.map +1 -0
- package/dist/video/assemble/tts-elevenlabs.js +118 -0
- package/dist/video/assemble/tts-elevenlabs.js.map +1 -0
- package/dist/video/assemble/tts.d.ts +79 -0
- package/dist/video/assemble/tts.d.ts.map +1 -0
- package/dist/video/assemble/tts.js +131 -0
- package/dist/video/assemble/tts.js.map +1 -0
- package/dist/video/assemble/types.d.ts +43 -0
- package/dist/video/assemble/types.d.ts.map +1 -0
- package/dist/video/assemble/types.js +2 -0
- package/dist/video/assemble/types.js.map +1 -0
- package/dist/video/assemble/upscale.d.ts +43 -0
- package/dist/video/assemble/upscale.d.ts.map +1 -0
- package/dist/video/assemble/upscale.js +52 -0
- package/dist/video/assemble/upscale.js.map +1 -0
- package/dist/video/asset-spec.d.ts +15 -0
- package/dist/video/asset-spec.d.ts.map +1 -0
- package/dist/video/asset-spec.js +43 -0
- package/dist/video/asset-spec.js.map +1 -0
- package/dist/video/asset-tag-lookup.d.ts +31 -0
- package/dist/video/asset-tag-lookup.d.ts.map +1 -0
- package/dist/video/asset-tag-lookup.js +45 -0
- package/dist/video/asset-tag-lookup.js.map +1 -0
- package/dist/video/atomic-write.d.ts +2 -0
- package/dist/video/atomic-write.d.ts.map +1 -0
- package/dist/video/atomic-write.js +7 -0
- package/dist/video/atomic-write.js.map +1 -0
- package/dist/video/audio-platform/native-elevenlabs-sfx.d.ts +29 -0
- package/dist/video/audio-platform/native-elevenlabs-sfx.d.ts.map +1 -0
- package/dist/video/audio-platform/native-elevenlabs-sfx.js +95 -0
- package/dist/video/audio-platform/native-elevenlabs-sfx.js.map +1 -0
- package/dist/video/audio-platform/native-elevenlabs-tts.d.ts +30 -0
- package/dist/video/audio-platform/native-elevenlabs-tts.d.ts.map +1 -0
- package/dist/video/audio-platform/native-elevenlabs-tts.js +95 -0
- package/dist/video/audio-platform/native-elevenlabs-tts.js.map +1 -0
- package/dist/video/audio-platform/native-flowmusic.d.ts +21 -0
- package/dist/video/audio-platform/native-flowmusic.d.ts.map +1 -0
- package/dist/video/audio-platform/native-flowmusic.js +137 -0
- package/dist/video/audio-platform/native-flowmusic.js.map +1 -0
- package/dist/video/audio-platform/native-gemini-tts.d.ts +26 -0
- package/dist/video/audio-platform/native-gemini-tts.d.ts.map +1 -0
- package/dist/video/audio-platform/native-gemini-tts.js +202 -0
- package/dist/video/audio-platform/native-gemini-tts.js.map +1 -0
- package/dist/video/audio-platform/native-lyria.d.ts +35 -0
- package/dist/video/audio-platform/native-lyria.d.ts.map +1 -0
- package/dist/video/audio-platform/native-lyria.js +189 -0
- package/dist/video/audio-platform/native-lyria.js.map +1 -0
- package/dist/video/audio-platform/native-lyria3.d.ts +36 -0
- package/dist/video/audio-platform/native-lyria3.d.ts.map +1 -0
- package/dist/video/audio-platform/native-lyria3.js +210 -0
- package/dist/video/audio-platform/native-lyria3.js.map +1 -0
- package/dist/video/audio-platform/registry.d.ts +82 -0
- package/dist/video/audio-platform/registry.d.ts.map +1 -0
- package/dist/video/audio-platform/registry.js +189 -0
- package/dist/video/audio-platform/registry.js.map +1 -0
- package/dist/video/audio-platform/suno-backend.d.ts +11 -0
- package/dist/video/audio-platform/suno-backend.d.ts.map +1 -0
- package/dist/video/audio-platform/suno-backend.js +33 -0
- package/dist/video/audio-platform/suno-backend.js.map +1 -0
- package/dist/video/audio-platform/types.d.ts +128 -0
- package/dist/video/audio-platform/types.d.ts.map +1 -0
- package/dist/video/audio-platform/types.js +9 -0
- package/dist/video/audio-platform/types.js.map +1 -0
- package/dist/video/batch-queue.d.ts +276 -0
- package/dist/video/batch-queue.d.ts.map +1 -0
- package/dist/video/batch-queue.js +519 -0
- package/dist/video/batch-queue.js.map +1 -0
- package/dist/video/blueprint-prompt.d.ts +37 -0
- package/dist/video/blueprint-prompt.d.ts.map +1 -0
- package/dist/video/blueprint-prompt.js +107 -0
- package/dist/video/blueprint-prompt.js.map +1 -0
- package/dist/video/brand-definition.d.ts +97 -0
- package/dist/video/brand-definition.d.ts.map +1 -0
- package/dist/video/brand-definition.js +206 -0
- package/dist/video/brand-definition.js.map +1 -0
- package/dist/video/brand-dna.d.ts +101 -0
- package/dist/video/brand-dna.d.ts.map +1 -0
- package/dist/video/brand-dna.js +370 -0
- package/dist/video/brand-dna.js.map +1 -0
- package/dist/video/brand-prompt.d.ts +13 -0
- package/dist/video/brand-prompt.d.ts.map +1 -0
- package/dist/video/brand-prompt.js +26 -0
- package/dist/video/brand-prompt.js.map +1 -0
- package/dist/video/candidate-migrate.d.ts +27 -0
- package/dist/video/candidate-migrate.d.ts.map +1 -0
- package/dist/video/candidate-migrate.js +119 -0
- package/dist/video/candidate-migrate.js.map +1 -0
- package/dist/video/category-registry.d.ts +38 -0
- package/dist/video/category-registry.d.ts.map +1 -0
- package/dist/video/category-registry.js +188 -0
- package/dist/video/category-registry.js.map +1 -0
- package/dist/video/chain-fallback.d.ts +39 -0
- package/dist/video/chain-fallback.d.ts.map +1 -0
- package/dist/video/chain-fallback.js +43 -0
- package/dist/video/chain-fallback.js.map +1 -0
- package/dist/video/character-auto-create.d.ts +72 -0
- package/dist/video/character-auto-create.d.ts.map +1 -0
- package/dist/video/character-auto-create.js +392 -0
- package/dist/video/character-auto-create.js.map +1 -0
- package/dist/video/character-consistency.d.ts +3 -0
- package/dist/video/character-consistency.d.ts.map +1 -0
- package/dist/video/character-consistency.js +69 -0
- package/dist/video/character-consistency.js.map +1 -0
- package/dist/video/characters.d.ts +44 -0
- package/dist/video/characters.d.ts.map +1 -0
- package/dist/video/characters.js +96 -0
- package/dist/video/characters.js.map +1 -0
- package/dist/video/checkpoints.d.ts +16 -0
- package/dist/video/checkpoints.d.ts.map +1 -0
- package/dist/video/checkpoints.js +29 -0
- package/dist/video/checkpoints.js.map +1 -0
- package/dist/video/cinema-profile.d.ts +57 -0
- package/dist/video/cinema-profile.d.ts.map +1 -0
- package/dist/video/cinema-profile.js +89 -0
- package/dist/video/cinema-profile.js.map +1 -0
- package/dist/video/cinematography.d.ts +299 -0
- package/dist/video/cinematography.d.ts.map +1 -0
- package/dist/video/cinematography.js +914 -0
- package/dist/video/cinematography.js.map +1 -0
- package/dist/video/cli-output.d.ts +52 -0
- package/dist/video/cli-output.d.ts.map +1 -0
- package/dist/video/cli-output.js +81 -0
- package/dist/video/cli-output.js.map +1 -0
- package/dist/video/cli-schema.d.ts +40 -0
- package/dist/video/cli-schema.d.ts.map +1 -0
- package/dist/video/cli-schema.js +447 -0
- package/dist/video/cli-schema.js.map +1 -0
- package/dist/video/cost-estimate.d.ts +37 -0
- package/dist/video/cost-estimate.d.ts.map +1 -0
- package/dist/video/cost-estimate.js +103 -0
- package/dist/video/cost-estimate.js.map +1 -0
- package/dist/video/csv-export.d.ts +8 -0
- package/dist/video/csv-export.d.ts.map +1 -0
- package/dist/video/csv-export.js +133 -0
- package/dist/video/csv-export.js.map +1 -0
- package/dist/video/dependencies.d.ts +23 -0
- package/dist/video/dependencies.d.ts.map +1 -0
- package/dist/video/dependencies.js +36 -0
- package/dist/video/dependencies.js.map +1 -0
- package/dist/video/dialogue-fit.d.ts +23 -0
- package/dist/video/dialogue-fit.d.ts.map +1 -0
- package/dist/video/dialogue-fit.js +38 -0
- package/dist/video/dialogue-fit.js.map +1 -0
- package/dist/video/dialogue.d.ts +77 -0
- package/dist/video/dialogue.d.ts.map +1 -0
- package/dist/video/dialogue.js +143 -0
- package/dist/video/dialogue.js.map +1 -0
- package/dist/video/director-defaults.d.ts +37 -0
- package/dist/video/director-defaults.d.ts.map +1 -0
- package/dist/video/director-defaults.js +383 -0
- package/dist/video/director-defaults.js.map +1 -0
- package/dist/video/director-preflight.d.ts +53 -0
- package/dist/video/director-preflight.d.ts.map +1 -0
- package/dist/video/director-preflight.js +462 -0
- package/dist/video/director-preflight.js.map +1 -0
- package/dist/video/doctor-portfolio.d.ts +43 -0
- package/dist/video/doctor-portfolio.d.ts.map +1 -0
- package/dist/video/doctor-portfolio.js +137 -0
- package/dist/video/doctor-portfolio.js.map +1 -0
- package/dist/video/doctor.d.ts +13 -0
- package/dist/video/doctor.d.ts.map +1 -0
- package/dist/video/doctor.js +449 -0
- package/dist/video/doctor.js.map +1 -0
- package/dist/video/emotion-cues.d.ts +15 -0
- package/dist/video/emotion-cues.d.ts.map +1 -0
- package/dist/video/emotion-cues.js +37 -0
- package/dist/video/emotion-cues.js.map +1 -0
- package/dist/video/environment-assets.d.ts +28 -0
- package/dist/video/environment-assets.d.ts.map +1 -0
- package/dist/video/environment-assets.js +43 -0
- package/dist/video/environment-assets.js.map +1 -0
- package/dist/video/environment-auto-create.d.ts +20 -0
- package/dist/video/environment-auto-create.d.ts.map +1 -0
- package/dist/video/environment-auto-create.js +88 -0
- package/dist/video/environment-auto-create.js.map +1 -0
- package/dist/video/errors.d.ts +35 -0
- package/dist/video/errors.d.ts.map +1 -0
- package/dist/video/errors.js +117 -0
- package/dist/video/errors.js.map +1 -0
- package/dist/video/events.d.ts +11 -0
- package/dist/video/events.d.ts.map +1 -0
- package/dist/video/events.js +32 -0
- package/dist/video/events.js.map +1 -0
- package/dist/video/execute-autochain.d.ts +65 -0
- package/dist/video/execute-autochain.d.ts.map +1 -0
- package/dist/video/execute-autochain.js +165 -0
- package/dist/video/execute-autochain.js.map +1 -0
- package/dist/video/execute.d.ts +27 -0
- package/dist/video/execute.d.ts.map +1 -0
- package/dist/video/execute.js +477 -0
- package/dist/video/execute.js.map +1 -0
- package/dist/video/execution-cancel.d.ts +11 -0
- package/dist/video/execution-cancel.d.ts.map +1 -0
- package/dist/video/execution-cancel.js +85 -0
- package/dist/video/execution-cancel.js.map +1 -0
- package/dist/video/execution-plan.d.ts +5 -0
- package/dist/video/execution-plan.d.ts.map +1 -0
- package/dist/video/execution-plan.js +145 -0
- package/dist/video/execution-plan.js.map +1 -0
- package/dist/video/execution-profile.d.ts +25 -0
- package/dist/video/execution-profile.d.ts.map +1 -0
- package/dist/video/execution-profile.js +124 -0
- package/dist/video/execution-profile.js.map +1 -0
- package/dist/video/execution-runtime.d.ts +104 -0
- package/dist/video/execution-runtime.d.ts.map +1 -0
- package/dist/video/execution-runtime.js +750 -0
- package/dist/video/execution-runtime.js.map +1 -0
- package/dist/video/execution-seed.d.ts +14 -0
- package/dist/video/execution-seed.d.ts.map +1 -0
- package/dist/video/execution-seed.js +29 -0
- package/dist/video/execution-seed.js.map +1 -0
- package/dist/video/execution-status.d.ts +12 -0
- package/dist/video/execution-status.d.ts.map +1 -0
- package/dist/video/execution-status.js +666 -0
- package/dist/video/execution-status.js.map +1 -0
- package/dist/video/filmmaking-prompts.d.ts +356 -0
- package/dist/video/filmmaking-prompts.d.ts.map +1 -0
- package/dist/video/filmmaking-prompts.js +1212 -0
- package/dist/video/filmmaking-prompts.js.map +1 -0
- package/dist/video/final-media.d.ts +17 -0
- package/dist/video/final-media.d.ts.map +1 -0
- package/dist/video/final-media.js +78 -0
- package/dist/video/final-media.js.map +1 -0
- package/dist/video/finish.d.ts +99 -0
- package/dist/video/finish.d.ts.map +1 -0
- package/dist/video/finish.js +159 -0
- package/dist/video/finish.js.map +1 -0
- package/dist/video/flow-character-library.d.ts +143 -0
- package/dist/video/flow-character-library.d.ts.map +1 -0
- package/dist/video/flow-character-library.js +211 -0
- package/dist/video/flow-character-library.js.map +1 -0
- package/dist/video/flow-markers.d.ts +107 -0
- package/dist/video/flow-markers.d.ts.map +1 -0
- package/dist/video/flow-markers.js +278 -0
- package/dist/video/flow-markers.js.map +1 -0
- package/dist/video/gemini-analyze.d.ts +44 -0
- package/dist/video/gemini-analyze.d.ts.map +1 -0
- package/dist/video/gemini-analyze.js +323 -0
- package/dist/video/gemini-analyze.js.map +1 -0
- package/dist/video/gemini-continuity.d.ts +40 -0
- package/dist/video/gemini-continuity.d.ts.map +1 -0
- package/dist/video/gemini-continuity.js +145 -0
- package/dist/video/gemini-continuity.js.map +1 -0
- package/dist/video/gemini-judge.d.ts +33 -0
- package/dist/video/gemini-judge.d.ts.map +1 -0
- package/dist/video/gemini-judge.js +218 -0
- package/dist/video/gemini-judge.js.map +1 -0
- package/dist/video/gemini-key-pool.d.ts +23 -0
- package/dist/video/gemini-key-pool.d.ts.map +1 -0
- package/dist/video/gemini-key-pool.js +107 -0
- package/dist/video/gemini-key-pool.js.map +1 -0
- package/dist/video/gen-image-flow.d.ts +187 -0
- package/dist/video/gen-image-flow.d.ts.map +1 -0
- package/dist/video/gen-image-flow.js +331 -0
- package/dist/video/gen-image-flow.js.map +1 -0
- package/dist/video/gen-image.d.ts +153 -0
- package/dist/video/gen-image.d.ts.map +1 -0
- package/dist/video/gen-image.js +263 -0
- package/dist/video/gen-image.js.map +1 -0
- package/dist/video/generation-telemetry.d.ts +60 -0
- package/dist/video/generation-telemetry.d.ts.map +1 -0
- package/dist/video/generation-telemetry.js +214 -0
- package/dist/video/generation-telemetry.js.map +1 -0
- package/dist/video/http-error-safety.d.ts +9 -0
- package/dist/video/http-error-safety.d.ts.map +1 -0
- package/dist/video/http-error-safety.js +14 -0
- package/dist/video/http-error-safety.js.map +1 -0
- package/dist/video/image-dimensions.d.ts +7 -0
- package/dist/video/image-dimensions.d.ts.map +1 -0
- package/dist/video/image-dimensions.js +54 -0
- package/dist/video/image-dimensions.js.map +1 -0
- package/dist/video/legacy-import.d.ts +11 -0
- package/dist/video/legacy-import.d.ts.map +1 -0
- package/dist/video/legacy-import.js +181 -0
- package/dist/video/legacy-import.js.map +1 -0
- package/dist/video/library-clean.d.ts +34 -0
- package/dist/video/library-clean.d.ts.map +1 -0
- package/dist/video/library-clean.js +340 -0
- package/dist/video/library-clean.js.map +1 -0
- package/dist/video/lipsync.d.ts +72 -0
- package/dist/video/lipsync.d.ts.map +1 -0
- package/dist/video/lipsync.js +136 -0
- package/dist/video/lipsync.js.map +1 -0
- package/dist/video/media-host.d.ts +41 -0
- package/dist/video/media-host.d.ts.map +1 -0
- package/dist/video/media-host.js +106 -0
- package/dist/video/media-host.js.map +1 -0
- package/dist/video/metrics.d.ts +30 -0
- package/dist/video/metrics.d.ts.map +1 -0
- package/dist/video/metrics.js +81 -0
- package/dist/video/metrics.js.map +1 -0
- package/dist/video/motion-overlay/analyze-reel.d.ts +38 -0
- package/dist/video/motion-overlay/analyze-reel.d.ts.map +1 -0
- package/dist/video/motion-overlay/analyze-reel.js +185 -0
- package/dist/video/motion-overlay/analyze-reel.js.map +1 -0
- package/dist/video/motion-overlay/animate-render.d.ts +63 -0
- package/dist/video/motion-overlay/animate-render.d.ts.map +1 -0
- package/dist/video/motion-overlay/animate-render.js +128 -0
- package/dist/video/motion-overlay/animate-render.js.map +1 -0
- package/dist/video/motion-overlay/animate.d.ts +37 -0
- package/dist/video/motion-overlay/animate.d.ts.map +1 -0
- package/dist/video/motion-overlay/animate.js +97 -0
- package/dist/video/motion-overlay/animate.js.map +1 -0
- package/dist/video/motion-overlay/avatar-host-transport.d.ts +161 -0
- package/dist/video/motion-overlay/avatar-host-transport.d.ts.map +1 -0
- package/dist/video/motion-overlay/avatar-host-transport.js +325 -0
- package/dist/video/motion-overlay/avatar-host-transport.js.map +1 -0
- package/dist/video/motion-overlay/avatar-host.d.ts +131 -0
- package/dist/video/motion-overlay/avatar-host.d.ts.map +1 -0
- package/dist/video/motion-overlay/avatar-host.js +131 -0
- package/dist/video/motion-overlay/avatar-host.js.map +1 -0
- package/dist/video/motion-overlay/compose-prompt.d.ts +48 -0
- package/dist/video/motion-overlay/compose-prompt.d.ts.map +1 -0
- package/dist/video/motion-overlay/compose-prompt.js +217 -0
- package/dist/video/motion-overlay/compose-prompt.js.map +1 -0
- package/dist/video/motion-overlay/execute.d.ts +190 -0
- package/dist/video/motion-overlay/execute.d.ts.map +1 -0
- package/dist/video/motion-overlay/execute.js +205 -0
- package/dist/video/motion-overlay/execute.js.map +1 -0
- package/dist/video/motion-overlay/flow-pack.d.ts +65 -0
- package/dist/video/motion-overlay/flow-pack.d.ts.map +1 -0
- package/dist/video/motion-overlay/flow-pack.js +178 -0
- package/dist/video/motion-overlay/flow-pack.js.map +1 -0
- package/dist/video/motion-overlay/ingest.d.ts +74 -0
- package/dist/video/motion-overlay/ingest.d.ts.map +1 -0
- package/dist/video/motion-overlay/ingest.js +172 -0
- package/dist/video/motion-overlay/ingest.js.map +1 -0
- package/dist/video/motion-overlay/motifs.d.ts +63 -0
- package/dist/video/motion-overlay/motifs.d.ts.map +1 -0
- package/dist/video/motion-overlay/motifs.js +192 -0
- package/dist/video/motion-overlay/motifs.js.map +1 -0
- package/dist/video/motion-overlay/motion-style.d.ts +56 -0
- package/dist/video/motion-overlay/motion-style.d.ts.map +1 -0
- package/dist/video/motion-overlay/motion-style.js +130 -0
- package/dist/video/motion-overlay/motion-style.js.map +1 -0
- package/dist/video/motion-overlay/plan.d.ts +49 -0
- package/dist/video/motion-overlay/plan.d.ts.map +1 -0
- package/dist/video/motion-overlay/plan.js +79 -0
- package/dist/video/motion-overlay/plan.js.map +1 -0
- package/dist/video/motion-overlay/preview.d.ts +36 -0
- package/dist/video/motion-overlay/preview.d.ts.map +1 -0
- package/dist/video/motion-overlay/preview.js +169 -0
- package/dist/video/motion-overlay/preview.js.map +1 -0
- package/dist/video/motion-overlay/render-local.d.ts +118 -0
- package/dist/video/motion-overlay/render-local.d.ts.map +1 -0
- package/dist/video/motion-overlay/render-local.js +298 -0
- package/dist/video/motion-overlay/render-local.js.map +1 -0
- package/dist/video/motion-overlay/run.d.ts +58 -0
- package/dist/video/motion-overlay/run.d.ts.map +1 -0
- package/dist/video/motion-overlay/run.js +147 -0
- package/dist/video/motion-overlay/run.js.map +1 -0
- package/dist/video/motion-overlay/slice.d.ts +29 -0
- package/dist/video/motion-overlay/slice.d.ts.map +1 -0
- package/dist/video/motion-overlay/slice.js +88 -0
- package/dist/video/motion-overlay/slice.js.map +1 -0
- package/dist/video/motion-overlay/transcribe.d.ts +49 -0
- package/dist/video/motion-overlay/transcribe.d.ts.map +1 -0
- package/dist/video/motion-overlay/transcribe.js +180 -0
- package/dist/video/motion-overlay/transcribe.js.map +1 -0
- package/dist/video/motion-overlay/types.d.ts +82 -0
- package/dist/video/motion-overlay/types.d.ts.map +1 -0
- package/dist/video/motion-overlay/types.js +12 -0
- package/dist/video/motion-overlay/types.js.map +1 -0
- package/dist/video/motion-overlay/v2v-transport.d.ts +37 -0
- package/dist/video/motion-overlay/v2v-transport.d.ts.map +1 -0
- package/dist/video/motion-overlay/v2v-transport.js +178 -0
- package/dist/video/motion-overlay/v2v-transport.js.map +1 -0
- package/dist/video/motion-overlay/write.d.ts +40 -0
- package/dist/video/motion-overlay/write.d.ts.map +1 -0
- package/dist/video/motion-overlay/write.js +113 -0
- package/dist/video/motion-overlay/write.js.map +1 -0
- package/dist/video/multi-shot-artifact.d.ts +19 -0
- package/dist/video/multi-shot-artifact.d.ts.map +1 -0
- package/dist/video/multi-shot-artifact.js +44 -0
- package/dist/video/multi-shot-artifact.js.map +1 -0
- package/dist/video/multi-shot-prompt.d.ts +99 -0
- package/dist/video/multi-shot-prompt.d.ts.map +1 -0
- package/dist/video/multi-shot-prompt.js +466 -0
- package/dist/video/multi-shot-prompt.js.map +1 -0
- package/dist/video/music-video.d.ts +110 -0
- package/dist/video/music-video.d.ts.map +1 -0
- package/dist/video/music-video.js +190 -0
- package/dist/video/music-video.js.map +1 -0
- package/dist/video/narrate.d.ts +58 -0
- package/dist/video/narrate.d.ts.map +1 -0
- package/dist/video/narrate.js +145 -0
- package/dist/video/narrate.js.map +1 -0
- package/dist/video/native-dreamina.d.ts +35 -0
- package/dist/video/native-dreamina.d.ts.map +1 -0
- package/dist/video/native-dreamina.js +532 -0
- package/dist/video/native-dreamina.js.map +1 -0
- package/dist/video/native-flow-r2v.d.ts +113 -0
- package/dist/video/native-flow-r2v.d.ts.map +1 -0
- package/dist/video/native-flow-r2v.js +223 -0
- package/dist/video/native-flow-r2v.js.map +1 -0
- package/dist/video/native-runway.d.ts +41 -0
- package/dist/video/native-runway.d.ts.map +1 -0
- package/dist/video/native-runway.js +523 -0
- package/dist/video/native-runway.js.map +1 -0
- package/dist/video/native-seedance.d.ts +74 -0
- package/dist/video/native-seedance.d.ts.map +1 -0
- package/dist/video/native-seedance.js +461 -0
- package/dist/video/native-seedance.js.map +1 -0
- package/dist/video/native-veo.d.ts +20 -0
- package/dist/video/native-veo.d.ts.map +1 -0
- package/dist/video/native-veo.js +390 -0
- package/dist/video/native-veo.js.map +1 -0
- package/dist/video/next-actions.d.ts +27 -0
- package/dist/video/next-actions.d.ts.map +1 -0
- package/dist/video/next-actions.js +201 -0
- package/dist/video/next-actions.js.map +1 -0
- package/dist/video/obsidian-export.d.ts +12 -0
- package/dist/video/obsidian-export.d.ts.map +1 -0
- package/dist/video/obsidian-export.js +285 -0
- package/dist/video/obsidian-export.js.map +1 -0
- package/dist/video/obsidian-sync.d.ts +13 -0
- package/dist/video/obsidian-sync.d.ts.map +1 -0
- package/dist/video/obsidian-sync.js +479 -0
- package/dist/video/obsidian-sync.js.map +1 -0
- package/dist/video/obsidian-vault.d.ts +8 -0
- package/dist/video/obsidian-vault.d.ts.map +1 -0
- package/dist/video/obsidian-vault.js +81 -0
- package/dist/video/obsidian-vault.js.map +1 -0
- package/dist/video/outfit-prompts.d.ts +10 -0
- package/dist/video/outfit-prompts.d.ts.map +1 -0
- package/dist/video/outfit-prompts.js +14 -0
- package/dist/video/outfit-prompts.js.map +1 -0
- package/dist/video/outpaint-keyframe.d.ts +95 -0
- package/dist/video/outpaint-keyframe.d.ts.map +1 -0
- package/dist/video/outpaint-keyframe.js +244 -0
- package/dist/video/outpaint-keyframe.js.map +1 -0
- package/dist/video/pipeline-manifest.d.ts +4 -0
- package/dist/video/pipeline-manifest.d.ts.map +1 -0
- package/dist/video/pipeline-manifest.js +13 -0
- package/dist/video/pipeline-manifest.js.map +1 -0
- package/dist/video/pipeline-manifests/director.json +46 -0
- package/dist/video/pipeline-manifests/storyboard.json +46 -0
- package/dist/video/platform-specs.d.ts +26 -0
- package/dist/video/platform-specs.d.ts.map +1 -0
- package/dist/video/platform-specs.js +34 -0
- package/dist/video/platform-specs.js.map +1 -0
- package/dist/video/playbooks.d.ts +11 -0
- package/dist/video/playbooks.d.ts.map +1 -0
- package/dist/video/playbooks.js +22 -0
- package/dist/video/playbooks.js.map +1 -0
- package/dist/video/post-production.d.ts +57 -0
- package/dist/video/post-production.d.ts.map +1 -0
- package/dist/video/post-production.js +210 -0
- package/dist/video/post-production.js.map +1 -0
- package/dist/video/preview-portal/audit.d.ts +4 -0
- package/dist/video/preview-portal/audit.d.ts.map +1 -0
- package/dist/video/preview-portal/audit.js +16 -0
- package/dist/video/preview-portal/audit.js.map +1 -0
- package/dist/video/preview-portal/discovery.d.ts +23 -0
- package/dist/video/preview-portal/discovery.d.ts.map +1 -0
- package/dist/video/preview-portal/discovery.js +733 -0
- package/dist/video/preview-portal/discovery.js.map +1 -0
- package/dist/video/preview-portal/generate.d.ts +42 -0
- package/dist/video/preview-portal/generate.d.ts.map +1 -0
- package/dist/video/preview-portal/generate.js +101 -0
- package/dist/video/preview-portal/generate.js.map +1 -0
- package/dist/video/preview-portal/index.d.ts +12 -0
- package/dist/video/preview-portal/index.d.ts.map +1 -0
- package/dist/video/preview-portal/index.js +8 -0
- package/dist/video/preview-portal/index.js.map +1 -0
- package/dist/video/preview-portal/publish.d.ts +48 -0
- package/dist/video/preview-portal/publish.d.ts.map +1 -0
- package/dist/video/preview-portal/publish.js +169 -0
- package/dist/video/preview-portal/publish.js.map +1 -0
- package/dist/video/preview-portal/render.d.ts +4 -0
- package/dist/video/preview-portal/render.d.ts.map +1 -0
- package/dist/video/preview-portal/render.js +822 -0
- package/dist/video/preview-portal/render.js.map +1 -0
- package/dist/video/preview-portal/shared-assets.d.ts +6 -0
- package/dist/video/preview-portal/shared-assets.d.ts.map +1 -0
- package/dist/video/preview-portal/shared-assets.js +452 -0
- package/dist/video/preview-portal/shared-assets.js.map +1 -0
- package/dist/video/preview-portal/templates.d.ts +4 -0
- package/dist/video/preview-portal/templates.d.ts.map +1 -0
- package/dist/video/preview-portal/templates.js +109 -0
- package/dist/video/preview-portal/templates.js.map +1 -0
- package/dist/video/preview-portal/types.d.ts +246 -0
- package/dist/video/preview-portal/types.d.ts.map +1 -0
- package/dist/video/preview-portal/types.js +28 -0
- package/dist/video/preview-portal/types.js.map +1 -0
- package/dist/video/product-references.d.ts +21 -0
- package/dist/video/product-references.d.ts.map +1 -0
- package/dist/video/product-references.js +25 -0
- package/dist/video/product-references.js.map +1 -0
- package/dist/video/project-blueprint.d.ts +178 -0
- package/dist/video/project-blueprint.d.ts.map +1 -0
- package/dist/video/project-blueprint.js +286 -0
- package/dist/video/project-blueprint.js.map +1 -0
- package/dist/video/project-index.d.ts +82 -0
- package/dist/video/project-index.d.ts.map +1 -0
- package/dist/video/project-index.js +89 -0
- package/dist/video/project-index.js.map +1 -0
- package/dist/video/projects.d.ts +3 -0
- package/dist/video/projects.d.ts.map +1 -0
- package/dist/video/projects.js +18 -0
- package/dist/video/projects.js.map +1 -0
- package/dist/video/prompt-guidance.d.ts +14 -0
- package/dist/video/prompt-guidance.d.ts.map +1 -0
- package/dist/video/prompt-guidance.js +44 -0
- package/dist/video/prompt-guidance.js.map +1 -0
- package/dist/video/prompt-library.d.ts +11 -0
- package/dist/video/prompt-library.d.ts.map +1 -0
- package/dist/video/prompt-library.js +85 -0
- package/dist/video/prompt-library.js.map +1 -0
- package/dist/video/prompt-lint.d.ts +146 -0
- package/dist/video/prompt-lint.d.ts.map +1 -0
- package/dist/video/prompt-lint.js +433 -0
- package/dist/video/prompt-lint.js.map +1 -0
- package/dist/video/prompt-quality.d.ts +29 -0
- package/dist/video/prompt-quality.d.ts.map +1 -0
- package/dist/video/prompt-quality.js +532 -0
- package/dist/video/prompt-quality.js.map +1 -0
- package/dist/video/prompt-rules.d.ts +94 -0
- package/dist/video/prompt-rules.d.ts.map +1 -0
- package/dist/video/prompt-rules.js +169 -0
- package/dist/video/prompt-rules.js.map +1 -0
- package/dist/video/provider-adapter-runner.d.ts +5 -0
- package/dist/video/provider-adapter-runner.d.ts.map +1 -0
- package/dist/video/provider-adapter-runner.js +92 -0
- package/dist/video/provider-adapter-runner.js.map +1 -0
- package/dist/video/provider-platform/index.d.ts +6 -0
- package/dist/video/provider-platform/index.d.ts.map +1 -0
- package/dist/video/provider-platform/index.js +6 -0
- package/dist/video/provider-platform/index.js.map +1 -0
- package/dist/video/provider-platform/registry.d.ts +5 -0
- package/dist/video/provider-platform/registry.d.ts.map +1 -0
- package/dist/video/provider-platform/registry.js +279 -0
- package/dist/video/provider-platform/registry.js.map +1 -0
- package/dist/video/provider-platform/route-capabilities.d.ts +133 -0
- package/dist/video/provider-platform/route-capabilities.d.ts.map +1 -0
- package/dist/video/provider-platform/route-capabilities.js +192 -0
- package/dist/video/provider-platform/route-capabilities.js.map +1 -0
- package/dist/video/provider-platform/router.d.ts +7 -0
- package/dist/video/provider-platform/router.d.ts.map +1 -0
- package/dist/video/provider-platform/router.js +150 -0
- package/dist/video/provider-platform/router.js.map +1 -0
- package/dist/video/provider-platform/security.d.ts +8 -0
- package/dist/video/provider-platform/security.d.ts.map +1 -0
- package/dist/video/provider-platform/security.js +21 -0
- package/dist/video/provider-platform/security.js.map +1 -0
- package/dist/video/provider-platform/telemetry.d.ts +24 -0
- package/dist/video/provider-platform/telemetry.d.ts.map +1 -0
- package/dist/video/provider-platform/telemetry.js +88 -0
- package/dist/video/provider-platform/telemetry.js.map +1 -0
- package/dist/video/provider-platform/types.d.ts +139 -0
- package/dist/video/provider-platform/types.d.ts.map +1 -0
- package/dist/video/provider-platform/types.js +17 -0
- package/dist/video/provider-platform/types.js.map +1 -0
- package/dist/video/provider-status.d.ts +12 -0
- package/dist/video/provider-status.d.ts.map +1 -0
- package/dist/video/provider-status.js +169 -0
- package/dist/video/provider-status.js.map +1 -0
- package/dist/video/providers/dreamina-useapi.d.ts +170 -0
- package/dist/video/providers/dreamina-useapi.d.ts.map +1 -0
- package/dist/video/providers/dreamina-useapi.js +176 -0
- package/dist/video/providers/dreamina-useapi.js.map +1 -0
- package/dist/video/providers/flowmusic-useapi.d.ts +114 -0
- package/dist/video/providers/flowmusic-useapi.d.ts.map +1 -0
- package/dist/video/providers/flowmusic-useapi.js +159 -0
- package/dist/video/providers/flowmusic-useapi.js.map +1 -0
- package/dist/video/providers/google-flow.d.ts +57 -0
- package/dist/video/providers/google-flow.d.ts.map +1 -0
- package/dist/video/providers/google-flow.js +63 -0
- package/dist/video/providers/google-flow.js.map +1 -0
- package/dist/video/providers/public-host.d.ts +40 -0
- package/dist/video/providers/public-host.d.ts.map +1 -0
- package/dist/video/providers/public-host.js +91 -0
- package/dist/video/providers/public-host.js.map +1 -0
- package/dist/video/providers/runway-useapi.d.ts +159 -0
- package/dist/video/providers/runway-useapi.d.ts.map +1 -0
- package/dist/video/providers/runway-useapi.js +200 -0
- package/dist/video/providers/runway-useapi.js.map +1 -0
- package/dist/video/providers/xskill.d.ts +108 -0
- package/dist/video/providers/xskill.d.ts.map +1 -0
- package/dist/video/providers/xskill.js +233 -0
- package/dist/video/providers/xskill.js.map +1 -0
- package/dist/video/readiness.d.ts +18 -0
- package/dist/video/readiness.d.ts.map +1 -0
- package/dist/video/readiness.js +221 -0
- package/dist/video/readiness.js.map +1 -0
- package/dist/video/reference-sheet-store.d.ts +5 -0
- package/dist/video/reference-sheet-store.d.ts.map +1 -0
- package/dist/video/reference-sheet-store.js +28 -0
- package/dist/video/reference-sheet-store.js.map +1 -0
- package/dist/video/reference-sheets.d.ts +40 -0
- package/dist/video/reference-sheets.d.ts.map +1 -0
- package/dist/video/reference-sheets.js +160 -0
- package/dist/video/reference-sheets.js.map +1 -0
- package/dist/video/remix-narrated.d.ts +12 -0
- package/dist/video/remix-narrated.d.ts.map +1 -0
- package/dist/video/remix-narrated.js +73 -0
- package/dist/video/remix-narrated.js.map +1 -0
- package/dist/video/report-diff.d.ts +89 -0
- package/dist/video/report-diff.d.ts.map +1 -0
- package/dist/video/report-diff.js +176 -0
- package/dist/video/report-diff.js.map +1 -0
- package/dist/video/report-history.d.ts +40 -0
- package/dist/video/report-history.d.ts.map +1 -0
- package/dist/video/report-history.js +74 -0
- package/dist/video/report-history.js.map +1 -0
- package/dist/video/report.d.ts +15 -0
- package/dist/video/report.d.ts.map +1 -0
- package/dist/video/report.js +21 -0
- package/dist/video/report.js.map +1 -0
- package/dist/video/review-ui.d.ts +180 -0
- package/dist/video/review-ui.d.ts.map +1 -0
- package/dist/video/review-ui.js +2008 -0
- package/dist/video/review-ui.js.map +1 -0
- package/dist/video/scene-candidate-store.d.ts +12 -0
- package/dist/video/scene-candidate-store.d.ts.map +1 -0
- package/dist/video/scene-candidate-store.js +134 -0
- package/dist/video/scene-candidate-store.js.map +1 -0
- package/dist/video/scene-candidates.d.ts +57 -0
- package/dist/video/scene-candidates.d.ts.map +1 -0
- package/dist/video/scene-candidates.js +149 -0
- package/dist/video/scene-candidates.js.map +1 -0
- package/dist/video/scene-selection-store.d.ts +5 -0
- package/dist/video/scene-selection-store.d.ts.map +1 -0
- package/dist/video/scene-selection-store.js +22 -0
- package/dist/video/scene-selection-store.js.map +1 -0
- package/dist/video/scene-selection.d.ts +83 -0
- package/dist/video/scene-selection.d.ts.map +1 -0
- package/dist/video/scene-selection.js +225 -0
- package/dist/video/scene-selection.js.map +1 -0
- package/dist/video/scheduling.d.ts +3 -0
- package/dist/video/scheduling.d.ts.map +1 -0
- package/dist/video/scheduling.js +16 -0
- package/dist/video/scheduling.js.map +1 -0
- package/dist/video/scorecard.d.ts +12 -0
- package/dist/video/scorecard.d.ts.map +1 -0
- package/dist/video/scorecard.js +68 -0
- package/dist/video/scorecard.js.map +1 -0
- package/dist/video/seedance-asset-library.d.ts +82 -0
- package/dist/video/seedance-asset-library.d.ts.map +1 -0
- package/dist/video/seedance-asset-library.js +146 -0
- package/dist/video/seedance-asset-library.js.map +1 -0
- package/dist/video/seedance-blocks.d.ts +56 -0
- package/dist/video/seedance-blocks.d.ts.map +1 -0
- package/dist/video/seedance-blocks.js +97 -0
- package/dist/video/seedance-blocks.js.map +1 -0
- package/dist/video/seedance-chain-host.d.ts +42 -0
- package/dist/video/seedance-chain-host.d.ts.map +1 -0
- package/dist/video/seedance-chain-host.js +128 -0
- package/dist/video/seedance-chain-host.js.map +1 -0
- package/dist/video/seedance-content-filter.d.ts +80 -0
- package/dist/video/seedance-content-filter.d.ts.map +1 -0
- package/dist/video/seedance-content-filter.js +293 -0
- package/dist/video/seedance-content-filter.js.map +1 -0
- package/dist/video/seedance-skill-loader.d.ts +40 -0
- package/dist/video/seedance-skill-loader.d.ts.map +1 -0
- package/dist/video/seedance-skill-loader.js +53 -0
- package/dist/video/seedance-skill-loader.js.map +1 -0
- package/dist/video/sfx.d.ts +49 -0
- package/dist/video/sfx.d.ts.map +1 -0
- package/dist/video/sfx.js +104 -0
- package/dist/video/sfx.js.map +1 -0
- package/dist/video/shot-grammar.d.ts +103 -0
- package/dist/video/shot-grammar.d.ts.map +1 -0
- package/dist/video/shot-grammar.js +286 -0
- package/dist/video/shot-grammar.js.map +1 -0
- package/dist/video/show-bible.d.ts +113 -0
- package/dist/video/show-bible.d.ts.map +1 -0
- package/dist/video/show-bible.js +140 -0
- package/dist/video/show-bible.js.map +1 -0
- package/dist/video/soundtrack.d.ts +72 -0
- package/dist/video/soundtrack.d.ts.map +1 -0
- package/dist/video/soundtrack.js +171 -0
- package/dist/video/soundtrack.js.map +1 -0
- package/dist/video/stage-guards.d.ts +4 -0
- package/dist/video/stage-guards.d.ts.map +1 -0
- package/dist/video/stage-guards.js +94 -0
- package/dist/video/stage-guards.js.map +1 -0
- package/dist/video/status.d.ts +69 -0
- package/dist/video/status.d.ts.map +1 -0
- package/dist/video/status.js +245 -0
- package/dist/video/status.js.map +1 -0
- package/dist/video/story-bible.d.ts +70 -0
- package/dist/video/story-bible.d.ts.map +1 -0
- package/dist/video/story-bible.js +181 -0
- package/dist/video/story-bible.js.map +1 -0
- package/dist/video/storyboard-grid.d.ts +28 -0
- package/dist/video/storyboard-grid.d.ts.map +1 -0
- package/dist/video/storyboard-grid.js +231 -0
- package/dist/video/storyboard-grid.js.map +1 -0
- package/dist/video/storyboard-markdown.d.ts +62 -0
- package/dist/video/storyboard-markdown.d.ts.map +1 -0
- package/dist/video/storyboard-markdown.js +332 -0
- package/dist/video/storyboard-markdown.js.map +1 -0
- package/dist/video/storyboard-still-candidates.d.ts +31 -0
- package/dist/video/storyboard-still-candidates.d.ts.map +1 -0
- package/dist/video/storyboard-still-candidates.js +57 -0
- package/dist/video/storyboard-still-candidates.js.map +1 -0
- package/dist/video/storyboard-templates.d.ts +28 -0
- package/dist/video/storyboard-templates.d.ts.map +1 -0
- package/dist/video/storyboard-templates.js +215 -0
- package/dist/video/storyboard-templates.js.map +1 -0
- package/dist/video/studio/execute.d.ts +142 -0
- package/dist/video/studio/execute.d.ts.map +1 -0
- package/dist/video/studio/execute.js +270 -0
- package/dist/video/studio/execute.js.map +1 -0
- package/dist/video/studio/planner.d.ts +3 -0
- package/dist/video/studio/planner.d.ts.map +1 -0
- package/dist/video/studio/planner.js +110 -0
- package/dist/video/studio/planner.js.map +1 -0
- package/dist/video/studio/project-context.d.ts +4 -0
- package/dist/video/studio/project-context.d.ts.map +1 -0
- package/dist/video/studio/project-context.js +20 -0
- package/dist/video/studio/project-context.js.map +1 -0
- package/dist/video/studio/recipes.d.ts +4 -0
- package/dist/video/studio/recipes.d.ts.map +1 -0
- package/dist/video/studio/recipes.js +343 -0
- package/dist/video/studio/recipes.js.map +1 -0
- package/dist/video/studio/session.d.ts +8 -0
- package/dist/video/studio/session.d.ts.map +1 -0
- package/dist/video/studio/session.js +17 -0
- package/dist/video/studio/session.js.map +1 -0
- package/dist/video/studio/types.d.ts +59 -0
- package/dist/video/studio/types.d.ts.map +1 -0
- package/dist/video/studio/types.js +2 -0
- package/dist/video/studio/types.js.map +1 -0
- package/dist/video/template-store.d.ts +65 -0
- package/dist/video/template-store.d.ts.map +1 -0
- package/dist/video/template-store.js +168 -0
- package/dist/video/template-store.js.map +1 -0
- package/dist/video/timeline.d.ts +8 -0
- package/dist/video/timeline.d.ts.map +1 -0
- package/dist/video/timeline.js +21 -0
- package/dist/video/timeline.js.map +1 -0
- package/dist/video/title-overlay.d.ts +85 -0
- package/dist/video/title-overlay.d.ts.map +1 -0
- package/dist/video/title-overlay.js +163 -0
- package/dist/video/title-overlay.js.map +1 -0
- package/dist/video/types.d.ts +403 -0
- package/dist/video/types.d.ts.map +1 -0
- package/dist/video/types.js +2 -0
- package/dist/video/types.js.map +1 -0
- package/dist/video/veo-subprocess.d.ts +27 -0
- package/dist/video/veo-subprocess.d.ts.map +1 -0
- package/dist/video/veo-subprocess.js +52 -0
- package/dist/video/veo-subprocess.js.map +1 -0
- package/dist/video/verify-env.d.ts +43 -0
- package/dist/video/verify-env.d.ts.map +1 -0
- package/dist/video/verify-env.js +156 -0
- package/dist/video/verify-env.js.map +1 -0
- package/dist/video/verify-final.d.ts +20 -0
- package/dist/video/verify-final.d.ts.map +1 -0
- package/dist/video/verify-final.js +39 -0
- package/dist/video/verify-final.js.map +1 -0
- package/dist/video/video-context.d.ts +10 -0
- package/dist/video/video-context.d.ts.map +1 -0
- package/dist/video/video-context.js +74 -0
- package/dist/video/video-context.js.map +1 -0
- package/dist/video/vocal-map.d.ts +55 -0
- package/dist/video/vocal-map.d.ts.map +1 -0
- package/dist/video/vocal-map.js +107 -0
- package/dist/video/vocal-map.js.map +1 -0
- package/dist/video/vocal-sync-plan.d.ts +76 -0
- package/dist/video/vocal-sync-plan.d.ts.map +1 -0
- package/dist/video/vocal-sync-plan.js +166 -0
- package/dist/video/vocal-sync-plan.js.map +1 -0
- package/dist/video/voice-clone.d.ts +152 -0
- package/dist/video/voice-clone.d.ts.map +1 -0
- package/dist/video/voice-clone.js +267 -0
- package/dist/video/voice-clone.js.map +1 -0
- package/dist/video/with-retry.d.ts +67 -0
- package/dist/video/with-retry.d.ts.map +1 -0
- package/dist/video/with-retry.js +105 -0
- package/dist/video/with-retry.js.map +1 -0
- package/dist/video/workload.d.ts +20 -0
- package/dist/video/workload.d.ts.map +1 -0
- package/dist/video/workload.js +55 -0
- package/dist/video/workload.js.map +1 -0
- package/dist/video/workspace.d.ts +109 -0
- package/dist/video/workspace.d.ts.map +1 -0
- package/dist/video/workspace.js +132 -0
- package/dist/video/workspace.js.map +1 -0
- package/docs/AGENT_INTEGRATION_RESEARCH.md +123 -0
- package/docs/AI_FILMMAKING_PROMPTS.md +195 -0
- package/docs/ARCHITECTURE.md +257 -0
- package/docs/ASSEMBLE.md +376 -0
- package/docs/BRAND_AGENCY.md +63 -0
- package/docs/CLAWBOT_COVERAGE_PROMPT.md +78 -0
- package/docs/CLI_REFERENCE.md +2638 -0
- package/docs/CONCIERGE_PROMPT.md +139 -0
- package/docs/Claude Code + Higgsfield MCP = FULL Creative Agency.md +179 -0
- package/docs/DEMO_RECORDING.md +61 -0
- package/docs/DEPRECATION.md +79 -0
- package/docs/DIAGRAMS_SOURCE.md +347 -0
- package/docs/DIRECTOR_BLUEPRINT.md +94 -0
- package/docs/GENERATION_TELEMETRY.md +81 -0
- package/docs/IMPROVE_PROMPT.md +76 -0
- package/docs/INFOGRAPHICS_PROMPT.md +83 -0
- package/docs/MASTER_PLAN_ALIGNMENT.md +563 -0
- package/docs/MIGRATION.md +213 -0
- package/docs/MOTION_OVERLAY.md +355 -0
- package/docs/OBSIDIAN.md +300 -0
- package/docs/OPERATIONS.md +142 -0
- package/docs/OPERATOR_HANDOFF.md +108 -0
- package/docs/PRODUCTION_WORKFLOW.md +148 -0
- package/docs/PROJECT_LAYOUT.md +262 -0
- package/docs/PROMPT_QUALITY.md +214 -0
- package/docs/PROVIDER_PLATFORM.md +195 -0
- package/docs/PUBLISHING.md +175 -0
- package/docs/PYTHON_PIPELINE.md +139 -0
- package/docs/REFERENCE_SHEETS.md +469 -0
- package/docs/REFERENCE_VIDEO_SEEDANCE_MOTION_DESIGN_WORKFLOW.md +465 -0
- package/docs/RELEASE_READINESS.md +573 -0
- package/docs/REVIEW_UI_STORYBOARD_WORKFLOW.md +200 -0
- package/docs/SCENE_CANDIDATES.md +518 -0
- package/docs/SKILLS.md +477 -0
- package/docs/SKILL_COHESION_PROMPT.md +88 -0
- package/docs/STORY_BIBLE.md +288 -0
- package/docs/STUDIO.md +96 -0
- package/docs/TEMPLATES.md +143 -0
- package/docs/UNIFICATION_AUDIT.md +321 -0
- package/docs/UPDATE_DOCS_PROMPT.md +78 -0
- package/docs/assets/demo-quickstart.cast +13 -0
- package/docs/assets/demo-quickstart.gif +0 -0
- package/docs/assets/diagram-architecture.jpg +0 -0
- package/docs/assets/diagram-assemble.jpg +0 -0
- package/docs/assets/diagram-lifecycle.jpg +0 -0
- package/docs/assets/diagram-obsidian-loop.jpg +0 -0
- package/docs/assets/diagram-obsidian-vault.jpg +0 -0
- package/docs/assets/diagram-routing.jpg +0 -0
- package/docs/assets/diagram-skills-ecosystem.jpg +0 -0
- package/docs/assets/diagram-story-bible.jpg +0 -0
- package/docs/assets/diagram-studio-goals.jpg +0 -0
- package/docs/assets/docsite-preview.png +0 -0
- package/docs/assets/logo.jpg +0 -0
- package/docs/assets/logo.png +0 -0
- package/docs/preview-portal-audit.md +151 -0
- package/package.json +119 -0
- package/playbooks/seedance-ugc.json +32 -0
- package/playbooks/veo-generic.json +26 -0
- package/references/video/.fixtures/multi-shot-runway-10s.txt +9 -0
- package/references/video/.fixtures/multi-shot-seedance-10s.txt +9 -0
- package/references/video/.fixtures/multi-shot-valid.txt +13 -0
- package/references/video/.fixtures/multi-shot-veo-8s.txt +9 -0
- package/references/video/ai-director-blueprint.md +614 -0
- package/references/video/camera-bible.md +294 -0
- package/references/video/character-reference-sheet.md +14 -0
- package/references/video/checkpoint-protocol.md +26 -0
- package/references/video/clone-ad-template-workflow.md +14 -0
- package/references/video/dialogue-duration-preflight.md +17 -0
- package/references/video/generation-telemetry.md +18 -0
- package/references/video/multi-shot-framework.md +455 -0
- package/references/video/seedance-skills/01-cinematic.md +1329 -0
- package/references/video/seedance-skills/02-3d-cgi.md +884 -0
- package/references/video/seedance-skills/03-cartoon.md +1668 -0
- package/references/video/seedance-skills/04-comic-to-video.md +1810 -0
- package/references/video/seedance-skills/05-fight-scenes.md +741 -0
- package/references/video/seedance-skills/06-motion-design-ad.md +1145 -0
- package/references/video/seedance-skills/07-ecommerce-ad.md +928 -0
- package/references/video/seedance-skills/08-anime-action.md +1145 -0
- package/references/video/seedance-skills/09-product-360.md +988 -0
- package/references/video/seedance-skills/10-music-video.md +1662 -0
- package/references/video/seedance-skills/11-social-hook.md +1874 -0
- package/references/video/seedance-skills/12-brand-story.md +1151 -0
- package/references/video/seedance-skills/13-fashion-lookbook.md +1236 -0
- package/references/video/seedance-skills/14-food-beverage.md +1110 -0
- package/references/video/seedance-skills/15-real-estate.md +2344 -0
- package/references/video/seedance-transport-payloads.md +144 -0
- package/references/video/seedance-ugc-formulas.md +104 -0
- package/references/video/stage-directors.md +47 -0
- package/references/video/style-template-schema.md +40 -0
- package/references/video/veo-prompting-guide.md +42 -0
- package/schemas/video/artifacts/analyze-output.schema.json +60 -0
- package/schemas/video/artifacts/assemble-report.schema.json +116 -0
- package/schemas/video/artifacts/asset-manifest.schema.json +23 -0
- package/schemas/video/artifacts/batch-queue-manifest.schema.json +59 -0
- package/schemas/video/artifacts/brand-definition.schema.json +93 -0
- package/schemas/video/artifacts/brand-dna.schema.json +55 -0
- package/schemas/video/artifacts/brief.schema.json +13 -0
- package/schemas/video/artifacts/clone-plan.schema.json +44 -0
- package/schemas/video/artifacts/dialogue.schema.json +52 -0
- package/schemas/video/artifacts/environment-assets.schema.json +30 -0
- package/schemas/video/artifacts/execution-plan.schema.json +64 -0
- package/schemas/video/artifacts/execution-report.schema.json +37 -0
- package/schemas/video/artifacts/filmmaking-prompts.schema.json +129 -0
- package/schemas/video/artifacts/flow-characters.schema.json +31 -0
- package/schemas/video/artifacts/flow-voices.schema.json +30 -0
- package/schemas/video/artifacts/motion-overlay-plan.schema.json +50 -0
- package/schemas/video/artifacts/multi-shot-prompt.schema.json +90 -0
- package/schemas/video/artifacts/music-video-config.schema.json +108 -0
- package/schemas/video/artifacts/narration.schema.json +54 -0
- package/schemas/video/artifacts/product-references.schema.json +29 -0
- package/schemas/video/artifacts/project-blueprint.schema.json +236 -0
- package/schemas/video/artifacts/publish-report.schema.json +12 -0
- package/schemas/video/artifacts/reference-sheets.schema.json +85 -0
- package/schemas/video/artifacts/review-report.schema.json +12 -0
- package/schemas/video/artifacts/scene-candidates.schema.json +86 -0
- package/schemas/video/artifacts/scene-selection.schema.json +50 -0
- package/schemas/video/artifacts/seedance-assets.schema.json +31 -0
- package/schemas/video/artifacts/sfx.schema.json +31 -0
- package/schemas/video/artifacts/show-bible.schema.json +66 -0
- package/schemas/video/artifacts/soundtrack.schema.json +39 -0
- package/schemas/video/artifacts/story-bible.schema.json +131 -0
- package/schemas/video/artifacts/storyboard.schema.json +58 -0
- package/schemas/video/artifacts/voice-clones.schema.json +37 -0
- package/schemas/video/brand-profile.schema.json +20 -0
- package/schemas/video/errors.json +48 -0
- package/schemas/video/pipeline-manifest.schema.json +51 -0
- package/skills/README.md +113 -0
- package/skills/ai-director/SKILL.md +140 -0
- package/skills/ai-filmmaking/SKILL.md +239 -0
- package/skills/ai-slop-cleaner/SKILL.md +114 -0
- package/skills/brand-agency/SKILL.md +181 -0
- package/skills/brand-presenter/SKILL.md +114 -0
- package/skills/build-fix/SKILL.md +145 -0
- package/skills/bunty/SKILL.md +41 -0
- package/skills/catalog.json +326 -0
- package/skills/character-ad/SKILL.md +154 -0
- package/skills/character-creator/SKILL.md +303 -0
- package/skills/character-library/README.md +12 -0
- package/skills/character-library/SKILL.md +110 -0
- package/skills/clawbot/SKILL.md +26 -0
- package/skills/concierge/SKILL.md +183 -0
- package/skills/configure-notifications/SKILL.md +286 -0
- package/skills/davendra-presenter/SKILL.md +27 -0
- package/skills/davendra-presenter/assets/davendra_intro_1.jpg +0 -0
- package/skills/davendra-presenter/assets/davendra_intro_2.jpg +0 -0
- package/skills/davendra-presenter/assets/davendra_outro_1.jpg +0 -0
- package/skills/davendra-presenter/assets/davendra_outro_2.jpg +0 -0
- package/skills/deep-interview/SKILL.md +358 -0
- package/skills/deepsearch/SKILL.md +38 -0
- package/skills/doctor/SKILL.md +200 -0
- package/skills/graphify/SKILL.md +616 -0
- package/skills/help/SKILL.md +200 -0
- package/skills/higgsfield-generate/SKILL.md +171 -0
- package/skills/improvement-run/SKILL.md +47 -0
- package/skills/motion-reel/SKILL.md +102 -0
- package/skills/movie-director/SKILL.md +338 -0
- package/skills/multi-shot-prompt/SKILL.md +77 -0
- package/skills/nex-presenter/SKILL.md +25 -0
- package/skills/nex-presenter/assets/logo_manifest.json +26 -0
- package/skills/nex-presenter/assets/logo_source.jpg +0 -0
- package/skills/nex-presenter/assets/nex_brief_intro.mp4 +0 -0
- package/skills/nex-presenter/assets/nex_intro_1.jpg +0 -0
- package/skills/nex-presenter/assets/nex_intro_2.jpg +0 -0
- package/skills/nex-presenter/assets/nex_outro_1.jpg +0 -0
- package/skills/nex-presenter/assets/nex_outro_2.jpg +0 -0
- package/skills/nex-presenter/assets/text_overlay.png +0 -0
- package/skills/note/SKILL.md +62 -0
- package/skills/pipeline/SKILL.md +86 -0
- package/skills/review/SKILL.md +38 -0
- package/skills/runway/SKILL.md +131 -0
- package/skills/seedance-prompts/SKILL.md +194 -0
- package/skills/skill/SKILL.md +835 -0
- package/skills/skills-auditor/SKILL.md +73 -0
- package/skills/studio-mode/SKILL.md +148 -0
- package/skills/ugc/SKILL.md +386 -0
- package/skills/ui-ux-pro-max/SKILL.md +386 -0
- package/skills/video-analyze-template/SKILL.md +77 -0
- package/skills/video-clone-ad/SKILL.md +67 -0
- package/skills/video-framework/SKILL.md +201 -0
- package/skills/video-portfolio-ops/SKILL.md +84 -0
- package/skills/video-post/SKILL.md +97 -0
- package/skills/video-production-handoff/SKILL.md +130 -0
- package/skills/video-release-readiness/SKILL.md +93 -0
- package/skills/video-replicator/SKILL.md +368 -0
- package/skills/video-review-ui-qa/SKILL.md +103 -0
- package/skills/video-storyboard/SKILL.md +71 -0
- package/skills/video-thumbnail-lab/SKILL.md +67 -0
- package/skills/web-clone/SKILL.md +366 -0
- package/skills/worker/SKILL.md +106 -0
- package/skills/youtube-audio/SKILL.md +114 -0
- package/src/video/analyze-output.ts +10 -0
- package/src/video/archive-project.ts +65 -0
- package/src/video/artifact-history.ts +23 -0
- package/src/video/artifact-store.ts +59 -0
- package/src/video/artifact-validation.ts +268 -0
- package/src/video/artifacts.ts +156 -0
- package/src/video/assemble/animate-slides.ts +199 -0
- package/src/video/assemble/animation-styles.json +97 -0
- package/src/video/assemble/animation-styles.ts +54 -0
- package/src/video/assemble/assemble.ts +547 -0
- package/src/video/assemble/audio-concat.ts +165 -0
- package/src/video/assemble/audio-mix-plan.ts +150 -0
- package/src/video/assemble/audio-utils.ts +101 -0
- package/src/video/assemble/cut-segment.ts +121 -0
- package/src/video/assemble/ffmpeg.ts +333 -0
- package/src/video/assemble/gemini-vision-classify.ts +153 -0
- package/src/video/assemble/index.ts +247 -0
- package/src/video/assemble/media-qc.ts +252 -0
- package/src/video/assemble/music.ts +261 -0
- package/src/video/assemble/narration-fit.ts +90 -0
- package/src/video/assemble/overlay.ts +225 -0
- package/src/video/assemble/pdf.ts +169 -0
- package/src/video/assemble/qa-dialogue-lint.ts +129 -0
- package/src/video/assemble/qa-image-filter.ts +147 -0
- package/src/video/assemble/qa-image-vision.ts +154 -0
- package/src/video/assemble/qa-narration-vision.ts +135 -0
- package/src/video/assemble/qa-narration.ts +139 -0
- package/src/video/assemble/stitch-ad.ts +222 -0
- package/src/video/assemble/stitch.ts +918 -0
- package/src/video/assemble/text-card.ts +285 -0
- package/src/video/assemble/title-card.ts +186 -0
- package/src/video/assemble/transcript.ts +240 -0
- package/src/video/assemble/tts-elevenlabs.ts +182 -0
- package/src/video/assemble/tts.ts +227 -0
- package/src/video/assemble/types.ts +45 -0
- package/src/video/assemble/upscale.ts +80 -0
- package/src/video/asset-spec.ts +53 -0
- package/src/video/asset-tag-lookup.ts +51 -0
- package/src/video/atomic-write.ts +7 -0
- package/src/video/audio-platform/native-elevenlabs-sfx.ts +128 -0
- package/src/video/audio-platform/native-elevenlabs-tts.ts +119 -0
- package/src/video/audio-platform/native-flowmusic.ts +167 -0
- package/src/video/audio-platform/native-gemini-tts.ts +226 -0
- package/src/video/audio-platform/native-lyria.ts +231 -0
- package/src/video/audio-platform/native-lyria3.ts +244 -0
- package/src/video/audio-platform/registry.ts +220 -0
- package/src/video/audio-platform/suno-backend.ts +36 -0
- package/src/video/audio-platform/types.ts +138 -0
- package/src/video/batch-queue.ts +685 -0
- package/src/video/blueprint-prompt.ts +118 -0
- package/src/video/brand-definition.ts +287 -0
- package/src/video/brand-dna.ts +478 -0
- package/src/video/brand-prompt.ts +28 -0
- package/src/video/candidate-migrate.ts +171 -0
- package/src/video/category-registry.ts +224 -0
- package/src/video/chain-fallback.ts +53 -0
- package/src/video/character-auto-create.ts +547 -0
- package/src/video/character-consistency.ts +85 -0
- package/src/video/characters.ts +145 -0
- package/src/video/checkpoints.ts +60 -0
- package/src/video/cinema-profile.ts +120 -0
- package/src/video/cinematography.ts +1229 -0
- package/src/video/cli-output.ts +94 -0
- package/src/video/cli-schema.ts +505 -0
- package/src/video/cost-estimate.ts +150 -0
- package/src/video/csv-export.ts +150 -0
- package/src/video/dependencies.ts +64 -0
- package/src/video/dialogue-fit.ts +62 -0
- package/src/video/dialogue.ts +221 -0
- package/src/video/director-defaults.ts +432 -0
- package/src/video/director-preflight.ts +543 -0
- package/src/video/doctor-portfolio.ts +197 -0
- package/src/video/doctor.ts +499 -0
- package/src/video/emotion-cues.ts +36 -0
- package/src/video/environment-assets.ts +69 -0
- package/src/video/environment-auto-create.ts +122 -0
- package/src/video/errors.ts +133 -0
- package/src/video/events.ts +42 -0
- package/src/video/execute-autochain.ts +226 -0
- package/src/video/execute.ts +569 -0
- package/src/video/execution-cancel.ts +103 -0
- package/src/video/execution-plan.ts +178 -0
- package/src/video/execution-profile.ts +162 -0
- package/src/video/execution-runtime.ts +975 -0
- package/src/video/execution-seed.ts +46 -0
- package/src/video/execution-status.ts +736 -0
- package/src/video/filmmaking-prompts.ts +1789 -0
- package/src/video/final-media.ts +118 -0
- package/src/video/finish.ts +255 -0
- package/src/video/flow-character-library.ts +342 -0
- package/src/video/flow-markers.ts +330 -0
- package/src/video/gemini-analyze.ts +387 -0
- package/src/video/gemini-continuity.ts +186 -0
- package/src/video/gemini-judge.ts +300 -0
- package/src/video/gemini-key-pool.ts +153 -0
- package/src/video/gen-image-flow.ts +491 -0
- package/src/video/gen-image.ts +392 -0
- package/src/video/generation-telemetry.ts +282 -0
- package/src/video/http-error-safety.ts +13 -0
- package/src/video/image-dimensions.ts +69 -0
- package/src/video/legacy-import.ts +197 -0
- package/src/video/library-clean.ts +399 -0
- package/src/video/lipsync.ts +200 -0
- package/src/video/media-host.ts +153 -0
- package/src/video/metrics.ts +116 -0
- package/src/video/motion-overlay/analyze-reel.ts +200 -0
- package/src/video/motion-overlay/animate-render.ts +176 -0
- package/src/video/motion-overlay/animate.ts +93 -0
- package/src/video/motion-overlay/avatar-host-transport.ts +458 -0
- package/src/video/motion-overlay/avatar-host.ts +238 -0
- package/src/video/motion-overlay/compose-prompt.ts +247 -0
- package/src/video/motion-overlay/execute.ts +355 -0
- package/src/video/motion-overlay/flow-pack.ts +223 -0
- package/src/video/motion-overlay/ingest.ts +210 -0
- package/src/video/motion-overlay/motifs.ts +223 -0
- package/src/video/motion-overlay/motion-style.ts +162 -0
- package/src/video/motion-overlay/plan.ts +111 -0
- package/src/video/motion-overlay/preview.ts +191 -0
- package/src/video/motion-overlay/render-local.ts +441 -0
- package/src/video/motion-overlay/run.ts +217 -0
- package/src/video/motion-overlay/slice.ts +98 -0
- package/src/video/motion-overlay/transcribe.ts +211 -0
- package/src/video/motion-overlay/types.ts +89 -0
- package/src/video/motion-overlay/v2v-transport.ts +209 -0
- package/src/video/motion-overlay/write.ts +142 -0
- package/src/video/multi-shot-artifact.ts +64 -0
- package/src/video/multi-shot-prompt.ts +608 -0
- package/src/video/music-video.ts +324 -0
- package/src/video/narrate.ts +221 -0
- package/src/video/native-dreamina.ts +638 -0
- package/src/video/native-flow-r2v.ts +279 -0
- package/src/video/native-runway.ts +647 -0
- package/src/video/native-seedance.ts +615 -0
- package/src/video/native-veo.ts +470 -0
- package/src/video/next-actions.ts +247 -0
- package/src/video/obsidian-export.ts +336 -0
- package/src/video/obsidian-sync.ts +649 -0
- package/src/video/obsidian-vault.ts +96 -0
- package/src/video/outfit-prompts.ts +14 -0
- package/src/video/outpaint-keyframe.ts +365 -0
- package/src/video/pipeline-manifest.ts +16 -0
- package/src/video/pipeline-manifests/director.json +46 -0
- package/src/video/pipeline-manifests/storyboard.json +46 -0
- package/src/video/platform-specs.ts +50 -0
- package/src/video/playbooks.ts +34 -0
- package/src/video/post-production.ts +277 -0
- package/src/video/preview-portal/audit.ts +20 -0
- package/src/video/preview-portal/discovery.ts +787 -0
- package/src/video/preview-portal/generate.ts +138 -0
- package/src/video/preview-portal/index.ts +41 -0
- package/src/video/preview-portal/publish.ts +215 -0
- package/src/video/preview-portal/render.ts +865 -0
- package/src/video/preview-portal/shared-assets.ts +455 -0
- package/src/video/preview-portal/templates.ts +112 -0
- package/src/video/preview-portal/types.ts +288 -0
- package/src/video/product-references.ts +43 -0
- package/src/video/project-blueprint.ts +458 -0
- package/src/video/project-index.ts +179 -0
- package/src/video/projects.ts +18 -0
- package/src/video/prompt-guidance.ts +64 -0
- package/src/video/prompt-library.ts +96 -0
- package/src/video/prompt-lint.ts +568 -0
- package/src/video/prompt-quality.ts +635 -0
- package/src/video/prompt-rules.ts +209 -0
- package/src/video/provider-adapter-runner.ts +104 -0
- package/src/video/provider-platform/index.ts +5 -0
- package/src/video/provider-platform/registry.ts +286 -0
- package/src/video/provider-platform/route-capabilities.ts +327 -0
- package/src/video/provider-platform/router.ts +221 -0
- package/src/video/provider-platform/security.ts +29 -0
- package/src/video/provider-platform/telemetry.ts +116 -0
- package/src/video/provider-platform/types.ts +192 -0
- package/src/video/provider-status.ts +199 -0
- package/src/video/providers/dreamina-useapi.ts +345 -0
- package/src/video/providers/flowmusic-useapi.ts +252 -0
- package/src/video/providers/google-flow.ts +110 -0
- package/src/video/providers/public-host.ts +128 -0
- package/src/video/providers/runway-useapi.ts +377 -0
- package/src/video/providers/xskill.ts +304 -0
- package/src/video/readiness.ts +284 -0
- package/src/video/reference-sheet-store.ts +40 -0
- package/src/video/reference-sheets.ts +224 -0
- package/src/video/remix-narrated.ts +92 -0
- package/src/video/report-diff.ts +299 -0
- package/src/video/report-history.ts +122 -0
- package/src/video/report.ts +35 -0
- package/src/video/review-ui.ts +2495 -0
- package/src/video/scene-candidate-store.ts +152 -0
- package/src/video/scene-candidates.ts +195 -0
- package/src/video/scene-selection-store.ts +36 -0
- package/src/video/scene-selection.ts +306 -0
- package/src/video/scheduling.ts +18 -0
- package/src/video/scorecard.ts +90 -0
- package/src/video/seedance-asset-library.ts +259 -0
- package/src/video/seedance-blocks.ts +118 -0
- package/src/video/seedance-chain-host.ts +152 -0
- package/src/video/seedance-content-filter.ts +354 -0
- package/src/video/seedance-skill-loader.ts +83 -0
- package/src/video/sfx.ts +159 -0
- package/src/video/shot-grammar.ts +349 -0
- package/src/video/show-bible.ts +235 -0
- package/src/video/soundtrack.ts +257 -0
- package/src/video/stage-guards.ts +112 -0
- package/src/video/status.ts +342 -0
- package/src/video/story-bible.ts +302 -0
- package/src/video/storyboard-grid.ts +320 -0
- package/src/video/storyboard-markdown.ts +434 -0
- package/src/video/storyboard-still-candidates.ts +82 -0
- package/src/video/storyboard-templates.ts +249 -0
- package/src/video/studio/execute.ts +401 -0
- package/src/video/studio/planner.ts +114 -0
- package/src/video/studio/project-context.ts +25 -0
- package/src/video/studio/recipes.ts +346 -0
- package/src/video/studio/session.ts +24 -0
- package/src/video/studio/types.ts +76 -0
- package/src/video/template-store.ts +241 -0
- package/src/video/timeline.ts +32 -0
- package/src/video/title-overlay.ts +234 -0
- package/src/video/types.ts +465 -0
- package/src/video/veo-subprocess.ts +77 -0
- package/src/video/verify-env.ts +206 -0
- package/src/video/verify-final.ts +65 -0
- package/src/video/video-context.ts +92 -0
- package/src/video/vocal-map.ts +155 -0
- package/src/video/vocal-sync-plan.ts +224 -0
- package/src/video/voice-clone.ts +410 -0
- package/src/video/with-retry.ts +149 -0
- package/src/video/workload.ts +87 -0
- package/src/video/workspace.ts +255 -0
- package/tmp/review-station/index.html +4194 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# Migration Guide
|
|
2
|
+
|
|
3
|
+
This guide is for moving from either of the predecessor codebases
|
|
4
|
+
(the original `videoclaw` package OR the clean-room `vclaw-video-core`
|
|
5
|
+
rebuild) to **`videoclaw-v3`** — the current merged repo that combines
|
|
6
|
+
the best of both. The npm package name remains `videoclaw`; only the
|
|
7
|
+
repository name changed (the v3 suffix distinguishes the merged repo
|
|
8
|
+
from its predecessors).
|
|
9
|
+
|
|
10
|
+
## Why migrate
|
|
11
|
+
|
|
12
|
+
`videoclaw-v3` (npm: `videoclaw`) is now the safer execution surface because it has:
|
|
13
|
+
|
|
14
|
+
1. canonical artifacts
|
|
15
|
+
2. explicit stage checkpoints
|
|
16
|
+
3. character consistency enforcement
|
|
17
|
+
4. native `seedance-direct` transport
|
|
18
|
+
5. native `veo-useapi` transport
|
|
19
|
+
6. direct clone execution runtime
|
|
20
|
+
7. imported prompt/reference library assets
|
|
21
|
+
|
|
22
|
+
The old repo still matters as:
|
|
23
|
+
|
|
24
|
+
1. reference implementation
|
|
25
|
+
2. script source
|
|
26
|
+
3. migration source for older project folders
|
|
27
|
+
|
|
28
|
+
## Repo roles
|
|
29
|
+
|
|
30
|
+
Use the repos like this:
|
|
31
|
+
|
|
32
|
+
1. `videoclaw` (legacy v0.11.x)
|
|
33
|
+
- legacy runtime
|
|
34
|
+
- archive/reference source
|
|
35
|
+
- migration input
|
|
36
|
+
2. `vclaw-video-core` (intermediate clean-room rebuild)
|
|
37
|
+
- intermediate rebuild that became this repo's foundation
|
|
38
|
+
- now retired in favor of `videoclaw-v3`
|
|
39
|
+
3. `videoclaw-v3` (current — npm package: `videoclaw`)
|
|
40
|
+
- active product surface
|
|
41
|
+
- canonical CLI
|
|
42
|
+
- current execution/runtime lane
|
|
43
|
+
|
|
44
|
+
## What migrates cleanly
|
|
45
|
+
|
|
46
|
+
You can already move these workflows:
|
|
47
|
+
|
|
48
|
+
1. project initialization
|
|
49
|
+
2. initial `video create` front-door flow
|
|
50
|
+
3. brief/storyboard/assets/review/publish stage tracking
|
|
51
|
+
4. template save/list/show
|
|
52
|
+
5. clone plan / clone init / storyboard-from-clone
|
|
53
|
+
6. clone execute
|
|
54
|
+
7. provider status / readiness / plan / produce / execute-status
|
|
55
|
+
8. Obsidian export and sync
|
|
56
|
+
9. legacy project folder import via `import-legacy`
|
|
57
|
+
|
|
58
|
+
## What still stays partially legacy
|
|
59
|
+
|
|
60
|
+
These areas still need product polish or richer parity work:
|
|
61
|
+
|
|
62
|
+
1. deeper legacy `video create` / Director parity on the clean-room CLI beyond the current character-hydration and approval-gate surface
|
|
63
|
+
2. richer provider-specific option surfaces
|
|
64
|
+
3. deeper historical-project normalization beyond file-count inference
|
|
65
|
+
4. old-repo migration comms and deprecation rollout
|
|
66
|
+
5. higher-level automatic prompt guidance during execution
|
|
67
|
+
|
|
68
|
+
Most important near-term gap:
|
|
69
|
+
|
|
70
|
+
1. richer provider-specific execution controls and advanced orchestration ergonomics still live more fully in the legacy workflow docs than in the clean-room CLI
|
|
71
|
+
|
|
72
|
+
## Command migration
|
|
73
|
+
|
|
74
|
+
Use `vclaw` in the clean repo as the primary command surface. `omx` currently works
|
|
75
|
+
as a compatibility alias and prints a deprecation notice to `stderr`.
|
|
76
|
+
|
|
77
|
+
Examples:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# old mental model
|
|
81
|
+
omx video ...
|
|
82
|
+
|
|
83
|
+
# new primary surface
|
|
84
|
+
vclaw video ...
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Recommended clean-room flow:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
vclaw video create "Create a short product teaser." --project demo --production-mode director --import-library-characters
|
|
91
|
+
# review projects/demo/storyboard.md
|
|
92
|
+
VIDEOCLAW_APPROVE_STORYBOARD=1 vclaw video create "Create a short product teaser." --project demo --production-mode director --execute --dry-run
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If the project needs a new cast member, seed it directly into the create flow:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
cat >/tmp/cast.json <<'JSON'
|
|
99
|
+
[
|
|
100
|
+
{
|
|
101
|
+
"name": "Nova",
|
|
102
|
+
"description": "A determined spaceship captain with a silver jacket.",
|
|
103
|
+
"style": "cinematic sci-fi still"
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
JSON
|
|
107
|
+
|
|
108
|
+
vclaw video create "Komo and Mochi recruit Nova for a neon sci-fi corridor escape." \
|
|
109
|
+
--project hydration-demo \
|
|
110
|
+
--production-mode director \
|
|
111
|
+
--import-library-characters \
|
|
112
|
+
--auto-create-characters /tmp/cast.json
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Template-driven flow:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
vclaw video analyze --project ref --source <url-or-path> --title "Reference"
|
|
119
|
+
vclaw video template-save --project ref --name launch-template
|
|
120
|
+
vclaw video clone-execute --template launch-template --project launch-variant --intent "Make a launch teaser for a smart bottle."
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Project migration
|
|
124
|
+
|
|
125
|
+
If you have historical folders under the legacy repo, import them into the
|
|
126
|
+
clean repo:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
vclaw video import-legacy --source <legacy-videoclaw>/projects --root <videoclaw>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Then verify them:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
vclaw video doctor-portfolio --root <videoclaw>
|
|
136
|
+
vclaw video metrics --root <videoclaw>
|
|
137
|
+
vclaw video sync-obsidian --root <videoclaw>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Provider migration
|
|
141
|
+
|
|
142
|
+
### Seedance direct
|
|
143
|
+
|
|
144
|
+
Minimum native path:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
SUTUI_API_KEY=...
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Optional:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
VCLAW_SEEDANCE_BASE_URL=...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Veo direct
|
|
157
|
+
|
|
158
|
+
Minimum native path:
|
|
159
|
+
|
|
160
|
+
1. local `vclaw-cli` workspace
|
|
161
|
+
2. `cookie.json`
|
|
162
|
+
3. `bun`
|
|
163
|
+
|
|
164
|
+
Optional:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
VCLAW_VEO_CLI_ROOT=...
|
|
168
|
+
VCLAW_VEO_BUN_BIN=...
|
|
169
|
+
VCLAW_VEO_OUTPUT_DIR=...
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Suggested cutover sequence
|
|
173
|
+
|
|
174
|
+
1. Freeze new feature work in the old runtime lane.
|
|
175
|
+
2. Run `npm test` in `videoclaw`.
|
|
176
|
+
3. Validate provider readiness with `vclaw video providers`.
|
|
177
|
+
4. Import historical projects if needed.
|
|
178
|
+
5. Move template and clone workflows first.
|
|
179
|
+
6. Move direct execution workflows next.
|
|
180
|
+
7. Move Obsidian and reporting consumers last.
|
|
181
|
+
|
|
182
|
+
## Rollback rule
|
|
183
|
+
|
|
184
|
+
If a production job fails in the clean repo for a case the old repo still handles better:
|
|
185
|
+
|
|
186
|
+
1. keep the artifacts in `videoclaw`
|
|
187
|
+
2. note the gap explicitly
|
|
188
|
+
3. use the old repo only as a temporary execution fallback
|
|
189
|
+
4. port the missing behavior back into the clean repo
|
|
190
|
+
|
|
191
|
+
Do not re-expand the old repo as the primary product surface.
|
|
192
|
+
|
|
193
|
+
## Cheap smoke checks
|
|
194
|
+
|
|
195
|
+
The clean-room repo now includes a local mock-backed smoke for create-time
|
|
196
|
+
character hydration:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm run build
|
|
200
|
+
node scripts/smoke-character-hydration.mjs
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Equivalent packaged entry point:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
npm run smoke:character-hydration
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
This verifies one `video create` run that:
|
|
210
|
+
|
|
211
|
+
1. reuses exact-name library matches from the story intent
|
|
212
|
+
2. auto-creates a missing character from a JSON seed
|
|
213
|
+
3. carries the full cast into `brief.json`, `storyboard.md`, and the project character store
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
# Motion-overlay — `vclaw video motion-overlay`
|
|
2
|
+
|
|
3
|
+
Turn an existing **talking-head video** into a polished reel with **motion-graphics
|
|
4
|
+
overlays synced to the speech**, driven by Google Flow's **Omni Flash V2V**
|
|
5
|
+
transport (which paints kinetic typography / icon / metaphor animations on top of
|
|
6
|
+
footage while preserving the original voice).
|
|
7
|
+
|
|
8
|
+
The prompt IP — retention principles, a reel-anatomy load map, a concept→animation
|
|
9
|
+
metaphor map, and two hard-won guardrails (no metadata leaking as on-screen text;
|
|
10
|
+
no human portraits or the policy filter trips) — lives in deterministic,
|
|
11
|
+
offline-testable code under `src/video/motion-overlay/`, not in markdown.
|
|
12
|
+
|
|
13
|
+
> **Plan/dry by default. No provider spend** until you pass `--execute
|
|
14
|
+
> --confirm-spend`. The plan renders into the preview portal for human review
|
|
15
|
+
> first.
|
|
16
|
+
|
|
17
|
+
## At a glance
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
vclaw video motion-overlay --input <video-path> (--project <slug> | --output-dir <path>)
|
|
21
|
+
[--layout split|overlay|motion-only|avatar-host] # default: split
|
|
22
|
+
[--style apple-clean|editorial-dark|knowledge-tool] # default: apple-clean
|
|
23
|
+
[--accent <hex>] # configurable accent (replaces a hardcoded brand colour)
|
|
24
|
+
[--lang <code>] # STT + on-screen-text language (default: auto)
|
|
25
|
+
[--max-take-seconds 10] # Omni hard per-clip limit
|
|
26
|
+
[--transcript <path>] # optional: bring-your-own transcript JSON
|
|
27
|
+
[--gb-character <Name:ID>] # avatar-host layout ONLY: the locked host character
|
|
28
|
+
[--preview] # also render review/review.html
|
|
29
|
+
[--root <path>]
|
|
30
|
+
[--execute --confirm-spend] # render (spend-gated)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## What happens
|
|
34
|
+
|
|
35
|
+
**Default (dry):** ingest → STT → slice → compose → write work folder + manifest
|
|
36
|
+
+ (optionally) preview HTML. **No provider is called.**
|
|
37
|
+
|
|
38
|
+
**`--execute` (requires `--confirm-spend`, else exit-3 `spend_confirmation_required`):**
|
|
39
|
+
each take runs through omni-flash V2V, the original take audio is restored, and
|
|
40
|
+
the takes are restitched into the final reel.
|
|
41
|
+
|
|
42
|
+
### Work folder layout
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
<output>/ # projects/<slug>/artifacts/motion-overlay/ OR --output-dir
|
|
46
|
+
├── motion-overlay-plan.json # the manifest (schemaVersion 1)
|
|
47
|
+
├── README.md
|
|
48
|
+
├── source/ original.mp4 · audio.aac · transcript.json
|
|
49
|
+
├── takes/ take-01_0s-10s.mp4 ... # frame-accurate cuts
|
|
50
|
+
├── prompts/ take-01_0s-10s.md ... # one ready-to-send prompt per take
|
|
51
|
+
├── frames/ frame_01.jpg ...
|
|
52
|
+
├── host/ take-01_0s-10s.mp4 ... # avatar-host ONLY: generated speaking host clips
|
|
53
|
+
├── v2v/ take-01_0s-10s.mp4 ... # omni-flash overlay output (execute)
|
|
54
|
+
├── restored/ take-01_0s-10s.mp4 ... # audio-restored takes (execute)
|
|
55
|
+
├── review/ review.html # preview-portal approval surface (--preview)
|
|
56
|
+
└── motion-overlay-reel.mp4 # the final stitched reel (execute)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Layouts
|
|
60
|
+
|
|
61
|
+
- **split** (default) — motion graphics in the top half, speaker untouched in the bottom half.
|
|
62
|
+
- **overlay** — motion graphics composited over the speaker, safe areas around face/hands.
|
|
63
|
+
- **motion-only** — speaker removed; full-frame motion graphics narrated by their voice (keynote style).
|
|
64
|
+
- **avatar-host** (Layout D) — like `motion-only`, but the frame is filled by an
|
|
65
|
+
**identity-locked character host** delivering the lines, with synced overlays on
|
|
66
|
+
top. **Requires `--gb-character <Name:ID>`.** This is the heaviest path; see below.
|
|
67
|
+
|
|
68
|
+
## Avatar-host (Layout D)
|
|
69
|
+
|
|
70
|
+
The `avatar-host` layout replaces the speaker with an identity-locked character.
|
|
71
|
+
There are **two host engines** (`--host-engine`), trading identity-lock against
|
|
72
|
+
native voice — pick per project:
|
|
73
|
+
|
|
74
|
+
| `--host-engine` | Identity | Voice | Best for |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| `omni-r2v` (default) | loose (mitigated, see below) | **native + lip-synced** | a presenter who actually *speaks* |
|
|
77
|
+
| `veo-i2v` | **pixel-tight** (same still every take) | silent (captioned / add VO) | brand-critical identity, talking-head B-roll |
|
|
78
|
+
|
|
79
|
+
There is **no scriptable path that gives both at once** (Flow's `@Character` system
|
|
80
|
+
locks identity+voice but is web-UI only), so this is a genuine fork.
|
|
81
|
+
|
|
82
|
+
### `omni-r2v` (default) — the talking avatar
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
character reference image + the take's line + a voice preset
|
|
86
|
+
→ omni-flash R2V (ingredients:) generates the audio AND lip-synced video together
|
|
87
|
+
→ host/take-NN.mp4 (the avatar SPEAKING that line, genuinely lip-synced)
|
|
88
|
+
→ stitch the host clips in order → avatar-reel.mp4
|
|
89
|
+
→ re-STT the avatar's own speech + local lower-thirds → motion-overlay-avatar.mp4
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Because Omni produces the speech and the mouth movement jointly, the avatar is
|
|
93
|
+
truly lip-synced — **no separate TTS, no muxing, no lip-sync model**. And unlike
|
|
94
|
+
the V2V "add-overlay" edit, R2V generation is **not moderation-blocked**.
|
|
95
|
+
|
|
96
|
+
### `veo-i2v` — the tight-identity (silent) avatar
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
the SAME character still (image: literal first frame) → Veo 3.1 I2V, per take
|
|
100
|
+
→ host/take-NN.mp4 (frame 0 of EVERY take is pixel-identical → identity locked)
|
|
101
|
+
→ stitch → avatar-reel.mp4
|
|
102
|
+
→ caption from the planned script, timed to each take's snapped duration
|
|
103
|
+
→ motion-overlay-avatar.mp4 (silent)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Because every take starts from the identical still, identity/wardrobe/backdrop are
|
|
107
|
+
locked frame-to-frame and take-to-take — far tighter than R2V — but the clip carries
|
|
108
|
+
no speech (add a voiceover or soundtrack separately, or let the captions carry it).
|
|
109
|
+
Veo I2V is **landscape-only** server-side. It shares the same retry + resume + scratch
|
|
110
|
+
plumbing as `omni-r2v` (a slow provider queue can time a take out; just re-run to
|
|
111
|
+
resume from it — completed takes are reused).
|
|
112
|
+
|
|
113
|
+
Flags: `--gb-character Name:ID` (label + go-bananas id, split on the final `:`),
|
|
114
|
+
`--gb-character-image <path>` (the reference still — **required** at `--execute`;
|
|
115
|
+
it is the R2V ingredient for `omni-r2v` and the literal first frame for `veo-i2v`),
|
|
116
|
+
`--host-engine omni-r2v|veo-i2v` (default `omni-r2v`),
|
|
117
|
+
`--gb-voice <preset>` (a Flow voice preset, default `Puck`; `omni-r2v` only),
|
|
118
|
+
`--host-retries <n>` (per-take generation attempts, default 3),
|
|
119
|
+
`--host-look <text>` (a stable appearance + setting descriptor — pinned on every
|
|
120
|
+
take by both engines), `--no-host-chain` (disable cross-take chaining; `omni-r2v` only).
|
|
121
|
+
Captions are timed to the avatar's *actual* speech (it is re-transcribed because
|
|
122
|
+
Omni's pacing differs from the source); the caption pass is best-effort — the
|
|
123
|
+
lip-synced reel stands on its own if it is skipped.
|
|
124
|
+
|
|
125
|
+
**Character consistency (the hard part).** omni-flash R2V treats the reference image
|
|
126
|
+
as a *loose* influence, so each independently-generated take re-invents the face,
|
|
127
|
+
wardrobe, and backdrop — the avatar drifts across a multi-take reel. There is **no
|
|
128
|
+
API-scriptable mechanism today** that locks identity *and* generates native voice
|
|
129
|
+
together (Google Flow's `@Character` system does, but it is web-UI only). Two levers
|
|
130
|
+
reduce the drift on the native-voice path:
|
|
131
|
+
|
|
132
|
+
- **`--host-look <text>`** pins a stable appearance + *fixed* setting descriptor that
|
|
133
|
+
is repeated on **every** take's prompt (e.g. the character's go-bananas base
|
|
134
|
+
prompt + one locked studio). This is what stops the backdrop/wardrobe from jumping
|
|
135
|
+
take-to-take. Without it the prompt uses a neutral default. (The old build
|
|
136
|
+
hardcoded a Bunty-flavoured "friendly cartoon presenter in a sleek modern studio",
|
|
137
|
+
which actively *caused* drift for any other character — that is now gone.)
|
|
138
|
+
- **Chaining (on by default, `--no-host-chain` to disable)** seeds each take's R2V
|
|
139
|
+
with the **previous take's last frame** as an extra `ingredients:` reference, so the
|
|
140
|
+
face/wardrobe carry forward. The last frame is extracted with ffmpeg to a hidden
|
|
141
|
+
`host/.chain-NN.png` and chained into take *N+1*. Chaining survives resume (a
|
|
142
|
+
resumed take re-seeds from its existing clip) and is best-effort (a failed frame
|
|
143
|
+
extract just drops that one seed). For tight pixel-level identity instead, use the
|
|
144
|
+
silent go-bananas-character → Veo-I2V path (no native voice).
|
|
145
|
+
|
|
146
|
+
**Robust across multiple takes.** The Flow safety filter rejects a benign R2V
|
|
147
|
+
generation *probabilistically*, so on a multi-take reel one unlucky take would
|
|
148
|
+
otherwise fail-fast the whole run. Each take is therefore **retried up to
|
|
149
|
+
`--host-retries`** (a plain retry of the same line usually clears), and generation
|
|
150
|
+
is **resumable** — a `host/take-NN.mp4` already on disk from a prior run is reused,
|
|
151
|
+
never regenerated, so re-running after a mid-reel failure never re-spends on the
|
|
152
|
+
takes that already succeeded.
|
|
153
|
+
|
|
154
|
+
The generation runs **only under `--execute --confirm-spend`**; in plan/dry mode
|
|
155
|
+
the work folder is laid out and the host clips are merely enumerated.
|
|
156
|
+
|
|
157
|
+
## On-screen text guardrails (CRITICAL RULES)
|
|
158
|
+
|
|
159
|
+
Every composed prompt emits three standing rules:
|
|
160
|
+
|
|
161
|
+
1. **AUDIO** — pass the original voiceover through; the visual layer only.
|
|
162
|
+
2. **NO METADATA ON SCREEN** — never render px/ms/hex/font-name/easing/stroke as
|
|
163
|
+
visible text; only quoted text renders.
|
|
164
|
+
3. **TEXT ONLY, NO PORTRAITS** — no drawn human silhouettes/portrait
|
|
165
|
+
outlines/avatar icons (policy-filter guardrail). The `avatar-host` host base
|
|
166
|
+
layer is exempt because it is generated separately and never described to Omni
|
|
167
|
+
as a portrait.
|
|
168
|
+
|
|
169
|
+
## Transcription
|
|
170
|
+
|
|
171
|
+
Gemini STT (reuses the Gemini key pool) by default, or bring your own with
|
|
172
|
+
`--transcript <path>`:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{ "language": "pt", "segments": [ { "start": 0.0, "end": 3.2, "text": "..." } ] }
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Module map (`src/video/motion-overlay/`)
|
|
179
|
+
|
|
180
|
+
| Module | Purpose | Purity |
|
|
181
|
+
|---|---|---|
|
|
182
|
+
| `types.ts` | shared contract for the whole family | types |
|
|
183
|
+
| `slice.ts` | segments + `maxTakeSeconds` → sentence-boundary ≤10s splits | pure |
|
|
184
|
+
| `analyze-reel.ts` | per-take reel anatomy + anchor words + pauses | pure |
|
|
185
|
+
| `motion-style.ts` | style registry + concept→animation metaphor map; accent/brand resolution | pure |
|
|
186
|
+
| `compose-prompt.ts` | **the IP** — per-take prompt (CRITICAL RULES + layout block + style + shots) | pure |
|
|
187
|
+
| `plan.ts` | assemble the `MotionOverlayPlan` manifest | pure |
|
|
188
|
+
| `transcribe.ts` | Gemini STT (injectable transport) | side-effect, thin |
|
|
189
|
+
| `ingest.ts` | ffmpeg probe / extract audio / cut takes / extract frames | side-effect, thin |
|
|
190
|
+
| `write.ts` | emit folder + README + manifest + per-take prompts | side-effect |
|
|
191
|
+
| `preview.ts` | render the plan into the preview-portal review surface | side-effect |
|
|
192
|
+
| `execute.ts` | per-take V2V → audio-restore → stitch (injectable `MotionOverlayStepRunner`) | side-effect, tested via injection |
|
|
193
|
+
| `avatar-host.ts` | avatar-host: per-take speaking-host orchestration (injectable `MotionOverlayHostGenerator`) | side-effect, tested via injection |
|
|
194
|
+
| `avatar-host-transport.ts` | real omni-flash R2V+voice host generator (shells `flow.ts`); pure prompt/arg builders tested, spawn injectable | side-effect, pure builders tested |
|
|
195
|
+
| `v2v-transport.ts` | real Google Flow omni-flash V2V transport (upload → submit → poll → download); pure request helpers tested, network path injectable | side-effect, tested via injected fetch |
|
|
196
|
+
| `render-local.ts` | native local overlay renderer — segment → lower-third SVG → `sharp` PNG → ffmpeg `overlay`; SVG/filtergraph builders pure, sharp+ffmpeg injectable (`--render local`) | side-effect, pure builders tested |
|
|
197
|
+
|
|
198
|
+
Every side effect — STT, ffmpeg, V2V, and the omni-flash R2V host
|
|
199
|
+
generation — is behind an injectable interface, so the whole pipeline is unit- and
|
|
200
|
+
e2e-tested offline with **no network and no spend**.
|
|
201
|
+
|
|
202
|
+
## Schema
|
|
203
|
+
|
|
204
|
+
`schemas/video/artifacts/motion-overlay-plan.schema.json` is the canonical
|
|
205
|
+
`MotionOverlayPlan` contract (allowlisted in the artifact-schema-coverage check).
|
|
206
|
+
|
|
207
|
+
## Live execution & moderation (`--execute`)
|
|
208
|
+
|
|
209
|
+
`--execute --confirm-spend` runs each take through the Google Flow **omni-flash
|
|
210
|
+
V2V** transport (`v2v-transport.ts`). Requires `USEAPI_API_TOKEN` and
|
|
211
|
+
`USEAPI_ACCOUNT_EMAIL` in the environment (export them from `.env`); missing creds
|
|
212
|
+
fail fast as `provider_unreachable` before any network call.
|
|
213
|
+
|
|
214
|
+
Proven request recipe (validated live 2026-06-05 against useapi.net):
|
|
215
|
+
|
|
216
|
+
1. **Upload** the take — `POST {base}/google-flow/assets/{email}` with
|
|
217
|
+
`Content-Type: video/mp4` and the raw bytes →
|
|
218
|
+
`mediaGenerationId.mediaGenerationId` (this becomes `referenceVideo_1`).
|
|
219
|
+
2. **Submit** — `POST {base}/google-flow/videos` with
|
|
220
|
+
`{ model: "omni-flash", prompt, referenceVideo_1, startFrameIndex_1: 0,
|
|
221
|
+
endFrameIndex_1: <frameCount>, aspectRatio, email, async: true }`. The
|
|
222
|
+
response field is **`jobid`** (lowercase `i`), not `jobId`.
|
|
223
|
+
3. **Poll** — `GET {base}/google-flow/jobs/{jobId}` with the job id passed
|
|
224
|
+
**RAW / unencoded** → `status: created → completed | failed`.
|
|
225
|
+
4. **Result** — `response.media[].videoUrl`; download to the take's output path.
|
|
226
|
+
|
|
227
|
+
Then `execute.ts` restores the take's original audio (`ffmpeg -map 0:v -map 1:a`)
|
|
228
|
+
and clip-stitches the takes into the final reel.
|
|
229
|
+
|
|
230
|
+
> **Moderation gotcha.** The Flow safety filter rejects some *input videos* for
|
|
231
|
+
> editing with `PUBLIC_ERROR_UNSAFE_GENERATION` / `FINISH_REASON_INPUT_VIDEO_EDIT`
|
|
232
|
+
> — this is **input-specific and prompt-independent** (a benign prompt on a
|
|
233
|
+
> flagged clip still fails; realistic-face footage is the usual trigger). The
|
|
234
|
+
> transport retries a failed verdict a few times (it is probabilistic), then
|
|
235
|
+
> errors with an actionable message. Use stylized / non-photoreal source clips.
|
|
236
|
+
> The sync `bun run flow.ts --ref-video` path returns the generic "All operations
|
|
237
|
+
> failed" and omits the frame-window params — prefer the async path above.
|
|
238
|
+
|
|
239
|
+
## Delivery targets (`--delivery`)
|
|
240
|
+
|
|
241
|
+
`--delivery` is the high-level "where the animation comes from" knob (it sets the
|
|
242
|
+
render mode + flow-pack defaults; `--render`/`--emit-flow-pack` stay as the low-level
|
|
243
|
+
controls):
|
|
244
|
+
|
|
245
|
+
| `--delivery` | What it does | Notes |
|
|
246
|
+
|---|---|---|
|
|
247
|
+
| `local` | render the finished reel locally | reliable, free, on your exact footage (default product path) |
|
|
248
|
+
| `flow-web` | render local **and** emit a Flow hand-off pack | the local reel is the instant fallback; the pack is for the *real* Omni animation, pasted into Flow's web editor by hand |
|
|
249
|
+
| `flow-api` | omni-flash V2V via the API | gated — needs `--execute --confirm-spend`; Flow currently safety-blocks the V2V edit for all inputs |
|
|
250
|
+
|
|
251
|
+
### The Flow hand-off loop (`--emit-flow-pack` / `--restitch`)
|
|
252
|
+
|
|
253
|
+
The source skill's real pipeline is *write prompts → upload each take + paste its
|
|
254
|
+
prompt into Flow → download → stitch*. The Omni step was never automated and Flow's
|
|
255
|
+
API blocks the V2V edit, so the hand-off stays manual — but it's now a first-class
|
|
256
|
+
artifact instead of ad-hoc scripts (`flow-pack.ts`):
|
|
257
|
+
|
|
258
|
+
- **`--emit-flow-pack`** writes `<work>/flow-pack/`: each take's clip + a clean,
|
|
259
|
+
ready-to-paste prompt `.txt` (the prompt body extracted from `prompts/take-NN.md`)
|
|
260
|
+
+ a README of the workflow.
|
|
261
|
+
- **`--restitch <flow-outputs-dir>`** takes the operator's downloaded animated takes,
|
|
262
|
+
re-muxes each with its **original audio** (CRITICAL RULE 1), and concatenates the
|
|
263
|
+
finished reel (`<work>/motion-overlay-reel.mp4`). Terminal — no render/spend.
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
# 1. produce a local reel now + the Flow pack to upgrade it
|
|
267
|
+
vclaw video motion-overlay --input clip.mp4 --output-dir out/ --delivery flow-web --style editorial-dark
|
|
268
|
+
# 2. (you upload each out/flow-pack/take-NN.mp4 + paste take-NN.txt in Flow, download to out/done/)
|
|
269
|
+
# 3. stitch the animated takes back, audio restored
|
|
270
|
+
vclaw video motion-overlay --input clip.mp4 --output-dir out/ --restitch out/done/
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
The pure pieces (prompt extraction, README, output pairing, concat/restore args) are
|
|
274
|
+
unit-tested; fs + ffmpeg are injectable seams.
|
|
275
|
+
|
|
276
|
+
### `--render local` (no spend, no moderation) — the reliable path
|
|
277
|
+
|
|
278
|
+
Because the V2V "add-overlay" edit is moderation-blocked for most inputs, the
|
|
279
|
+
**local renderer is the recommended way to actually produce a reel**:
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
vclaw video motion-overlay --input clip.mp4 --output-dir out/ --render local [--kicker "BRAND"]
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
`--render local` (vs the default `--render v2v`) runs `renderLocalOverlay`
|
|
286
|
+
(`render-local.ts`): each transcript segment becomes a broadcast lower-third —
|
|
287
|
+
an **SVG rasterised to PNG via `sharp`** (resvg text shaping; NO system
|
|
288
|
+
freetype / ffmpeg `drawtext`) — composited onto the source with one ffmpeg
|
|
289
|
+
`overlay` filtergraph (each card fades + slides up on its window). Accent words
|
|
290
|
+
reuse the prompt composer's anchor-word detector; `--kicker` sets the small
|
|
291
|
+
brand label. It is **free** (no provider, no `--confirm-spend` gate) and the
|
|
292
|
+
original audio is preserved. The pure SVG/filtergraph builders are unit-tested;
|
|
293
|
+
sharp + ffmpeg are injectable seams.
|
|
294
|
+
|
|
295
|
+
#### Card styles (`--style`) and giant headlines (`--headlines`)
|
|
296
|
+
|
|
297
|
+
`--render local` honours `--style`, rendering three **structurally** distinct card
|
|
298
|
+
looks faithful to the source skill's catalog (not just a colour swap — different
|
|
299
|
+
panel geometry, label treatment and typography so they read as different over busy
|
|
300
|
+
footage). The same `--style`/`--accent`/`--kicker`/`--headlines` also drive the
|
|
301
|
+
**avatar-host** caption pass.
|
|
302
|
+
|
|
303
|
+
| `--style` | Card look |
|
|
304
|
+
|---|---|
|
|
305
|
+
| `apple-clean` (default) | **floating inset** rounded frosted card · thin accent left bar · accent-dot + uppercase kicker · clean sans-serif sentence case |
|
|
306
|
+
| `editorial-dark` | **full-bleed** edge-to-edge near-black poster bar · thick accent **top rule** · solid accent **tag block** label · bold condensed **UPPERCASE** |
|
|
307
|
+
| `knowledge-tool` | **left-anchored** narrower cool-dark study card · thick lavender left rule · **`[[ MONO ]]`** bracket label · editorial **serif** body |
|
|
308
|
+
|
|
309
|
+
Accent words render in the accent colour **and** get the skill's signature accent
|
|
310
|
+
**`*` beat-marker** after them.
|
|
311
|
+
|
|
312
|
+
`--headlines` adds the skill's **kinetic-typography beat**: each detected anchor word
|
|
313
|
+
also explodes to a frame-filling centred headline with the accent `*` beat-marker,
|
|
314
|
+
synced to the moment the word is spoken, composited above the lower-third. Headline
|
|
315
|
+
moments are capped (≤6, one per caption) so the reel doesn't strobe. Pure
|
|
316
|
+
`lowerThirdSvg`/`anchorHeadlineSvg` builders are unit-tested.
|
|
317
|
+
|
|
318
|
+
`--icons` adds the skill's **"visualize what's being said" layer** (`motifs.ts`):
|
|
319
|
+
the transcript is scanned and, at the moment a concept is spoken, a matching
|
|
320
|
+
**hairline icon** (money → `$`, team → people, launch → rocket, AI → node graph,
|
|
321
|
+
time → clock, …) or an **infographic stat callout** (a number, or a percentage with
|
|
322
|
+
a **ring gauge**) pulses in the upper-right corner like a broadcast stat bug — in the
|
|
323
|
+
style's accent, capped to ≤5 per reel. Icons are vector geometry (no portraits, no
|
|
324
|
+
bitmaps), so they render reliably. Both `--headlines` and `--icons` work on
|
|
325
|
+
`--render local` and the `avatar-host` caption pass. `detectMotifs` + the
|
|
326
|
+
`iconMotifSvg`/`statMotifSvg` builders are pure and unit-tested.
|
|
327
|
+
|
|
328
|
+
#### `--animate` — real motion graphics (per-frame)
|
|
329
|
+
|
|
330
|
+
By default the local overlays fade and slide in, then hold. `--animate` swaps in a
|
|
331
|
+
**per-frame motion-graphics layer** (`animate.ts` + `animate-render.ts`): every overlay
|
|
332
|
+
is evaluated as a function of time `t` and **one transparent frame is rasterised per
|
|
333
|
+
output frame** (30fps), then ffmpeg overlays the sequence on the footage. The motions:
|
|
334
|
+
|
|
335
|
+
- **lower-third** — fade + slide-up entrance, then a **word-by-word reveal** (words
|
|
336
|
+
appear across the first ~60% of the take; the panel holds full size so it never
|
|
337
|
+
reflows — later words render at `fill-opacity 0`);
|
|
338
|
+
- **stat callout** — the number **counts up** 0→N and the **% gauge fills** (eased);
|
|
339
|
+
- **icons / headlines** — **pop in** with a small overshoot (spring).
|
|
340
|
+
|
|
341
|
+
All the timing is pure math (`easeOutCubic`/`easeOutBack`, `revealWordCount`,
|
|
342
|
+
`countUpValue`, `gaugeProgress`) and unit-tested; the sharp rasterise + ffmpeg run are
|
|
343
|
+
injectable. It costs more (N frames rasterised — a 16s clip ≈ 480 frames, ~20s on a
|
|
344
|
+
laptop) but stays fully local/free. Works with any `--style` and composes with
|
|
345
|
+
`--icons`/`--headlines`.
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
vclaw video motion-overlay --input clip.mp4 --output-dir out/ \
|
|
349
|
+
--render local --style apple-clean --icons --animate --kicker "BRAND"
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
vclaw video motion-overlay --input clip.mp4 --output-dir out/ \
|
|
354
|
+
--render local --style editorial-dark --headlines --kicker "BRAND"
|
|
355
|
+
```
|