@argo-video/cli 0.13.0 → 0.14.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/README.md +102 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +105 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +18 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/dashboard.d.ts +22 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +186 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/export.d.ts +13 -2
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +136 -16
- package/dist/export.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +2 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +18 -0
- package/dist/media.js.map +1 -0
- package/dist/pipeline.d.ts +8 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +59 -53
- package/dist/pipeline.js.map +1 -1
- package/dist/preview.d.ts +13 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +27 -10
- package/dist/preview.js.map +1 -1
- package/dist/progress.d.ts +8 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +67 -0
- package/dist/progress.js.map +1 -0
- package/dist/speed-ramp.d.ts +39 -0
- package/dist/speed-ramp.d.ts.map +1 -0
- package/dist/speed-ramp.js +184 -0
- package/dist/speed-ramp.js.map +1 -0
- package/dist/timeline.d.ts +19 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +82 -0
- package/dist/timeline.js.map +1 -0
- package/dist/transitions.d.ts +15 -0
- package/dist/transitions.d.ts.map +1 -0
- package/dist/transitions.js +124 -0
- package/dist/transitions.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -129,7 +129,12 @@ export default defineConfig({
|
|
|
129
129
|
browser: 'webkit', // webkit > firefox > chromium on macOS
|
|
130
130
|
// deviceScaleFactor: 2, // enable after webkit 2x fix
|
|
131
131
|
},
|
|
132
|
-
export: {
|
|
132
|
+
export: {
|
|
133
|
+
preset: 'slow', crf: 16,
|
|
134
|
+
transition: { type: 'fade-through-black', durationMs: 2000 }, // scene transitions (2s+ recommended)
|
|
135
|
+
speedRamp: { gapSpeed: 2.0 }, // speed up gaps between scenes
|
|
136
|
+
formats: ['gif', '9:16'], // additional export formats
|
|
137
|
+
},
|
|
133
138
|
overlays: {
|
|
134
139
|
autoBackground: true,
|
|
135
140
|
// defaultPlacement: 'top-right',
|
|
@@ -139,6 +144,36 @@ export default defineConfig({
|
|
|
139
144
|
|
|
140
145
|
> **Tip:** Use `browser: 'webkit'` for sharper video on macOS. Chromium has a [known video capture quality issue](https://github.com/microsoft/playwright/issues/31424). Set `deviceScaleFactor: 2` for retina-quality recordings (captured at 2x, downscaled with lanczos in export).
|
|
141
146
|
|
|
147
|
+
### Mobile Demos
|
|
148
|
+
|
|
149
|
+
Record mobile-viewport demos with touch support:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
// In your demo script
|
|
153
|
+
test.use({
|
|
154
|
+
viewport: { width: 390, height: 664 },
|
|
155
|
+
isMobile: true,
|
|
156
|
+
hasTouch: true,
|
|
157
|
+
video: { mode: 'on' as const, size: { width: 390, height: 664 } },
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Or set mobile options globally in config:
|
|
162
|
+
|
|
163
|
+
```js
|
|
164
|
+
video: {
|
|
165
|
+
width: 390,
|
|
166
|
+
height: 664,
|
|
167
|
+
browser: 'webkit',
|
|
168
|
+
isMobile: true,
|
|
169
|
+
hasTouch: true,
|
|
170
|
+
},
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
> **Important:** Set `video.size` to match the viewport in `test.use()`, otherwise the capture canvas defaults to 1920×1080 and the mobile viewport renders with gray padding. Use `.tap()` instead of `.click()` for touch interactions.
|
|
174
|
+
|
|
175
|
+
See `demos/mobile.demo.ts` for a complete mobile demo example.
|
|
176
|
+
|
|
142
177
|
### `playwright.config.ts`
|
|
143
178
|
|
|
144
179
|
Argo scaffolds this for you via `argo init`. The key settings:
|
|
@@ -177,8 +212,10 @@ argo record <demo> Record browser session
|
|
|
177
212
|
argo tts generate <manifest> Generate TTS clips from manifest
|
|
178
213
|
argo export <demo> Merge video + audio to MP4
|
|
179
214
|
argo pipeline <demo> Run all steps end-to-end
|
|
215
|
+
argo pipeline --all Run pipeline for every demo in demosDir
|
|
180
216
|
argo validate <demo> Check scene name consistency (no TTS/recording)
|
|
181
217
|
argo preview <demo> Browser-based editor for voiceover, overlays, timing
|
|
218
|
+
argo preview Multi-demo dashboard (lists all demos with status)
|
|
182
219
|
argo doctor Check environment (ffmpeg, Playwright, config)
|
|
183
220
|
argo --config <path> <command> Use a custom config file
|
|
184
221
|
|
|
@@ -186,6 +223,7 @@ Options:
|
|
|
186
223
|
--browser <engine> chromium | webkit | firefox (overrides config)
|
|
187
224
|
--base-url <url> Override baseURL from config
|
|
188
225
|
--headed Run browser in visible mode
|
|
226
|
+
--all Run pipeline for all demos
|
|
189
227
|
--port <number> Preview server port (default: auto)
|
|
190
228
|
```
|
|
191
229
|
|
|
@@ -299,7 +337,69 @@ choco install ffmpeg # Windows
|
|
|
299
337
|
|
|
300
338
|
3. **Align** — Each TTS clip is placed at its scene's recorded timestamp. Overlapping clips are pushed forward with a 100ms gap. All clips are mixed into a single `narration-aligned.wav`.
|
|
301
339
|
|
|
302
|
-
4. **Export** — ffmpeg combines the screen recording (WebM) with the aligned narration (WAV) into an H.264 MP4 with chapter markers. Subtitle files (`.srt` + `.vtt`) and a scene report are generated alongside the video.
|
|
340
|
+
4. **Export** — ffmpeg combines the screen recording (WebM) with the aligned narration (WAV) into an H.264 MP4 with chapter markers. Subtitle files (`.srt` + `.vtt`) and a scene report are generated alongside the video. A progress bar shows encoding percentage during export.
|
|
341
|
+
|
|
342
|
+
### Scene Transitions
|
|
343
|
+
|
|
344
|
+
Add smooth transitions between scenes:
|
|
345
|
+
|
|
346
|
+
```js
|
|
347
|
+
export: {
|
|
348
|
+
transition: { type: 'fade-through-black', durationMs: 2000 },
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
> **Tip:** Use `durationMs: 2000` or higher for transitions that are clearly visible during narration. Short durations (500ms) look like glitches rather than intentional transitions.
|
|
353
|
+
|
|
354
|
+
Transition types: `fade-through-black`, `dissolve` (quicker dip-to-black, not a true crossfade), `wipe-left`, `wipe-right`.
|
|
355
|
+
|
|
356
|
+
> **Tip:** Content changes (page navigation, slide switches) should happen **before** `narration.mark()` so the transition fades between the old and new content. If you change content after `mark()`, the transition just pulses the same visual.
|
|
357
|
+
|
|
358
|
+
### Speed Ramp
|
|
359
|
+
|
|
360
|
+
Compress gaps between scenes (navigation, page loads) to keep demos tight:
|
|
361
|
+
|
|
362
|
+
```js
|
|
363
|
+
export: {
|
|
364
|
+
speedRamp: { gapSpeed: 2.0, minGapMs: 500 },
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
`gapSpeed: 2.0` means inter-scene gaps play at 2× speed. Only gaps longer than `minGapMs` (default 500ms) are affected. Both video and audio are sped up together.
|
|
369
|
+
|
|
370
|
+
### Multi-Format Export
|
|
371
|
+
|
|
372
|
+
Export additional formats alongside the main 16:9 MP4:
|
|
373
|
+
|
|
374
|
+
```js
|
|
375
|
+
export: {
|
|
376
|
+
formats: ['1:1', '9:16', 'gif'],
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
- `1:1` — Square crop (centered) for Instagram/LinkedIn
|
|
381
|
+
- `9:16` — Vertical crop (centered) for TikTok/Reels. Note: center-crops from 16:9, so wide text may be clipped. Works best when key content is centered.
|
|
382
|
+
- `gif` — Animated GIF with palette optimization for docs/READMEs
|
|
383
|
+
|
|
384
|
+
### Batch Pipeline
|
|
385
|
+
|
|
386
|
+
Build all demos in one command:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
npx argo pipeline --all
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Discovers all `.scenes.json` files in `demosDir` and runs the full pipeline for each.
|
|
393
|
+
|
|
394
|
+
### Dashboard
|
|
395
|
+
|
|
396
|
+
View all demos at a glance:
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
npx argo preview
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Opens a dashboard listing every discovered demo with build status, video size, resolution, and quick-action links. Run `argo preview <demo>` for the single-demo editor.
|
|
303
403
|
|
|
304
404
|
## Example
|
|
305
405
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA6C5C,wBAAgB,aAAa,IAAI,OAAO,CA8RvC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { Command, Option } from 'commander';
|
|
2
2
|
import { basename } from 'node:path';
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
4
5
|
import { loadConfig } from './config.js';
|
|
5
6
|
import { record } from './record.js';
|
|
6
7
|
import { generateClips } from './tts/generate.js';
|
|
7
8
|
import { exportVideo } from './export.js';
|
|
8
|
-
import { runPipeline } from './pipeline.js';
|
|
9
|
+
import { runPipeline, runBatchPipeline } from './pipeline.js';
|
|
9
10
|
import { init, initFrom } from './init.js';
|
|
10
11
|
import { startPreviewServer } from './preview.js';
|
|
12
|
+
import { startDashboardServer } from './dashboard.js';
|
|
11
13
|
import { validateDemo } from './validate.js';
|
|
12
14
|
import { runDoctor, formatDoctorResults } from './doctor.js';
|
|
15
|
+
import { getVideoDurationMs } from './media.js';
|
|
16
|
+
import { buildPlacementsFromTimingAndDurations, buildSceneDurationsFromCache, buildSceneTexts, computeHeadTrimMs, readScenesManifest, shiftPlacements, } from './timeline.js';
|
|
17
|
+
import { generateChapterMetadata } from './chapters.js';
|
|
18
|
+
import { generateSrt, generateVtt } from './subtitles.js';
|
|
19
|
+
import { applySpeedRampToTimeline } from './speed-ramp.js';
|
|
13
20
|
function validateDemoName(name) {
|
|
14
21
|
if (!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(name)) {
|
|
15
22
|
throw new Error(`Invalid demo name "${name}": only letters, numbers, hyphens, and underscores are allowed.`);
|
|
@@ -85,6 +92,40 @@ export function createProgram() {
|
|
|
85
92
|
validateDemoName(demo);
|
|
86
93
|
const configPath = program.opts().config;
|
|
87
94
|
const config = await loadConfig(process.cwd(), configPath);
|
|
95
|
+
const demoDir = `.argo/${demo}`;
|
|
96
|
+
const timingPath = `${demoDir}/.timing.json`;
|
|
97
|
+
const manifestPath = `${config.demosDir}/${demo}.scenes.json`;
|
|
98
|
+
let chapterMetadataPath;
|
|
99
|
+
let placements;
|
|
100
|
+
let totalDurationMs;
|
|
101
|
+
let headTrimMs;
|
|
102
|
+
let speedRampSegments;
|
|
103
|
+
if (existsSync(timingPath) && existsSync(manifestPath)) {
|
|
104
|
+
const timing = JSON.parse(readFileSync(timingPath, 'utf-8'));
|
|
105
|
+
const manifestEntries = readScenesManifest(manifestPath);
|
|
106
|
+
const rawVideoDurationMs = getVideoDurationMs(`${demoDir}/video.webm`);
|
|
107
|
+
const sceneDurations = buildSceneDurationsFromCache(demo, manifestEntries, { voice: config.tts.defaultVoice, speed: config.tts.defaultSpeed });
|
|
108
|
+
const untrimmedPlacements = buildPlacementsFromTimingAndDurations(timing, sceneDurations, rawVideoDurationMs);
|
|
109
|
+
const computedHeadTrimMs = computeHeadTrimMs(timing);
|
|
110
|
+
const shiftedPlacements = shiftPlacements(untrimmedPlacements, computedHeadTrimMs);
|
|
111
|
+
const shiftedDurationMs = rawVideoDurationMs - computedHeadTrimMs;
|
|
112
|
+
const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp);
|
|
113
|
+
placements = speedRampPlan.placements;
|
|
114
|
+
totalDurationMs = speedRampPlan.totalDurationMs;
|
|
115
|
+
speedRampSegments = speedRampPlan.segments;
|
|
116
|
+
headTrimMs = computedHeadTrimMs > 0 ? computedHeadTrimMs : undefined;
|
|
117
|
+
chapterMetadataPath = `${demoDir}/chapters.txt`;
|
|
118
|
+
writeFileSync(chapterMetadataPath, generateChapterMetadata(placements, totalDurationMs), 'utf-8');
|
|
119
|
+
const sceneTexts = buildSceneTexts(manifestEntries);
|
|
120
|
+
if (Object.keys(sceneTexts).length > 0) {
|
|
121
|
+
mkdirSync(config.outputDir, { recursive: true });
|
|
122
|
+
writeFileSync(`${config.outputDir}/${demo}.srt`, generateSrt(placements, sceneTexts), 'utf-8');
|
|
123
|
+
writeFileSync(`${config.outputDir}/${demo}.vtt`, generateVtt(placements, sceneTexts), 'utf-8');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.warn(`Warning: missing timing or manifest for ${demo}; exporting without chapters, subtitles, transitions, or speed ramp.`);
|
|
128
|
+
}
|
|
88
129
|
await exportVideo({
|
|
89
130
|
demoName: demo,
|
|
90
131
|
argoDir: '.argo',
|
|
@@ -96,16 +137,23 @@ export function createProgram() {
|
|
|
96
137
|
outputHeight: config.video.height,
|
|
97
138
|
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
98
139
|
thumbnailPath: config.export.thumbnailPath,
|
|
140
|
+
chapterMetadataPath,
|
|
141
|
+
formats: config.export.formats,
|
|
142
|
+
transition: chapterMetadataPath ? config.export.transition : undefined,
|
|
143
|
+
placements,
|
|
144
|
+
totalDurationMs,
|
|
145
|
+
headTrimMs,
|
|
146
|
+
speedRampSegments,
|
|
99
147
|
});
|
|
100
148
|
});
|
|
101
149
|
program
|
|
102
|
-
.command('pipeline
|
|
150
|
+
.command('pipeline [demo]')
|
|
103
151
|
.description('Run the full pipeline: TTS → record → export')
|
|
104
152
|
.addOption(new Option('--browser <engine>', 'browser engine').choices(['chromium', 'webkit', 'firefox']))
|
|
105
153
|
.option('--base-url <url>', 'override baseURL from config')
|
|
106
154
|
.option('--headed', 'run browser in headed mode (visible window)')
|
|
155
|
+
.option('--all', 'run pipeline for all demos in demosDir')
|
|
107
156
|
.action(async (demo, cmdOpts) => {
|
|
108
|
-
validateDemoName(demo);
|
|
109
157
|
const configPath = program.opts().config;
|
|
110
158
|
const loaded = await ensureTTSEngine(await loadConfig(process.cwd(), configPath));
|
|
111
159
|
let config = cmdOpts.browser
|
|
@@ -114,7 +162,20 @@ export function createProgram() {
|
|
|
114
162
|
if (cmdOpts.baseUrl) {
|
|
115
163
|
config = { ...config, baseURL: cmdOpts.baseUrl };
|
|
116
164
|
}
|
|
117
|
-
|
|
165
|
+
if (cmdOpts.all) {
|
|
166
|
+
const demos = (await import('./pipeline.js')).discoverDemos(config.demosDir);
|
|
167
|
+
const results = await runBatchPipeline(config, { headed: cmdOpts.headed });
|
|
168
|
+
if (results.length < demos.length) {
|
|
169
|
+
process.exitCode = 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (demo) {
|
|
173
|
+
validateDemoName(demo);
|
|
174
|
+
await runPipeline(demo, config, { headed: cmdOpts.headed });
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
throw new Error('Provide a demo name or use --all to run all demos.');
|
|
178
|
+
}
|
|
118
179
|
});
|
|
119
180
|
program
|
|
120
181
|
.command('validate <demo>')
|
|
@@ -152,13 +213,38 @@ export function createProgram() {
|
|
|
152
213
|
process.exitCode = 1;
|
|
153
214
|
});
|
|
154
215
|
program
|
|
155
|
-
.command('preview
|
|
156
|
-
.description('Start a browser-based preview server
|
|
216
|
+
.command('preview [demo]')
|
|
217
|
+
.description('Start a browser-based preview server (omit demo name for dashboard)')
|
|
157
218
|
.option('--port <number>', 'server port (default: auto)', parseInt)
|
|
158
219
|
.action(async (demo, cmdOpts) => {
|
|
159
|
-
validateDemoName(demo);
|
|
160
220
|
const configPath = program.opts().config;
|
|
161
221
|
const config = await loadConfig(process.cwd(), configPath);
|
|
222
|
+
if (!demo) {
|
|
223
|
+
// Dashboard mode — list all demos
|
|
224
|
+
const { url } = await startDashboardServer({
|
|
225
|
+
demosDir: config.demosDir,
|
|
226
|
+
outputDir: config.outputDir,
|
|
227
|
+
port: cmdOpts.port,
|
|
228
|
+
ttsDefaults: { voice: config.tts.defaultVoice, speed: config.tts.defaultSpeed },
|
|
229
|
+
exportConfig: {
|
|
230
|
+
preset: config.export.preset,
|
|
231
|
+
crf: config.export.crf,
|
|
232
|
+
fps: config.video.fps,
|
|
233
|
+
outputWidth: config.video.width,
|
|
234
|
+
outputHeight: config.video.height,
|
|
235
|
+
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
236
|
+
thumbnailPath: config.export.thumbnailPath,
|
|
237
|
+
formats: config.export.formats,
|
|
238
|
+
transition: config.export.transition,
|
|
239
|
+
speedRamp: config.export.speedRamp,
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
console.log(`\nArgo Dashboard running at: ${url}`);
|
|
243
|
+
console.log('Press Ctrl+C to stop.\n');
|
|
244
|
+
await new Promise(() => { });
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
validateDemoName(demo);
|
|
162
248
|
const { url } = await startPreviewServer({
|
|
163
249
|
demoName: demo,
|
|
164
250
|
argoDir: '.argo',
|
|
@@ -169,6 +255,18 @@ export function createProgram() {
|
|
|
169
255
|
voice: config.tts.defaultVoice,
|
|
170
256
|
speed: config.tts.defaultSpeed,
|
|
171
257
|
},
|
|
258
|
+
exportConfig: {
|
|
259
|
+
preset: config.export.preset,
|
|
260
|
+
crf: config.export.crf,
|
|
261
|
+
fps: config.video.fps,
|
|
262
|
+
outputWidth: config.video.width,
|
|
263
|
+
outputHeight: config.video.height,
|
|
264
|
+
deviceScaleFactor: config.video.deviceScaleFactor,
|
|
265
|
+
thumbnailPath: config.export.thumbnailPath,
|
|
266
|
+
formats: config.export.formats,
|
|
267
|
+
transition: config.export.transition,
|
|
268
|
+
speedRamp: config.export.speedRamp,
|
|
269
|
+
},
|
|
172
270
|
});
|
|
173
271
|
console.log(`\nArgo Preview running at: ${url}`);
|
|
174
272
|
console.log('Press Ctrl+C to stop.\n');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qCAAqC,EACrC,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAgB,MAAM,iBAAiB,CAAC;AAGzE,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,iEAAiE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAkB;IAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,kFAAkF,CAAC;SAC/F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAExD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAiE,EAAE,EAAE;QAChG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,OAAO,GAAI,OAAO,CAAC,OAAyB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,MAAM,MAAM,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACjE,OAAO;YACP,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;YAC3C,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc;YAC/C,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB;YACnD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,CAAC;YAClB,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACpH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAO;YAC1B,WAAW,EAAE,GAAG;YAChB,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,SAAS,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,OAAO,eAAe,CAAC;QAC7C,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,cAAc,CAAC;QAC9D,IAAI,mBAAuC,CAAC;QAC5C,IAAI,UAAmC,CAAC;QACxC,IAAI,eAAmC,CAAC;QACxC,IAAI,UAA8B,CAAC;QACnC,IAAI,iBAAwC,CAAC;QAE7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA2B,CAAC;YACvF,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACzD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,4BAA4B,CACjD,IAAI,EACJ,eAAe,EACf,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CACnE,CAAC;YACF,MAAM,mBAAmB,GAAG,qCAAqC,CAC/D,MAAM,EACN,cAAc,EACd,kBAAkB,CACnB,CAAC;YACF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;YACnF,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;YAClE,MAAM,aAAa,GAAG,wBAAwB,CAC5C,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;YAEF,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;YACtC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;YAChD,iBAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;YAC3C,UAAU,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YAErE,mBAAmB,GAAG,GAAG,OAAO,eAAe,CAAC;YAChD,aAAa,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;YAElG,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjD,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/F,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,2CAA2C,IAAI,sEAAsE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,CAAC;YAChB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;YACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;YAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;YACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YAC1C,mBAAmB;YACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACtE,UAAU;YACV,eAAe;YACf,UAAU;YACV,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,SAAS,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAgF,EAAE,EAAE;QAC3H,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO;YAC1B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAwB,EAAE,EAAE;YACtF,CAAC,CAAC,MAAM,CAAC;QACX,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;YACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,QAAQ,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAA0B,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,kCAAkC;YAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC;gBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;gBAC/E,YAAY,EAAE;oBACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;oBAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;oBACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;oBACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;oBAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;oBACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;oBAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;oBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;oBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;iBACnC;aACF,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC;YACvC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;gBAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY;aAC/B;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;gBACrB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;gBAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB;gBACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;gBAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;gBACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;aACnC;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,qBAAqB;QACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,uDAAuD,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,IAAI;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -19,11 +19,28 @@ export interface VideoConfig {
|
|
|
19
19
|
/** Additional Playwright browser context options (colorScheme, locale, geolocation, permissions, etc.). */
|
|
20
20
|
contextOptions?: Record<string, unknown>;
|
|
21
21
|
}
|
|
22
|
+
export type TransitionType = 'fade-through-black' | 'dissolve' | 'wipe-left' | 'wipe-right';
|
|
23
|
+
export interface TransitionConfig {
|
|
24
|
+
/** Transition type applied between scenes. */
|
|
25
|
+
type: TransitionType;
|
|
26
|
+
/** Duration of the transition in milliseconds (default 500). */
|
|
27
|
+
durationMs?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface SpeedRampConfig {
|
|
30
|
+
/** Speed multiplier for gaps between scenes (e.g., 2.0 = 2× faster). Default 1.0 (no change). */
|
|
31
|
+
gapSpeed: number;
|
|
32
|
+
/** Minimum gap duration (ms) before speed ramp is applied. Default 500. */
|
|
33
|
+
minGapMs?: number;
|
|
34
|
+
}
|
|
22
35
|
export interface ExportConfig {
|
|
23
36
|
preset: string;
|
|
24
37
|
crf: number;
|
|
25
38
|
thumbnailPath?: string;
|
|
26
|
-
formats?: Array<'1:1' | '9:16'>;
|
|
39
|
+
formats?: Array<'1:1' | '9:16' | 'gif'>;
|
|
40
|
+
/** Scene transition applied between scenes during export. */
|
|
41
|
+
transition?: TransitionConfig;
|
|
42
|
+
/** Speed up gaps between scenes. */
|
|
43
|
+
speedRamp?: SpeedRampConfig;
|
|
27
44
|
}
|
|
28
45
|
export interface OverlayConfig {
|
|
29
46
|
autoBackground: boolean;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,CAAC;AAI1B,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* argo preview (no args) — multi-demo dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Shows a landing page listing all discovered demos with status indicators,
|
|
5
|
+
* thumbnails (if MP4 exists), and links to individual preview pages.
|
|
6
|
+
*/
|
|
7
|
+
export interface DashboardOptions {
|
|
8
|
+
demosDir: string;
|
|
9
|
+
outputDir: string;
|
|
10
|
+
argoDir?: string;
|
|
11
|
+
port?: number;
|
|
12
|
+
ttsDefaults?: {
|
|
13
|
+
voice: string;
|
|
14
|
+
speed: number;
|
|
15
|
+
};
|
|
16
|
+
exportConfig?: import('./preview.js').PreviewExportConfig;
|
|
17
|
+
}
|
|
18
|
+
export declare function startDashboardServer(options: DashboardOptions): Promise<{
|
|
19
|
+
url: string;
|
|
20
|
+
close: () => void;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,cAAc,EAAE,mBAAmB,CAAC;CAC3D;AAgID,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAkEjH"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* argo preview (no args) — multi-demo dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Shows a landing page listing all discovered demos with status indicators,
|
|
5
|
+
* thumbnails (if MP4 exists), and links to individual preview pages.
|
|
6
|
+
*/
|
|
7
|
+
import { createServer } from 'node:http';
|
|
8
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { discoverDemos } from './pipeline.js';
|
|
11
|
+
import { startPreviewServer } from './preview.js';
|
|
12
|
+
function formatBytes(bytes) {
|
|
13
|
+
if (bytes < 1024)
|
|
14
|
+
return `${bytes} B`;
|
|
15
|
+
if (bytes < 1024 * 1024)
|
|
16
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
17
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
18
|
+
}
|
|
19
|
+
function gatherDemoStatuses(demosDir, outputDir) {
|
|
20
|
+
const demos = discoverDemos(demosDir);
|
|
21
|
+
return demos.map((name) => {
|
|
22
|
+
const status = {
|
|
23
|
+
name,
|
|
24
|
+
hasManifest: existsSync(join(demosDir, `${name}.scenes.json`)),
|
|
25
|
+
hasScript: existsSync(join(demosDir, `${name}.demo.ts`)),
|
|
26
|
+
hasVideo: existsSync(join(outputDir, `${name}.mp4`)),
|
|
27
|
+
hasMeta: existsSync(join(outputDir, `${name}.meta.json`)),
|
|
28
|
+
};
|
|
29
|
+
if (status.hasVideo) {
|
|
30
|
+
const stat = statSync(join(outputDir, `${name}.mp4`));
|
|
31
|
+
status.videoSize = formatBytes(stat.size);
|
|
32
|
+
status.lastModified = stat.mtime.toLocaleDateString('en-US', {
|
|
33
|
+
year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (status.hasMeta) {
|
|
37
|
+
try {
|
|
38
|
+
status.meta = JSON.parse(readFileSync(join(outputDir, `${name}.meta.json`), 'utf-8'));
|
|
39
|
+
}
|
|
40
|
+
catch { /* ignore */ }
|
|
41
|
+
}
|
|
42
|
+
return status;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function renderDashboardHTML(statuses, port) {
|
|
46
|
+
const rows = statuses.map((s) => {
|
|
47
|
+
const statusDot = s.hasVideo ? '🟢' : s.hasScript ? '🟡' : '🔴';
|
|
48
|
+
const videoInfo = s.hasVideo
|
|
49
|
+
? `<span class="meta">${s.videoSize} · ${s.lastModified}</span>`
|
|
50
|
+
: '<span class="meta dim">Not exported</span>';
|
|
51
|
+
const metaInfo = s.meta
|
|
52
|
+
? `<span class="meta">${s.meta.video?.width}×${s.meta.video?.height} · ${s.meta.video?.browser}</span>`
|
|
53
|
+
: '';
|
|
54
|
+
const previewLink = s.hasVideo
|
|
55
|
+
? `<a href="/preview/${s.name}" class="btn">Preview</a>`
|
|
56
|
+
: '';
|
|
57
|
+
return `
|
|
58
|
+
<tr>
|
|
59
|
+
<td>${statusDot}</td>
|
|
60
|
+
<td><strong>${s.name}</strong></td>
|
|
61
|
+
<td>${s.hasScript ? '✓' : '✗'}</td>
|
|
62
|
+
<td>${s.hasManifest ? '✓' : '✗'}</td>
|
|
63
|
+
<td>${videoInfo}</td>
|
|
64
|
+
<td>${metaInfo}</td>
|
|
65
|
+
<td>${previewLink}</td>
|
|
66
|
+
</tr>`;
|
|
67
|
+
}).join('\n');
|
|
68
|
+
return `<!DOCTYPE html>
|
|
69
|
+
<html lang="en">
|
|
70
|
+
<head>
|
|
71
|
+
<meta charset="UTF-8">
|
|
72
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
73
|
+
<title>Argo Dashboard</title>
|
|
74
|
+
<style>
|
|
75
|
+
:root { --bg: #0f0f0f; --fg: #e0e0e0; --accent: #3b82f6; --card: #1a1a1a; --border: #2a2a2a; }
|
|
76
|
+
@media (prefers-color-scheme: light) {
|
|
77
|
+
:root { --bg: #fafafa; --fg: #1a1a1a; --accent: #2563eb; --card: #fff; --border: #e0e0e0; }
|
|
78
|
+
}
|
|
79
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
80
|
+
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; background: var(--bg); color: var(--fg); padding: 2rem; }
|
|
81
|
+
h1 { font-size: 1.5rem; margin-bottom: 0.5rem; }
|
|
82
|
+
.subtitle { color: #888; margin-bottom: 2rem; font-size: 0.9rem; }
|
|
83
|
+
table { width: 100%; border-collapse: collapse; background: var(--card); border-radius: 8px; overflow: hidden; border: 1px solid var(--border); }
|
|
84
|
+
th { text-align: left; padding: 0.75rem 1rem; background: var(--border); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; color: #888; }
|
|
85
|
+
td { padding: 0.75rem 1rem; border-top: 1px solid var(--border); }
|
|
86
|
+
tr:hover td { background: rgba(59, 130, 246, 0.05); }
|
|
87
|
+
.meta { font-size: 0.85rem; color: #888; }
|
|
88
|
+
.meta.dim { opacity: 0.5; }
|
|
89
|
+
.btn { display: inline-block; padding: 0.3rem 0.8rem; background: var(--accent); color: white; border-radius: 4px; text-decoration: none; font-size: 0.8rem; }
|
|
90
|
+
.btn:hover { opacity: 0.9; }
|
|
91
|
+
.summary { margin-top: 1.5rem; padding: 1rem; background: var(--card); border: 1px solid var(--border); border-radius: 8px; font-size: 0.9rem; }
|
|
92
|
+
.cmd { font-family: 'SF Mono', 'Fira Code', monospace; background: var(--border); padding: 0.15rem 0.4rem; border-radius: 3px; font-size: 0.85rem; }
|
|
93
|
+
</style>
|
|
94
|
+
</head>
|
|
95
|
+
<body>
|
|
96
|
+
<h1>Argo Dashboard</h1>
|
|
97
|
+
<p class="subtitle">${statuses.length} demo(s) discovered</p>
|
|
98
|
+
|
|
99
|
+
<table>
|
|
100
|
+
<thead>
|
|
101
|
+
<tr>
|
|
102
|
+
<th></th>
|
|
103
|
+
<th>Demo</th>
|
|
104
|
+
<th>Script</th>
|
|
105
|
+
<th>Manifest</th>
|
|
106
|
+
<th>Video</th>
|
|
107
|
+
<th>Config</th>
|
|
108
|
+
<th></th>
|
|
109
|
+
</tr>
|
|
110
|
+
</thead>
|
|
111
|
+
<tbody>
|
|
112
|
+
${rows}
|
|
113
|
+
</tbody>
|
|
114
|
+
</table>
|
|
115
|
+
|
|
116
|
+
<div class="summary">
|
|
117
|
+
<strong>Quick commands:</strong><br>
|
|
118
|
+
<span class="cmd">argo pipeline <demo></span> — Build a single demo<br>
|
|
119
|
+
<span class="cmd">argo pipeline --all</span> — Build all demos<br>
|
|
120
|
+
<span class="cmd">argo preview <demo></span> — Preview a specific demo
|
|
121
|
+
</div>
|
|
122
|
+
</body>
|
|
123
|
+
</html>`;
|
|
124
|
+
}
|
|
125
|
+
export async function startDashboardServer(options) {
|
|
126
|
+
const { demosDir, outputDir, argoDir: customArgoDir, port: preferredPort, ttsDefaults, exportConfig } = options;
|
|
127
|
+
// Track spawned preview servers to avoid duplicates
|
|
128
|
+
const previewServers = new Map(); // demo name → preview handle
|
|
129
|
+
return new Promise((resolve, reject) => {
|
|
130
|
+
const server = createServer(async (req, res) => {
|
|
131
|
+
const url = req.url ?? '/';
|
|
132
|
+
// Spawn preview editor at /preview/<name> and redirect
|
|
133
|
+
const previewMatch = url.match(/^\/preview\/([a-zA-Z0-9][a-zA-Z0-9_-]*)$/);
|
|
134
|
+
if (previewMatch) {
|
|
135
|
+
const name = previewMatch[1];
|
|
136
|
+
// Check if a preview server is already running for this demo
|
|
137
|
+
if (previewServers.has(name)) {
|
|
138
|
+
res.writeHead(302, { Location: previewServers.get(name).url });
|
|
139
|
+
res.end();
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
const preview = await startPreviewServer({
|
|
144
|
+
demoName: name,
|
|
145
|
+
argoDir: customArgoDir ?? '.argo',
|
|
146
|
+
demosDir,
|
|
147
|
+
outputDir,
|
|
148
|
+
ttsDefaults: ttsDefaults ?? { voice: 'af_heart', speed: 1.0 },
|
|
149
|
+
exportConfig,
|
|
150
|
+
});
|
|
151
|
+
previewServers.set(name, preview);
|
|
152
|
+
res.writeHead(302, { Location: preview.url });
|
|
153
|
+
res.end();
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
157
|
+
res.end(`Failed to start preview for ${name}: ${err.message}`);
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
// Dashboard HTML
|
|
162
|
+
const statuses = gatherDemoStatuses(demosDir, outputDir);
|
|
163
|
+
const actualPort = server.address()?.port ?? preferredPort ?? 3000;
|
|
164
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
165
|
+
res.end(renderDashboardHTML(statuses, actualPort));
|
|
166
|
+
});
|
|
167
|
+
const listenPort = preferredPort ?? 0;
|
|
168
|
+
server.on('error', (err) => {
|
|
169
|
+
reject(new Error(`Dashboard server failed to start: ${err.message}`));
|
|
170
|
+
});
|
|
171
|
+
server.listen(listenPort, '127.0.0.1', () => {
|
|
172
|
+
const addr = server.address();
|
|
173
|
+
const url = `http://127.0.0.1:${addr.port}`;
|
|
174
|
+
resolve({
|
|
175
|
+
url,
|
|
176
|
+
close: () => {
|
|
177
|
+
for (const preview of previewServers.values()) {
|
|
178
|
+
preview.close();
|
|
179
|
+
}
|
|
180
|
+
server.close();
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
|