venice-video-harness 2.4.0
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/CHANGELOG.md +28 -0
- package/LICENSE +21 -0
- package/README.md +598 -0
- package/dist/assembly/manifest-builder.d.ts +8 -0
- package/dist/assembly/manifest-builder.d.ts.map +1 -0
- package/dist/assembly/manifest-builder.js +196 -0
- package/dist/assembly/manifest-builder.js.map +1 -0
- package/dist/assembly/remotion-scaffold.d.ts +14 -0
- package/dist/assembly/remotion-scaffold.d.ts.map +1 -0
- package/dist/assembly/remotion-scaffold.js +292 -0
- package/dist/assembly/remotion-scaffold.js.map +1 -0
- package/dist/assembly/types.d.ts +67 -0
- package/dist/assembly/types.d.ts.map +1 -0
- package/dist/assembly/types.js +5 -0
- package/dist/assembly/types.js.map +1 -0
- package/dist/characters/describer.d.ts +32 -0
- package/dist/characters/describer.d.ts.map +1 -0
- package/dist/characters/describer.js +309 -0
- package/dist/characters/describer.js.map +1 -0
- package/dist/characters/extractor.d.ts +27 -0
- package/dist/characters/extractor.d.ts.map +1 -0
- package/dist/characters/extractor.js +274 -0
- package/dist/characters/extractor.js.map +1 -0
- package/dist/characters/reference-manager.d.ts +95 -0
- package/dist/characters/reference-manager.d.ts.map +1 -0
- package/dist/characters/reference-manager.js +346 -0
- package/dist/characters/reference-manager.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +310 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/editing/aligner.d.ts +44 -0
- package/dist/editing/aligner.d.ts.map +1 -0
- package/dist/editing/aligner.js +201 -0
- package/dist/editing/aligner.js.map +1 -0
- package/dist/editing/edl.d.ts +45 -0
- package/dist/editing/edl.d.ts.map +1 -0
- package/dist/editing/edl.js +133 -0
- package/dist/editing/edl.js.map +1 -0
- package/dist/editing/overlays.d.ts +97 -0
- package/dist/editing/overlays.d.ts.map +1 -0
- package/dist/editing/overlays.js +41 -0
- package/dist/editing/overlays.js.map +1 -0
- package/dist/editing/packer.d.ts +52 -0
- package/dist/editing/packer.d.ts.map +1 -0
- package/dist/editing/packer.js +170 -0
- package/dist/editing/packer.js.map +1 -0
- package/dist/editing/providers/whisper-cpp.d.ts +32 -0
- package/dist/editing/providers/whisper-cpp.d.ts.map +1 -0
- package/dist/editing/providers/whisper-cpp.js +239 -0
- package/dist/editing/providers/whisper-cpp.js.map +1 -0
- package/dist/editing/render.d.ts +36 -0
- package/dist/editing/render.d.ts.map +1 -0
- package/dist/editing/render.js +227 -0
- package/dist/editing/render.js.map +1 -0
- package/dist/editing/self-eval.d.ts +48 -0
- package/dist/editing/self-eval.d.ts.map +1 -0
- package/dist/editing/self-eval.js +293 -0
- package/dist/editing/self-eval.js.map +1 -0
- package/dist/editing/silence.d.ts +76 -0
- package/dist/editing/silence.d.ts.map +1 -0
- package/dist/editing/silence.js +189 -0
- package/dist/editing/silence.js.map +1 -0
- package/dist/editing/types.d.ts +178 -0
- package/dist/editing/types.d.ts.map +1 -0
- package/dist/editing/types.js +13 -0
- package/dist/editing/types.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive.d.ts +12 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +78 -0
- package/dist/interactive.js.map +1 -0
- package/dist/mini-drama/assembler.d.ts +61 -0
- package/dist/mini-drama/assembler.d.ts.map +1 -0
- package/dist/mini-drama/assembler.js +466 -0
- package/dist/mini-drama/assembler.js.map +1 -0
- package/dist/mini-drama/audio-mix.d.ts +65 -0
- package/dist/mini-drama/audio-mix.d.ts.map +1 -0
- package/dist/mini-drama/audio-mix.js +118 -0
- package/dist/mini-drama/audio-mix.js.map +1 -0
- package/dist/mini-drama/cli.d.ts +3 -0
- package/dist/mini-drama/cli.d.ts.map +1 -0
- package/dist/mini-drama/cli.js +2869 -0
- package/dist/mini-drama/cli.js.map +1 -0
- package/dist/mini-drama/fcpxml-export.d.ts +2 -0
- package/dist/mini-drama/fcpxml-export.d.ts.map +1 -0
- package/dist/mini-drama/fcpxml-export.js +5 -0
- package/dist/mini-drama/fcpxml-export.js.map +1 -0
- package/dist/mini-drama/generation-planner.d.ts +24 -0
- package/dist/mini-drama/generation-planner.d.ts.map +1 -0
- package/dist/mini-drama/generation-planner.js +304 -0
- package/dist/mini-drama/generation-planner.js.map +1 -0
- package/dist/mini-drama/location-generator.d.ts +23 -0
- package/dist/mini-drama/location-generator.d.ts.map +1 -0
- package/dist/mini-drama/location-generator.js +144 -0
- package/dist/mini-drama/location-generator.js.map +1 -0
- package/dist/mini-drama/music-cues.d.ts +96 -0
- package/dist/mini-drama/music-cues.d.ts.map +1 -0
- package/dist/mini-drama/music-cues.js +332 -0
- package/dist/mini-drama/music-cues.js.map +1 -0
- package/dist/mini-drama/panel-fixer.d.ts +12 -0
- package/dist/mini-drama/panel-fixer.d.ts.map +1 -0
- package/dist/mini-drama/panel-fixer.js +319 -0
- package/dist/mini-drama/panel-fixer.js.map +1 -0
- package/dist/mini-drama/prompt-builder.d.ts +149 -0
- package/dist/mini-drama/prompt-builder.d.ts.map +1 -0
- package/dist/mini-drama/prompt-builder.js +722 -0
- package/dist/mini-drama/prompt-builder.js.map +1 -0
- package/dist/mini-drama/reference-slots.d.ts +31 -0
- package/dist/mini-drama/reference-slots.d.ts.map +1 -0
- package/dist/mini-drama/reference-slots.js +161 -0
- package/dist/mini-drama/reference-slots.js.map +1 -0
- package/dist/mini-drama/shot-paths.d.ts +77 -0
- package/dist/mini-drama/shot-paths.d.ts.map +1 -0
- package/dist/mini-drama/shot-paths.js +101 -0
- package/dist/mini-drama/shot-paths.js.map +1 -0
- package/dist/mini-drama/storyboard-reference-generator.d.ts +47 -0
- package/dist/mini-drama/storyboard-reference-generator.d.ts.map +1 -0
- package/dist/mini-drama/storyboard-reference-generator.js +293 -0
- package/dist/mini-drama/storyboard-reference-generator.js.map +1 -0
- package/dist/mini-drama/subtitle-generator.d.ts +12 -0
- package/dist/mini-drama/subtitle-generator.d.ts.map +1 -0
- package/dist/mini-drama/subtitle-generator.js +139 -0
- package/dist/mini-drama/subtitle-generator.js.map +1 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.d.ts +3 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.js +150 -0
- package/dist/mini-drama/timeline-export/davinci-fcpxml.js.map +1 -0
- package/dist/mini-drama/timeline-export/fcpxml.d.ts +11 -0
- package/dist/mini-drama/timeline-export/fcpxml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/fcpxml.js +140 -0
- package/dist/mini-drama/timeline-export/fcpxml.js.map +1 -0
- package/dist/mini-drama/timeline-export/index.d.ts +13 -0
- package/dist/mini-drama/timeline-export/index.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/index.js +26 -0
- package/dist/mini-drama/timeline-export/index.js.map +1 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.d.ts +3 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.js +211 -0
- package/dist/mini-drama/timeline-export/premiere-xmeml.js.map +1 -0
- package/dist/mini-drama/timeline-export/probe.d.ts +53 -0
- package/dist/mini-drama/timeline-export/probe.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/probe.js +89 -0
- package/dist/mini-drama/timeline-export/probe.js.map +1 -0
- package/dist/mini-drama/timeline-export/types.d.ts +57 -0
- package/dist/mini-drama/timeline-export/types.d.ts.map +1 -0
- package/dist/mini-drama/timeline-export/types.js +14 -0
- package/dist/mini-drama/timeline-export/types.js.map +1 -0
- package/dist/mini-drama/video-generator.d.ts +22 -0
- package/dist/mini-drama/video-generator.d.ts.map +1 -0
- package/dist/mini-drama/video-generator.js +1305 -0
- package/dist/mini-drama/video-generator.js.map +1 -0
- package/dist/mini-drama/voice-reference.d.ts +42 -0
- package/dist/mini-drama/voice-reference.d.ts.map +1 -0
- package/dist/mini-drama/voice-reference.js +170 -0
- package/dist/mini-drama/voice-reference.js.map +1 -0
- package/dist/output/html-renderer.d.ts +2 -0
- package/dist/output/html-renderer.d.ts.map +1 -0
- package/dist/output/html-renderer.js +37 -0
- package/dist/output/html-renderer.js.map +1 -0
- package/dist/parsers/fountain-parser.d.ts +34 -0
- package/dist/parsers/fountain-parser.d.ts.map +1 -0
- package/dist/parsers/fountain-parser.js +71 -0
- package/dist/parsers/fountain-parser.js.map +1 -0
- package/dist/parsers/pdf-parser.d.ts +24 -0
- package/dist/parsers/pdf-parser.d.ts.map +1 -0
- package/dist/parsers/pdf-parser.js +237 -0
- package/dist/parsers/pdf-parser.js.map +1 -0
- package/dist/parsers/scene-extractor.d.ts +41 -0
- package/dist/parsers/scene-extractor.d.ts.map +1 -0
- package/dist/parsers/scene-extractor.js +400 -0
- package/dist/parsers/scene-extractor.js.map +1 -0
- package/dist/series/manager.d.ts +64 -0
- package/dist/series/manager.d.ts.map +1 -0
- package/dist/series/manager.js +282 -0
- package/dist/series/manager.js.map +1 -0
- package/dist/series/types.d.ts +641 -0
- package/dist/series/types.d.ts.map +1 -0
- package/dist/series/types.js +304 -0
- package/dist/series/types.js.map +1 -0
- package/dist/storyboard/assembler.d.ts +134 -0
- package/dist/storyboard/assembler.d.ts.map +1 -0
- package/dist/storyboard/assembler.js +319 -0
- package/dist/storyboard/assembler.js.map +1 -0
- package/dist/storyboard/prompt-builder.d.ts +113 -0
- package/dist/storyboard/prompt-builder.d.ts.map +1 -0
- package/dist/storyboard/prompt-builder.js +578 -0
- package/dist/storyboard/prompt-builder.js.map +1 -0
- package/dist/storyboard/shot-planner.d.ts +34 -0
- package/dist/storyboard/shot-planner.d.ts.map +1 -0
- package/dist/storyboard/shot-planner.js +446 -0
- package/dist/storyboard/shot-planner.js.map +1 -0
- package/dist/user-config.d.ts +15 -0
- package/dist/user-config.d.ts.map +1 -0
- package/dist/user-config.js +103 -0
- package/dist/user-config.js.map +1 -0
- package/dist/venice/audio-preflight.d.ts +80 -0
- package/dist/venice/audio-preflight.d.ts.map +1 -0
- package/dist/venice/audio-preflight.js +142 -0
- package/dist/venice/audio-preflight.js.map +1 -0
- package/dist/venice/audio.d.ts +88 -0
- package/dist/venice/audio.d.ts.map +1 -0
- package/dist/venice/audio.js +234 -0
- package/dist/venice/audio.js.map +1 -0
- package/dist/venice/client.d.ts +86 -0
- package/dist/venice/client.d.ts.map +1 -0
- package/dist/venice/client.js +375 -0
- package/dist/venice/client.js.map +1 -0
- package/dist/venice/edit.d.ts +57 -0
- package/dist/venice/edit.d.ts.map +1 -0
- package/dist/venice/edit.js +100 -0
- package/dist/venice/edit.js.map +1 -0
- package/dist/venice/generate.d.ts +47 -0
- package/dist/venice/generate.d.ts.map +1 -0
- package/dist/venice/generate.js +150 -0
- package/dist/venice/generate.js.map +1 -0
- package/dist/venice/image-bytes.d.ts +26 -0
- package/dist/venice/image-bytes.d.ts.map +1 -0
- package/dist/venice/image-bytes.js +101 -0
- package/dist/venice/image-bytes.js.map +1 -0
- package/dist/venice/models.d.ts +143 -0
- package/dist/venice/models.d.ts.map +1 -0
- package/dist/venice/models.js +984 -0
- package/dist/venice/models.js.map +1 -0
- package/dist/venice/multi-edit.d.ts +40 -0
- package/dist/venice/multi-edit.d.ts.map +1 -0
- package/dist/venice/multi-edit.js +97 -0
- package/dist/venice/multi-edit.js.map +1 -0
- package/dist/venice/provenance.d.ts +66 -0
- package/dist/venice/provenance.d.ts.map +1 -0
- package/dist/venice/provenance.js +151 -0
- package/dist/venice/provenance.js.map +1 -0
- package/dist/venice/recipe.d.ts +69 -0
- package/dist/venice/recipe.d.ts.map +1 -0
- package/dist/venice/recipe.js +103 -0
- package/dist/venice/recipe.js.map +1 -0
- package/dist/venice/rejection.d.ts +63 -0
- package/dist/venice/rejection.d.ts.map +1 -0
- package/dist/venice/rejection.js +111 -0
- package/dist/venice/rejection.js.map +1 -0
- package/dist/venice/seedance-preflight.d.ts +38 -0
- package/dist/venice/seedance-preflight.d.ts.map +1 -0
- package/dist/venice/seedance-preflight.js +29 -0
- package/dist/venice/seedance-preflight.js.map +1 -0
- package/dist/venice/types.d.ts +212 -0
- package/dist/venice/types.d.ts.map +1 -0
- package/dist/venice/types.js +9 -0
- package/dist/venice/types.js.map +1 -0
- package/dist/venice/video.d.ts +77 -0
- package/dist/venice/video.d.ts.map +1 -0
- package/dist/venice/video.js +163 -0
- package/dist/venice/video.js.map +1 -0
- package/dist/venice/voices.d.ts +40 -0
- package/dist/venice/voices.d.ts.map +1 -0
- package/dist/venice/voices.js +194 -0
- package/dist/venice/voices.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/mini-drama/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SeriesState, ShotScript } from '../series/types.js';
|
|
2
|
+
export type ReferenceSlotKind = 'character-primary' | 'character-angle' | 'storyboard' | 'location';
|
|
3
|
+
export interface ReferenceSlot {
|
|
4
|
+
/** 1-based index — @Image<imageIndex> in the prompt. */
|
|
5
|
+
imageIndex: number;
|
|
6
|
+
kind: ReferenceSlotKind;
|
|
7
|
+
/** Absolute path to the image on disk. */
|
|
8
|
+
path: string;
|
|
9
|
+
/** Character name (character slots), location slug, or storyboard slug. */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Prompt role clause emitted verbatim (without the @ImageN prefix). */
|
|
12
|
+
roleClause: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ReferenceSlotPlan {
|
|
15
|
+
slots: ReferenceSlot[];
|
|
16
|
+
/** Character name -> primary slot imageIndex (for @ImageN name substitution). */
|
|
17
|
+
characterSlotByName: Map<string, number>;
|
|
18
|
+
/** Human-readable notes about what was dropped due to budget. */
|
|
19
|
+
dropped: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build the ordered reference slot plan for a shot on an @Image-tag model.
|
|
23
|
+
*
|
|
24
|
+
* The returned slots array is the exact push order of reference_image_urls;
|
|
25
|
+
* @ImageN in the prompt = slots[N-1]. Characters always occupy the first
|
|
26
|
+
* slots (one primary angle each) so drop decisions never renumber them.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildReferenceSlotPlan(series: SeriesState, shot: ShotScript, modelId: string, options?: {
|
|
29
|
+
characterNames?: string[];
|
|
30
|
+
}): ReferenceSlotPlan;
|
|
31
|
+
//# sourceMappingURL=reference-slots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-slots.d.ts","sourceRoot":"","sources":["../../src/mini-drama/reference-slots.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AASlE,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,iBAAiB,GACjB,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;IACxB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,iFAAiF;IACjF,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,iEAAiE;IACjE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAYD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAC1C,iBAAiB,CAqInB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Reference slot allocator (@Image1..@ImageN)
|
|
3
|
+
//
|
|
4
|
+
// Central bookkeeping for the flat reference_image_urls array on @Image-tag
|
|
5
|
+
// models (Seedance 2.0 R2V family, HappyHorse 1.1 R2V). The @ImageN index in
|
|
6
|
+
// the prompt MUST match the push order of reference_image_urls in the queue
|
|
7
|
+
// body, so both the prompt builder and the video generator consume the SAME
|
|
8
|
+
// ordered slot list built here.
|
|
9
|
+
//
|
|
10
|
+
// Slot order (within the per-model budget, default 9 on Seedance R2V):
|
|
11
|
+
// 1. One primary angle per character (front.png) — identity
|
|
12
|
+
// 2. Storyboard blocking plate(s) for the shot's beat — PROTECTED
|
|
13
|
+
// 3. Location angles (wide, then medium, then detail) — environment
|
|
14
|
+
// 4. Second character angles (three-quarter.png) — extra identity
|
|
15
|
+
//
|
|
16
|
+
// Overflow policy (user decision 2026-07-30): drop second character angles
|
|
17
|
+
// first, then extra location angles; storyboard plates are protected and
|
|
18
|
+
// dropped only if characters + plates alone exceed the budget.
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
import { join } from 'node:path';
|
|
21
|
+
import { existsSync } from 'node:fs';
|
|
22
|
+
import { getMaxReferenceImages } from '../series/types.js';
|
|
23
|
+
import { getCharacterDir, getLocationDir, getLocation, getStoryboardRefPath, } from '../series/manager.js';
|
|
24
|
+
const LOCATION_ANGLE_ORDER_DEFAULT = ['wide.png', 'medium.png', 'detail.png'];
|
|
25
|
+
const LOCATION_ANGLE_ORDER_CLOSER = ['medium.png', 'wide.png', 'detail.png'];
|
|
26
|
+
/**
|
|
27
|
+
* Build the ordered reference slot plan for a shot on an @Image-tag model.
|
|
28
|
+
*
|
|
29
|
+
* The returned slots array is the exact push order of reference_image_urls;
|
|
30
|
+
* @ImageN in the prompt = slots[N-1]. Characters always occupy the first
|
|
31
|
+
* slots (one primary angle each) so drop decisions never renumber them.
|
|
32
|
+
*/
|
|
33
|
+
export function buildReferenceSlotPlan(series, shot, modelId, options = {}) {
|
|
34
|
+
const budget = getMaxReferenceImages(modelId);
|
|
35
|
+
const dropped = [];
|
|
36
|
+
const charNames = options.characterNames ?? shot.characters;
|
|
37
|
+
const resolvedChars = charNames
|
|
38
|
+
.map(name => series.characters.find(c => c.name.toUpperCase() === name.toUpperCase()))
|
|
39
|
+
.filter((c) => Boolean(c));
|
|
40
|
+
// --- Tier 1: one primary angle per character ---
|
|
41
|
+
const primary = [];
|
|
42
|
+
for (const char of resolvedChars) {
|
|
43
|
+
const dir = getCharacterDir(series, char.name);
|
|
44
|
+
const path = ['front.png', 'three-quarter.png']
|
|
45
|
+
.map(f => join(dir, f))
|
|
46
|
+
.find(p => existsSync(p));
|
|
47
|
+
if (!path)
|
|
48
|
+
continue;
|
|
49
|
+
primary.push({
|
|
50
|
+
kind: 'character-primary',
|
|
51
|
+
path,
|
|
52
|
+
label: char.name,
|
|
53
|
+
roleClause: `is ${char.name} — use this reference for ${char.name}'s face, hair, and wardrobe`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// --- Tier 2: storyboard blocking plate (PROTECTED) ---
|
|
57
|
+
const storyboard = [];
|
|
58
|
+
if (shot.storyboardRef) {
|
|
59
|
+
const sbPath = getStoryboardRefPath(series, shot.storyboardRef);
|
|
60
|
+
if (sbPath && existsSync(sbPath)) {
|
|
61
|
+
storyboard.push({
|
|
62
|
+
kind: 'storyboard',
|
|
63
|
+
path: sbPath,
|
|
64
|
+
label: shot.storyboardRef,
|
|
65
|
+
roleClause: 'is the storyboard blocking reference — it shows where the characters are ' +
|
|
66
|
+
'positioned in the location and in relation to each other; use it ONLY for ' +
|
|
67
|
+
'composition, blocking, and spatial relationships. Take each character\'s ' +
|
|
68
|
+
'appearance from their own reference image, and the environment from the ' +
|
|
69
|
+
'location references. It is not a character and not a style reference.',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
dropped.push(`storyboard ref "${shot.storyboardRef}" (not found on disk)`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// --- Tier 3: location angles ---
|
|
77
|
+
const location = [];
|
|
78
|
+
if (shot.location) {
|
|
79
|
+
const loc = getLocation(series, shot.location);
|
|
80
|
+
if (loc) {
|
|
81
|
+
const dir = getLocationDir(series, loc.slug);
|
|
82
|
+
const closer = shot.type === 'close-up' || shot.type === 'reaction' || shot.type === 'insert';
|
|
83
|
+
const order = closer ? LOCATION_ANGLE_ORDER_CLOSER : LOCATION_ANGLE_ORDER_DEFAULT;
|
|
84
|
+
const angleRole = {
|
|
85
|
+
'wide.png': 'a wide angle of the location',
|
|
86
|
+
'medium.png': 'a second angle of the same location',
|
|
87
|
+
'detail.png': 'a third angle of the same location (detail)',
|
|
88
|
+
};
|
|
89
|
+
let angleCount = 0;
|
|
90
|
+
for (const f of order) {
|
|
91
|
+
const p = join(dir, f);
|
|
92
|
+
if (!existsSync(p))
|
|
93
|
+
continue;
|
|
94
|
+
angleCount += 1;
|
|
95
|
+
const anglePhrase = angleCount === 1
|
|
96
|
+
? `is the location environment reference (${loc.name}) — match its setting, architecture, and lighting; it is not a character`
|
|
97
|
+
: `is ${angleRole[f] ?? 'another angle of the same location'} (${loc.name}) — same place, different angle; keep the environment consistent with it`;
|
|
98
|
+
location.push({
|
|
99
|
+
kind: 'location',
|
|
100
|
+
path: p,
|
|
101
|
+
label: loc.slug,
|
|
102
|
+
roleClause: anglePhrase,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// --- Tier 4: second character angles ---
|
|
108
|
+
const charAngles = [];
|
|
109
|
+
for (const char of resolvedChars) {
|
|
110
|
+
const dir = getCharacterDir(series, char.name);
|
|
111
|
+
const primaryPath = primary.find(s => s.label === char.name)?.path;
|
|
112
|
+
const path = ['three-quarter.png', 'profile.png', 'full-body.png']
|
|
113
|
+
.map(f => join(dir, f))
|
|
114
|
+
.find(p => existsSync(p) && p !== primaryPath);
|
|
115
|
+
if (!path)
|
|
116
|
+
continue;
|
|
117
|
+
charAngles.push({
|
|
118
|
+
kind: 'character-angle',
|
|
119
|
+
path,
|
|
120
|
+
label: char.name,
|
|
121
|
+
roleClause: `is a second angle of ${char.name} — same person as ${char.name}'s primary reference`,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// --- Budget allocation ---
|
|
125
|
+
// Priority: primaries > storyboard (protected) > location angles (first
|
|
126
|
+
// angle prioritized over char angles; extra angles below char angles is
|
|
127
|
+
// NOT the chosen policy — user chose: drop char angles first, then extra
|
|
128
|
+
// location angles, storyboard protected. So the fill order is:
|
|
129
|
+
// primaries, storyboard, location[0], charAngles, location[1..]
|
|
130
|
+
// and the DROP order (reverse fill) is: location[1..] last-in-first-out,
|
|
131
|
+
// then charAngles, then location[0], then storyboard.
|
|
132
|
+
// To express "drop second character angles first, then extra location
|
|
133
|
+
// angles" we fill in this order:
|
|
134
|
+
// primaries, storyboard, ALL location angles, charAngles
|
|
135
|
+
// so charAngles overflow first, then trailing location angles.
|
|
136
|
+
const fillOrder = [
|
|
137
|
+
...primary,
|
|
138
|
+
...storyboard,
|
|
139
|
+
...location,
|
|
140
|
+
...charAngles,
|
|
141
|
+
];
|
|
142
|
+
const slots = [];
|
|
143
|
+
for (const candidate of fillOrder) {
|
|
144
|
+
if (slots.length >= budget) {
|
|
145
|
+
dropped.push(`${candidate.kind} "${candidate.label}" (over ${budget}-image budget for ${modelId})`);
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
slots.push({
|
|
149
|
+
imageIndex: slots.length + 1,
|
|
150
|
+
...candidate,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const characterSlotByName = new Map();
|
|
154
|
+
for (const slot of slots) {
|
|
155
|
+
if (slot.kind === 'character-primary') {
|
|
156
|
+
characterSlotByName.set(slot.label.toUpperCase(), slot.imageIndex);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return { slots, characterSlotByName, dropped };
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=reference-slots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-slots.js","sourceRoot":"","sources":["../../src/mini-drama/reference-slots.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type ShotId = number | string;
|
|
2
|
+
/**
|
|
3
|
+
* A timeline placement map keyed by shot id. The string keys are the
|
|
4
|
+
* zero-padded form produced by `shotKey()` — numeric portion padded to 3
|
|
5
|
+
* digits, suffix letters preserved as-is.
|
|
6
|
+
*/
|
|
7
|
+
export type PlacementMap = Record<string, {
|
|
8
|
+
startSec: number;
|
|
9
|
+
endSec: number;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* canonical shot-id key. Numeric portions are zero-padded to 3
|
|
13
|
+
* digits; suffix letters ("b", "c", ...) are preserved as-is.
|
|
14
|
+
*
|
|
15
|
+
* shotKey(3) -> "003"
|
|
16
|
+
* shotKey("3b") -> "003b"
|
|
17
|
+
* shotKey("002c") -> "002c"
|
|
18
|
+
* shotKey("intro") -> "intro" (unrecognized — passed through)
|
|
19
|
+
*/
|
|
20
|
+
export declare function shotKey(id: ShotId): string;
|
|
21
|
+
/** Dialogue file path: `dialogueDir/dialogue-shot-<key>.mp3`. */
|
|
22
|
+
export declare function dialogueFileForShot(dialogueDir: string, id: ShotId): string;
|
|
23
|
+
/** Panel file path: `panelDir/shot-<key>.png`. */
|
|
24
|
+
export declare function panelFileForShot(panelDir: string, id: ShotId): string;
|
|
25
|
+
/** Video file path: `videoDir/shot-<key>.mp4`. */
|
|
26
|
+
export declare function videoFileForShot(videoDir: string, id: ShotId): string;
|
|
27
|
+
/**
|
|
28
|
+
* place a list of narration cues into the timeline by shot id,
|
|
29
|
+
* not by master timestamp. Returns the resolved placement records and an
|
|
30
|
+
* array of warnings — when any cue can't be placed (file missing, shot id
|
|
31
|
+
* not in the placement map), the warning is collected so the assembler
|
|
32
|
+
* can surface it loudly.
|
|
33
|
+
*
|
|
34
|
+
* Centralizing this here means future bugs in dialogue placement only
|
|
35
|
+
* have one place to be fixed.
|
|
36
|
+
*/
|
|
37
|
+
export interface NarrationCue {
|
|
38
|
+
/** Shot id (number or suffix string). */
|
|
39
|
+
shotId: ShotId;
|
|
40
|
+
/** Human-readable label (e.g. "NARRATOR" / character name). */
|
|
41
|
+
label?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Override the dialogue file. Defaults to the canonical
|
|
44
|
+
* `dialogueFileForShot(dialogueDir, shotId)`.
|
|
45
|
+
*/
|
|
46
|
+
audioPath?: string;
|
|
47
|
+
/** Optional offset within the shot's window. Defaults to 0. */
|
|
48
|
+
startOffsetSec?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface PlacedNarrationCue {
|
|
51
|
+
shotId: ShotId;
|
|
52
|
+
label?: string;
|
|
53
|
+
audioPath: string;
|
|
54
|
+
startSec: number;
|
|
55
|
+
endSec: number;
|
|
56
|
+
}
|
|
57
|
+
export declare function placeNarrationCues(opts: {
|
|
58
|
+
cues: NarrationCue[];
|
|
59
|
+
placementMap: PlacementMap;
|
|
60
|
+
dialogueDir: string;
|
|
61
|
+
}): {
|
|
62
|
+
placements: PlacedNarrationCue[];
|
|
63
|
+
warnings: string[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Sanity assertion. After placing narration cues, callers should verify
|
|
67
|
+
* that placements within a contiguous region have distinct startSec values.
|
|
68
|
+
* Collapsing placements (e.g. N narrator beats collapsing to 0 actual
|
|
69
|
+
* placements) typically indicates a fall-through in the placement loop —
|
|
70
|
+
* see the module-level docstring.
|
|
71
|
+
*
|
|
72
|
+
* Returns the array of *suspect* groupings (key = startSec rounded to 2dp,
|
|
73
|
+
* value = colliding cue keys) so the caller can decide whether to warn,
|
|
74
|
+
* error, or log.
|
|
75
|
+
*/
|
|
76
|
+
export declare function findCollidingNarrationStarts(placements: PlacedNarrationCue[]): Map<string, string[]>;
|
|
77
|
+
//# sourceMappingURL=shot-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shot-paths.d.ts","sourceRoot":"","sources":["../../src/mini-drama/shot-paths.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhF;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAK1C;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA2B3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,kBAAkB,EAAE,GAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAavB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Canonical shot-id path builders.
|
|
3
|
+
//
|
|
4
|
+
// Failure mode this prevents: assembly scripts keyed file lookups by unpadded
|
|
5
|
+
// shot ids (`"3"`, `"3b"`, `"3c"`, `"4"`) while dialogue files on disk are
|
|
6
|
+
// zero-padded (`dialogue-shot-003.mp3`, `dialogue-shot-003b.mp3`). Every
|
|
7
|
+
// `existsSync` returned false silently, the for-loop continued past every
|
|
8
|
+
// iteration, and the master shipped with the relevant narration missing.
|
|
9
|
+
//
|
|
10
|
+
// Fix: every harness path that depends on a shot id goes through this
|
|
11
|
+
// module. Numeric ids are zero-padded to 3 digits; suffix letters
|
|
12
|
+
// ("b", "c") are preserved as-is.
|
|
13
|
+
//
|
|
14
|
+
// Anti-pattern: ad-hoc template literals like
|
|
15
|
+
// `dialogue-shot-${id}.mp3`
|
|
16
|
+
// are forbidden in new code — they bypass the padding contract.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
import { existsSync } from 'node:fs';
|
|
19
|
+
import { join } from 'node:path';
|
|
20
|
+
/**
|
|
21
|
+
* canonical shot-id key. Numeric portions are zero-padded to 3
|
|
22
|
+
* digits; suffix letters ("b", "c", ...) are preserved as-is.
|
|
23
|
+
*
|
|
24
|
+
* shotKey(3) -> "003"
|
|
25
|
+
* shotKey("3b") -> "003b"
|
|
26
|
+
* shotKey("002c") -> "002c"
|
|
27
|
+
* shotKey("intro") -> "intro" (unrecognized — passed through)
|
|
28
|
+
*/
|
|
29
|
+
export function shotKey(id) {
|
|
30
|
+
if (typeof id === 'number')
|
|
31
|
+
return String(id).padStart(3, '0');
|
|
32
|
+
const match = id.match(/^(\d+)([a-zA-Z]*)$/);
|
|
33
|
+
if (match)
|
|
34
|
+
return String(match[1]).padStart(3, '0') + match[2];
|
|
35
|
+
return id;
|
|
36
|
+
}
|
|
37
|
+
/** Dialogue file path: `dialogueDir/dialogue-shot-<key>.mp3`. */
|
|
38
|
+
export function dialogueFileForShot(dialogueDir, id) {
|
|
39
|
+
return join(dialogueDir, `dialogue-shot-${shotKey(id)}.mp3`);
|
|
40
|
+
}
|
|
41
|
+
/** Panel file path: `panelDir/shot-<key>.png`. */
|
|
42
|
+
export function panelFileForShot(panelDir, id) {
|
|
43
|
+
return join(panelDir, `shot-${shotKey(id)}.png`);
|
|
44
|
+
}
|
|
45
|
+
/** Video file path: `videoDir/shot-<key>.mp4`. */
|
|
46
|
+
export function videoFileForShot(videoDir, id) {
|
|
47
|
+
return join(videoDir, `shot-${shotKey(id)}.mp4`);
|
|
48
|
+
}
|
|
49
|
+
export function placeNarrationCues(opts) {
|
|
50
|
+
const placements = [];
|
|
51
|
+
const warnings = [];
|
|
52
|
+
for (const cue of opts.cues) {
|
|
53
|
+
const key = shotKey(cue.shotId);
|
|
54
|
+
const window = opts.placementMap[key];
|
|
55
|
+
if (!window) {
|
|
56
|
+
warnings.push(`narration: shot id ${key} not in placement map — skipping`);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const audioPath = cue.audioPath ?? dialogueFileForShot(opts.dialogueDir, cue.shotId);
|
|
60
|
+
if (!existsSync(audioPath)) {
|
|
61
|
+
warnings.push(`narration: missing dialogue file ${audioPath} — skipping`);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const startSec = window.startSec + (cue.startOffsetSec ?? 0);
|
|
65
|
+
placements.push({
|
|
66
|
+
shotId: cue.shotId,
|
|
67
|
+
label: cue.label,
|
|
68
|
+
audioPath,
|
|
69
|
+
startSec,
|
|
70
|
+
endSec: window.endSec,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return { placements, warnings };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sanity assertion. After placing narration cues, callers should verify
|
|
77
|
+
* that placements within a contiguous region have distinct startSec values.
|
|
78
|
+
* Collapsing placements (e.g. N narrator beats collapsing to 0 actual
|
|
79
|
+
* placements) typically indicates a fall-through in the placement loop —
|
|
80
|
+
* see the module-level docstring.
|
|
81
|
+
*
|
|
82
|
+
* Returns the array of *suspect* groupings (key = startSec rounded to 2dp,
|
|
83
|
+
* value = colliding cue keys) so the caller can decide whether to warn,
|
|
84
|
+
* error, or log.
|
|
85
|
+
*/
|
|
86
|
+
export function findCollidingNarrationStarts(placements) {
|
|
87
|
+
const grouped = new Map();
|
|
88
|
+
for (const p of placements) {
|
|
89
|
+
const k = p.startSec.toFixed(2);
|
|
90
|
+
const list = grouped.get(k) ?? [];
|
|
91
|
+
list.push(shotKey(p.shotId));
|
|
92
|
+
grouped.set(k, list);
|
|
93
|
+
}
|
|
94
|
+
const collisions = new Map();
|
|
95
|
+
for (const [k, v] of grouped) {
|
|
96
|
+
if (v.length > 1)
|
|
97
|
+
collisions.set(k, v);
|
|
98
|
+
}
|
|
99
|
+
return collisions;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=shot-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shot-paths.js","sourceRoot":"","sources":["../../src/mini-drama/shot-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { VeniceClient } from '../venice/client.js';
|
|
2
|
+
import type { SeriesState, StoryboardReference, EpisodeScript } from '../series/types.js';
|
|
3
|
+
export interface GenerateStoryboardReferenceOptions {
|
|
4
|
+
/** Override the image-generation model (default: series imageDefaults / nano-banana-2). */
|
|
5
|
+
model?: string;
|
|
6
|
+
/** cfg_scale (default 10). */
|
|
7
|
+
cfgScale?: number;
|
|
8
|
+
/** Regenerate even if the plate already exists on disk (archives prior). */
|
|
9
|
+
force?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Generate (or reuse) the composed blocking plate for a storyboard reference.
|
|
13
|
+
* Writes `storyboards/<slug>.png` plus a `.prompt.json` sidecar, provenance
|
|
14
|
+
* (hasFace matches whether characters were composed), and a recipe pass.
|
|
15
|
+
* Returns the on-disk path.
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateStoryboardReference(client: VeniceClient, series: SeriesState, ref: StoryboardReference, options?: GenerateStoryboardReferenceOptions): Promise<{
|
|
18
|
+
path: string;
|
|
19
|
+
skipped: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Plan storyboard blocking plates per scene BEAT (user decision 2026-07-30:
|
|
23
|
+
* per-beat granularity, auto-planned, reused across the beat's shots).
|
|
24
|
+
*
|
|
25
|
+
* A beat is a maximal run of consecutive shots that:
|
|
26
|
+
* - involve 2+ characters (single-character shots don't need blocking), and
|
|
27
|
+
* - share the same location, and
|
|
28
|
+
* - keep an overlapping character set (a full cast change starts a new beat).
|
|
29
|
+
*
|
|
30
|
+
* Each beat gets one StoryboardReference whose description is synthesized
|
|
31
|
+
* from the beat's first multi-character shot; shots in the beat get
|
|
32
|
+
* `storyboardRef` set to the plate's slug. Pre-existing per-shot
|
|
33
|
+
* `storyboardRef` values are always respected and never overwritten.
|
|
34
|
+
*/
|
|
35
|
+
export declare function planStoryboardBeats(script: EpisodeScript): StoryboardReference[];
|
|
36
|
+
/**
|
|
37
|
+
* Plan beats for an episode (idempotent — respects existing storyboardRefs
|
|
38
|
+
* and previously planned plates), merge them into script.storyboardRefs, and
|
|
39
|
+
* generate any plates missing on disk. Called from workshop-episode after
|
|
40
|
+
* location generation, and best-effort from generate-videos so hand-edited
|
|
41
|
+
* scripts pick up plates too.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ensureEpisodeStoryboardReferences(client: VeniceClient, series: SeriesState, script: EpisodeScript, options?: GenerateStoryboardReferenceOptions): Promise<{
|
|
44
|
+
generated: string[];
|
|
45
|
+
skipped: string[];
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=storyboard-reference-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyboard-reference-generator.d.ts","sourceRoot":"","sources":["../../src/mini-drama/storyboard-reference-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAc,MAAM,oBAAoB,CAAC;AA2BtG,MAAM,WAAW,kCAAkC;IACjD,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,mBAAmB,EACxB,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA6J7C;AAcD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,mBAAmB,EAAE,CA6ChF;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA2BrD"}
|