@argo-video/cli 0.19.0 → 0.21.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.
Files changed (50) hide show
  1. package/README.md +45 -3
  2. package/dist/camera-move.d.ts +53 -0
  3. package/dist/camera-move.d.ts.map +1 -0
  4. package/dist/camera-move.js +107 -0
  5. package/dist/camera-move.js.map +1 -0
  6. package/dist/camera.d.ts +9 -0
  7. package/dist/camera.d.ts.map +1 -1
  8. package/dist/camera.js +38 -0
  9. package/dist/camera.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +45 -0
  12. package/dist/cli.js.map +1 -1
  13. package/dist/config.d.ts +16 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js.map +1 -1
  16. package/dist/export.d.ts +13 -1
  17. package/dist/export.d.ts.map +1 -1
  18. package/dist/export.js +113 -11
  19. package/dist/export.js.map +1 -1
  20. package/dist/freeze.d.ts +59 -0
  21. package/dist/freeze.d.ts.map +1 -0
  22. package/dist/freeze.js +113 -0
  23. package/dist/freeze.js.map +1 -0
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/media.d.ts +1 -0
  29. package/dist/media.d.ts.map +1 -1
  30. package/dist/media.js +20 -0
  31. package/dist/media.js.map +1 -1
  32. package/dist/music/musicgen.d.ts +43 -0
  33. package/dist/music/musicgen.d.ts.map +1 -0
  34. package/dist/music/musicgen.js +120 -0
  35. package/dist/music/musicgen.js.map +1 -0
  36. package/dist/narration.d.ts +10 -0
  37. package/dist/narration.d.ts.map +1 -1
  38. package/dist/narration.js +33 -1
  39. package/dist/narration.js.map +1 -1
  40. package/dist/pipeline.d.ts.map +1 -1
  41. package/dist/pipeline.js +94 -14
  42. package/dist/pipeline.js.map +1 -1
  43. package/dist/preview.d.ts +4 -0
  44. package/dist/preview.d.ts.map +1 -1
  45. package/dist/preview.js +641 -9
  46. package/dist/preview.js.map +1 -1
  47. package/dist/record.d.ts.map +1 -1
  48. package/dist/record.js +26 -1
  49. package/dist/record.js.map +1 -1
  50. package/package.json +1 -1
@@ -0,0 +1,120 @@
1
+ /**
2
+ * AI-generated background music via MusicGen (Transformers.js).
3
+ * Uses Xenova/musicgen-small (~1.8GB ONNX model, downloaded on first run).
4
+ */
5
+ import crypto from 'node:crypto';
6
+ import fs from 'node:fs';
7
+ import path from 'node:path';
8
+ import { createWavBuffer } from '../tts/engine.js';
9
+ /** MusicGen outputs audio at 32kHz sample rate. */
10
+ const MUSICGEN_SAMPLE_RATE = 32_000;
11
+ /** MusicGen uses ~50 tokens per second of audio. */
12
+ const TOKENS_PER_SECOND = 50;
13
+ const DEFAULT_DURATION_SEC = 30;
14
+ const DEFAULT_GUIDANCE_SCALE = 3;
15
+ const DEFAULT_TEMPERATURE = 1.0;
16
+ const MODEL_ID = 'Xenova/musicgen-small';
17
+ /**
18
+ * Compute a content-addressed cache key from all generation parameters.
19
+ */
20
+ export function computeCacheKey(options) {
21
+ const { prompt, durationSec, guidanceScale, temperature } = options;
22
+ return crypto
23
+ .createHash('sha256')
24
+ .update(JSON.stringify({
25
+ prompt,
26
+ durationSec: durationSec ?? DEFAULT_DURATION_SEC,
27
+ guidanceScale: guidanceScale ?? DEFAULT_GUIDANCE_SCALE,
28
+ temperature: temperature ?? DEFAULT_TEMPERATURE,
29
+ }))
30
+ .digest('hex');
31
+ }
32
+ /**
33
+ * Returns the cache file path for a given demo + options.
34
+ */
35
+ export function getCachePath(argoDir, options) {
36
+ const hash = computeCacheKey(options);
37
+ return path.join(argoDir, 'music', `${hash}.wav`);
38
+ }
39
+ /**
40
+ * Check if a cached music file exists for the given options.
41
+ */
42
+ export function isCached(argoDir, options) {
43
+ return fs.existsSync(getCachePath(argoDir, options));
44
+ }
45
+ /**
46
+ * Generate background music from a text prompt using MusicGen.
47
+ *
48
+ * The model (~1.8GB) is downloaded on first run. Generation takes ~30-60s
49
+ * depending on duration and hardware.
50
+ *
51
+ * Returns a WAV buffer (Float32, mono, 32kHz — ffmpeg handles resampling during export).
52
+ */
53
+ export async function generateMusic(options) {
54
+ const durationSec = options.durationSec ?? DEFAULT_DURATION_SEC;
55
+ const guidanceScale = options.guidanceScale ?? DEFAULT_GUIDANCE_SCALE;
56
+ const temperature = options.temperature ?? DEFAULT_TEMPERATURE;
57
+ const maxNewTokens = Math.ceil(durationSec * TOKENS_PER_SECOND);
58
+ // Lazy-load transformers (same pattern as TTS Transformers engine)
59
+ let AutoTokenizer;
60
+ let MusicgenForConditionalGeneration;
61
+ try {
62
+ ({ AutoTokenizer, MusicgenForConditionalGeneration } = await import('@huggingface/transformers'));
63
+ }
64
+ catch {
65
+ throw new Error("MusicGen requires the '@huggingface/transformers' package. " +
66
+ 'Install it with: npm i @huggingface/transformers');
67
+ }
68
+ console.log(` \u25b8 Loading model: ${MODEL_ID}`);
69
+ console.log(' \u25b8 First run downloads ~1.8GB — subsequent runs use the cache');
70
+ const tokenizer = await AutoTokenizer.from_pretrained(MODEL_ID);
71
+ const model = await MusicgenForConditionalGeneration.from_pretrained(MODEL_ID, {
72
+ dtype: {
73
+ text_encoder: 'q8',
74
+ decoder_model_merged: 'q8',
75
+ encodec_decode: 'fp32',
76
+ },
77
+ });
78
+ console.log(` \u25b8 Generating ${durationSec}s of music...`);
79
+ const inputs = tokenizer(options.prompt);
80
+ const audioValues = await model.generate({
81
+ ...inputs,
82
+ max_new_tokens: maxNewTokens,
83
+ do_sample: true,
84
+ guidance_scale: guidanceScale,
85
+ temperature,
86
+ });
87
+ // audioValues is a Tensor — extract the Float32Array data
88
+ const rawSamples = audioValues.data instanceof Float32Array
89
+ ? audioValues.data
90
+ : new Float32Array(audioValues.data);
91
+ // Save as WAV at the native 32kHz rate — ffmpeg resamples during export
92
+ return createWavBuffer(rawSamples, MUSICGEN_SAMPLE_RATE);
93
+ }
94
+ /**
95
+ * Generate music with caching. Returns the path to the WAV file.
96
+ *
97
+ * If a cached file exists for the same prompt + parameters, skips generation.
98
+ * On model load or generation failure, warns and returns null (best-effort).
99
+ */
100
+ export async function generateMusicCached(argoDir, options) {
101
+ const cachePath = getCachePath(argoDir, options);
102
+ const hash = computeCacheKey(options);
103
+ if (fs.existsSync(cachePath)) {
104
+ console.log(` \u25b8 Cached: ${path.relative('.', cachePath)}`);
105
+ return cachePath;
106
+ }
107
+ // Ensure cache directory exists
108
+ fs.mkdirSync(path.dirname(cachePath), { recursive: true });
109
+ try {
110
+ const wavBuffer = await generateMusic(options);
111
+ fs.writeFileSync(cachePath, wavBuffer);
112
+ console.log(` \u25b8 Saved: ${path.relative('.', cachePath)}`);
113
+ return cachePath;
114
+ }
115
+ catch (err) {
116
+ console.warn(`\u26a0\ufe0f Music generation failed (continuing without background music): ${err.message}`);
117
+ return null;
118
+ }
119
+ }
120
+ //# sourceMappingURL=musicgen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"musicgen.js","sourceRoot":"","sources":["../../src/music/musicgen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAanD,mDAAmD;AACnD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAwB;IACtD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IACpE,OAAO,MAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;QACb,MAAM;QACN,WAAW,EAAE,WAAW,IAAI,oBAAoB;QAChD,aAAa,EAAE,aAAa,IAAI,sBAAsB;QACtD,WAAW,EAAE,WAAW,IAAI,mBAAmB;KAChD,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAwB;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,OAAwB;IAChE,OAAO,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAChE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,mBAAmB,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC;IAEhE,mEAAmE;IACnE,IAAI,aAAkB,CAAC;IACvB,IAAI,gCAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,CAAC,EAAE,aAAa,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CACjE,2BAA2B,CAC5B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6DAA6D;YAC3D,kDAAkD,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CACT,qEAAqE,CACtE,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC,eAAe,CAClE,QAAQ,EACR;QACE,KAAK,EAAE;YACL,YAAY,EAAE,IAAI;YAClB,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,MAAM;SACvB;KACF,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,eAAe,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;QACvC,GAAG,MAAM;QACT,cAAc,EAAE,YAAY;QAC5B,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,aAAa;QAC7B,WAAW;KACZ,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,UAAU,GACd,WAAW,CAAC,IAAI,YAAY,YAAY;QACtC,CAAC,CAAC,WAAW,CAAC,IAAI;QAClB,CAAC,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEzC,wEAAwE;IACxE,OAAO,eAAe,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,OAAwB;IAExB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gCAAgC;IAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,gFAAiF,GAAa,CAAC,OAAO,EAAE,CACzG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { CameraMove } from './camera-move.js';
1
2
  export interface SceneDurationOptions {
2
3
  leadInMs?: number;
3
4
  leadOutMs?: number;
@@ -11,9 +12,18 @@ export declare class NarrationTimeline {
11
12
  private startTime;
12
13
  private sceneDurations;
13
14
  private cachedPlacements;
15
+ private _cameraMoves;
14
16
  constructor(sceneDurations?: Record<string, number>);
15
17
  start(): void;
16
18
  mark(scene: string): void;
19
+ /**
20
+ * Record a camera move (zoom/pan) to be applied as an ffmpeg post-export effect.
21
+ * Call this during recording with the target element's bounding box.
22
+ */
23
+ recordCameraMove(move: Omit<CameraMove, 'startMs'> & {
24
+ startMs?: number;
25
+ }): void;
26
+ getCameraMoves(): CameraMove[];
17
27
  getTimings(): Record<string, number>;
18
28
  flush(outputPath: string): Promise<void>;
19
29
  private getBaseDuration;
@@ -1 +1 @@
1
- {"version":3,"file":"narration.d.ts","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,gBAAgB,CAA4B;gBAExC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnD,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWzB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAerB;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;CAmBnE"}
1
+ {"version":3,"file":"narration.d.ts","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAoB;gBAE5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnD,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBzB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQhF,cAAc,IAAI,UAAU,EAAE;IAI9B,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAerB;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;CAmBnE"}
package/dist/narration.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { appendFileSync } from 'node:fs';
1
2
  import { mkdir, writeFile } from 'node:fs/promises';
2
3
  import { dirname } from 'node:path';
3
4
  import { schedulePlacements } from './tts/align.js';
@@ -6,6 +7,7 @@ export class NarrationTimeline {
6
7
  startTime = null;
7
8
  sceneDurations = {};
8
9
  cachedPlacements = null;
10
+ _cameraMoves = [];
9
11
  constructor(sceneDurations) {
10
12
  if (sceneDurations) {
11
13
  this.sceneDurations = sceneDurations;
@@ -23,8 +25,33 @@ export class NarrationTimeline {
23
25
  if (this.timings.has(scene)) {
24
26
  throw new Error(`Duplicate scene name: "${scene}"`);
25
27
  }
26
- this.timings.set(scene, Date.now() - this.startTime);
28
+ const ms = Date.now() - this.startTime;
29
+ this.timings.set(scene, ms);
27
30
  this.cachedPlacements = null;
31
+ // Append to JSONL progress file for live scene status in the parent process
32
+ const progressPath = process.env.ARGO_PROGRESS_PATH;
33
+ if (progressPath) {
34
+ try {
35
+ appendFileSync(progressPath, JSON.stringify({ scene, ms }) + '\n');
36
+ }
37
+ catch {
38
+ // Best-effort — don't fail recording over progress reporting
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * Record a camera move (zoom/pan) to be applied as an ffmpeg post-export effect.
44
+ * Call this during recording with the target element's bounding box.
45
+ */
46
+ recordCameraMove(move) {
47
+ if (this.startTime === null) {
48
+ throw new Error('Cannot record camera move before start() has been called');
49
+ }
50
+ const startMs = move.startMs ?? (Date.now() - this.startTime);
51
+ this._cameraMoves.push({ ...move, startMs });
52
+ }
53
+ getCameraMoves() {
54
+ return [...this._cameraMoves];
28
55
  }
29
56
  getTimings() {
30
57
  return Object.fromEntries(this.timings);
@@ -32,6 +59,11 @@ export class NarrationTimeline {
32
59
  async flush(outputPath) {
33
60
  await mkdir(dirname(outputPath), { recursive: true });
34
61
  await writeFile(outputPath, JSON.stringify(this.getTimings(), null, 2), 'utf-8');
62
+ // Write camera moves to a sidecar file if any were recorded
63
+ if (this._cameraMoves.length > 0) {
64
+ const cameraMovesPath = outputPath.replace(/\.json$/, '') + '.camera-moves.json';
65
+ await writeFile(cameraMovesPath, JSON.stringify(this._cameraMoves, null, 2), 'utf-8');
66
+ }
35
67
  }
36
68
  getBaseDuration(scene, options) {
37
69
  const clipMs = this.sceneDurations[scene];
@@ -1 +1 @@
1
- {"version":3,"file":"narration.js","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"narration.js","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,CAAC,CA8TjB"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAY9C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,CAAC,CAiZjB"}
package/dist/pipeline.js CHANGED
@@ -1,4 +1,4 @@
1
- import { readFileSync, writeFileSync, mkdirSync, readdirSync } from 'node:fs';
1
+ import { readFileSync, writeFileSync, mkdirSync, readdirSync, existsSync } from 'node:fs';
2
2
  import { join, basename } from 'node:path';
3
3
  import { generateClips } from './tts/generate.js';
4
4
  import { record } from './record.js';
@@ -9,7 +9,11 @@ import { generateSrt, generateVtt } from './subtitles.js';
9
9
  import { generateChapterMetadata } from './chapters.js';
10
10
  import { buildSceneReport, formatSceneReport } from './report.js';
11
11
  import { applySpeedRampToTimeline } from './speed-ramp.js';
12
+ import { shiftCameraMoves, scaleCameraMoves } from './camera-move.js';
13
+ import { resolveFreezes, adjustPlacementsForFreezes, totalFreezeDurationMs, } from './freeze.js';
12
14
  import { getVideoDurationMs } from './media.js';
15
+ // Note: MusicGen (AI music generation) is a preview-only feature — runs in browser via WebGPU.
16
+ // Pipeline uses saved WAV files via audio.music config path.
13
17
  import { buildPlacementsFromTimingAndDurations, buildSceneTexts, computeHeadTrimMs, readScenesManifest, shiftPlacements, } from './timeline.js';
14
18
  /**
15
19
  * Discover all demo names in the demos directory by looking for `.scenes.json` files.
@@ -63,7 +67,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
63
67
  const argoDir = join('.argo', demoName);
64
68
  mkdirSync(argoDir, { recursive: true });
65
69
  // Step 1: Generate TTS clips
66
- console.log('Brewing voiceover clips...');
70
+ console.log('🎙️ Brewing voiceover clips...');
67
71
  const clipResults = await generateClips({
68
72
  manifestPath: `${config.demosDir}/${demoName}.scenes.json`,
69
73
  demoName,
@@ -79,8 +83,11 @@ export async function runPipeline(demoName, config, pipelineOpts) {
79
83
  }
80
84
  const sceneDurationsPath = join(argoDir, '.scene-durations.json');
81
85
  writeFileSync(sceneDurationsPath, JSON.stringify(sceneDurations, null, 2), 'utf-8');
86
+ // Note: AI music generation (MusicGen) is a preview-only feature.
87
+ // Users generate + audition clips in the browser (WebGPU), then save
88
+ // the selected WAV. Pipeline uses the saved file via audio.music.
82
89
  // Step 2: Record browser demo
83
- console.log(' Rolling camera...');
90
+ console.log('🎬 Rolling camera...');
84
91
  const { timingPath } = await record(demoName, {
85
92
  demosDir: config.demosDir,
86
93
  baseURL: config.baseURL,
@@ -103,6 +110,17 @@ export async function runPipeline(demoName, config, pipelineOpts) {
103
110
  throw new Error(`Failed to parse timing file at ${timingPath}: ${err.message}. ` +
104
111
  `The file may be corrupt from an interrupted recording. Try re-running: argo record ${demoName}`);
105
112
  }
113
+ // Read camera moves if recorded by zoomTo with narration option
114
+ let cameraMoves = [];
115
+ const cameraMovesPath = join(argoDir, '.timing.camera-moves.json');
116
+ try {
117
+ if (existsSync(cameraMovesPath)) {
118
+ cameraMoves = JSON.parse(readFileSync(cameraMovesPath, 'utf-8'));
119
+ }
120
+ }
121
+ catch {
122
+ // Camera moves are optional — don't fail the pipeline
123
+ }
106
124
  // Use actual video duration for alignment
107
125
  const videoPath = join(argoDir, 'video.webm');
108
126
  const totalDurationMs = getVideoDurationMs(videoPath);
@@ -113,7 +131,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
113
131
  // Auto-trim: skip setup before first scene mark (with 200ms lead-in)
114
132
  const headTrimMs = computeHeadTrimMs(timing);
115
133
  if (!isSilent) {
116
- console.log(' Mixing the soundtrack...');
134
+ console.log('🎧 Mixing the soundtrack...');
117
135
  // Load WAV clips into memory
118
136
  const clips = clipResults.map((cr) => {
119
137
  const wavBuf = readFileSync(cr.clipPath);
@@ -144,12 +162,38 @@ export async function runPipeline(demoName, config, pipelineOpts) {
144
162
  shiftedPlacements = shiftPlacements(buildPlacementsFromTimingAndDurations(timing, sceneDurations, totalDurationMs), headTrimMs);
145
163
  }
146
164
  const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp);
147
- const finalPlacements = speedRampPlan.placements;
148
- const finalDurationMs = speedRampPlan.totalDurationMs;
165
+ // Read freeze-frame holds from scenes manifest `post` arrays
166
+ const manifestPath = `${config.demosDir}/${demoName}.scenes.json`;
167
+ const freezeSpecs = [];
168
+ try {
169
+ const rawManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
170
+ for (const entry of rawManifest) {
171
+ if (!entry.scene || !Array.isArray(entry.post))
172
+ continue;
173
+ for (const effect of entry.post) {
174
+ if (effect.type === 'freeze' &&
175
+ typeof effect.atMs === 'number' &&
176
+ typeof effect.durationMs === 'number') {
177
+ freezeSpecs.push({
178
+ scene: entry.scene,
179
+ atMs: effect.atMs,
180
+ durationMs: effect.durationMs,
181
+ });
182
+ }
183
+ }
184
+ }
185
+ }
186
+ catch {
187
+ // Manifest read errors are handled elsewhere — freezes are best-effort
188
+ }
189
+ // Resolve freeze specs to absolute timeline positions and adjust placements
190
+ const resolvedFreezes = resolveFreezes(freezeSpecs, speedRampPlan.placements);
191
+ const finalPlacements = adjustPlacementsForFreezes(speedRampPlan.placements, resolvedFreezes);
192
+ const freezeAddedMs = totalFreezeDurationMs(resolvedFreezes);
193
+ const finalDurationMs = speedRampPlan.totalDurationMs + freezeAddedMs;
149
194
  // Ensure output directory exists before writing subtitles
150
195
  mkdirSync(config.outputDir, { recursive: true });
151
196
  // Build scene text map for subtitles
152
- const manifestPath = `${config.demosDir}/${demoName}.scenes.json`;
153
197
  try {
154
198
  const sceneTexts = buildSceneTexts(readScenesManifest(manifestPath));
155
199
  // Generate subtitles on the final export timeline.
@@ -166,7 +210,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
166
210
  const chapterMetadata = generateChapterMetadata(finalPlacements, finalDurationMs);
167
211
  writeFileSync(chapterMetadataPath, chapterMetadata, 'utf-8');
168
212
  // Step 4: Export final video
169
- console.log('Cutting the final take...');
213
+ console.log('🎞️ Cutting the final take...');
170
214
  const exportOptions = {
171
215
  demoName,
172
216
  argoDir: '.argo',
@@ -185,11 +229,23 @@ export async function runPipeline(demoName, config, pipelineOpts) {
185
229
  totalDurationMs: finalDurationMs,
186
230
  speedRampSegments: speedRampPlan.segments,
187
231
  loudnorm: config.export.audio?.loudnorm,
232
+ musicPath: config.export.audio?.music,
233
+ musicVolume: config.export.audio?.musicVolume,
234
+ watermark: config.export.watermark,
188
235
  };
236
+ if (resolvedFreezes.length > 0) {
237
+ exportOptions.freezeSpecs = resolvedFreezes;
238
+ }
189
239
  if (tailPadMs !== undefined)
190
240
  exportOptions.tailPadMs = tailPadMs;
191
241
  if (headTrimMs > 0)
192
242
  exportOptions.headTrimMs = headTrimMs;
243
+ // Apply camera moves — shift for head trim, scale for deviceScaleFactor
244
+ if (cameraMoves.length > 0) {
245
+ let moves = shiftCameraMoves(cameraMoves, headTrimMs);
246
+ moves = scaleCameraMoves(moves, config.video.deviceScaleFactor ?? 1);
247
+ exportOptions.cameraMoves = moves;
248
+ }
193
249
  const outputPath = await exportVideo(exportOptions);
194
250
  // Scene report
195
251
  const report = buildSceneReport(demoName, finalPlacements, overflowMs, finalDurationMs, outputPath);
@@ -229,13 +285,13 @@ export async function runPipeline(demoName, config, pipelineOpts) {
229
285
  output: outputPath,
230
286
  };
231
287
  writeFileSync(join(config.outputDir, `${demoName}.meta.json`), JSON.stringify(pipelineMeta, null, 2) + '\n', 'utf-8');
232
- console.log(`\n That's a wrap! Video saved to: ${outputPath}`);
288
+ console.log(`\n🚀 That's a wrap! Video saved to: ${outputPath}`);
233
289
  // Viewport-native variants — re-record at different viewports
234
290
  const variants = config.export.variants;
235
291
  if (variants && variants.length > 0) {
236
292
  for (const variant of variants) {
237
293
  console.log(`\n${'─'.repeat(50)}`);
238
- console.log(` Variant: ${variant.name} (${variant.video.width}×${variant.video.height})`);
294
+ console.log(` 📐 Variant: ${variant.name} (${variant.video.width}×${variant.video.height})`);
239
295
  console.log(`${'─'.repeat(50)}\n`);
240
296
  const variantArgoDir = join('.argo', `${demoName}-${variant.name}`);
241
297
  mkdirSync(variantArgoDir, { recursive: true });
@@ -243,7 +299,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
243
299
  writeFileSync(join(variantArgoDir, '.scene-durations.json'), JSON.stringify(sceneDurations, null, 2), 'utf-8');
244
300
  // Record at variant viewport
245
301
  const variantSubdir = `${demoName}-${variant.name}`;
246
- console.log(' Rolling camera...');
302
+ console.log('🎬 Rolling camera...');
247
303
  const variantRecord = await record(demoName, {
248
304
  demosDir: config.demosDir,
249
305
  baseURL: config.baseURL,
@@ -266,7 +322,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
266
322
  let variantPlacements = [];
267
323
  let variantShiftedDurationMs = variantDurationMs;
268
324
  if (!isSilent) {
269
- console.log(' Mixing the soundtrack...');
325
+ console.log('🎧 Mixing the soundtrack...');
270
326
  const clips = clipResults.map((cr) => {
271
327
  const wavBuf = readFileSync(cr.clipPath);
272
328
  const header = parseWavHeader(wavBuf);
@@ -287,8 +343,14 @@ export async function runPipeline(demoName, config, pipelineOpts) {
287
343
  }));
288
344
  variantShiftedDurationMs = variantDurationMs - variantHeadTrimMs;
289
345
  }
346
+ // Resolve freeze-frame holds for variant
347
+ const variantResolvedFreezes = resolveFreezes(freezeSpecs, variantPlacements);
348
+ if (variantResolvedFreezes.length > 0) {
349
+ variantPlacements = adjustPlacementsForFreezes(variantPlacements, variantResolvedFreezes);
350
+ variantShiftedDurationMs += totalFreezeDurationMs(variantResolvedFreezes);
351
+ }
290
352
  // Export variant
291
- console.log('Cutting the final take...');
353
+ console.log('🎞️ Cutting the final take...');
292
354
  const variantChapterPath = join('.argo', variantSubdir, 'chapters.txt');
293
355
  writeFileSync(variantChapterPath, generateChapterMetadata(variantPlacements, variantShiftedDurationMs), 'utf-8');
294
356
  // Subtitles — read from manifest file directly for text field
@@ -307,6 +369,19 @@ export async function runPipeline(demoName, config, pipelineOpts) {
307
369
  writeFileSync(join(config.outputDir, `${demoName}.${variant.name}.vtt`), generateVtt(variantPlacements, variantSceneTexts), 'utf-8');
308
370
  }
309
371
  catch { /* subtitles are best-effort */ }
372
+ // Read camera moves for this variant if recorded
373
+ let variantCameraMoves = [];
374
+ const variantCameraMovesPath = join('.argo', variantSubdir, '.timing.camera-moves.json');
375
+ try {
376
+ if (existsSync(variantCameraMovesPath)) {
377
+ variantCameraMoves = JSON.parse(readFileSync(variantCameraMovesPath, 'utf-8'));
378
+ }
379
+ }
380
+ catch { /* optional */ }
381
+ if (variantCameraMoves.length > 0) {
382
+ variantCameraMoves = shiftCameraMoves(variantCameraMoves, variantHeadTrimMs);
383
+ variantCameraMoves = scaleCameraMoves(variantCameraMoves, config.video.deviceScaleFactor ?? 1);
384
+ }
310
385
  const variantOutputPath = await exportVideo({
311
386
  demoName: variantSubdir,
312
387
  argoDir: '.argo',
@@ -322,8 +397,13 @@ export async function runPipeline(demoName, config, pipelineOpts) {
322
397
  totalDurationMs: variantShiftedDurationMs,
323
398
  headTrimMs: variantHeadTrimMs > 0 ? variantHeadTrimMs : undefined,
324
399
  loudnorm: config.export.audio?.loudnorm,
400
+ musicPath: config.export.audio?.music,
401
+ musicVolume: config.export.audio?.musicVolume,
402
+ cameraMoves: variantCameraMoves.length > 0 ? variantCameraMoves : undefined,
403
+ watermark: config.export.watermark,
404
+ freezeSpecs: variantResolvedFreezes.length > 0 ? variantResolvedFreezes : undefined,
325
405
  });
326
- console.log(`✓ Variant saved to: ${variantOutputPath}`);
406
+ console.log(`🚀 Variant saved to: ${variantOutputPath}`);
327
407
  }
328
408
  }
329
409
  return outputPath;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/dist/preview.d.ts CHANGED
@@ -18,6 +18,10 @@ export interface PreviewExportConfig {
18
18
  formats?: Array<'1:1' | '9:16' | 'gif'>;
19
19
  transition?: import('./config.js').TransitionConfig;
20
20
  speedRamp?: import('./config.js').SpeedRampConfig;
21
+ loudnorm?: boolean;
22
+ musicPath?: string;
23
+ musicVolume?: number;
24
+ watermark?: import('./config.js').WatermarkConfig;
21
25
  }
22
26
  export interface PreviewOptions {
23
27
  demoName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAwVD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CA0U7G"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAyXD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAihB7G"}