@vosjs/cli 0.17.3 → 0.18.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/dist/cli.js CHANGED
@@ -495,7 +495,7 @@ async function cmdCheck(argv) {
495
495
  return result.ok ? EXIT_OK : EXIT_ERROR;
496
496
  }
497
497
  async function delegate(argv, viaAlias = false) {
498
- const { run } = await import("./run-3RLBXNHV.js");
498
+ const { run } = await import("./run-R7KDKIVK.js");
499
499
  if (viaAlias && argv[0]) {
500
500
  process.stderr.write(
501
501
  `note: "vos voila ${argv[0]}" is now "vos ${argv[0]}".
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Browser, Page } from 'playwright';
2
- import { CursorTrack, RecordingMeta, ProjectDoc, CursorEvent, Backdrop, TranscriptSegment, Digest } from '@vosjs/studio-core';
2
+ import { CursorTrack, RecordingMeta, ProjectDoc, CursorEvent, Backdrop, LayoutParts, TranscriptSegment, Digest } from '@vosjs/studio-core';
3
3
  export { Digest } from '@vosjs/studio-core';
4
4
 
5
5
  interface RenderCommonOptions {
@@ -230,6 +230,48 @@ declare function encodeRecording(browser: Browser, takeDir: string, onProgress:
230
230
  bytes: number;
231
231
  }>;
232
232
 
233
+ interface ReleaseWords {
234
+ headline?: string | null;
235
+ kicker?: string | null;
236
+ brand?: string | null;
237
+ release?: string | null;
238
+ }
239
+
240
+ interface MusicCatalog {
241
+ tracks: {
242
+ slug: string;
243
+ title: string;
244
+ mood?: string;
245
+ duration: number;
246
+ url: string;
247
+ }[];
248
+ sfx: {
249
+ slug: string;
250
+ title: string;
251
+ duration: number;
252
+ url: string;
253
+ }[];
254
+ }
255
+ interface MotionProposalInput {
256
+ words: ReleaseWords;
257
+ /** LAUNCH.md roles: music (a slug or mood), entrance, endCard, captions, clicks. */
258
+ launch: Record<string, string>;
259
+ /** The end card's ink: the brand's ink over a light ground, white over a dark one. */
260
+ ink?: string | null;
261
+ /** The brand's mark for the end card (a take-dir key and its aspect), or none. */
262
+ mark?: {
263
+ key: string;
264
+ aspect: number;
265
+ } | null;
266
+ /** actions.json steps with their optional captions, by index. */
267
+ captions: {
268
+ step: number;
269
+ id?: string;
270
+ caption: string;
271
+ }[];
272
+ catalog: MusicCatalog | null;
273
+ }
274
+
233
275
  /**
234
276
  * Reuse: re-time a previous cut onto a NEW recording of the same
235
277
  * script. The recorder's `meta.steps` say when each actions.json step ran
@@ -268,6 +310,15 @@ interface PlanSummary {
268
310
  /** The style fields copied from `--style`'s reference, when given. */
269
311
  styleFrom?: string;
270
312
  styleFields?: readonly string[];
313
+ /** The layout the reference carried and what the copy left alone. */
314
+ layout?: LayoutParts & {
315
+ notes: string[];
316
+ };
317
+ /** The motion proposed onto the document, and what could not be. */
318
+ motion?: {
319
+ notes: string[];
320
+ skipped: string[];
321
+ };
271
322
  /** `--reuse`: what the re-anchor did and what it could not. */
272
323
  reuse?: ReuseReport & {
273
324
  from: string;
@@ -280,6 +331,8 @@ interface PlanOptions {
280
331
  * copied onto this take BEFORE the planners run, so the auto spans are
281
332
  * proposed under the series' camera. The cut (spans, overlays, audio) is
282
333
  * never touched; a field absent on the reference is removed here too.
334
+ * A reference that is a POSTER carries its layout too: the stage clips
335
+ * by id, the rest lean where this take has no spans, the trailing hold.
283
336
  */
284
337
  style?: {
285
338
  from: string;
@@ -303,6 +356,25 @@ interface PlanOptions {
303
356
  * frame, which still wins. Null or absent: the bare frame.
304
357
  */
305
358
  backdrop?: Backdrop | null;
359
+ /**
360
+ * The release's words, patched into the stage clips a layout carries
361
+ * (`stage-title` ← headline, `stage-kicker` ← kicker, `stage-brand` ←
362
+ * the wordmark) and read by the end card.
363
+ */
364
+ words?: ReleaseWords;
365
+ /** The brand's mark (a take-dir key + aspect): the layout's `stage-mark` and the end card's mark. */
366
+ mark?: {
367
+ key: string;
368
+ aspect: number;
369
+ } | null;
370
+ /**
371
+ * Propose the cut's motion (entrance, end card, captions, bed, clicks)
372
+ * from these roles. Applied on a fresh plan; `again` re-proposes onto an
373
+ * existing document (replacing only the proposals' own ids and fields).
374
+ */
375
+ motion?: MotionProposalInput & {
376
+ again?: boolean;
377
+ };
306
378
  }
307
379
  declare function planTake(dir: string, opts?: PlanOptions): Promise<PlanSummary>;
308
380
 
@@ -346,6 +418,8 @@ declare function pullMedia(ctx: {
346
418
  interface DocOverrides {
347
419
  /** raw `path=value` expressions from repeated --set. */
348
420
  set?: string[];
421
+ /** Top-level or nested paths to REMOVE after the sets (a destination's mechanics drop a field a null could not express). */
422
+ unset?: string[];
349
423
  /** --frame alias → frame.browserBar.kind. */
350
424
  frame?: string;
351
425
  /** --background alias → frame.backgroundMedia (kind inferred from the URL,
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ import {
30
30
  validateActions,
31
31
  waitForPageDone,
32
32
  writeSyncState
33
- } from "./chunk-WJSNY6FL.js";
33
+ } from "./chunk-HYUVNBEM.js";
34
34
  import {
35
35
  BrowserUnavailableError,
36
36
  configDuration,
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  run
4
- } from "./chunk-WJSNY6FL.js";
4
+ } from "./chunk-HYUVNBEM.js";
5
5
  import "./chunk-NHKHTIDR.js";
6
6
  export {
7
7
  run
8
8
  };
9
- //# sourceMappingURL=run-3RLBXNHV.js.map
9
+ //# sourceMappingURL=run-R7KDKIVK.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vosjs/cli",
3
- "version": "0.17.3",
3
+ "version": "0.18.0",
4
4
  "description": "The vos CLI: record the real product from a scripted browser flow, auto-zoom from the cursor track, cut as data in doc.json, render deterministic video and stills, deliver a release's media per destination spec, and sync with vos.so. One binary, every verb, MIT.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,16 +46,16 @@
46
46
  ],
47
47
  "sideEffects": false,
48
48
  "dependencies": {
49
- "mediabunny": "^1.27.3",
49
+ "mediabunny": "^1.55.7",
50
50
  "playwright": "^1.49.0",
51
- "@vosjs/core": "^0.23.4",
52
51
  "@vosjs/elements": "^0.8.1",
53
- "@vosjs/render-core": "^0.2.2",
54
- "@vosjs/shared": "^0.4.1",
52
+ "@vosjs/core": "^0.23.5",
55
53
  "@vosjs/editor": "^1.3.1",
56
- "@vosjs/studio-core": "^0.9.0",
57
- "@vosjs/timeline": "^0.4.1",
58
- "@vosjs/tween": "^0.8.2"
54
+ "@vosjs/render-core": "^0.2.3",
55
+ "@vosjs/shared": "^0.4.1",
56
+ "@vosjs/studio-core": "^0.10.0",
57
+ "@vosjs/tween": "^0.8.2",
58
+ "@vosjs/timeline": "^0.4.1"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/node": "^22",