@argo-video/cli 0.25.0 → 0.27.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 CHANGED
@@ -19,7 +19,7 @@ Write a demo script with Playwright. Add a scenes manifest. Run one command. Get
19
19
 
20
20
  ## Showcase
21
21
 
22
- [Watch the demo video](https://github.com/user-attachments/assets/74fd623b-c99a-4c3a-b8eb-ba38c17a3d93)
22
+ [Watch the demo video](https://github.com/user-attachments/assets/242180f6-d7ca-4122-a817-50ccf4ff429f)
23
23
 
24
24
  > *This demo was recorded by Argo, using Argo. Yes, really.*
25
25
 
@@ -27,14 +27,18 @@ export interface CameraMove {
27
27
  holdMs?: number;
28
28
  }
29
29
  /**
30
- * Build an ffmpeg filter expression for a single camera move.
30
+ * Detect which adjacent move pairs should be chained (smooth pan instead of bounce).
31
+ * Returns a Set of indices where move[i] should chain into move[i+1].
32
+ */
33
+ export declare function detectChainedPairs(moves: CameraMove[]): Set<number>;
34
+ /**
35
+ * Build an ffmpeg filter expression for camera moves with connected handoffs.
31
36
  *
32
- * The approach: animate zoom and crop-center with ffmpeg's zoompan filter.
33
- * Unlike crop, zoompan supports per-frame zoom changes directly.
37
+ * Adjacent moves within CHAIN_GAP_MS get smooth pans between them instead of
38
+ * bouncing back to zoom. The pan interpolates focus + scale with an ease-out
39
+ * curve, creating cinematic connected camera motion.
34
40
  *
35
41
  * Uses ffmpeg's `if(between(t,...),expr,default)` for time-based animation.
36
- * Linear interpolation for v1 — cubic easing can be added later via
37
- * precomputed keyframes.
38
42
  */
39
43
  export declare function buildCameraMoveFilter(moves: CameraMove[], inputWidth: number, inputHeight: number, inputLabel: string, fps?: number): {
40
44
  filter: string;
@@ -1 +1 @@
1
- {"version":3,"file":"camera-move.d.ts","sourceRoot":"","sources":["../src/camera-move.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qHAAqH;IACrH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,GAAG,SAAK,GACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAY,EACvB,KAAK,GAAE,UAAU,EAAO,EACxB,GAAG,SAAK,GACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoChD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAMpF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU,EAAE,CAS7F"}
1
+ {"version":3,"file":"camera-move.d.ts","sourceRoot":"","sources":["../src/camera-move.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qHAAqH;IACrH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8BD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,GAAG,SAAK,GACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkHhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAY,EACvB,KAAK,GAAE,UAAU,EAAO,EACxB,GAAG,SAAK,GACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoChD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAMpF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU,EAAE,CAS7F"}
@@ -9,74 +9,152 @@
9
9
  function formatSeconds(value) {
10
10
  return value.toFixed(4);
11
11
  }
12
+ /** Max gap (ms) between two moves to chain them with a smooth pan instead of bouncing to 1×. */
13
+ const CHAIN_GAP_MS = 1500;
14
+ /** Duration (ms) of the smooth pan transition between chained moves. */
15
+ const CHAIN_PAN_MS = 1000;
12
16
  /**
13
- * Build an ffmpeg filter expression for a single camera move.
17
+ * Cubic bezier approximation for easing: cubicBezier(0.1, 0.0, 0.2, 1.0, t).
18
+ * This is an aggressive ease-out (fast deceleration) used for connected pans.
19
+ * Approximated as a polynomial: roughly t^0.5 with slight adjustment.
20
+ * In ffmpeg expressions: 1-pow(1-t,3) gives a good ease-out approximation.
21
+ */
22
+ function easeOutExpr(tExpr) {
23
+ return `(1-pow(1-(${tExpr})\\,3))`;
24
+ }
25
+ /**
26
+ * Compute the end time (in ms) of a camera move including zoom-out.
27
+ */
28
+ function moveEndMs(move) {
29
+ const fadeMs = move.durationMs;
30
+ const holdMs = move.holdMs ?? 0;
31
+ return move.startMs + fadeMs + holdMs + fadeMs; // in + hold + out
32
+ }
33
+ /**
34
+ * Detect which adjacent move pairs should be chained (smooth pan instead of bounce).
35
+ * Returns a Set of indices where move[i] should chain into move[i+1].
36
+ */
37
+ export function detectChainedPairs(moves) {
38
+ const chained = new Set();
39
+ for (let i = 0; i < moves.length - 1; i++) {
40
+ const scaleA = moves[i].scale ?? 1.5;
41
+ const scaleB = moves[i + 1].scale ?? 1.5;
42
+ if (scaleA <= 1.0 || scaleB <= 1.0)
43
+ continue;
44
+ const gap = moves[i + 1].startMs - moveEndMs(moves[i]);
45
+ if (gap >= 0 && gap <= CHAIN_GAP_MS) {
46
+ chained.add(i);
47
+ }
48
+ }
49
+ return chained;
50
+ }
51
+ /**
52
+ * Build an ffmpeg filter expression for camera moves with connected handoffs.
14
53
  *
15
- * The approach: animate zoom and crop-center with ffmpeg's zoompan filter.
16
- * Unlike crop, zoompan supports per-frame zoom changes directly.
54
+ * Adjacent moves within CHAIN_GAP_MS get smooth pans between them instead of
55
+ * bouncing back to zoom. The pan interpolates focus + scale with an ease-out
56
+ * curve, creating cinematic connected camera motion.
17
57
  *
18
58
  * Uses ffmpeg's `if(between(t,...),expr,default)` for time-based animation.
19
- * Linear interpolation for v1 — cubic easing can be added later via
20
- * precomputed keyframes.
21
59
  */
22
60
  export function buildCameraMoveFilter(moves, inputWidth, inputHeight, inputLabel, fps = 30) {
23
61
  if (moves.length === 0)
24
62
  return null;
25
- // Validate dimensions
26
63
  if (inputWidth <= 0 || inputHeight <= 0)
27
64
  return null;
28
- const parts = [];
29
- let currentLabel = inputLabel;
30
- for (let i = 0; i < moves.length; i++) {
31
- const move = moves[i];
65
+ // Filter to valid moves and sort by start time
66
+ const validMoves = moves
67
+ .map((m, i) => ({ move: m, origIdx: i }))
68
+ .filter(({ move }) => (move.scale ?? 1.5) > 1.0);
69
+ if (validMoves.length === 0)
70
+ return null;
71
+ const sortedMoves = validMoves.map(v => v.move);
72
+ const chained = detectChainedPairs(sortedMoves);
73
+ const f = (n) => n.toFixed(4);
74
+ // Build unified zoom, panX, panY expressions as nested if/else chains.
75
+ // Each move contributes its time windows; chained pairs add a pan transition.
76
+ const zoomClauses = [];
77
+ const panXClauses = [];
78
+ const panYClauses = [];
79
+ for (let i = 0; i < sortedMoves.length; i++) {
80
+ const move = sortedMoves[i];
32
81
  const scale = move.scale ?? 1.5;
33
- if (scale <= 1.0)
34
- continue; // No zoom needed
35
82
  const holdMs = move.holdMs ?? 0;
36
83
  const fadeInSec = move.durationMs / 1000;
37
84
  const holdSec = holdMs / 1000;
38
- const fadeOutSec = fadeInSec; // Symmetric zoom out
85
+ const fadeOutSec = fadeInSec;
39
86
  const startSec = move.startMs / 1000;
40
87
  const zoomInEnd = startSec + fadeInSec;
41
88
  const holdEnd = zoomInEnd + holdSec;
42
89
  const zoomOutEnd = holdEnd + fadeOutSec;
43
- // Build the animated zoom expression.
44
- // progress goes 0→1 during zoom-in, stays 1 during hold, goes 1→0 during zoom-out.
45
- const f = (n) => n.toFixed(4);
46
- // Progress expressions for each phase
47
- const zoomInProgress = `(in_time-${f(startSec)})/${f(fadeInSec)}`;
48
- const zoomOutProgress = `1-(in_time-${f(holdEnd)})/${f(fadeOutSec)}`;
49
- // Combined progress: 0 before start, ramp 0→1 during zoom-in, 1 during hold, ramp 1→0 during zoom-out, 0 after
50
- const progress = [
51
- `if(between(in_time\\,${f(startSec)}\\,${f(zoomInEnd)})\\,${zoomInProgress}`,
52
- `\\,if(between(in_time\\,${f(zoomInEnd)}\\,${f(holdEnd)})\\,1`,
53
- `\\,if(between(in_time\\,${f(holdEnd)}\\,${f(zoomOutEnd)})\\,${zoomOutProgress}`,
54
- `\\,0)))`,
55
- ].join('');
56
- // Animated zoom factor: 1.0 -> scale -> 1.0
57
- const zoom = `1+${progress}*${f(scale - 1)}`;
58
- // Center the zoom window on the target element.
59
- // zoompan crops a source window of size iw/zoom x ih/zoom.
60
- const centerX = f(move.x);
61
- const centerY = f(move.y);
62
- const panX = `max(0\\,min(${centerX}-iw/(${zoom})/2\\,iw-iw/(${zoom})))`;
63
- const panY = `max(0\\,min(${centerY}-ih/(${zoom})/2\\,ih-ih/(${zoom})))`;
64
- const outLabel = `cam${i}`;
65
- parts.push(`${currentLabel}zoompan=z='${zoom}':x='${panX}':y='${panY}':d=1:s=${inputWidth}x${inputHeight}:fps=${Math.max(1, Math.round(fps))}[${outLabel}]`);
66
- currentLabel = `[${outLabel}]`;
67
- }
68
- if (parts.length === 0)
69
- return null;
70
- const finalLabel = `camfinal`;
71
- // Rename the last output label — find the actual label used in the last part,
72
- // not moves.length-1 (which may refer to a skipped move with scale <= 1)
73
- const lastPart = parts[parts.length - 1];
74
- const lastLabelMatch = lastPart.match(/\[cam(\d+)\]$/);
75
- if (lastLabelMatch) {
76
- parts[parts.length - 1] = lastPart.replace(`[cam${lastLabelMatch[1]}]`, `[${finalLabel}]`);
90
+ const isChainedOut = chained.has(i); // this move chains into the next
91
+ const isChainedIn = i > 0 && chained.has(i - 1); // previous move chains into this
92
+ // --- Zoom-in phase (skip if chained-in — the pan transition handles it) ---
93
+ if (!isChainedIn) {
94
+ const progress = `(in_time-${f(startSec)})/${f(fadeInSec)}`;
95
+ zoomClauses.push(`if(between(in_time\\,${f(startSec)}\\,${f(zoomInEnd)})\\,1+${progress}*${f(scale - 1)}`);
96
+ panXClauses.push(`if(between(in_time\\,${f(startSec)}\\,${f(zoomInEnd)})\\,${f(move.x)}`);
97
+ panYClauses.push(`if(between(in_time\\,${f(startSec)}\\,${f(zoomInEnd)})\\,${f(move.y)}`);
98
+ }
99
+ // --- Hold phase ---
100
+ if (holdSec > 0) {
101
+ zoomClauses.push(`if(between(in_time\\,${f(zoomInEnd)}\\,${f(holdEnd)})\\,${f(scale)}`);
102
+ panXClauses.push(`if(between(in_time\\,${f(zoomInEnd)}\\,${f(holdEnd)})\\,${f(move.x)}`);
103
+ panYClauses.push(`if(between(in_time\\,${f(zoomInEnd)}\\,${f(holdEnd)})\\,${f(move.y)}`);
104
+ }
105
+ // --- Zoom-out or connected pan transition ---
106
+ if (isChainedOut) {
107
+ const next = sortedMoves[i + 1];
108
+ const nextScale = next.scale ?? 1.5;
109
+ // Pan transition: from current hold end to next zoom-in end
110
+ const rawPanDur = (next.startMs - move.startMs - move.durationMs - holdMs) / 1000 + next.durationMs / 1000;
111
+ const panDur = Math.max(0.1, Math.min(CHAIN_PAN_MS / 1000, rawPanDur));
112
+ const panStart = holdEnd;
113
+ const panEnd = panStart + panDur;
114
+ // During pan: interpolate scale and focus between current and next
115
+ const tExpr = `(in_time-${f(panStart)})/${f(panDur)}`;
116
+ const easedT = easeOutExpr(tExpr);
117
+ // Lerp scale: current scale → next scale
118
+ const lerpScale = `${f(scale)}+(${f(nextScale)}-${f(scale)})*${easedT}`;
119
+ // Lerp focus
120
+ const lerpX = `${f(move.x)}+(${f(next.x)}-${f(move.x)})*${easedT}`;
121
+ const lerpY = `${f(move.y)}+(${f(next.y)}-${f(move.y)})*${easedT}`;
122
+ zoomClauses.push(`if(between(in_time\\,${f(panStart)}\\,${f(panEnd)})\\,${lerpScale}`);
123
+ panXClauses.push(`if(between(in_time\\,${f(panStart)}\\,${f(panEnd)})\\,${lerpX}`);
124
+ panYClauses.push(`if(between(in_time\\,${f(panStart)}\\,${f(panEnd)})\\,${lerpY}`);
125
+ // If there's a gap between pan end and next move's zoom-in, hold at next position
126
+ const nextStart = next.startMs / 1000;
127
+ const nextFadeIn = next.durationMs / 1000;
128
+ const nextZoomInEnd = nextStart + nextFadeIn;
129
+ if (panEnd < nextZoomInEnd) {
130
+ zoomClauses.push(`if(between(in_time\\,${f(panEnd)}\\,${f(nextZoomInEnd)})\\,${f(nextScale)}`);
131
+ panXClauses.push(`if(between(in_time\\,${f(panEnd)}\\,${f(nextZoomInEnd)})\\,${f(next.x)}`);
132
+ panYClauses.push(`if(between(in_time\\,${f(panEnd)}\\,${f(nextZoomInEnd)})\\,${f(next.y)}`);
133
+ }
134
+ }
135
+ else {
136
+ // Normal zoom-out
137
+ const progress = `1-(in_time-${f(holdEnd)})/${f(fadeOutSec)}`;
138
+ zoomClauses.push(`if(between(in_time\\,${f(holdEnd)}\\,${f(zoomOutEnd)})\\,1+${progress}*${f(scale - 1)}`);
139
+ panXClauses.push(`if(between(in_time\\,${f(holdEnd)}\\,${f(zoomOutEnd)})\\,${f(move.x)}`);
140
+ panYClauses.push(`if(between(in_time\\,${f(holdEnd)}\\,${f(zoomOutEnd)})\\,${f(move.y)}`);
141
+ }
77
142
  }
143
+ // Close all clauses with default (no zoom = 1.0, center pan)
144
+ const defaultZoom = '1';
145
+ const defaultX = f(inputWidth / 2);
146
+ const defaultY = f(inputHeight / 2);
147
+ const closingParens = ')'.repeat(zoomClauses.length);
148
+ const zoomExpr = zoomClauses.join('\\,') + `\\,${defaultZoom}${closingParens}`;
149
+ const focusX = panXClauses.join('\\,') + `\\,${defaultX}${closingParens}`;
150
+ const focusY = panYClauses.join('\\,') + `\\,${defaultY}${closingParens}`;
151
+ // Build pan expressions from focus point + zoom
152
+ const panX = `max(0\\,min(${focusX}-iw/(${zoomExpr})/2\\,iw-iw/(${zoomExpr})))`;
153
+ const panY = `max(0\\,min(${focusY}-ih/(${zoomExpr})/2\\,ih-ih/(${zoomExpr})))`;
154
+ const finalLabel = 'camfinal';
155
+ const filter = `${inputLabel}zoompan=z='${zoomExpr}':x='${panX}':y='${panY}':d=1:s=${inputWidth}x${inputHeight}:fps=${Math.max(1, Math.round(fps))}[${finalLabel}]`;
78
156
  return {
79
- filter: parts.join(';\n'),
157
+ filter,
80
158
  outputLabel: finalLabel,
81
159
  };
82
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"camera-move.js","sourceRoot":"","sources":["../src/camera-move.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera-move.js","sourceRoot":"","sources":["../src/camera-move.ts"],"names":[],"mappings":"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"}
package/dist/camera.d.ts CHANGED
@@ -43,5 +43,15 @@ export declare function focusRing(page: Page, selectorOrLocator: SelectorOrLocat
43
43
  export declare function dimAround(page: Page, selectorOrLocator: SelectorOrLocator, opts?: DimAroundOptions): Promise<void>;
44
44
  export declare function zoomTo(page: Page, selectorOrLocator: SelectorOrLocator, opts?: ZoomToOptions): Promise<void>;
45
45
  export declare function resetCamera(page: Page): Promise<void>;
46
+ /**
47
+ * Start tracking cursor positions for dwell-based camera suggestions.
48
+ *
49
+ * Injects a throttled mousemove listener into the page that records
50
+ * normalized (0..1) cursor positions. Call once at the start of the
51
+ * demo script — positions are flushed to a sidecar file by the fixture.
52
+ *
53
+ * Non-blocking, fire-and-forget safe.
54
+ */
55
+ export declare function trackCursor(page: Page, narration: NarrationTimeline): Promise<void>;
46
56
  export {};
47
57
  //# 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;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOxD,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;IACf,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;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,CA0Kf;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;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOxD,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;IACf,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;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,CA0Kf;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3D;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuBf"}
package/dist/camera.js CHANGED
@@ -412,4 +412,38 @@ export async function resetCamera(page) {
412
412
  // Page may be closed
413
413
  }
414
414
  }
415
+ /**
416
+ * Start tracking cursor positions for dwell-based camera suggestions.
417
+ *
418
+ * Injects a throttled mousemove listener into the page that records
419
+ * normalized (0..1) cursor positions. Call once at the start of the
420
+ * demo script — positions are flushed to a sidecar file by the fixture.
421
+ *
422
+ * Non-blocking, fire-and-forget safe.
423
+ */
424
+ export async function trackCursor(page, narration) {
425
+ try {
426
+ // Expose a callback for the page to send cursor positions
427
+ await page.exposeFunction('__argoCursorSample', (cx, cy) => {
428
+ narration.recordCursorPosition(cx, cy);
429
+ });
430
+ // Inject throttled mousemove listener
431
+ await page.evaluate(() => {
432
+ let lastTime = 0;
433
+ const THROTTLE_MS = 100; // 10 samples/sec — enough for dwell detection
434
+ document.addEventListener('mousemove', (e) => {
435
+ const now = Date.now();
436
+ if (now - lastTime < THROTTLE_MS)
437
+ return;
438
+ lastTime = now;
439
+ const cx = e.clientX / window.innerWidth;
440
+ const cy = e.clientY / window.innerHeight;
441
+ window.__argoCursorSample(cx, cy);
442
+ }, { passive: true });
443
+ });
444
+ }
445
+ catch {
446
+ // Page may be closed or exposeFunction already called
447
+ }
448
+ }
415
449
  //# sourceMappingURL=camera.js.map
@@ -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/index.d.ts CHANGED
@@ -5,7 +5,8 @@ export { showCaption, hideCaption, withCaption } from './captions.js';
5
5
  export { showOverlay, hideOverlay, withOverlay, type OverlayCue, type OverlayManifestEntry, type Zone, type TemplateType, type MotionPreset, } from './overlays/index.js';
6
6
  export { renderOverlaysToPng, buildOverlayPngFilters, buildOverlayPngsForImport, isImportedVideo, type RenderedOverlayPng, type OverlayPngInput, } from './overlays/render-to-png.js';
7
7
  export { showConfetti, type ConfettiOptions } from './effects.js';
8
- export { spotlight, focusRing, dimAround, zoomTo, resetCamera, type SpotlightOptions, type FocusRingOptions, type DimAroundOptions, type ZoomToOptions, } from './camera.js';
8
+ export { spotlight, focusRing, dimAround, zoomTo, resetCamera, type SpotlightOptions, type FocusRingOptions, type DimAroundOptions, type ZoomToOptions, trackCursor, } from './camera.js';
9
+ export type { CursorSample } from './narration.js';
9
10
  export { cursorHighlight, resetCursor, type CursorHighlightOptions, } from './cursor.js';
10
11
  export { type TTSEngineOptions } from './tts/engine.js';
11
12
  export { engines } from './tts/engines/index.js';
@@ -18,7 +19,7 @@ export { runPipeline, runBatchPipeline, discoverDemos, type PipelineOptions } fr
18
19
  export { buildTransitionFilters } from './transitions.js';
19
20
  export { computeSegments, applySpeedRamp, type SceneSpeedMap } from './speed-ramp.js';
20
21
  export { buildFreezeFilter, resolveFreezes, adjustPlacementsForFreezes, totalFreezeDurationMs, type FreezeSpec, type ResolvedFreeze, } from './freeze.js';
21
- export { buildCameraMoveFilter, buildMotionBlurFilter, shiftCameraMoves, scaleCameraMoves, type CameraMove } from './camera-move.js';
22
+ export { buildCameraMoveFilter, buildMotionBlurFilter, detectChainedPairs, shiftCameraMoves, scaleCameraMoves, type CameraMove } from './camera-move.js';
22
23
  export { buildFrameFilter, type FrameFilterResult } from './frame.js';
23
24
  export { runFfmpegWithProgress } from './progress.js';
24
25
  export { startDashboardServer } from './dashboard.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ export { renderOverlaysToPng, buildOverlayPngFilters, buildOverlayPngsForImport,
14
14
  // Effects
15
15
  export { showConfetti } from './effects.js';
16
16
  // Camera
17
- export { spotlight, focusRing, dimAround, zoomTo, resetCamera, } from './camera.js';
17
+ export { spotlight, focusRing, dimAround, zoomTo, resetCamera, trackCursor, } from './camera.js';
18
18
  // Cursor
19
19
  export { cursorHighlight, resetCursor, } from './cursor.js';
20
20
  export { engines } from './tts/engines/index.js';
@@ -37,7 +37,7 @@ export { computeSegments, applySpeedRamp } from './speed-ramp.js';
37
37
  // Freeze
38
38
  export { buildFreezeFilter, resolveFreezes, adjustPlacementsForFreezes, totalFreezeDurationMs, } from './freeze.js';
39
39
  // Camera Moves
40
- export { buildCameraMoveFilter, buildMotionBlurFilter, shiftCameraMoves, scaleCameraMoves } from './camera-move.js';
40
+ export { buildCameraMoveFilter, buildMotionBlurFilter, detectChainedPairs, shiftCameraMoves, scaleCameraMoves } from './camera-move.js';
41
41
  // Frame
42
42
  export { buildFrameFilter } from './frame.js';
43
43
  // Progress
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,SAAS;AACT,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,GAgBb,MAAM,aAAa,CAAC;AAErB,WAAW;AACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAA6B,MAAM,gBAAgB,CAAC;AAE9E,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEtE,WAAW;AACX,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,GAMZ,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AAErC,UAAU;AACV,OAAO,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AAElE,SAAS;AACT,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,WAAW,GAKZ,MAAM,aAAa,CAAC;AAErB,SAAS;AACT,OAAO,EACL,eAAe,EACf,WAAW,GAEZ,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1D,WAAW;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAEpF,WAAW;AACX,OAAO,EAAE,YAAY,EAA6C,MAAM,eAAe,CAAC;AAExF,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AAEnG,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAEtF,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AAErI,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAEtE,WAAW;AACX,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO;AACP,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,eAAe;AACf,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAEzE,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzG,SAAS;AACT,OAAO,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAEjF,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,SAAS;AACT,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,GAgBb,MAAM,aAAa,CAAC;AAErB,WAAW;AACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAA6B,MAAM,gBAAgB,CAAC;AAE9E,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEtE,WAAW;AACX,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,GAMZ,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AAErC,UAAU;AACV,OAAO,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AAElE,SAAS;AACT,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,WAAW,EAKX,WAAW,GACZ,MAAM,aAAa,CAAC;AAKrB,SAAS;AACT,OAAO,EACL,eAAe,EACf,WAAW,GAEZ,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1D,WAAW;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAEpF,WAAW;AACX,OAAO,EAAE,YAAY,EAA6C,MAAM,eAAe,CAAC;AAExF,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AAEnG,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAEtF,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AAEzJ,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAEtE,WAAW;AACX,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO;AACP,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,eAAe;AACf,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAEzE,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzG,SAAS;AACT,OAAO,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAEjF,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC"}
@@ -7,12 +7,21 @@ export interface SceneDurationOptions {
7
7
  multiplier?: number;
8
8
  fallbackMs?: number;
9
9
  }
10
+ export interface CursorSample {
11
+ /** Normalized X position (0..1 of viewport width). */
12
+ cx: number;
13
+ /** Normalized Y position (0..1 of viewport height). */
14
+ cy: number;
15
+ /** Timestamp in ms from timeline start. */
16
+ timeMs: number;
17
+ }
10
18
  export declare class NarrationTimeline {
11
19
  private timings;
12
20
  private startTime;
13
21
  private sceneDurations;
14
22
  private cachedPlacements;
15
23
  private _cameraMoves;
24
+ private _cursorTelemetry;
16
25
  constructor(sceneDurations?: Record<string, number>);
17
26
  start(): void;
18
27
  mark(scene: string): void;
@@ -24,6 +33,12 @@ export declare class NarrationTimeline {
24
33
  startMs?: number;
25
34
  }): void;
26
35
  getCameraMoves(): CameraMove[];
36
+ /**
37
+ * Record a cursor position sample for dwell-based camera suggestions.
38
+ * Coordinates should be normalized to 0..1 of the viewport.
39
+ */
40
+ recordCursorPosition(cx: number, cy: number): void;
41
+ getCursorTelemetry(): CursorSample[];
27
42
  getTimings(): Record<string, number>;
28
43
  flush(outputPath: string): Promise<void>;
29
44
  private getBaseDuration;
@@ -1 +1 @@
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"}
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,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB;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;IACxC,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,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;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IASlD,kBAAkB,IAAI,YAAY,EAAE;IAIpC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9C,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
@@ -8,6 +8,7 @@ export class NarrationTimeline {
8
8
  sceneDurations = {};
9
9
  cachedPlacements = null;
10
10
  _cameraMoves = [];
11
+ _cursorTelemetry = [];
11
12
  constructor(sceneDurations) {
12
13
  if (sceneDurations) {
13
14
  this.sceneDurations = sceneDurations;
@@ -53,6 +54,22 @@ export class NarrationTimeline {
53
54
  getCameraMoves() {
54
55
  return [...this._cameraMoves];
55
56
  }
57
+ /**
58
+ * Record a cursor position sample for dwell-based camera suggestions.
59
+ * Coordinates should be normalized to 0..1 of the viewport.
60
+ */
61
+ recordCursorPosition(cx, cy) {
62
+ if (this.startTime === null)
63
+ return;
64
+ this._cursorTelemetry.push({
65
+ cx,
66
+ cy,
67
+ timeMs: Date.now() - this.startTime,
68
+ });
69
+ }
70
+ getCursorTelemetry() {
71
+ return [...this._cursorTelemetry];
72
+ }
56
73
  getTimings() {
57
74
  return Object.fromEntries(this.timings);
58
75
  }
@@ -64,6 +81,11 @@ export class NarrationTimeline {
64
81
  const cameraMovesPath = outputPath.replace(/\.json$/, '') + '.camera-moves.json';
65
82
  await writeFile(cameraMovesPath, JSON.stringify(this._cameraMoves, null, 2), 'utf-8');
66
83
  }
84
+ // Write cursor telemetry for dwell-based camera suggestions
85
+ if (this._cursorTelemetry.length > 0) {
86
+ const cursorPath = outputPath.replace(/\.json$/, '') + '.cursor-telemetry.json';
87
+ await writeFile(cursorPath, JSON.stringify(this._cursorTelemetry), 'utf-8');
88
+ }
67
89
  }
68
90
  getBaseDuration(scene, options) {
69
91
  const clipMs = this.sceneDurations[scene];