@argo-video/cli 0.9.1 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +34 -33
  2. package/dist/camera.d.ts +12 -4
  3. package/dist/camera.d.ts.map +1 -1
  4. package/dist/camera.js +98 -20
  5. package/dist/camera.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +26 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cursor.d.ts +24 -0
  10. package/dist/cursor.d.ts.map +1 -0
  11. package/dist/cursor.js +110 -0
  12. package/dist/cursor.js.map +1 -0
  13. package/dist/export.d.ts +2 -0
  14. package/dist/export.d.ts.map +1 -1
  15. package/dist/export.js +10 -4
  16. package/dist/export.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/init.d.ts.map +1 -1
  22. package/dist/init.js +29 -47
  23. package/dist/init.js.map +1 -1
  24. package/dist/overlays/index.d.ts +7 -2
  25. package/dist/overlays/index.d.ts.map +1 -1
  26. package/dist/overlays/index.js +49 -4
  27. package/dist/overlays/index.js.map +1 -1
  28. package/dist/overlays/manifest-loader.d.ts +4 -0
  29. package/dist/overlays/manifest-loader.d.ts.map +1 -0
  30. package/dist/overlays/manifest-loader.js +22 -0
  31. package/dist/overlays/manifest-loader.js.map +1 -0
  32. package/dist/overlays/manifest.d.ts.map +1 -1
  33. package/dist/overlays/manifest.js +4 -19
  34. package/dist/overlays/manifest.js.map +1 -1
  35. package/dist/overlays/types.d.ts +46 -0
  36. package/dist/overlays/types.d.ts.map +1 -1
  37. package/dist/overlays/types.js +6 -0
  38. package/dist/overlays/types.js.map +1 -1
  39. package/dist/parse-playwright.d.ts +15 -0
  40. package/dist/parse-playwright.d.ts.map +1 -1
  41. package/dist/parse-playwright.js +22 -3
  42. package/dist/parse-playwright.js.map +1 -1
  43. package/dist/pipeline.d.ts.map +1 -1
  44. package/dist/pipeline.js +58 -8
  45. package/dist/pipeline.js.map +1 -1
  46. package/dist/preview.d.ts +30 -0
  47. package/dist/preview.d.ts.map +1 -0
  48. package/dist/preview.js +2524 -0
  49. package/dist/preview.js.map +1 -0
  50. package/dist/record.d.ts.map +1 -1
  51. package/dist/record.js +12 -4
  52. package/dist/record.js.map +1 -1
  53. package/dist/tts/engine.d.ts +8 -0
  54. package/dist/tts/engine.d.ts.map +1 -1
  55. package/dist/tts/engine.js.map +1 -1
  56. package/dist/tts/engines/elevenlabs.d.ts +2 -1
  57. package/dist/tts/engines/elevenlabs.d.ts.map +1 -1
  58. package/dist/tts/engines/elevenlabs.js +3 -0
  59. package/dist/tts/engines/elevenlabs.js.map +1 -1
  60. package/dist/tts/engines/gemini.d.ts +2 -1
  61. package/dist/tts/engines/gemini.d.ts.map +1 -1
  62. package/dist/tts/engines/gemini.js +3 -0
  63. package/dist/tts/engines/gemini.js.map +1 -1
  64. package/dist/tts/engines/kokoro.d.ts +2 -1
  65. package/dist/tts/engines/kokoro.d.ts.map +1 -1
  66. package/dist/tts/engines/kokoro.js +3 -0
  67. package/dist/tts/engines/kokoro.js.map +1 -1
  68. package/dist/tts/engines/mlx-audio.d.ts +2 -1
  69. package/dist/tts/engines/mlx-audio.d.ts.map +1 -1
  70. package/dist/tts/engines/mlx-audio.js +6 -0
  71. package/dist/tts/engines/mlx-audio.js.map +1 -1
  72. package/dist/tts/engines/openai.d.ts +7 -2
  73. package/dist/tts/engines/openai.d.ts.map +1 -1
  74. package/dist/tts/engines/openai.js +13 -2
  75. package/dist/tts/engines/openai.js.map +1 -1
  76. package/dist/tts/engines/sarvam.d.ts +2 -1
  77. package/dist/tts/engines/sarvam.d.ts.map +1 -1
  78. package/dist/tts/engines/sarvam.js +3 -0
  79. package/dist/tts/engines/sarvam.js.map +1 -1
  80. package/dist/validate.d.ts.map +1 -1
  81. package/dist/validate.js +36 -54
  82. package/dist/validate.js.map +1 -1
  83. package/package.json +1 -1
  84. package/scripts/setup-mlx-audio.sh +1 -1
  85. package/scripts/voice-clone-preview.sh +1 -1
package/README.md CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  **Turn Playwright demo scripts into polished product demo videos with AI voiceover.**
17
17
 
18
- Write a demo script with Playwright. Add a voiceover manifest. Run one command. Get an MP4 with overlays and narration.
18
+ Write a demo script with Playwright. Add a scenes manifest. Run one command. Get an MP4 with overlays and narration.
19
19
 
20
20
  ## Showcase
21
21
 
@@ -35,7 +35,7 @@ https://gist.github.com/user-attachments/assets/ba009e90-0310-454b-833e-e0d71d4d
35
35
  clips scene marks audio
36
36
  │ │
37
37
  ▼ ▼
38
- .voiceover.json → narration-aligned.wav → final.mp4
38
+ .scenes.json → narration-aligned.wav → final.mp4
39
39
  ```
40
40
 
41
41
  ## Quick start
@@ -56,13 +56,13 @@ npx argo pipeline example
56
56
 
57
57
  # Or run steps individually
58
58
  npx argo record example
59
- npx argo tts generate demos/example.voiceover.json
59
+ npx argo tts generate demos/example.scenes.json
60
60
  npx argo export example
61
61
  ```
62
62
 
63
63
  ## Writing a demo
64
64
 
65
- A demo is two files: a **script** and a **voiceover manifest**.
65
+ A demo is two files: a **script** and a **scenes manifest**.
66
66
 
67
67
  ### Demo script (`demos/my-feature.demo.ts`)
68
68
 
@@ -74,46 +74,43 @@ test('my-feature', async ({ page, narration }) => {
74
74
  await page.goto('/');
75
75
 
76
76
  narration.mark('intro');
77
- await showOverlay(page, 'intro', {
78
- type: 'lower-third',
79
- text: 'Welcome to our product',
80
- placement: 'bottom-center',
81
- motion: 'fade-in',
82
- autoBackground: true,
83
- }, narration.durationFor('intro'));
77
+ await showOverlay(page, 'intro', narration.durationFor('intro'));
84
78
 
85
79
  narration.mark('action');
86
- await withOverlay(page, 'action', {
87
- type: 'headline-card',
88
- title: 'Watch this',
89
- placement: 'top-right',
90
- motion: 'slide-in',
91
- }, async () => {
80
+ await withOverlay(page, 'action', async () => {
92
81
  await page.click('#get-started');
93
82
  await page.waitForTimeout(narration.durationFor('action'));
94
83
  });
95
84
 
96
85
  narration.mark('done');
97
- await showOverlay(page, 'done', {
98
- type: 'callout',
99
- text: "That's it!",
100
- placement: 'top-left',
101
- motion: 'fade-in',
102
- }, narration.durationFor('done'));
86
+ await showOverlay(page, 'done', narration.durationFor('done'));
103
87
  });
104
88
  ```
105
89
 
106
- ### Voiceover manifest (`demos/my-feature.voiceover.json`)
90
+ ### Scenes manifest (`demos/my-feature.scenes.json`)
107
91
 
108
92
  ```json
109
93
  [
110
- { "scene": "intro", "text": "Welcome to our product — let me show you around." },
111
- { "scene": "action", "text": "Just click get started and you're off." },
112
- { "scene": "done", "text": "And that's all there is to it.", "voice": "af_heart" }
94
+ {
95
+ "scene": "intro",
96
+ "text": "Welcome to our product let me show you around.",
97
+ "overlay": { "type": "lower-third", "text": "Welcome to our product", "placement": "bottom-center", "motion": "fade-in", "autoBackground": true }
98
+ },
99
+ {
100
+ "scene": "action",
101
+ "text": "Just click get started and you're off.",
102
+ "overlay": { "type": "headline-card", "title": "Watch this", "placement": "top-right", "motion": "slide-in" }
103
+ },
104
+ {
105
+ "scene": "done",
106
+ "text": "And that's all there is to it.",
107
+ "voice": "af_heart",
108
+ "overlay": { "type": "callout", "text": "That's it!", "placement": "top-left", "motion": "fade-in" }
109
+ }
113
110
  ]
114
111
  ```
115
112
 
116
- Each `scene` in the manifest maps to a `narration.mark()` call in the script. Argo records the timestamp of each mark, generates TTS clips, and aligns them to produce the final narrated video.
113
+ Each `scene` in the manifest maps to a `narration.mark()` call in the script. The `text` field is spoken narration; the optional `overlay` sub-object defines what appears on screen. Argo records the timestamp of each mark, generates TTS clips, and aligns them to produce the final narrated video.
117
114
 
118
115
  ## Configuration
119
116
 
@@ -181,6 +178,7 @@ argo tts generate <manifest> Generate TTS clips from manifest
181
178
  argo export <demo> Merge video + audio to MP4
182
179
  argo pipeline <demo> Run all steps end-to-end
183
180
  argo validate <demo> Check scene name consistency (no TTS/recording)
181
+ argo preview <demo> Browser-based editor for voiceover, overlays, timing
184
182
  argo doctor Check environment (ffmpeg, Playwright, config)
185
183
  argo --config <path> <command> Use a custom config file
186
184
 
@@ -188,6 +186,7 @@ Options:
188
186
  --browser <engine> chromium | webkit | firefox (overrides config)
189
187
  --base-url <url> Override baseURL from config
190
188
  --headed Run browser in visible mode
189
+ --port <number> Preview server port (default: auto)
191
190
  ```
192
191
 
193
192
  ## API
@@ -208,8 +207,10 @@ import { defineConfig, demosProject, engines } from '@argo-video/cli';
208
207
  | `test` | Playwright `test` with `narration` fixture injected |
209
208
  | `expect` | Re-exported from Playwright |
210
209
  | `demoType(page, selectorOrLocator, text, delay?)` | Type character-by-character — accepts CSS selector or Playwright Locator |
211
- | `showOverlay(page, scene, cue, durationMs)` | Show a templated overlay (lower-third, headline-card, callout, image-card) |
212
- | `withOverlay(page, scene, cue, action)` | Show overlay during an async action |
210
+ | `showOverlay(page, scene, durationMs)` | Show overlay from manifest for a fixed duration |
211
+ | `showOverlay(page, scene, cue, durationMs)` | Show overlay with inline cue (backward compat) |
212
+ | `withOverlay(page, scene, action)` | Show overlay from manifest during an async action |
213
+ | `withOverlay(page, scene, cue, action)` | Show overlay with inline cue during action (backward compat) |
213
214
  | `hideOverlay(page, zone?)` | Remove overlay from a zone |
214
215
  | `showConfetti(page, opts?)` | Non-blocking confetti animation (`spread: 'burst' \| 'rain'`, `wait: true` to block) |
215
216
  | `spotlight(page, selector, opts?)` | Dark overlay with hole around target element |
@@ -240,7 +241,7 @@ choco install ffmpeg # Windows
240
241
 
241
242
  ## How the pipeline works
242
243
 
243
- 1. **TTS** — Generates WAV clips from the voiceover manifest. Kokoro is the default (local, free), but you can swap in OpenAI, ElevenLabs, Gemini, Sarvam, or mlx-audio via `engines.*` factories. Clips are cached by content hash in `.argo/<demo>/clips/`.
244
+ 1. **TTS** — Generates WAV clips from the scenes manifest. Kokoro is the default (local, free), but you can swap in OpenAI, ElevenLabs, Gemini, Sarvam, or mlx-audio via `engines.*` factories. Clips are cached by content hash in `.argo/<demo>/clips/`.
244
245
 
245
246
  ```js
246
247
  import { defineConfig, engines } from '@argo-video/cli';
@@ -268,7 +269,7 @@ choco install ffmpeg # Windows
268
269
  bash $(npm root)/@argo-video/cli/scripts/voice-clone-preview.sh \
269
270
  --ref-audio assets/ref-voice.wav \
270
271
  --ref-text "Transcript of what I said." \
271
- --voiceover demos/showcase.voiceover.json --play
272
+ --voiceover demos/showcase.scenes.json --play
272
273
  ```
273
274
 
274
275
  ```js
@@ -306,7 +307,7 @@ Argo ships as a **Claude Code skill** so LLMs can create demo videos autonomousl
306
307
  /plugin marketplace add shreyaskarnik/argo
307
308
  ```
308
309
 
309
- The skill teaches Claude how to write demo scripts, voiceover manifests, overlay cues, and run the pipeline — no manual guidance needed.
310
+ The skill teaches Claude how to write demo scripts, scenes manifests, overlay cues, and run the pipeline — no manual guidance needed.
310
311
 
311
312
  ## License
312
313
 
package/dist/camera.d.ts CHANGED
@@ -21,10 +21,18 @@ export interface ZoomToOptions extends CameraOptions {
21
21
  /** Zoom level — 1.5 means 150% magnification. Default: 1.5 */
22
22
  scale?: number;
23
23
  }
24
- export declare function spotlight(page: Page, selector: string, opts?: SpotlightOptions): Promise<void>;
25
- export declare function focusRing(page: Page, selector: string, opts?: FocusRingOptions): Promise<void>;
26
- export declare function dimAround(page: Page, selector: string, opts?: DimAroundOptions): Promise<void>;
27
- export declare function zoomTo(page: Page, selector: string, opts?: ZoomToOptions): Promise<void>;
24
+ export type SelectorOrLocator = string | {
25
+ boundingBox: () => Promise<{
26
+ x: number;
27
+ y: number;
28
+ width: number;
29
+ height: number;
30
+ } | null>;
31
+ };
32
+ export declare function spotlight(page: Page, selectorOrLocator: SelectorOrLocator, opts?: SpotlightOptions): Promise<void>;
33
+ export declare function focusRing(page: Page, selectorOrLocator: SelectorOrLocator, opts?: FocusRingOptions): Promise<void>;
34
+ export declare function dimAround(page: Page, selectorOrLocator: SelectorOrLocator, opts?: DimAroundOptions): Promise<void>;
35
+ export declare function zoomTo(page: Page, selectorOrLocator: SelectorOrLocator, opts?: ZoomToOptions): Promise<void>;
28
36
  export declare function resetCamera(page: Page): Promise<void>;
29
37
  export {};
30
38
  //# sourceMappingURL=camera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsBD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CA6Hf;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3D"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN;IAAE,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;CAAE,CAAC;AA+CnG,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Ff;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAqIf;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3D"}
package/dist/camera.js CHANGED
@@ -2,6 +2,25 @@ const CAMERA_ATTR = 'data-argo-camera';
2
2
  const OVERLAY_ID_PREFIX = 'argo-overlay-';
3
3
  const CONFETTI_ID = 'argo-confetti';
4
4
  const ZOOM_WRAPPER_ID = 'argo-camera-zoom-wrapper';
5
+ async function resolveRect(page, selectorOrLocator) {
6
+ if (typeof selectorOrLocator === 'string') {
7
+ return { selector: selectorOrLocator, rect: null };
8
+ }
9
+ const box = await selectorOrLocator.boundingBox();
10
+ if (!box)
11
+ return { selector: null, rect: null };
12
+ return {
13
+ selector: null,
14
+ rect: {
15
+ left: box.x,
16
+ top: box.y,
17
+ right: box.x + box.width,
18
+ bottom: box.y + box.height,
19
+ width: box.width,
20
+ height: box.height,
21
+ },
22
+ };
23
+ }
5
24
  async function runCameraEffect(page, fn, args, totalMs, wait) {
6
25
  try {
7
26
  await page.evaluate(fn, args);
@@ -16,18 +35,25 @@ async function runCameraEffect(page, fn, args, totalMs, wait) {
16
35
  }
17
36
  }
18
37
  }
19
- export async function spotlight(page, selector, opts) {
38
+ export async function spotlight(page, selectorOrLocator, opts) {
20
39
  const duration = opts?.duration ?? 3000;
21
40
  const fadeIn = opts?.fadeIn ?? 400;
22
41
  const fadeOut = opts?.fadeOut ?? 400;
23
42
  const opacity = opts?.opacity ?? 0.7;
24
43
  const padding = opts?.padding ?? 12;
25
44
  const wait = opts?.wait ?? false;
26
- await runCameraEffect(page, ({ selector, duration, fadeIn, fadeOut, opacity, padding, attr }) => {
27
- const target = document.querySelector(selector);
28
- if (!target)
45
+ const { selector, rect: preRect } = await resolveRect(page, selectorOrLocator);
46
+ await runCameraEffect(page, ({ selector, preRect, duration, fadeIn, fadeOut, opacity, padding, attr }) => {
47
+ const rect = preRect ?? (() => {
48
+ const target = document.querySelector(selector);
49
+ if (!target) {
50
+ console.warn('[argo] camera effect: no element found for selector "' + selector + '"');
51
+ return null;
52
+ }
53
+ return target.getBoundingClientRect();
54
+ })();
55
+ if (!rect)
29
56
  return;
30
- const rect = target.getBoundingClientRect();
31
57
  const overlay = document.createElement('div');
32
58
  overlay.setAttribute(attr, 'spotlight');
33
59
  overlay.style.cssText = `
@@ -50,9 +76,9 @@ export async function spotlight(page, selector, opts) {
50
76
  overlay.style.opacity = '0';
51
77
  setTimeout(() => overlay.remove(), fadeOut);
52
78
  }, duration);
53
- }, { selector, duration, fadeIn, fadeOut, opacity, padding, attr: CAMERA_ATTR }, duration + fadeOut, wait);
79
+ }, { selector, preRect, duration, fadeIn, fadeOut, opacity, padding, attr: CAMERA_ATTR }, duration + fadeOut, wait);
54
80
  }
55
- export async function focusRing(page, selector, opts) {
81
+ export async function focusRing(page, selectorOrLocator, opts) {
56
82
  const duration = opts?.duration ?? 3000;
57
83
  const fadeIn = opts?.fadeIn ?? 400;
58
84
  const fadeOut = opts?.fadeOut ?? 400;
@@ -60,11 +86,18 @@ export async function focusRing(page, selector, opts) {
60
86
  const ringWidth = opts?.width ?? 3;
61
87
  const pulse = opts?.pulse ?? true;
62
88
  const wait = opts?.wait ?? false;
63
- await runCameraEffect(page, ({ selector, duration, fadeIn, fadeOut, color, ringWidth, pulse, attr }) => {
64
- const target = document.querySelector(selector);
65
- if (!target)
89
+ const { selector, rect: preRect } = await resolveRect(page, selectorOrLocator);
90
+ await runCameraEffect(page, ({ selector, preRect, duration, fadeIn, fadeOut, color, ringWidth, pulse, attr }) => {
91
+ const rect = preRect ?? (() => {
92
+ const target = document.querySelector(selector);
93
+ if (!target) {
94
+ console.warn('[argo] camera effect: no element found for selector "' + selector + '"');
95
+ return null;
96
+ }
97
+ return target.getBoundingClientRect();
98
+ })();
99
+ if (!rect)
66
100
  return;
67
- const rect = target.getBoundingClientRect();
68
101
  // Inject pulse animation if needed
69
102
  if (pulse) {
70
103
  const style = document.createElement('style');
@@ -79,11 +112,13 @@ export async function focusRing(page, selector, opts) {
79
112
  }
80
113
  const ring = document.createElement('div');
81
114
  ring.setAttribute(attr, 'focus-ring');
115
+ // When using pre-resolved rect, we don't have a DOM target to read borderRadius from
116
+ const borderRadius = preRect ? ringWidth : Math.min(8, parseInt(getComputedStyle(document.querySelector(selector)).borderRadius) || 0) + ringWidth;
82
117
  ring.style.cssText = `
83
118
  position: fixed; z-index: 99990; pointer-events: none;
84
119
  left: ${rect.left - ringWidth}px; top: ${rect.top - ringWidth}px;
85
120
  width: ${rect.width + ringWidth * 2}px; height: ${rect.height + ringWidth * 2}px;
86
- border-radius: ${Math.min(8, parseInt(getComputedStyle(target).borderRadius) || 0) + ringWidth}px;
121
+ border-radius: ${borderRadius}px;
87
122
  box-shadow: 0 0 0 ${ringWidth}px ${color}66, 0 0 0 ${ringWidth * 2}px ${color}26;
88
123
  ${pulse ? 'animation: argo-focus-pulse 1.5s ease-in-out infinite;' : ''}
89
124
  opacity: 0; transition: opacity ${fadeIn}ms ease-out;
@@ -98,18 +133,53 @@ export async function focusRing(page, selector, opts) {
98
133
  document.querySelectorAll(`[${attr}="focus-ring-style"]`).forEach(el => el.remove());
99
134
  }, fadeOut);
100
135
  }, duration);
101
- }, { selector, duration, fadeIn, fadeOut, color, ringWidth, pulse, attr: CAMERA_ATTR }, duration + fadeOut, wait);
136
+ }, { selector, preRect, duration, fadeIn, fadeOut, color, ringWidth, pulse, attr: CAMERA_ATTR }, duration + fadeOut, wait);
102
137
  }
103
- export async function dimAround(page, selector, opts) {
138
+ export async function dimAround(page, selectorOrLocator, opts) {
104
139
  const duration = opts?.duration ?? 3000;
105
140
  const fadeIn = opts?.fadeIn ?? 400;
106
141
  const fadeOut = opts?.fadeOut ?? 400;
107
142
  const dimOpacity = opts?.dimOpacity ?? 0.3;
108
143
  const wait = opts?.wait ?? false;
144
+ const { selector, rect: preRect } = await resolveRect(page, selectorOrLocator);
145
+ // When a Locator is passed (preRect != null), we don't have a DOM element reference,
146
+ // so sibling-dimming is not possible. Fall back to a spotlight-style full-page dim.
147
+ if (preRect !== null) {
148
+ console.warn('[argo] dimAround: Locator passed — falling back to spotlight-style dim (sibling dimming requires a CSS selector)');
149
+ await runCameraEffect(page, ({ preRect, duration, fadeIn, fadeOut, dimOpacity, attr }) => {
150
+ const rect = preRect;
151
+ const padding = 0;
152
+ const overlay = document.createElement('div');
153
+ overlay.setAttribute(attr, 'dim-around');
154
+ overlay.style.cssText = `
155
+ position: fixed; inset: 0; z-index: 99990; pointer-events: none;
156
+ background: rgba(0,0,0,${1 - dimOpacity});
157
+ clip-path: polygon(
158
+ 0% 0%, 0% 100%, 100% 100%, 100% 0%, 0% 0%,
159
+ ${rect.left - padding}px ${rect.top - padding}px,
160
+ ${rect.left - padding}px ${rect.bottom + padding}px,
161
+ ${rect.right + padding}px ${rect.bottom + padding}px,
162
+ ${rect.right + padding}px ${rect.top - padding}px,
163
+ ${rect.left - padding}px ${rect.top - padding}px
164
+ );
165
+ opacity: 0; transition: opacity ${fadeIn}ms ease-out;
166
+ `;
167
+ document.body.appendChild(overlay);
168
+ requestAnimationFrame(() => { overlay.style.opacity = '1'; });
169
+ setTimeout(() => {
170
+ overlay.style.transition = `opacity ${fadeOut}ms ease-out`;
171
+ overlay.style.opacity = '0';
172
+ setTimeout(() => overlay.remove(), fadeOut);
173
+ }, duration);
174
+ }, { preRect, duration, fadeIn, fadeOut, dimOpacity, attr: CAMERA_ATTR }, duration + fadeOut, wait);
175
+ return;
176
+ }
109
177
  await runCameraEffect(page, ({ selector, duration, fadeIn, fadeOut, dimOpacity, attr }) => {
110
178
  const target = document.querySelector(selector);
111
- if (!target)
179
+ if (!target) {
180
+ console.warn('[argo] camera effect: no element found for selector "' + selector + '"');
112
181
  return;
182
+ }
113
183
  // Find siblings to dim — walk up to a reasonable container
114
184
  const parent = target.parentElement;
115
185
  if (!parent)
@@ -154,17 +224,24 @@ export async function dimAround(page, selector, opts) {
154
224
  }, duration);
155
225
  }, { selector, duration, fadeIn, fadeOut, dimOpacity, attr: CAMERA_ATTR }, duration + fadeOut, wait);
156
226
  }
157
- export async function zoomTo(page, selector, opts) {
227
+ export async function zoomTo(page, selectorOrLocator, opts) {
158
228
  const duration = opts?.duration ?? 3000;
159
229
  const fadeIn = opts?.fadeIn ?? 400;
160
230
  const fadeOut = opts?.fadeOut ?? 400;
161
231
  const scale = opts?.scale ?? 1.5;
162
232
  const wait = opts?.wait ?? false;
163
- await runCameraEffect(page, ({ selector, duration, fadeIn, fadeOut, scale, attr, overlayPrefix, confettiId, wrapperId, }) => {
164
- const target = document.querySelector(selector);
165
- if (!target)
233
+ const { selector, rect: preRect } = await resolveRect(page, selectorOrLocator);
234
+ await runCameraEffect(page, ({ selector, preRect, duration, fadeIn, fadeOut, scale, attr, overlayPrefix, confettiId, wrapperId, }) => {
235
+ const rect = preRect ?? (() => {
236
+ const target = document.querySelector(selector);
237
+ if (!target) {
238
+ console.warn('[argo] camera effect: no element found for selector "' + selector + '"');
239
+ return null;
240
+ }
241
+ return target.getBoundingClientRect();
242
+ })();
243
+ if (!rect)
166
244
  return;
167
- const rect = target.getBoundingClientRect();
168
245
  const centerX = rect.left + rect.width / 2;
169
246
  const centerY = rect.top + rect.height / 2;
170
247
  const isArgoManaged = (el) => el.hasAttribute(attr) ||
@@ -249,6 +326,7 @@ export async function zoomTo(page, selector, opts) {
249
326
  }, duration);
250
327
  }, {
251
328
  selector,
329
+ preRect,
252
330
  duration,
253
331
  fadeIn,
254
332
  fadeOut,
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
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;AA4B5C,wBAAgB,aAAa,IAAI,OAAO,CAiJvC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA6B5C,wBAAgB,aAAa,IAAI,OAAO,CA0KvC"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { generateClips } from './tts/generate.js';
6
6
  import { exportVideo } from './export.js';
7
7
  import { runPipeline } from './pipeline.js';
8
8
  import { init, initFrom } from './init.js';
9
+ import { startPreviewServer } from './preview.js';
9
10
  import { validateDemo } from './validate.js';
10
11
  import { runDoctor, formatDoctorResults } from './doctor.js';
11
12
  function validateDemoName(name) {
@@ -64,7 +65,7 @@ export function createProgram() {
64
65
  const config = await ensureTTSEngine(await loadConfig(process.cwd(), configPath));
65
66
  await generateClips({
66
67
  manifestPath: manifest,
67
- demoName: basename(manifest).replace(/\.voiceover\.json$/, '').replace(/\.json$/, ''),
68
+ demoName: basename(manifest).replace(/\.scenes\.json$/, '').replace(/\.voiceover\.json$/, '').replace(/\.json$/, ''),
68
69
  engine: config.tts.engine,
69
70
  projectRoot: '.',
70
71
  defaults: { voice: config.tts.defaultVoice, speed: config.tts.defaultSpeed },
@@ -143,6 +144,30 @@ export function createProgram() {
143
144
  if (fails > 0)
144
145
  process.exitCode = 1;
145
146
  });
147
+ program
148
+ .command('preview <demo>')
149
+ .description('Start a browser-based preview server to tweak voiceover, overlays, and timing without re-recording')
150
+ .option('--port <number>', 'server port (default: auto)', parseInt)
151
+ .action(async (demo, cmdOpts) => {
152
+ validateDemoName(demo);
153
+ const configPath = program.opts().config;
154
+ const config = await loadConfig(process.cwd(), configPath);
155
+ const { url } = await startPreviewServer({
156
+ demoName: demo,
157
+ argoDir: '.argo',
158
+ demosDir: config.demosDir,
159
+ outputDir: config.outputDir,
160
+ port: cmdOpts.port,
161
+ ttsDefaults: {
162
+ voice: config.tts.defaultVoice,
163
+ speed: config.tts.defaultSpeed,
164
+ },
165
+ });
166
+ console.log(`\nArgo Preview running at: ${url}`);
167
+ console.log('Press Ctrl+C to stop.\n');
168
+ // Keep process alive
169
+ await new Promise(() => { });
170
+ });
146
171
  program
147
172
  .command('init')
148
173
  .description('Initialize a new Argo project')
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":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Page } from '@playwright/test';
2
+ export interface CursorHighlightOptions {
3
+ /** Highlight ring color. Default: '#3b82f6' */
4
+ color?: string;
5
+ /** Radius of the highlight circle in px. Default: 20 */
6
+ radius?: number;
7
+ /** Show a pulsing glow around cursor. Default: true */
8
+ pulse?: boolean;
9
+ /** Show a ripple effect on click. Default: true */
10
+ clickRipple?: boolean;
11
+ /** Opacity of the highlight ring. Default: 0.5 */
12
+ opacity?: number;
13
+ }
14
+ /**
15
+ * Enables a persistent cursor highlight that follows the mouse pointer.
16
+ * The highlight remains active until `resetCursor(page)` is called.
17
+ * Calling again replaces the existing highlight.
18
+ */
19
+ export declare function cursorHighlight(page: Page, opts?: CursorHighlightOptions): Promise<void>;
20
+ /**
21
+ * Removes the cursor highlight and all related elements.
22
+ */
23
+ export declare function resetCursor(page: Page): Promise<void>;
24
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAK7C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3D"}