videoclaw 3.0.0-alpha.7 → 3.0.0-alpha.8
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/CLAUDE.md +46 -8
- package/README.md +20 -2
- package/assets/review-station/index.html +11 -1
- package/dist/cli/args.js +7 -7
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/handlers/analysis.d.ts +24 -0
- package/dist/cli/handlers/analysis.d.ts.map +1 -1
- package/dist/cli/handlers/analysis.js +163 -0
- package/dist/cli/handlers/analysis.js.map +1 -1
- package/dist/cli/handlers/batch.js +2 -2
- package/dist/cli/handlers/batch.js.map +1 -1
- package/dist/cli/handlers/candidates.d.ts.map +1 -1
- package/dist/cli/handlers/candidates.js +178 -58
- package/dist/cli/handlers/candidates.js.map +1 -1
- package/dist/cli/handlers/character.d.ts.map +1 -1
- package/dist/cli/handlers/character.js +11 -7
- package/dist/cli/handlers/character.js.map +1 -1
- package/dist/cli/handlers/create.d.ts.map +1 -1
- package/dist/cli/handlers/create.js +7 -6
- package/dist/cli/handlers/create.js.map +1 -1
- package/dist/cli/handlers/execution.d.ts.map +1 -1
- package/dist/cli/handlers/execution.js +33 -1
- package/dist/cli/handlers/execution.js.map +1 -1
- package/dist/cli/handlers/library.js +2 -2
- package/dist/cli/handlers/library.js.map +1 -1
- package/dist/cli/handlers/media-production.d.ts.map +1 -1
- package/dist/cli/handlers/media-production.js +88 -0
- package/dist/cli/handlers/media-production.js.map +1 -1
- package/dist/cli/handlers/mograph.d.ts +18 -0
- package/dist/cli/handlers/mograph.d.ts.map +1 -0
- package/dist/cli/handlers/mograph.js +511 -0
- package/dist/cli/handlers/mograph.js.map +1 -0
- package/dist/cli/handlers/multi-shot.d.ts.map +1 -1
- package/dist/cli/handlers/multi-shot.js +108 -19
- package/dist/cli/handlers/multi-shot.js.map +1 -1
- package/dist/cli/handlers/prompt-craft.d.ts.map +1 -1
- package/dist/cli/handlers/prompt-craft.js +65 -24
- package/dist/cli/handlers/prompt-craft.js.map +1 -1
- package/dist/cli/handlers/provider-registration.d.ts.map +1 -1
- package/dist/cli/handlers/provider-registration.js +13 -12
- package/dist/cli/handlers/provider-registration.js.map +1 -1
- package/dist/cli/handlers/reference-sheets.d.ts.map +1 -1
- package/dist/cli/handlers/reference-sheets.js +10 -10
- package/dist/cli/handlers/reference-sheets.js.map +1 -1
- package/dist/cli/handlers/review-portal.d.ts.map +1 -1
- package/dist/cli/handlers/review-portal.js +3 -1
- package/dist/cli/handlers/review-portal.js.map +1 -1
- package/dist/cli/handlers/stages.d.ts.map +1 -1
- package/dist/cli/handlers/stages.js +56 -0
- package/dist/cli/handlers/stages.js.map +1 -1
- package/dist/cli/json-input.d.ts +3 -0
- package/dist/cli/json-input.d.ts.map +1 -0
- package/dist/cli/json-input.js +22 -0
- package/dist/cli/json-input.js.map +1 -0
- package/dist/cli/provider-adapter.js +22 -10
- package/dist/cli/provider-adapter.js.map +1 -1
- package/dist/cli/vclaw.d.ts.map +1 -1
- package/dist/cli/vclaw.js +17 -5
- package/dist/cli/vclaw.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/video/artifacts.d.ts +8 -0
- package/dist/video/artifacts.d.ts.map +1 -1
- package/dist/video/artifacts.js.map +1 -1
- package/dist/video/assemble/assemble.d.ts.map +1 -1
- package/dist/video/assemble/assemble.js +170 -26
- package/dist/video/assemble/assemble.js.map +1 -1
- package/dist/video/assemble/media-qc.d.ts +77 -2
- package/dist/video/assemble/media-qc.d.ts.map +1 -1
- package/dist/video/assemble/media-qc.js +177 -4
- package/dist/video/assemble/media-qc.js.map +1 -1
- package/dist/video/assemble/pdf.d.ts.map +1 -1
- package/dist/video/assemble/pdf.js +0 -1
- package/dist/video/assemble/pdf.js.map +1 -1
- package/dist/video/assemble/stitch.d.ts +102 -0
- package/dist/video/assemble/stitch.d.ts.map +1 -1
- package/dist/video/assemble/stitch.js +208 -21
- package/dist/video/assemble/stitch.js.map +1 -1
- package/dist/video/assemble/title-card.js.map +1 -1
- package/dist/video/assemble/types.d.ts +59 -0
- package/dist/video/assemble/types.d.ts.map +1 -1
- package/dist/video/audio-platform/measure.d.ts +11 -0
- package/dist/video/audio-platform/measure.d.ts.map +1 -0
- package/dist/video/audio-platform/measure.js +57 -0
- package/dist/video/audio-platform/measure.js.map +1 -0
- package/dist/video/category-registry.d.ts.map +1 -1
- package/dist/video/category-registry.js +10 -1
- package/dist/video/category-registry.js.map +1 -1
- package/dist/video/character-auto-create.d.ts +51 -0
- package/dist/video/character-auto-create.d.ts.map +1 -1
- package/dist/video/character-auto-create.js +75 -33
- package/dist/video/character-auto-create.js.map +1 -1
- package/dist/video/cinematography.d.ts +60 -0
- package/dist/video/cinematography.d.ts.map +1 -1
- package/dist/video/cinematography.js +99 -0
- package/dist/video/cinematography.js.map +1 -1
- package/dist/video/cli-schema.d.ts.map +1 -1
- package/dist/video/cli-schema.js +97 -11
- package/dist/video/cli-schema.js.map +1 -1
- package/dist/video/clip-qc.d.ts +164 -0
- package/dist/video/clip-qc.d.ts.map +1 -0
- package/dist/video/clip-qc.js +202 -0
- package/dist/video/clip-qc.js.map +1 -0
- package/dist/video/dialogue.d.ts.map +1 -1
- package/dist/video/dialogue.js +7 -1
- package/dist/video/dialogue.js.map +1 -1
- package/dist/video/environment-auto-create.d.ts +2 -0
- package/dist/video/environment-auto-create.d.ts.map +1 -1
- package/dist/video/environment-auto-create.js +15 -4
- package/dist/video/environment-auto-create.js.map +1 -1
- package/dist/video/errors.d.ts +1 -1
- package/dist/video/errors.d.ts.map +1 -1
- package/dist/video/errors.js +24 -0
- package/dist/video/errors.js.map +1 -1
- package/dist/video/execute.d.ts.map +1 -1
- package/dist/video/execute.js +4 -0
- package/dist/video/execute.js.map +1 -1
- package/dist/video/execution-adapter.d.ts +30 -0
- package/dist/video/execution-adapter.d.ts.map +1 -0
- package/dist/video/execution-adapter.js +140 -0
- package/dist/video/execution-adapter.js.map +1 -0
- package/dist/video/execution-character-locks.d.ts +24 -0
- package/dist/video/execution-character-locks.d.ts.map +1 -0
- package/dist/video/execution-character-locks.js +54 -0
- package/dist/video/execution-character-locks.js.map +1 -0
- package/dist/video/execution-plan.d.ts +7 -0
- package/dist/video/execution-plan.d.ts.map +1 -1
- package/dist/video/execution-plan.js +3 -1
- package/dist/video/execution-plan.js.map +1 -1
- package/dist/video/execution-profile.d.ts +1 -0
- package/dist/video/execution-profile.d.ts.map +1 -1
- package/dist/video/execution-profile.js +38 -10
- package/dist/video/execution-profile.js.map +1 -1
- package/dist/video/execution-runtime.d.ts +3 -48
- package/dist/video/execution-runtime.d.ts.map +1 -1
- package/dist/video/execution-runtime.js +118 -280
- package/dist/video/execution-runtime.js.map +1 -1
- package/dist/video/execution-status.d.ts +35 -0
- package/dist/video/execution-status.d.ts.map +1 -1
- package/dist/video/execution-status.js +76 -16
- package/dist/video/execution-status.js.map +1 -1
- package/dist/video/filmmaking-prompts.d.ts +28 -2
- package/dist/video/filmmaking-prompts.d.ts.map +1 -1
- package/dist/video/filmmaking-prompts.js +70 -76
- package/dist/video/filmmaking-prompts.js.map +1 -1
- package/dist/video/final-media.d.ts.map +1 -1
- package/dist/video/final-media.js +34 -7
- package/dist/video/final-media.js.map +1 -1
- package/dist/video/flow-media-url.d.ts +143 -0
- package/dist/video/flow-media-url.d.ts.map +1 -0
- package/dist/video/flow-media-url.js +195 -0
- package/dist/video/flow-media-url.js.map +1 -0
- package/dist/video/gen-image-flow.d.ts.map +1 -1
- package/dist/video/gen-image-flow.js +20 -8
- package/dist/video/gen-image-flow.js.map +1 -1
- package/dist/video/keyframe-qc.d.ts +142 -0
- package/dist/video/keyframe-qc.d.ts.map +1 -0
- package/dist/video/keyframe-qc.js +472 -0
- package/dist/video/keyframe-qc.js.map +1 -0
- package/dist/video/lip-sync.d.ts +136 -0
- package/dist/video/lip-sync.d.ts.map +1 -0
- package/dist/video/lip-sync.js +219 -0
- package/dist/video/lip-sync.js.map +1 -0
- package/dist/video/mograph/beats.d.ts +46 -0
- package/dist/video/mograph/beats.d.ts.map +1 -0
- package/dist/video/mograph/beats.js +159 -0
- package/dist/video/mograph/beats.js.map +1 -0
- package/dist/video/mograph/execute.d.ts +81 -0
- package/dist/video/mograph/execute.d.ts.map +1 -0
- package/dist/video/mograph/execute.js +53 -0
- package/dist/video/mograph/execute.js.map +1 -0
- package/dist/video/mograph/logos.d.ts +41 -0
- package/dist/video/mograph/logos.d.ts.map +1 -0
- package/dist/video/mograph/logos.js +65 -0
- package/dist/video/mograph/logos.js.map +1 -0
- package/dist/video/mograph/pack.d.ts +67 -0
- package/dist/video/mograph/pack.d.ts.map +1 -0
- package/dist/video/mograph/pack.js +406 -0
- package/dist/video/mograph/pack.js.map +1 -0
- package/dist/video/mograph/plan.d.ts +77 -0
- package/dist/video/mograph/plan.d.ts.map +1 -0
- package/dist/video/mograph/plan.js +146 -0
- package/dist/video/mograph/plan.js.map +1 -0
- package/dist/video/mograph/sheet.d.ts +46 -0
- package/dist/video/mograph/sheet.d.ts.map +1 -0
- package/dist/video/mograph/sheet.js +194 -0
- package/dist/video/mograph/sheet.js.map +1 -0
- package/dist/video/mograph/style-families.d.ts +43 -0
- package/dist/video/mograph/style-families.d.ts.map +1 -0
- package/dist/video/mograph/style-families.js +154 -0
- package/dist/video/mograph/style-families.js.map +1 -0
- package/dist/video/mograph/types.d.ts +135 -0
- package/dist/video/mograph/types.d.ts.map +1 -0
- package/dist/video/mograph/types.js +10 -0
- package/dist/video/mograph/types.js.map +1 -0
- package/dist/video/motion-overlay/v2v-transport.d.ts +5 -0
- package/dist/video/motion-overlay/v2v-transport.d.ts.map +1 -1
- package/dist/video/motion-overlay/v2v-transport.js +36 -5
- package/dist/video/motion-overlay/v2v-transport.js.map +1 -1
- package/dist/video/multi-shot-prompt.d.ts +52 -1
- package/dist/video/multi-shot-prompt.d.ts.map +1 -1
- package/dist/video/multi-shot-prompt.js +140 -17
- package/dist/video/multi-shot-prompt.js.map +1 -1
- package/dist/video/music-video.d.ts +21 -0
- package/dist/video/music-video.d.ts.map +1 -1
- package/dist/video/music-video.js +19 -1
- package/dist/video/music-video.js.map +1 -1
- package/dist/video/narrate.d.ts.map +1 -1
- package/dist/video/narrate.js +11 -3
- package/dist/video/narrate.js.map +1 -1
- package/dist/video/native-dreamina.d.ts +10 -0
- package/dist/video/native-dreamina.d.ts.map +1 -1
- package/dist/video/native-dreamina.js +93 -29
- package/dist/video/native-dreamina.js.map +1 -1
- package/dist/video/native-flow-r2v.d.ts +16 -0
- package/dist/video/native-flow-r2v.d.ts.map +1 -1
- package/dist/video/native-flow-r2v.js +54 -8
- package/dist/video/native-flow-r2v.js.map +1 -1
- package/dist/video/native-runway.d.ts.map +1 -1
- package/dist/video/native-runway.js +57 -13
- package/dist/video/native-runway.js.map +1 -1
- package/dist/video/native-veo.d.ts.map +1 -1
- package/dist/video/native-veo.js +23 -3
- package/dist/video/native-veo.js.map +1 -1
- package/dist/video/optical-register.d.ts +27 -0
- package/dist/video/optical-register.d.ts.map +1 -0
- package/dist/video/optical-register.js +66 -0
- package/dist/video/optical-register.js.map +1 -0
- package/dist/video/preview-portal/shared-assets.d.ts +1 -1
- package/dist/video/preview-portal/shared-assets.d.ts.map +1 -1
- package/dist/video/preview-portal/shared-assets.js +1 -1
- package/dist/video/prompt-lint.d.ts +1 -1
- package/dist/video/prompt-lint.d.ts.map +1 -1
- package/dist/video/prompt-lint.js +34 -0
- package/dist/video/prompt-lint.js.map +1 -1
- package/dist/video/prompt-quality.d.ts +20 -1
- package/dist/video/prompt-quality.d.ts.map +1 -1
- package/dist/video/prompt-quality.js +51 -5
- package/dist/video/prompt-quality.js.map +1 -1
- package/dist/video/prompt-rules.d.ts +10 -0
- package/dist/video/prompt-rules.d.ts.map +1 -1
- package/dist/video/prompt-rules.js +21 -0
- package/dist/video/prompt-rules.js.map +1 -1
- package/dist/video/provider-platform/route-capabilities.d.ts.map +1 -1
- package/dist/video/provider-platform/route-capabilities.js +7 -2
- package/dist/video/provider-platform/route-capabilities.js.map +1 -1
- package/dist/video/provider-status.d.ts.map +1 -1
- package/dist/video/provider-status.js +14 -2
- package/dist/video/provider-status.js.map +1 -1
- package/dist/video/providers/dreamina-useapi.d.ts +18 -1
- package/dist/video/providers/dreamina-useapi.d.ts.map +1 -1
- package/dist/video/providers/dreamina-useapi.js +10 -0
- package/dist/video/providers/dreamina-useapi.js.map +1 -1
- package/dist/video/providers/google-flow.d.ts +15 -0
- package/dist/video/providers/google-flow.d.ts.map +1 -1
- package/dist/video/providers/google-flow.js +18 -2
- package/dist/video/providers/google-flow.js.map +1 -1
- package/dist/video/providers/runway-useapi.d.ts +5 -4
- package/dist/video/providers/runway-useapi.d.ts.map +1 -1
- package/dist/video/providers/runway-useapi.js.map +1 -1
- package/dist/video/providers/xskill.d.ts +6 -3
- package/dist/video/providers/xskill.d.ts.map +1 -1
- package/dist/video/providers/xskill.js +7 -4
- package/dist/video/providers/xskill.js.map +1 -1
- package/dist/video/readiness.d.ts +14 -1
- package/dist/video/readiness.d.ts.map +1 -1
- package/dist/video/readiness.js +14 -2
- package/dist/video/readiness.js.map +1 -1
- package/dist/video/review-ui-media-proxy.d.ts +15 -0
- package/dist/video/review-ui-media-proxy.d.ts.map +1 -0
- package/dist/video/review-ui-media-proxy.js +184 -0
- package/dist/video/review-ui-media-proxy.js.map +1 -0
- package/dist/video/review-ui-server.d.ts +35 -0
- package/dist/video/review-ui-server.d.ts.map +1 -0
- package/dist/video/review-ui-server.js +272 -0
- package/dist/video/review-ui-server.js.map +1 -0
- package/dist/video/review-ui.d.ts +9 -0
- package/dist/video/review-ui.d.ts.map +1 -1
- package/dist/video/review-ui.js +20 -262
- package/dist/video/review-ui.js.map +1 -1
- package/dist/video/scene-headcount.d.ts +52 -0
- package/dist/video/scene-headcount.d.ts.map +1 -0
- package/dist/video/scene-headcount.js +122 -0
- package/dist/video/scene-headcount.js.map +1 -0
- package/dist/video/scene-selection.d.ts +19 -0
- package/dist/video/scene-selection.d.ts.map +1 -1
- package/dist/video/scene-selection.js +38 -0
- package/dist/video/scene-selection.js.map +1 -1
- package/dist/video/seedance-content-filter.d.ts.map +1 -1
- package/dist/video/seedance-content-filter.js +63 -4
- package/dist/video/seedance-content-filter.js.map +1 -1
- package/dist/video/sfx.d.ts.map +1 -1
- package/dist/video/sfx.js +6 -1
- package/dist/video/sfx.js.map +1 -1
- package/dist/video/show-preflight.d.ts.map +1 -1
- package/dist/video/show-preflight.js +18 -1
- package/dist/video/show-preflight.js.map +1 -1
- package/dist/video/soundtrack.d.ts.map +1 -1
- package/dist/video/soundtrack.js +8 -1
- package/dist/video/soundtrack.js.map +1 -1
- package/dist/video/style-register.d.ts +82 -0
- package/dist/video/style-register.d.ts.map +1 -0
- package/dist/video/style-register.js +509 -0
- package/dist/video/style-register.js.map +1 -0
- package/dist/video/vocal-map.d.ts +18 -0
- package/dist/video/vocal-map.d.ts.map +1 -1
- package/dist/video/vocal-map.js +22 -1
- package/dist/video/vocal-map.js.map +1 -1
- package/dist/video/workspace.d.ts +12 -0
- package/dist/video/workspace.d.ts.map +1 -1
- package/dist/video/workspace.js +24 -0
- package/dist/video/workspace.js.map +1 -1
- package/docs/ASSEMBLE.md +9 -0
- package/docs/CAPABILITIES.md +279 -0
- package/docs/CLI_REFERENCE.md +340 -9
- package/docs/CONCIERGE_PROMPT.md +12 -4
- package/docs/MOGRAPH.md +200 -0
- package/docs/OPERATIONS.md +40 -0
- package/docs/PRODUCTION_WORKFLOW.md +19 -0
- package/docs/RELEASE_READINESS.md +16 -0
- package/docs/SKILLS.md +36 -0
- package/package.json +18 -6
- package/references/video/multi-shot-framework.md +84 -3
- package/references/video/seedance-transport-payloads.md +93 -3
- package/schemas/video/artifacts/clip-qc.schema.json +73 -0
- package/schemas/video/artifacts/keyframe-qc.schema.json +82 -0
- package/schemas/video/artifacts/motion-pack.schema.json +74 -0
- package/schemas/video/artifacts/motion-sheet.schema.json +99 -0
- package/schemas/video/artifacts/shot-table.schema.json +313 -0
- package/schemas/video/artifacts/storyboard.schema.json +4 -0
- package/schemas/video/errors.json +13 -1
- package/skills/3d-animation-short/SKILL.md +315 -0
- package/skills/README.md +24 -0
- package/skills/ai-filmmaking/SKILL.md +82 -5
- package/skills/brand-explainer/SKILL.md +125 -0
- package/skills/catalog.json +53 -10
- package/skills/concierge/SKILL.md +12 -4
- package/skills/garden-days/SKILL.md +258 -0
- package/skills/mograph/SKILL.md +202 -0
- package/skills/multi-shot-prompt/SKILL.md +15 -5
- package/skills/rap-avatar-mv/SKILL.md +690 -0
- package/skills/rhyme-factory/SKILL.md +157 -0
- package/skills/seedance-prompts/SKILL.md +105 -0
- package/skills/story-bible-builder/SKILL.md +120 -0
- package/src/video/artifacts.ts +8 -0
- package/src/video/assemble/assemble.ts +205 -29
- package/src/video/assemble/media-qc.ts +227 -8
- package/src/video/assemble/pdf.ts +0 -1
- package/src/video/assemble/stitch.ts +281 -17
- package/src/video/assemble/title-card.ts +1 -1
- package/src/video/assemble/types.ts +59 -0
- package/src/video/audio-platform/measure.ts +63 -0
- package/src/video/category-registry.ts +10 -1
- package/src/video/character-auto-create.ts +107 -52
- package/src/video/cinematography.ts +136 -0
- package/src/video/cli-schema.ts +97 -11
- package/src/video/clip-qc.ts +349 -0
- package/src/video/dialogue.ts +8 -1
- package/src/video/environment-auto-create.ts +27 -5
- package/src/video/errors.ts +24 -0
- package/src/video/execute.ts +4 -0
- package/src/video/execution-adapter.ts +185 -0
- package/src/video/execution-character-locks.ts +56 -0
- package/src/video/execution-plan.ts +14 -2
- package/src/video/execution-profile.ts +43 -10
- package/src/video/execution-runtime.ts +140 -365
- package/src/video/execution-status.ts +76 -13
- package/src/video/filmmaking-prompts.ts +89 -78
- package/src/video/final-media.ts +33 -7
- package/src/video/flow-media-url.ts +241 -0
- package/src/video/gen-image-flow.ts +21 -8
- package/src/video/keyframe-qc.ts +548 -0
- package/src/video/lip-sync.ts +288 -0
- package/src/video/mograph/beats.ts +189 -0
- package/src/video/mograph/execute.ts +127 -0
- package/src/video/mograph/logos.ts +97 -0
- package/src/video/mograph/pack.ts +476 -0
- package/src/video/mograph/plan.ts +213 -0
- package/src/video/mograph/sheet.ts +234 -0
- package/src/video/mograph/style-families.ts +185 -0
- package/src/video/mograph/types.ts +156 -0
- package/src/video/motion-overlay/v2v-transport.ts +36 -6
- package/src/video/multi-shot-prompt.ts +164 -16
- package/src/video/music-video.ts +53 -1
- package/src/video/narrate.ts +12 -3
- package/src/video/native-dreamina.ts +99 -24
- package/src/video/native-flow-r2v.ts +63 -6
- package/src/video/native-runway.ts +65 -10
- package/src/video/native-veo.ts +23 -3
- package/src/video/optical-register.ts +86 -0
- package/src/video/preview-portal/shared-assets.ts +1 -1
- package/src/video/prompt-lint.ts +44 -1
- package/src/video/prompt-quality.ts +56 -6
- package/src/video/prompt-rules.ts +20 -0
- package/src/video/provider-platform/route-capabilities.ts +7 -2
- package/src/video/provider-status.ts +15 -2
- package/src/video/providers/dreamina-useapi.ts +21 -1
- package/src/video/providers/google-flow.ts +38 -3
- package/src/video/providers/runway-useapi.ts +7 -4
- package/src/video/providers/xskill.ts +8 -5
- package/src/video/readiness.ts +28 -1
- package/src/video/review-ui-media-proxy.ts +189 -0
- package/src/video/review-ui-server.ts +306 -0
- package/src/video/review-ui.ts +48 -287
- package/src/video/scene-headcount.ts +163 -0
- package/src/video/scene-selection.ts +48 -0
- package/src/video/seedance-content-filter.ts +64 -4
- package/src/video/sfx.ts +7 -1
- package/src/video/show-preflight.ts +22 -1
- package/src/video/soundtrack.ts +8 -1
- package/src/video/style-register.ts +684 -0
- package/src/video/vocal-map.ts +36 -1
- package/src/video/workspace.ts +29 -0
- package/docs/assets/vclaw-review-ui-desktop-after-stage-gate.png +0 -0
- package/docs/assets/vclaw-review-ui-mobile-after-stage-gate.png +0 -0
- package/src/video/assemble/.omc/state/sessions/3a741ceb-9c9f-4c48-a46f-a33edb5dcdc1/pre-tool-advisory-throttle.json +0 -14
- package/src/video/preview-portal/.omc/state/sessions/2fdd28da-2e8b-4462-a451-750b206c53e1/pre-tool-advisory-throttle.json +0 -18
package/CLAUDE.md
CHANGED
|
@@ -110,12 +110,25 @@ setup, or review surface — and before creating a new command — work through
|
|
|
110
110
|
live job exists (`execute-status` → `live-submitted` + a candidate + a
|
|
111
111
|
`.vclaw-jobs/*.json` file), and then the actual output downloaded + QC'd (frame
|
|
112
112
|
+ whisper). If you tell the user something is happening, prove it (a job id /
|
|
113
|
-
status / a frame) — do not assert progress you have not checked.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
status / a frame) — do not assert progress you have not checked.
|
|
114
|
+
|
|
115
|
+
**QC the whole clip, not one frame.** A single mid-frame grab is not
|
|
116
|
+
verification: it passed 8 clips whose defect (extra figures walking in from the
|
|
117
|
+
frame edges) only began around the four-second mark, and the operator found it
|
|
118
|
+
on screen after delivery. Use `vclaw video clip-qc`, or a filmstrip —
|
|
119
|
+
`ffmpeg -i clip.mp4 -vf "fps=1,scale=200:-1,tile=8x1" strip.jpg` renders every
|
|
120
|
+
second in one pass. `consistency-audit` (one mid-frame, identity) and
|
|
121
|
+
`motion-qc` (nine frames, morph/vanish) are advisory and never block, so read
|
|
122
|
+
their findings rather than treating silence as clean.
|
|
123
|
+
|
|
124
|
+
**Re-render corollary — deleting the clip does NOT force a re-render.** The
|
|
125
|
+
resumable drivers resume from the **scene-selection artifact**, never from
|
|
126
|
+
disk, so a changed prompt plus a deleted `outputs/scene-N.mp4` yields
|
|
127
|
+
`skipped, attempts=0` and no provider call at all. Clear the selection with
|
|
128
|
+
`vclaw video reroll-scene --project <slug> --scene <i> --void` (it voids all
|
|
129
|
+
four stores atomically). After any re-render read the **per-scene statuses**,
|
|
130
|
+
not the file count — a silent no-op looks exactly like success from the
|
|
131
|
+
outside.
|
|
119
132
|
|
|
120
133
|
When in doubt, the on-disk project and its artifacts win over anything you
|
|
121
134
|
remember.
|
|
@@ -248,7 +261,7 @@ Adapters receive JSON on stdin and must return JSON on stdout (`externalJobId` f
|
|
|
248
261
|
|
|
249
262
|
For `seedance-direct`, `veo-useapi`, `runway-useapi`, and `dreamina-useapi`, `vclaw` ships a built-in adapter binary (`dist/cli/provider-adapter.js`) used automatically unless the full `..._ADAPTER` override is set. The built-in adapters read route-specific `..._SUBMIT_CMD` / `..._POLL_CMD` / `..._CANCEL_CMD` command shims. Routes also have native in-process transports: `native-seedance.ts` (uses `SUTUI_API_KEY`), `native-veo.ts` (drives the local `vclaw-cli` Bun package), `native-runway.ts` (pure Node fetch + fs, UseAPI bearer auth), `native-dreamina.ts` (pure Node fetch + fs, UseAPI bearer auth).
|
|
250
263
|
|
|
251
|
-
**`dreamina-useapi` = Seedance 2.0 / Dreamina via useapi.net.** Dreamina (CapCut/ByteDance Seed) exposes the Seedance family (`seedance-2.0` default, `-2.0-fast`, `-2.0-mini`, `-1.5-pro`, `-1.0-pro`, `-1.0-mini`, `-1.0-fast`) and `sora2` through useapi.net; CA-region accounts unlock 1080p Seedance 2.0 (and 4k on `seedance-2.0` as of 2026-06-26 — opted into route-locally via `VCLAW_DREAMINA_RESOLUTION=4k`, since the shared execution profile only expresses 720p/1080p; the transport clamps 4k→1080p on non-seedance-2.0 models and →720p on the 720p-only ones). `-2.0-fast`/`-2.0-mini`/`sora2` are 720p-only. `native-dreamina.ts` reuses the **same `USEAPI_API_TOKEN`** as runway-useapi (no new token) and reads the account from `VCLAW_DREAMINA_ACCOUNT` (e.g. `CA:ai@example.com`), region from `VCLAW_DREAMINA_REGION` (default `CA`), and model from `VCLAW_DREAMINA_MODEL` (default `seedance-2.0`); the route adapter override is `VCLAW_DREAMINA_USEAPI_ADAPTER`. The account is registered server-side out-of-band (`POST /accounts` with `{email,password,region,maxJobs}`), so submit only needs the account id + token. For image-to-video, the first image reference is uploaded via `POST /dreamina/assets/<account>` to obtain an `assetRef`, which is passed as `firstFrameRef` on `POST /dreamina/videos` (first_frame mode auto-detects aspect ratio from the image); poll uses `GET /dreamina/videos/<jobid>` (`status: created → completed|failed`) and downloads `response.videoUrl`. Like runway-useapi, real human faces are rejected by Seedance moderation — describe stylized characters by visual descriptor.
|
|
264
|
+
**`dreamina-useapi` = Seedance 2.0 / Dreamina via useapi.net.** Dreamina (CapCut/ByteDance Seed) exposes the Seedance family (`seedance-2.0` default, `-2.0-fast`, `-2.0-mini`, `-1.5-pro`, `-1.0-pro`, `-1.0-mini`, `-1.0-fast`) and `sora2` through useapi.net; CA-region accounts unlock 1080p Seedance 2.0 (and 4k on `seedance-2.0` as of 2026-06-26 — opted into route-locally via `VCLAW_DREAMINA_RESOLUTION=4k`, since the shared execution profile only expresses 720p/1080p; the transport clamps 4k→1080p on non-seedance-2.0 models and →720p on the 720p-only ones). `-2.0-fast`/`-2.0-mini`/`sora2` are 720p-only. `native-dreamina.ts` reuses the **same `USEAPI_API_TOKEN`** as runway-useapi (no new token) and reads the account from `VCLAW_DREAMINA_ACCOUNT` (e.g. `CA:ai@example.com`), region from `VCLAW_DREAMINA_REGION` (default `CA`), and model from `VCLAW_DREAMINA_MODEL` (default `seedance-2.0`); the route adapter override is `VCLAW_DREAMINA_USEAPI_ADAPTER`. The account is registered server-side out-of-band (`POST /accounts` with `{email,password,region,maxJobs}`), so submit only needs the account id + token. For image-to-video, the first image reference is uploaded via `POST /dreamina/assets/<account>` to obtain an `assetRef`, which is passed as `firstFrameRef` on `POST /dreamina/videos` (first_frame mode auto-detects aspect ratio from the image); a scene's `endKeyframePath` (the same field the runway route uses) uploads a second frame passed as `endFrameRef` alongside `firstFrameRef` → **end_frame mode**, where the clip animates first→end (two stills → one continuous shot); poll uses `GET /dreamina/videos/<jobid>` (`status: created → completed|failed`) and downloads `response.videoUrl`. Like runway-useapi, real human faces are rejected by Seedance moderation — describe stylized characters by visual descriptor.
|
|
252
265
|
|
|
253
266
|
**Seedance character consistency = the Asset Library, not raw URLs.** `ark/seedance-2.0` (the official Volcengine Ark Seedance 2.0, Standard = 1080p) locks character identity via managed **Asset Library avatars** (`Asset://` URIs), NOT raw photoreal image URLs (those trip the "real person" content filter and don't lock identity). `src/video/seedance-asset-library.ts` (`vclaw video seedance-register-assets`) registers character images as Assets, waits for international-profile sync, and writes `artifacts/seedance-assets.json` (canonical schema `schemas/video/artifacts/seedance-assets.schema.json`; shape `{ schemaVersion, projectSlug, groupName, generatedAt, assets:[{name, assetId, assetUri, intlAssetUri}] }`); `readSeedanceAssets(workspaceRoot, slug)` reads it back into a name→`Asset://`-URI map (graceful when absent). On the `seedance-direct` route only, `buildExecutionPayload` (`execution-runtime.ts`) auto-resolves each scene's `referencePaths` from that artifact by matching `scene.characters` names → their `Asset://` URIs (a project without the artifact behaves as before); `native-seedance.ts`'s `seedanceReferenceParams` then routes `Asset://` references into `reference_images`. References are capped at ≤9 image / ≤3 video / ≤3 audio per submission via `assertReferenceBudget`, preflighted across the whole payload in `submitSeedanceDirectNative` before any submit (fail-fast, no partial submission). Describe characters by visual descriptor (not proper names) in prompts — names don't survive across generations. (Validated 2026-05-29 against the same Ark endpoint the user's production project uses.) `@Name` tags in scene prompts (`resolveAssetTags` in `prompt-rules.ts`, lookup via `asset-tag-lookup.ts` `buildAssetTagLookup`) resolve at `buildExecutionPayload` time to the character's visual descriptor (text) + its saved reference (`Asset://`/image), merged through `resolveSceneReferencePaths`; unresolved tags strip the `@` and warn (never fatal), `@imageN` positional bindings are reserved, and it runs before `stripProperNames`. `@location` tags resolve via locked environment plates: `vclaw video environment-auto-create` (`src/video/environment-auto-create.ts`, mirrors `character-auto-create`) generates seamless no-people location plates and writes `artifacts/environment-assets.json` (own schema, like seedance-assets); `readEnvironmentAssets` (`environment-assets.ts`) feeds `buildAssetTagLookup`'s `environmentsByName` so `@tokyo-alley` resolves to the plate descriptor + ref (absent → graceful no-op).
|
|
254
267
|
|
|
@@ -270,6 +283,10 @@ The repeatable cartoon-SHOW production system (from the Jack-Vs-AI workflow). `v
|
|
|
270
283
|
|
|
271
284
|
`vclaw video motion-overlay --input <video>` turns an existing talking-head video into a reel with speech-synced motion-graphics overlays. Pipeline: ingest → transcribe (Gemini STT) → slice into ≤10s takes → compose overlay prompts (retention principles + concept→animation metaphor map live as deterministic code, not markdown) → render via one of four layouts (`split|overlay|motion-only|avatar-host`). Render transports: Omni Flash V2V (moderation-prone on person footage), **local** per-frame render (`render-local.ts`/`animate*.ts` — word reveal, count-up, gauge fill), and `avatar-host` (locked go-bananas character via `--gb-character <Name:ID>`, pin+chain identity). Plan/dry by default; spend requires `--execute --confirm-spend`; retry/resume self-heals probabilistic Flow moderation. See `docs/MOTION_OVERLAY.md`.
|
|
272
285
|
|
|
286
|
+
### Mograph — style-locked motion graphics (`src/video/mograph/`)
|
|
287
|
+
|
|
288
|
+
`vclaw video mograph-sheet` / `mograph-pack` / `mograph-render` / `mograph-logos` generate fleets of motion-graphics clips that share ONE look: a **motion sheet** (`artifacts/motion-sheet.json` — master style-board image + ≤120-word style lock carrying the do-NOT-copy-the-sheet-layout guard + a negative ending in the five audio bans) locks the style once, and a **motion pack** (`artifacts/motion-pack.json` — coverage map + action-only `B###` blocks, P1/P2/P3, `t2v|ref2v|v2v-*` modes) carries pure choreography. `mograph-pack --check` is the anti-drift gate (style words/hex codes banned from actions, quoted on-screen text ≤4 words, SFX-never-music, coverage integrity); `mograph-render` is PLAN-ONLY — it assembles `style lock + SHOT + AUDIO + AVOID` per block and `--emit-batch` compiles a batch-queue manifest for the existing `batch-submit`/`batch-monitor` machinery (refs ride in `characterRefs`, the REFERENCE slot; v2v blocks are set aside for omni-flash or prompt-only, never dropped silently). Creative authoring lives in `skills/mograph/SKILL.md`; contract in `docs/MOGRAPH.md`; design spec in `docs/design/specs/2026-07-13-mograph-native-port.md`. Native port of a licensed external skill's concepts — original wording only, the purchased pack is never committed.
|
|
289
|
+
|
|
273
290
|
### Audio platform (`src/video/audio-platform/`)
|
|
274
291
|
|
|
275
292
|
`narrate`, `dialogue`, `sfx`, and `soundtrack` are backend-pluggable audio commands over a backend registry (`registry.ts`): TTS via `gemini-tts`/`elevenlabs-tts`, SFX via ElevenLabs, music via `lyria` (Vertex), `lyria3` (Gemini API, key-based), `flowmusic` (Lyria 3 Pro vocals via useapi.net), and Suno. All spend-gated: without `--confirm-spend` they exit 3 with `spend_confirmation_required` (`--dry-run` to plan). `assemble` consumes their outputs via the mix-plan (dialogue + SFX mixed at stitch; `assemble/narration-fit.ts` handles TTS-vs-video timing).
|
|
@@ -303,13 +320,34 @@ Two handler families cover the finishing lane. `handlers/media-production.ts`: `
|
|
|
303
320
|
- `check:skill-frontdoor` deliberately ignores `skills/seedance-prompts/SKILL.md` and the three presenter skills (`bunty`, `davendra-presenter`, `nex-presenter`) because their docs legitimately reference the legacy Python pipeline scripts. Don't "fix" the ignore list — it's load-bearing.
|
|
304
321
|
- Do not commit secrets, `.env.local`, provider cookies, or `.omx/` state (already gitignored).
|
|
305
322
|
|
|
323
|
+
## Start in your own worktree
|
|
324
|
+
|
|
325
|
+
Sessions share this repo's `.git`. Two in the MAIN checkout also share its
|
|
326
|
+
working tree, index, HEAD and `dist/` — which on 2026-08-01 absorbed one
|
|
327
|
+
session's uncommitted work into another's commit, wiped `dist/` mid-test-run
|
|
328
|
+
(322 phantom failures), and switched the branch under an in-flight commit. A
|
|
329
|
+
worktree gives a session its own copy of all four.
|
|
330
|
+
|
|
331
|
+
Run `scripts/new-session.sh <name> [branch]` before doing anything else. It
|
|
332
|
+
builds `.claude/worktrees/<name>` off a freshly fetched `origin/main`, links
|
|
333
|
+
`node_modules`, proves the link resolves, and prints the `cd`. Stage explicit
|
|
334
|
+
paths when committing, so a commit holds only what you touched.
|
|
335
|
+
|
|
336
|
+
Working in the main checkout is fine when you are certain you are the only
|
|
337
|
+
session. When you are not certain, you are not.
|
|
338
|
+
|
|
339
|
+
`scripts/hooks/install.sh` activates a `pre-commit` guard: it blocks a commit
|
|
340
|
+
made directly on `main`, and warns when you commit from the main checkout while
|
|
341
|
+
another worktree holds uncommitted work. Both are advisory-on-error and skippable
|
|
342
|
+
with `VCLAW_SKIP_GUARD=1` — a guard that wrongly blocks just gets deleted.
|
|
343
|
+
|
|
306
344
|
## Autonomy directive (from AGENTS.md)
|
|
307
345
|
|
|
308
346
|
Proceed by default on obvious next steps. Keep work scoped to this repository and its generated `projects/<slug>/` folders. If a blocker is local and solvable, solve it; if it's external, note it and continue with the next meaningful lane rather than pausing for confirmation.
|
|
309
347
|
|
|
310
348
|
## Recommended reading order
|
|
311
349
|
|
|
312
|
-
`docs/ARCHITECTURE.md` → `docs/CLI_REFERENCE.md` → `docs/STUDIO.md` → `docs/ASSEMBLE.md` → `docs/PRODUCTION_WORKFLOW.md` → `docs/REVIEW_UI_STORYBOARD_WORKFLOW.md` → `docs/preview-portal-audit.md` → `docs/STORY_BIBLE.md` → `docs/DIRECTOR_BLUEPRINT.md` → `docs/MOTION_OVERLAY.md` → `docs/REFERENCE_SHEETS.md` → `docs/SCENE_CANDIDATES.md` → `docs/OPERATIONS.md` → `docs/GENERATION_TELEMETRY.md` → `docs/OBSIDIAN.md` → `docs/TEMPLATES.md` → `docs/MIGRATION.md` → `docs/DEPRECATION.md` → `docs/RELEASE_READINESS.md` → `docs/MASTER_PLAN_ALIGNMENT.md` → `docs/DIAGRAMS_SOURCE.md`.
|
|
350
|
+
`docs/ARCHITECTURE.md` → `docs/CLI_REFERENCE.md` → `docs/STUDIO.md` → `docs/ASSEMBLE.md` → `docs/PRODUCTION_WORKFLOW.md` → `docs/REVIEW_UI_STORYBOARD_WORKFLOW.md` → `docs/preview-portal-audit.md` → `docs/STORY_BIBLE.md` → `docs/DIRECTOR_BLUEPRINT.md` → `docs/MOTION_OVERLAY.md` → `docs/MOGRAPH.md` → `docs/REFERENCE_SHEETS.md` → `docs/SCENE_CANDIDATES.md` → `docs/OPERATIONS.md` → `docs/GENERATION_TELEMETRY.md` → `docs/OBSIDIAN.md` → `docs/TEMPLATES.md` → `docs/MIGRATION.md` → `docs/DEPRECATION.md` → `docs/RELEASE_READINESS.md` → `docs/MASTER_PLAN_ALIGNMENT.md` → `docs/DIAGRAMS_SOURCE.md`.
|
|
313
351
|
|
|
314
352
|
Architecture decision records live in `docs/adr/` (no-silent-fallback across routes, on-disk project as source of truth, Seedance identity via Asset Library, director-mode approval gate) — consult them before relitigating those decisions.
|
|
315
353
|
|
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@ A command-line tool (`vclaw`) that takes a plain-English idea like *"a 15-second
|
|
|
21
21
|
The complete, idiot-proof **and** agent-ready docs: an [interactive guide](https://videoclaw-docs.vercel.app/guide/), a page for [**every feature**](https://videoclaw-docs.vercel.app/features/) (30+), a [recipe book](https://videoclaw-docs.vercel.app/guide/what-videos) of what you can make, the [skills catalog](https://videoclaw-docs.vercel.app/skills/), and all the deep [reference docs](https://videoclaw-docs.vercel.app/reference/) — with diagrams throughout.
|
|
22
22
|
|
|
23
23
|
> **New here?** The easiest path is to **[drive it by talking to Claude Code](https://videoclaw-docs.vercel.app/guide/with-claude-code)** (or any agent host); there's a dedicated [how-it-works page for agents](https://videoclaw-docs.vercel.app/for-agents/) too.
|
|
24
|
+
>
|
|
25
|
+
> **Agents working in this repo:** read [`docs/CAPABILITIES.md`](docs/CAPABILITIES.md) (or [`llms.txt`](llms.txt)) — a one-read capability manifest: what videoclaw can produce, the provider routes, the spend-safety model, and the full command index. Run `vclaw schema --json` for exact flags.
|
|
24
26
|
> Once you're in Claude Code in this repo, just type **`/concierge`** (or **`/clawbot`**) — or say *"make me a video"* — and **Clawbot**, VideoClaw's mascot and concierge, walks you from idea to finished film, with a preview and your approval before anything costs money.
|
|
25
27
|
|
|
26
28
|
<a href="https://videoclaw-docs.vercel.app/"><img src="./docs/assets/docsite-preview.png" alt="videoclaw documentation site — make AI videos by just talking" width="100%" /></a>
|
|
@@ -152,6 +154,7 @@ No global install? Run it on demand with `npx -p videoclaw@alpha vclaw video pro
|
|
|
152
154
|
```bash
|
|
153
155
|
git clone https://github.com/davendra/videoclaw-v3 && cd videoclaw-v3
|
|
154
156
|
npm install # Node 20+
|
|
157
|
+
python3 -m pip install -r requirements-test.txt # Python 3.9+ test helpers
|
|
155
158
|
npm run build # compile the CLI
|
|
156
159
|
npm test # run the full test suite
|
|
157
160
|
node dist/cli/vclaw.js video providers # show which AI providers are ready
|
|
@@ -436,7 +439,9 @@ workflow documented in
|
|
|
436
439
|
[`docs/REFERENCE_VIDEO_SEEDANCE_MOTION_DESIGN_WORKFLOW.md`](https://videoclaw-docs.vercel.app/reference/REFERENCE_VIDEO_SEEDANCE_MOTION_DESIGN_WORKFLOW).
|
|
437
440
|
Use its director defaults to save a production ledger that follows the
|
|
438
441
|
still-frame-first, start/end-frame, bridge-pose, variant-pass, and post-retiming
|
|
439
|
-
recipe.
|
|
442
|
+
recipe. It binds to loopback by default and uses a one-time launch token plus an
|
|
443
|
+
HttpOnly session cookie; non-loopback hosts require an explicit `--allow-remote`,
|
|
444
|
+
and wildcard binds are refused. Treat the printed launch URL as a credential.
|
|
440
445
|
|
|
441
446
|
`review-autopilot` lets the agent do that handoff without manual clicks once
|
|
442
447
|
storyboard still candidates exist. It locks the best available stills, promotes
|
|
@@ -460,12 +465,16 @@ regenerated automatically on every `produce`/`execute` and `execute-status` poll
|
|
|
460
465
|
`analyze` · `analyze-template` · `template-create` · `template-save` · `template-list` · `template-show` · `template-validate` · `clone-plan` · `clone-init` · `clone-ad` · `clone-execute` · `storyboard-from-clone` · `storyboard-template-list` · `storyboard-template-show`
|
|
461
466
|
|
|
462
467
|
### Character subsystem
|
|
463
|
-
`character-add` · `character-list` · `character-show` · `character-consistency` · `consistency-audit` · `motion-qc` · `character-auto-create` · `environment-auto-create` · `character-import-library` · `find-library` · `library find` · `library clean` · `list-library` · `seedance-register-assets` · `flow-register-characters` · `flow-register-voices` · `voice-clone` · `show-bible` · `show-preflight`
|
|
468
|
+
`character-add` · `character-list` · `character-show` · `character-consistency` · `consistency-audit` · `motion-qc` · `clip-qc` · `keyframe-qc` · `character-auto-create` · `environment-auto-create` · `character-import-library` · `find-library` · `library find` · `library clean` · `list-library` · `seedance-register-assets` · `flow-register-characters` · `flow-register-voices` · `voice-clone` · `show-bible` · `show-preflight`
|
|
464
469
|
|
|
465
470
|
`consistency-audit` is the **automated character identity/costume vision audit**: for each rendered scene it extracts a representative mid-frame and asks an (injectable, Gemini-backed) vision client whether each registered scene character still matches its locked reference face/hair AND costume/colours, plus a deterministic dark-border check and an extra-figure flag — catching wardrobe/identity drift (a dhoti rendering crimson in one scene and tan in another) BEFORE a render is presented as done. It writes `consistency-audit.json` and also runs advisory/non-fatal at the end of a real `produce`/`execute` run when a Gemini key is configured.
|
|
466
471
|
|
|
467
472
|
`motion-qc` is its sibling for **rendering artifacts a still-frame QC pass is blind to**: it samples K dense frames per rendered clip (default 9) and runs a per-frame lane (breath-vapour condensation puffs, film grain rendering as drifting fog over dark regions) plus an adjacent-pair lane (objects/faces **morphing** between moments, solid props **vanishing** mid-clip — anchored on the scene keyframe when bound). Conservative prompts, advisory on transport failure, `clipChecked:false` for image-only/unrendered scenes. Writes `motion-artifact-qc.json`; requires a Gemini vision key. See `docs/CLI_REFERENCE.md`.
|
|
468
473
|
|
|
474
|
+
`clip-qc` is the third lane: a **per-second headcount** over every rendered clip. `consistency-audit` samples one mid-frame and `motion-qc` looks for morph/vanish artefacts — neither counts people, so invented, duplicated, or edge-entering cast is invisible to both (eight clips of a 37-shot film shipped that way). Flags `headcount-variance` (the count changes mid-clip) and `headcount-exceeds-cast` (more people than the scene names), and writes a filmstrip contact sheet per clip to `projects/<slug>/qc/` — that lane needs no vision key. Writes `clip-qc.json`. See `docs/CLI_REFERENCE.md`.
|
|
475
|
+
|
|
476
|
+
`keyframe-qc` is the **fail-fast PRE-render keyframe readiness gate** — deterministic and offline (pure Node PNG IHDR header parse; no vision model, no spend). Given the storyboard's scene count it verifies every scene has `references/scene<i>-keyframe.png`, that each is a readable PNG, and that all keyframes share the dominant WxH; a missing storyboard, missing/unreadable keyframe, or dimension mismatch fails the gate (exit 3, GATE) so an `&&` chain halts BEFORE `produce` spends on drifted keyframes. A uniform-but-non-1280x720 set passes with an advisory. Writes `keyframe-qc.json`.
|
|
477
|
+
|
|
469
478
|
### Portfolio · ops · reporting
|
|
470
479
|
`list` · `index` · `metrics` · `workload` · `next-actions` · `dependencies` · `status` · `doctor-project` · `doctor-portfolio` · `report` · `report-snapshot` · `report-history` · `report-diff` · `trends` · `export-csv` · `artifact-history` · `verify-env` · `cost-estimate`
|
|
471
480
|
|
|
@@ -485,6 +494,9 @@ regenerated automatically on every `produce`/`execute` and `execute-status` poll
|
|
|
485
494
|
### Multi-shot prompt
|
|
486
495
|
`multi-shot` — scaffold / validate / Gemini-author timecoded multi-shot cinematic prompts, with preset discovery, storyboard scene hydration, provider-shaped defaults, and parsed shot artifacts ([docs](https://videoclaw-docs.vercel.app/reference/CLI_REFERENCE))
|
|
487
496
|
|
|
497
|
+
### Motion graphics (style-locked)
|
|
498
|
+
`mograph-sheet` · `mograph-pack` · `mograph-render` · `mograph-logos` — lock a motion-graphics look ONCE in a motion sheet (master style board + ≤120-word style lock), turn the VO into a coverage-mapped pack of action-only P1/P2/P3 blocks, lint them against style drift, and compile batch-eligible blocks into a batch-queue manifest for overnight rendering ([docs](https://videoclaw-docs.vercel.app/reference/MOGRAPH))
|
|
499
|
+
|
|
488
500
|
### Director & brand layer
|
|
489
501
|
`director-blueprint` — validate + persist the project visual bible (`artifacts/project-blueprint.json`); `filmmaking-prompts` auto-appends a prose `DIRECTOR` addendum when present ([docs](https://videoclaw-docs.vercel.app/reference/DIRECTOR_BLUEPRINT)) · `brand-definition` — validate + persist the locked brand system (`artifacts/brand-definition.json`: palette/voice/typography/theme map, strict `#RRGGBB` hex validation); `filmmaking-prompts` auto-appends a prose `BRAND` line when present ([docs](https://videoclaw-docs.vercel.app/reference/BRAND_AGENCY))
|
|
490
502
|
|
|
@@ -507,6 +519,7 @@ Two recent additions are worth calling out because they fix the two things that
|
|
|
507
519
|
- **Diegetic stills** (`vclaw video gen-image`) — generate an in-world **prop**, on-screen **screen** (UI/dashboard), or **overlay** graphic (e.g. a "SYSTEM COMPROMISED" alert) into `assets/props/`. Three backends via `--backend`: **gobananas** (default, `GO_BANANAS_API_KEY`, no OpenAI key), **openai** (gpt-image), and **flow** — Google Flow via useapi.net (`USEAPI_API_TOKEN` + `USEAPI_ACCOUNT_EMAIL`): `imagen-4` / `nano-banana` / `nano-banana-pro` auto-selected by reference count, repeated `--ref` (`reference_1..10`, local paths upload first) + `--character` (`character_1..7`, names resolve via `flow-characters.json`) slots, `--count`/`--seed`, and inline `@reference_N`/`@character_N` prompt markers validated **before any upload or spend**. Per-kind render directives (screens/overlays keep text, props suppress it); `--dry-run` prints the composed request with no spend. Composite it onto footage with the assemble overlay builders. Full guide: [`docs/CLI_REFERENCE.md`](https://videoclaw-docs.vercel.app/reference/CLI_REFERENCE).
|
|
508
520
|
- **Motion-graphics overlays** (`vclaw video overlay`) — composite a graphic onto a clip (time-gated, faded, positioned — pairs with `gen-image` to drop a generated screen/alert onto footage, **font-free + real-render validated**), or burn a pulsing `--alert` / boxed `--lower-third` caption (FFmpeg `drawtext`, needs a libfreetype build). `--dry-run` prints the planned ffmpeg command. Full guide: [`docs/CLI_REFERENCE.md`](https://videoclaw-docs.vercel.app/reference/CLI_REFERENCE).
|
|
509
521
|
- **Motion-overlay reels** (`vclaw video motion-overlay`) — turn an existing **talking-head video** into a reel with **motion-graphics overlays synced to the speech** via Google Flow's **Omni Flash V2V** (kinetic typography / icons / metaphors painted on the footage, original voice preserved). Plan/dry by default — ingest → Gemini STT (or `--transcript`) → sentence-boundary slice into ≤10s takes → per-take overlay-prompt composition → work folder + manifest + `--preview` review surface, **no spend**. `--execute --confirm-spend` renders each take (V2V → audio-restore → clip-stitch). Four layouts (`split` / `overlay` / `motion-only` / `avatar-host`); the `avatar-host` layout fills the frame with an **identity-locked character host** (go-bananas `generate_with_character` → Veo I2V) and needs `--gb-character <Name:ID>`. Full guide: [`docs/MOTION_OVERLAY.md`](https://videoclaw-docs.vercel.app/reference/MOTION_OVERLAY).
|
|
522
|
+
- **Style-locked motion graphics** (`vclaw video mograph-sheet` / `mograph-pack` / `mograph-render` / `mograph-logos`) — generate **fleets of explainer B-roll clips that share one look with zero drift**. A **motion sheet** (master style-board image + ≤120-word style lock, persisted as `artifacts/motion-sheet.json`) locks the visual system ONCE; a **motion pack** turns the VO into time-coded, **action-only** blocks tagged P1/P2/P3, gated by an anti-drift lint (style words and hex codes are banned from choreography). `mograph-render` is plan-only — it assembles `style lock + SHOT + AUDIO + AVOID` per block and compiles a **batch-queue manifest** for `batch-submit`/`batch-monitor` (free explore lane by default); v2v modes route to omni-flash. Clips carry **sound design only** (never music/VO — they sit under your own narration). Full guide: [`docs/MOGRAPH.md`](https://videoclaw-docs.vercel.app/reference/MOGRAPH).
|
|
510
523
|
|
|
511
524
|
- **Music videos** (`vclaw video music-video`) — the **vocal-synced, beat-exact assembler**. From a hand-authored config (song + clip registry + B-roll pools + an explicit vocal map *or* a transcript it auto-classifies into rap / hook / instrumental / outro by **word density**), it pins each performer to **their own vocal** time-aligned across B-roll cutaways (lips stay locked to the muxed song), cuts every segment **frame-exact** (`-frames:v`, never `-t`, so there is **zero cumulative drift**), then concats + applies one grade pass + muxes the song. **Fully local — ffmpeg only, no provider, no spend.** Plan/dry by default; `--execute` renders and asserts the built master matches the plan within one frame. Full guide: [`docs/CLI_REFERENCE.md`](https://videoclaw-docs.vercel.app/reference/CLI_REFERENCE).
|
|
512
525
|
|
|
@@ -635,6 +648,7 @@ Every stage writes a canonical JSON artifact under `projects/<slug>/artifacts/`.
|
|
|
635
648
|
- **character consistency** → `character-consistency.json`
|
|
636
649
|
- **consistency audit** → `consistency-audit.json`
|
|
637
650
|
- **motion-artifact QC** → `motion-artifact-qc.json`
|
|
651
|
+
- **keyframe QC** → `keyframe-qc.json`
|
|
638
652
|
|
|
639
653
|
Artifacts are append-only via `artifacts/history/` and every write emits a machine-readable event to `events/events.jsonl`.
|
|
640
654
|
|
|
@@ -647,6 +661,10 @@ Unit + CLI contract tests run via `node:test`:
|
|
|
647
661
|
```bash
|
|
648
662
|
npm test # build + full suite
|
|
649
663
|
npm run test:node # rerun compiled tests only
|
|
664
|
+
npm run test:coverage # critical security/execution coverage gate
|
|
665
|
+
npm run lint # source safety/style checks
|
|
666
|
+
npm run check:module-size # prevent oversized-module growth
|
|
667
|
+
npm run check:test-python # verify Pillow/fonttools test prerequisites
|
|
650
668
|
node --test dist/tests/cli-full-flow.test.js # single test file
|
|
651
669
|
```
|
|
652
670
|
|
|
@@ -1655,7 +1655,13 @@
|
|
|
1655
1655
|
const asset = (path) => {
|
|
1656
1656
|
const raw = String(path || "");
|
|
1657
1657
|
if (!raw) return "";
|
|
1658
|
-
if (/^https?:\/\//.test(raw))
|
|
1658
|
+
if (/^https?:\/\//.test(raw)) {
|
|
1659
|
+
const canonical = new URL(raw).href;
|
|
1660
|
+
const mediaId = inventory.remoteMediaIds?.[canonical];
|
|
1661
|
+
if (!mediaId) return "";
|
|
1662
|
+
const project = new URLSearchParams(window.location.search).get("project") || "";
|
|
1663
|
+
return `/api/media-proxy?project=${encodeURIComponent(project)}&id=${encodeURIComponent(mediaId)}`;
|
|
1664
|
+
}
|
|
1659
1665
|
let normalized = raw;
|
|
1660
1666
|
if (inventory.root && normalized.startsWith(inventory.root)) {
|
|
1661
1667
|
normalized = normalized.slice(inventory.root.length).replace(/^\/+/, "");
|
|
@@ -1706,6 +1712,7 @@
|
|
|
1706
1712
|
|
|
1707
1713
|
const inventory = {
|
|
1708
1714
|
root: "",
|
|
1715
|
+
remoteMediaIds: {},
|
|
1709
1716
|
projects: [
|
|
1710
1717
|
{ id: "fresh-proof", name: "fresh-proof", path: "projects/fresh-proof", status: "empty scaffold" }
|
|
1711
1718
|
],
|
|
@@ -1848,6 +1855,9 @@
|
|
|
1848
1855
|
next.mediaAssets = Array.isArray(api.mediaAssets)
|
|
1849
1856
|
? api.mediaAssets.map((item) => item.path)
|
|
1850
1857
|
: inventory.mediaAssets;
|
|
1858
|
+
next.remoteMediaIds = api.remoteMediaIds && typeof api.remoteMediaIds === "object"
|
|
1859
|
+
? api.remoteMediaIds
|
|
1860
|
+
: {};
|
|
1851
1861
|
next.referenceSheets = api.referenceSheets || { sheets: [] };
|
|
1852
1862
|
next.sceneCandidates = api.sceneCandidates || { scenes: [] };
|
|
1853
1863
|
next.sceneSelection = api.sceneSelection || { scenes: [] };
|
package/dist/cli/args.js
CHANGED
|
@@ -146,12 +146,12 @@ export function parseSceneCharacters(args) {
|
|
|
146
146
|
for (const assignment of assignments) {
|
|
147
147
|
const separatorIndex = assignment.indexOf(':');
|
|
148
148
|
if (separatorIndex < 0) {
|
|
149
|
-
throw new
|
|
149
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-character value: "${assignment}". Expected sceneIndex:name`, { flag: '--scene-character', value: assignment });
|
|
150
150
|
}
|
|
151
151
|
const sceneIndex = Number(assignment.slice(0, separatorIndex));
|
|
152
152
|
const name = assignment.slice(separatorIndex + 1).trim();
|
|
153
153
|
if (!Number.isInteger(sceneIndex) || sceneIndex < 0 || !name) {
|
|
154
|
-
throw new
|
|
154
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-character value: "${assignment}". Expected sceneIndex:name`, { flag: '--scene-character', value: assignment });
|
|
155
155
|
}
|
|
156
156
|
const current = charactersByScene.get(sceneIndex) ?? [];
|
|
157
157
|
current.push(name);
|
|
@@ -174,10 +174,10 @@ export function parseSceneColorStates(args) {
|
|
|
174
174
|
const sceneIndex = separatorIndex >= 0 ? Number(assignment.slice(0, separatorIndex)) : NaN;
|
|
175
175
|
const gradeId = separatorIndex >= 0 ? assignment.slice(separatorIndex + 1).trim() : '';
|
|
176
176
|
if (!Number.isInteger(sceneIndex) || sceneIndex < 0 || !gradeId) {
|
|
177
|
-
throw new
|
|
177
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-color value: "${assignment}". Expected sceneIndex:gradeId`, { flag: '--scene-color', value: assignment });
|
|
178
178
|
}
|
|
179
179
|
if (!GRADE_FILTER_IDS.includes(gradeId)) {
|
|
180
|
-
throw new
|
|
180
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-color grade "${gradeId}". Known grades: ${GRADE_FILTER_IDS.join(', ')}`, { flag: '--scene-color', value: assignment });
|
|
181
181
|
}
|
|
182
182
|
colorByScene.set(sceneIndex, gradeId);
|
|
183
183
|
}
|
|
@@ -196,7 +196,7 @@ export function parseSceneVoicePresets(args) {
|
|
|
196
196
|
const sceneIndex = separatorIndex >= 0 ? Number(assignment.slice(0, separatorIndex)) : NaN;
|
|
197
197
|
const preset = separatorIndex >= 0 ? assignment.slice(separatorIndex + 1).trim() : '';
|
|
198
198
|
if (!Number.isInteger(sceneIndex) || sceneIndex < 0 || !preset) {
|
|
199
|
-
throw new
|
|
199
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-voice value: "${assignment}". Expected sceneIndex:preset`, { flag: '--scene-voice', value: assignment });
|
|
200
200
|
}
|
|
201
201
|
voiceByScene.set(sceneIndex, preset);
|
|
202
202
|
}
|
|
@@ -216,7 +216,7 @@ export function parseSceneRefVideos(args) {
|
|
|
216
216
|
const sceneIndex = separatorIndex >= 0 ? Number(assignment.slice(0, separatorIndex)) : NaN;
|
|
217
217
|
const mediaId = separatorIndex >= 0 ? assignment.slice(separatorIndex + 1).trim() : '';
|
|
218
218
|
if (!Number.isInteger(sceneIndex) || sceneIndex < 0 || !mediaId) {
|
|
219
|
-
throw new
|
|
219
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-ref-video value: "${assignment}". Expected sceneIndex:mediaId`, { flag: '--scene-ref-video', value: assignment });
|
|
220
220
|
}
|
|
221
221
|
refVideoByScene.set(sceneIndex, mediaId);
|
|
222
222
|
}
|
|
@@ -235,7 +235,7 @@ export function parseSceneFirstFrames(args) {
|
|
|
235
235
|
for (const token of assignment.split(',')) {
|
|
236
236
|
const sceneIndex = Number(token.trim());
|
|
237
237
|
if (!Number.isInteger(sceneIndex) || sceneIndex < 0) {
|
|
238
|
-
throw new
|
|
238
|
+
throw new VclawError('invalid_flag_value', `Invalid --scene-first-frame value: "${assignment}". Expected sceneIndex or sceneIndex,sceneIndex`, { flag: '--scene-first-frame', value: assignment });
|
|
239
239
|
}
|
|
240
240
|
firstFrameScenes.add(sceneIndex);
|
|
241
241
|
}
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,4 +18,28 @@ export declare function handleVideoConsistencyAudit(args: string[]): Promise<voi
|
|
|
18
18
|
* operator knows the audit could not actually look at the frames.
|
|
19
19
|
*/
|
|
20
20
|
export declare function handleVideoMotionQc(args: string[]): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* `vclaw video keyframe-qc` — fail-fast pre-render keyframe readiness gate.
|
|
23
|
+
* Deterministic and offline (pure Node fs, PNG IHDR header parse — no vision
|
|
24
|
+
* model, no spend): given the storyboard's scene count it verifies every scene
|
|
25
|
+
* has `references/scene<i>-keyframe.png`, that each is a readable PNG, and that
|
|
26
|
+
* all keyframes share the dominant WxH. Persists `artifacts/keyframe-qc.json`
|
|
27
|
+
* and exits `ExitCode.GATE` (3) on status 'fail' so an `&&` chain or driver
|
|
28
|
+
* halts BEFORE `produce` spends on drifted/missing keyframes. A uniform but
|
|
29
|
+
* non-1280x720 set is advisory-only ('pass'). `--json` keeps the same
|
|
30
|
+
* machine-readable output (it always emits JSON).
|
|
31
|
+
*/
|
|
32
|
+
export declare function handleVideoKeyframeQc(args: string[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* `vclaw video clip-qc` — per-second headcount over every rendered clip.
|
|
35
|
+
*
|
|
36
|
+
* The gap it fills: `consistency-audit` samples ONE mid-frame (identity) and
|
|
37
|
+
* `motion-qc` samples nine looking for morph/vanish artefacts. Neither counts
|
|
38
|
+
* people, so a figure walking into frame at t≈4s is invisible to both — and to
|
|
39
|
+
* the single-frame grabs an operator does by hand. Eight clips shipped that way.
|
|
40
|
+
*
|
|
41
|
+
* The filmstrip lane runs WITHOUT a vision key, because the contact sheet is
|
|
42
|
+
* what a human actually reads and is what exposed the original defect.
|
|
43
|
+
*/
|
|
44
|
+
export declare function handleVideoClipQc(args: string[]): Promise<void>;
|
|
21
45
|
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/analysis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/analysis.ts"],"names":[],"mappings":"AAgCA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEtE;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/E;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CvE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BzE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHrE"}
|
|
@@ -20,6 +20,8 @@ import { appendVideoContextChangelog } from '../../video/video-context.js';
|
|
|
20
20
|
import { scrapeSite, runBrandExtraction, createBrandDnaArtifact, writeBrandDnaArtifact, } from '../../video/brand-dna.js';
|
|
21
21
|
import { auditProjectConsistency, hasVisionKey } from '../../video/consistency-audit.js';
|
|
22
22
|
import { auditMotionArtifacts, DEFAULT_MOTION_QC_SAMPLE_COUNT } from '../../video/motion-artifact-qc.js';
|
|
23
|
+
import { runKeyframeQc } from '../../video/keyframe-qc.js';
|
|
24
|
+
import { ExitCode } from '../../video/cli-output.js';
|
|
23
25
|
export async function handleVideoAnalyze(args) {
|
|
24
26
|
const slug = parseProjectSlugFlag(args);
|
|
25
27
|
const source = parseFlagValue(args, '--source');
|
|
@@ -178,4 +180,165 @@ export async function handleVideoMotionQc(args) {
|
|
|
178
180
|
await appendVideoContextChangelog(root, `${report.generatedAt} motion-qc: ${report.ok ? 'ok' : `${report.findings.length} finding(s)`} for project ${slug}.`);
|
|
179
181
|
process.stdout.write(`${JSON.stringify({ workspace, artifactPath, report }, null, 2)}\n`);
|
|
180
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* `vclaw video keyframe-qc` — fail-fast pre-render keyframe readiness gate.
|
|
185
|
+
* Deterministic and offline (pure Node fs, PNG IHDR header parse — no vision
|
|
186
|
+
* model, no spend): given the storyboard's scene count it verifies every scene
|
|
187
|
+
* has `references/scene<i>-keyframe.png`, that each is a readable PNG, and that
|
|
188
|
+
* all keyframes share the dominant WxH. Persists `artifacts/keyframe-qc.json`
|
|
189
|
+
* and exits `ExitCode.GATE` (3) on status 'fail' so an `&&` chain or driver
|
|
190
|
+
* halts BEFORE `produce` spends on drifted/missing keyframes. A uniform but
|
|
191
|
+
* non-1280x720 set is advisory-only ('pass'). `--json` keeps the same
|
|
192
|
+
* machine-readable output (it always emits JSON).
|
|
193
|
+
*/
|
|
194
|
+
export async function handleVideoKeyframeQc(args) {
|
|
195
|
+
const slug = parseProjectSlugFlag(args);
|
|
196
|
+
if (!slug) {
|
|
197
|
+
throw new VclawError('missing_required_flag', 'video keyframe-qc requires --project <slug>', { missing: ['--project'] });
|
|
198
|
+
}
|
|
199
|
+
const root = resolveWorkspaceRoot(args);
|
|
200
|
+
const workspace = await ensureProjectWorkspace(slug, root);
|
|
201
|
+
// --cast adds the vision pass: is every character a shot LISTS actually in
|
|
202
|
+
// that shot's keyframe? Opt-in because it costs one call per character per
|
|
203
|
+
// scene, while the rest of this gate is deterministic and free.
|
|
204
|
+
const report = await runKeyframeQc(root, slug, args.includes('--cast') ? { checkCast: true } : {});
|
|
205
|
+
const artifactPath = join(workspace.artifactsDir, 'keyframe-qc.json');
|
|
206
|
+
await writeTextFileAtomic(artifactPath, `${JSON.stringify(report, null, 2)}\n`);
|
|
207
|
+
await appendProjectEvent(workspace, {
|
|
208
|
+
type: 'artifact.keyframe-qc.written',
|
|
209
|
+
recordedAt: report.generatedAt,
|
|
210
|
+
payload: { artifactPath, status: report.status, findings: report.findings.length },
|
|
211
|
+
});
|
|
212
|
+
await appendVideoContextChangelog(root, `${report.generatedAt} keyframe-qc: ${report.status === 'pass' ? 'pass' : `${report.findings.length} finding(s)`} for project ${slug}.`);
|
|
213
|
+
process.stdout.write(`${JSON.stringify({ workspace, artifactPath, report }, null, 2)}\n`);
|
|
214
|
+
if (report.status === 'fail') {
|
|
215
|
+
process.exitCode = ExitCode.GATE;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* `vclaw video clip-qc` — per-second headcount over every rendered clip.
|
|
220
|
+
*
|
|
221
|
+
* The gap it fills: `consistency-audit` samples ONE mid-frame (identity) and
|
|
222
|
+
* `motion-qc` samples nine looking for morph/vanish artefacts. Neither counts
|
|
223
|
+
* people, so a figure walking into frame at t≈4s is invisible to both — and to
|
|
224
|
+
* the single-frame grabs an operator does by hand. Eight clips shipped that way.
|
|
225
|
+
*
|
|
226
|
+
* The filmstrip lane runs WITHOUT a vision key, because the contact sheet is
|
|
227
|
+
* what a human actually reads and is what exposed the original defect.
|
|
228
|
+
*/
|
|
229
|
+
export async function handleVideoClipQc(args) {
|
|
230
|
+
const slug = parseProjectSlugFlag(args);
|
|
231
|
+
if (!slug) {
|
|
232
|
+
throw new VclawError('missing_required_flag', 'video clip-qc requires --project <slug>', {
|
|
233
|
+
missing: ['--project'],
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
const root = resolveWorkspaceRoot(args);
|
|
237
|
+
const samplesFlag = parseFlagValue(args, '--samples');
|
|
238
|
+
let sampleCount = 8;
|
|
239
|
+
if (samplesFlag !== undefined) {
|
|
240
|
+
const parsed = Number(samplesFlag);
|
|
241
|
+
if (!Number.isInteger(parsed) || parsed < 2 || parsed > 24) {
|
|
242
|
+
throw new VclawError('invalid_flag_value', 'video clip-qc --samples must be an integer between 2 and 24', {
|
|
243
|
+
flag: '--samples',
|
|
244
|
+
value: samplesFlag,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
sampleCount = parsed;
|
|
248
|
+
}
|
|
249
|
+
const workspace = await ensureProjectWorkspace(slug, root);
|
|
250
|
+
const { readFile: readFileAsync, mkdir, mkdtemp, rm } = await import('node:fs/promises');
|
|
251
|
+
const { existsSync } = await import('node:fs');
|
|
252
|
+
const { tmpdir } = await import('node:os');
|
|
253
|
+
const { extractFrames } = await import('../../video/motion-overlay/ingest.js');
|
|
254
|
+
const { auditClipHeadcount, createDefaultClipQcFrameClient } = await import('../../video/clip-qc.js');
|
|
255
|
+
const { extractAssetTagNames } = await import('../../video/prompt-rules.js');
|
|
256
|
+
const { listCharacterProfiles } = await import('../../video/characters.js');
|
|
257
|
+
// Expected cast per scene: the storyboard's `characters` field UNION the
|
|
258
|
+
// @tags that resolve to a registered character (a `--scene`-authored
|
|
259
|
+
// storyboard carries no characters field at all, so tags are the common case).
|
|
260
|
+
const storyboardPath = join(workspace.artifactsDir, 'storyboard.json');
|
|
261
|
+
const knownNames = new Set((await listCharacterProfiles(workspace)).map((profile) => profile.name.toLowerCase()));
|
|
262
|
+
const expectedBySceneIndex = new Map();
|
|
263
|
+
if (existsSync(storyboardPath)) {
|
|
264
|
+
const storyboard = JSON.parse(await readFileAsync(storyboardPath, 'utf-8'));
|
|
265
|
+
for (const [index, scene] of (storyboard.scenes ?? []).entries()) {
|
|
266
|
+
const sceneIndex = scene.sceneIndex ?? index;
|
|
267
|
+
const named = new Set();
|
|
268
|
+
for (const name of scene.characters ?? [])
|
|
269
|
+
named.add(name.trim().toLowerCase());
|
|
270
|
+
for (const tag of extractAssetTagNames(scene.description ?? '')) {
|
|
271
|
+
if (knownNames.has(tag.toLowerCase()))
|
|
272
|
+
named.add(tag.toLowerCase());
|
|
273
|
+
}
|
|
274
|
+
if (named.size > 0)
|
|
275
|
+
expectedBySceneIndex.set(sceneIndex, named.size);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
const outputsDir = join(workspace.projectDir, 'outputs');
|
|
279
|
+
const qcDir = join(workspace.projectDir, 'qc');
|
|
280
|
+
const clips = [];
|
|
281
|
+
for (let sceneIndex = 0; sceneIndex < 500; sceneIndex++) {
|
|
282
|
+
const clipPath = join(outputsDir, `scene-${sceneIndex}.mp4`);
|
|
283
|
+
if (existsSync(clipPath))
|
|
284
|
+
clips.push({ sceneIndex, clipPath });
|
|
285
|
+
}
|
|
286
|
+
if (clips.length === 0) {
|
|
287
|
+
process.stdout.write(`${JSON.stringify({ slug, status: 'skipped', reason: 'no rendered scene clips found', outputsDir }, null, 2)}\n`);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
await mkdir(qcDir, { recursive: true });
|
|
291
|
+
const visionAvailable = hasVisionKey();
|
|
292
|
+
const frameDir = await mkdtemp(join(tmpdir(), 'vclaw-clip-qc-'));
|
|
293
|
+
try {
|
|
294
|
+
const sources = [];
|
|
295
|
+
for (const clip of clips) {
|
|
296
|
+
let framePaths = [];
|
|
297
|
+
if (visionAvailable) {
|
|
298
|
+
const sceneFrameDir = join(frameDir, `scene-${clip.sceneIndex}`);
|
|
299
|
+
await mkdir(sceneFrameDir, { recursive: true });
|
|
300
|
+
// 8s is the standard clip length; extractFrames only needs it to pick fps.
|
|
301
|
+
const names = await extractFrames(clip.clipPath, sceneFrameDir, 8, sampleCount);
|
|
302
|
+
framePaths = names.map((name) => join(sceneFrameDir, name)).filter((path) => existsSync(path));
|
|
303
|
+
}
|
|
304
|
+
sources.push({
|
|
305
|
+
sceneIndex: clip.sceneIndex,
|
|
306
|
+
clipPath: clip.clipPath,
|
|
307
|
+
filmstripPath: join(qcDir, `scene-${clip.sceneIndex}-filmstrip.jpg`),
|
|
308
|
+
...(expectedBySceneIndex.has(clip.sceneIndex)
|
|
309
|
+
? { expectedCast: expectedBySceneIndex.get(clip.sceneIndex) }
|
|
310
|
+
: {}),
|
|
311
|
+
framePaths,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
const { runFfmpeg } = await import('../../video/assemble/ffmpeg.js');
|
|
315
|
+
const report = await auditClipHeadcount(slug, sources, {
|
|
316
|
+
sampleCount,
|
|
317
|
+
...(visionAvailable ? { frameClient: createDefaultClipQcFrameClient() } : {}),
|
|
318
|
+
runFfmpeg: async (ffmpegArgs) => {
|
|
319
|
+
await runFfmpeg(ffmpegArgs);
|
|
320
|
+
},
|
|
321
|
+
});
|
|
322
|
+
const artifactPath = join(workspace.artifactsDir, 'clip-qc.json');
|
|
323
|
+
await writeTextFileAtomic(artifactPath, `${JSON.stringify(report, null, 2)}\n`);
|
|
324
|
+
await appendProjectEvent(workspace, {
|
|
325
|
+
type: 'artifact.clip-qc.written',
|
|
326
|
+
recordedAt: report.generatedAt,
|
|
327
|
+
payload: { artifactPath, ok: report.ok, findings: report.findings.length },
|
|
328
|
+
});
|
|
329
|
+
process.stdout.write(`${JSON.stringify({
|
|
330
|
+
artifactPath,
|
|
331
|
+
qcDir,
|
|
332
|
+
headcountLane: visionAvailable ? 'on' : 'off (no Gemini vision key — filmstrips only)',
|
|
333
|
+
...report,
|
|
334
|
+
}, null, 2)}\n`);
|
|
335
|
+
// Headcount findings are advisory, so a clean exit here is correct: this
|
|
336
|
+
// command triages (which filmstrips to open), it does not gate a build.
|
|
337
|
+
if (!report.ok)
|
|
338
|
+
process.exitCode = ExitCode.GATE;
|
|
339
|
+
}
|
|
340
|
+
finally {
|
|
341
|
+
await rm(frameDir, { recursive: true, force: true });
|
|
342
|
+
}
|
|
343
|
+
}
|
|
181
344
|
//# sourceMappingURL=analysis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/cli/handlers/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/cli/handlers/analysis.ts"],"names":[],"mappings":"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"}
|