@jokerized/decksmith 0.3.0 → 0.3.2

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.
@@ -0,0 +1,83 @@
1
+ export interface TranscodeOptions {
2
+ /** Longest edge of the box to fit inside, in pixels. Default 1280. */
3
+ maxEdgePx?: number;
4
+ /** Seconds to keep. A longer video is TRUNCATED, and the trim is warned. */
5
+ maxSeconds?: number;
6
+ /** Wall clock for the ffmpeg run before it is killed. Default 10 minutes. */
7
+ timeoutMs?: number;
8
+ /**
9
+ * TEST SEAM: the binary to run. Only ever "ffmpeg" in src.
10
+ *
11
+ * It exists so test/transcode.test.ts can prove the skip path by naming a
12
+ * binary that is not installed, which is the one branch here that cannot be
13
+ * exercised on a machine where the feature works.
14
+ */
15
+ ffmpeg?: string;
16
+ }
17
+ export interface Transcoded {
18
+ /** The `out` given, or the `input` given back when nothing was done to it. */
19
+ path: string;
20
+ /** Measured off the file `path` names — never the arithmetic that asked for it. */
21
+ width: number;
22
+ height: number;
23
+ /** Absent when the container declares no usable duration, as `Measured` says. */
24
+ seconds?: number;
25
+ /** False when `path` is still the original's bytes. */
26
+ transcoded: boolean;
27
+ /** What was skipped or traded, and why. Empty when nothing was. */
28
+ warnings: string[];
29
+ }
30
+ /**
31
+ * The even box `width`x`height` fits inside, never larger than it started.
32
+ *
33
+ * FLOOR to even rather than round, on both edges. Even because VP9 in yuv420p
34
+ * refuses odd dimensions and says so in a way nobody reads as "your width is
35
+ * odd"; floor because rounding UP a 1919-wide source that needs no scaling at
36
+ * all would enlarge it by a pixel, and "never upscale" is easier to keep than to
37
+ * qualify.
38
+ *
39
+ * Rounding each edge independently moves the aspect ratio by up to a pixel's
40
+ * worth, and there is one place downstream where that is visible: claim-figure
41
+ * picks a full-width layout at exactly `width / height >= 3` (claim-figure.ts:197),
42
+ * so a source sitting on that boundary can land either side of it afterwards.
43
+ * That is a layout choice moving one step, not a deck disagreeing with its file
44
+ * — the figure carries the measured box, so the planner and the emitter still
45
+ * describe the same rectangle.
46
+ */
47
+ export declare function fitBox(width: number, height: number, maxEdgePx: number): {
48
+ width: number;
49
+ height: number;
50
+ };
51
+ /**
52
+ * The command, built where it can be read and tested without running anything.
53
+ *
54
+ * The house pattern from src/render/ffmpeg.ts: an exported pure args builder and
55
+ * a one-line `runTool` at the use site, so the flags are assertable on a machine
56
+ * with no ffmpeg on it.
57
+ *
58
+ * `-an` drops the audio track outright. A clip is emitted muted on purpose — the
59
+ * deck already spends its single audio track on narration (claim-figure.ts:121)
60
+ * — so carrying the audio is pure bytes for something nothing will ever unmute.
61
+ *
62
+ * `-crf 32 -b:v 0` is libvpx-vp9's constant-quality mode; `-deadline good
63
+ * -cpu-used 4 -row-mt 1` is the speed setting that makes this affordable at
64
+ * ingest time (4 seconds of 1080p in 0.8s of wall clock, measured) rather than
65
+ * the several-minutes-per-clip the encoder's defaults cost. The three bitexact
66
+ * and metadata flags are the determinism story in the header.
67
+ */
68
+ export declare function transcodeArgs(input: string, out: string, plan: {
69
+ width: number;
70
+ height: number;
71
+ seconds?: number;
72
+ }): string[];
73
+ /**
74
+ * Shrink `input` into `out`, and say what the result actually is.
75
+ *
76
+ * Throws for exactly one thing: an `input` this cannot measure. That is a bug at
77
+ * the call site rather than a machine missing a tool — `grabVideo` in harvest
78
+ * measures the same bytes with the same function before it writes them, and
79
+ * refuses what it cannot read — and there is no honest box to hand back for a
80
+ * file whose header says nothing. Everything else that can go wrong comes back
81
+ * as the original plus a warning.
82
+ */
83
+ export declare function transcode(input: string, out: string, opts?: TranscodeOptions): Promise<Transcoded>;
@@ -23,12 +23,19 @@ export declare const refSchema: z.ZodObject<{
23
23
  }, z.core.$strip>;
24
24
  export declare const figureSchema: z.ZodObject<{
25
25
  id: z.ZodString;
26
+ kind: z.ZodDefault<z.ZodEnum<{
27
+ image: "image";
28
+ clip: "clip";
29
+ }>>;
26
30
  src: z.ZodString;
27
31
  caption: z.ZodString;
28
32
  width: z.ZodInt;
29
33
  height: z.ZodInt;
30
34
  sectionId: z.ZodOptional<z.ZodString>;
31
35
  mention: z.ZodOptional<z.ZodString>;
36
+ poster: z.ZodOptional<z.ZodString>;
37
+ seconds: z.ZodOptional<z.ZodNumber>;
38
+ href: z.ZodOptional<z.ZodString>;
32
39
  }, z.core.$strip>;
33
40
  export declare const equationSchema: z.ZodObject<{
34
41
  id: z.ZodString;
@@ -59,12 +66,19 @@ export declare const sourceSchema: z.ZodObject<{
59
66
  }, z.core.$strip>>;
60
67
  figures: z.ZodArray<z.ZodObject<{
61
68
  id: z.ZodString;
69
+ kind: z.ZodDefault<z.ZodEnum<{
70
+ image: "image";
71
+ clip: "clip";
72
+ }>>;
62
73
  src: z.ZodString;
63
74
  caption: z.ZodString;
64
75
  width: z.ZodInt;
65
76
  height: z.ZodInt;
66
77
  sectionId: z.ZodOptional<z.ZodString>;
67
78
  mention: z.ZodOptional<z.ZodString>;
79
+ poster: z.ZodOptional<z.ZodString>;
80
+ seconds: z.ZodOptional<z.ZodNumber>;
81
+ href: z.ZodOptional<z.ZodString>;
68
82
  }, z.core.$strip>>;
69
83
  equations: z.ZodArray<z.ZodObject<{
70
84
  id: z.ZodString;
@@ -352,6 +366,33 @@ export declare const insideSchema: z.ZodObject<{
352
366
  element: z.ZodString;
353
367
  label: z.ZodOptional<z.ZodString>;
354
368
  }, z.core.$strip>;
369
+ /**
370
+ * The structural job a beat does in a paper-shaped deck.
371
+ *
372
+ * A ROLE IS NOT AN ARCHETYPE AND NOT A HEADING. Position and archetype cannot
373
+ * tell these beats apart — a limitation and a conclusion are both naturally a
374
+ * `callout`, and the prompt lists both under one tell — and a check on headline
375
+ * wording is the failure `scanHeadlines` documents, where a sharpened rule was
376
+ * answered by swapping one verb. So the plan SAYS which beat is which, and
377
+ * everything downstream reads the declaration rather than guessing at prose.
378
+ *
379
+ * AN ENUM, DELIBERATELY, AND THAT IS WHY IT MAY BE SHOWN TO THE MODEL.
380
+ * `forStructuredOutput` strips numeric and length bounds, which is how `tilt`
381
+ * came to be required as an unbounded number that `safeParse` then rejected,
382
+ * discarding whole runs. `enum` is not in that stripped set, so the model sees
383
+ * exactly the values `storyboardSchema` will accept and cannot cross a bound it
384
+ * was never shown.
385
+ *
386
+ * Optional, and hidden from the planner's schema entirely unless the paper arc
387
+ * was asked for — see `plannerInvisible` in src/plan/codex.ts. A deck that did
388
+ * not ask for the arc is byte-for-byte what it was.
389
+ */
390
+ export declare const beatRoleSchema: z.ZodEnum<{
391
+ intro: "intro";
392
+ background: "background";
393
+ limitations: "limitations";
394
+ conclusion: "conclusion";
395
+ }>;
355
396
  export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
356
397
  narration: z.ZodOptional<z.ZodString>;
357
398
  archetype: z.ZodLiteral<"title">;
@@ -362,6 +403,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
362
403
  }, z.core.$strip>;
363
404
  id: z.ZodString;
364
405
  intent: z.ZodString;
406
+ role: z.ZodOptional<z.ZodEnum<{
407
+ intro: "intro";
408
+ background: "background";
409
+ limitations: "limitations";
410
+ conclusion: "conclusion";
411
+ }>>;
365
412
  inside: z.ZodOptional<z.ZodObject<{
366
413
  beat: z.ZodString;
367
414
  element: z.ZodString;
@@ -394,6 +441,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
394
441
  }, z.core.$strip>;
395
442
  id: z.ZodString;
396
443
  intent: z.ZodString;
444
+ role: z.ZodOptional<z.ZodEnum<{
445
+ intro: "intro";
446
+ background: "background";
447
+ limitations: "limitations";
448
+ conclusion: "conclusion";
449
+ }>>;
397
450
  inside: z.ZodOptional<z.ZodObject<{
398
451
  beat: z.ZodString;
399
452
  element: z.ZodString;
@@ -431,6 +484,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
431
484
  }, z.core.$strip>;
432
485
  id: z.ZodString;
433
486
  intent: z.ZodString;
487
+ role: z.ZodOptional<z.ZodEnum<{
488
+ intro: "intro";
489
+ background: "background";
490
+ limitations: "limitations";
491
+ conclusion: "conclusion";
492
+ }>>;
434
493
  inside: z.ZodOptional<z.ZodObject<{
435
494
  beat: z.ZodString;
436
495
  element: z.ZodString;
@@ -469,6 +528,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
469
528
  }, z.core.$strip>;
470
529
  id: z.ZodString;
471
530
  intent: z.ZodString;
531
+ role: z.ZodOptional<z.ZodEnum<{
532
+ intro: "intro";
533
+ background: "background";
534
+ limitations: "limitations";
535
+ conclusion: "conclusion";
536
+ }>>;
472
537
  inside: z.ZodOptional<z.ZodObject<{
473
538
  beat: z.ZodString;
474
539
  element: z.ZodString;
@@ -507,6 +572,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
507
572
  }, z.core.$strip>;
508
573
  id: z.ZodString;
509
574
  intent: z.ZodString;
575
+ role: z.ZodOptional<z.ZodEnum<{
576
+ intro: "intro";
577
+ background: "background";
578
+ limitations: "limitations";
579
+ conclusion: "conclusion";
580
+ }>>;
510
581
  inside: z.ZodOptional<z.ZodObject<{
511
582
  beat: z.ZodString;
512
583
  element: z.ZodString;
@@ -541,6 +612,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
541
612
  }, z.core.$strip>;
542
613
  id: z.ZodString;
543
614
  intent: z.ZodString;
615
+ role: z.ZodOptional<z.ZodEnum<{
616
+ intro: "intro";
617
+ background: "background";
618
+ limitations: "limitations";
619
+ conclusion: "conclusion";
620
+ }>>;
544
621
  inside: z.ZodOptional<z.ZodObject<{
545
622
  beat: z.ZodString;
546
623
  element: z.ZodString;
@@ -572,6 +649,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
572
649
  }, z.core.$strip>;
573
650
  id: z.ZodString;
574
651
  intent: z.ZodString;
652
+ role: z.ZodOptional<z.ZodEnum<{
653
+ intro: "intro";
654
+ background: "background";
655
+ limitations: "limitations";
656
+ conclusion: "conclusion";
657
+ }>>;
575
658
  inside: z.ZodOptional<z.ZodObject<{
576
659
  beat: z.ZodString;
577
660
  element: z.ZodString;
@@ -614,6 +697,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
614
697
  }, z.core.$strip>;
615
698
  id: z.ZodString;
616
699
  intent: z.ZodString;
700
+ role: z.ZodOptional<z.ZodEnum<{
701
+ intro: "intro";
702
+ background: "background";
703
+ limitations: "limitations";
704
+ conclusion: "conclusion";
705
+ }>>;
617
706
  inside: z.ZodOptional<z.ZodObject<{
618
707
  beat: z.ZodString;
619
708
  element: z.ZodString;
@@ -658,6 +747,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
658
747
  }, z.core.$strip>;
659
748
  id: z.ZodString;
660
749
  intent: z.ZodString;
750
+ role: z.ZodOptional<z.ZodEnum<{
751
+ intro: "intro";
752
+ background: "background";
753
+ limitations: "limitations";
754
+ conclusion: "conclusion";
755
+ }>>;
661
756
  inside: z.ZodOptional<z.ZodObject<{
662
757
  beat: z.ZodString;
663
758
  element: z.ZodString;
@@ -700,6 +795,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
700
795
  }, z.core.$strip>;
701
796
  id: z.ZodString;
702
797
  intent: z.ZodString;
798
+ role: z.ZodOptional<z.ZodEnum<{
799
+ intro: "intro";
800
+ background: "background";
801
+ limitations: "limitations";
802
+ conclusion: "conclusion";
803
+ }>>;
703
804
  inside: z.ZodOptional<z.ZodObject<{
704
805
  beat: z.ZodString;
705
806
  element: z.ZodString;
@@ -738,6 +839,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
738
839
  }, z.core.$strip>;
739
840
  id: z.ZodString;
740
841
  intent: z.ZodString;
842
+ role: z.ZodOptional<z.ZodEnum<{
843
+ intro: "intro";
844
+ background: "background";
845
+ limitations: "limitations";
846
+ conclusion: "conclusion";
847
+ }>>;
741
848
  inside: z.ZodOptional<z.ZodObject<{
742
849
  beat: z.ZodString;
743
850
  element: z.ZodString;
@@ -770,6 +877,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
770
877
  }, z.core.$strip>;
771
878
  id: z.ZodString;
772
879
  intent: z.ZodString;
880
+ role: z.ZodOptional<z.ZodEnum<{
881
+ intro: "intro";
882
+ background: "background";
883
+ limitations: "limitations";
884
+ conclusion: "conclusion";
885
+ }>>;
773
886
  inside: z.ZodOptional<z.ZodObject<{
774
887
  beat: z.ZodString;
775
888
  element: z.ZodString;
@@ -815,6 +928,12 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
815
928
  }, z.core.$strip>;
816
929
  id: z.ZodString;
817
930
  intent: z.ZodString;
931
+ role: z.ZodOptional<z.ZodEnum<{
932
+ intro: "intro";
933
+ background: "background";
934
+ limitations: "limitations";
935
+ conclusion: "conclusion";
936
+ }>>;
818
937
  inside: z.ZodOptional<z.ZodObject<{
819
938
  beat: z.ZodString;
820
939
  element: z.ZodString;
@@ -883,6 +1002,12 @@ export declare const storyboardSchema: z.ZodObject<{
883
1002
  }, z.core.$strip>;
884
1003
  id: z.ZodString;
885
1004
  intent: z.ZodString;
1005
+ role: z.ZodOptional<z.ZodEnum<{
1006
+ intro: "intro";
1007
+ background: "background";
1008
+ limitations: "limitations";
1009
+ conclusion: "conclusion";
1010
+ }>>;
886
1011
  inside: z.ZodOptional<z.ZodObject<{
887
1012
  beat: z.ZodString;
888
1013
  element: z.ZodString;
@@ -915,6 +1040,12 @@ export declare const storyboardSchema: z.ZodObject<{
915
1040
  }, z.core.$strip>;
916
1041
  id: z.ZodString;
917
1042
  intent: z.ZodString;
1043
+ role: z.ZodOptional<z.ZodEnum<{
1044
+ intro: "intro";
1045
+ background: "background";
1046
+ limitations: "limitations";
1047
+ conclusion: "conclusion";
1048
+ }>>;
918
1049
  inside: z.ZodOptional<z.ZodObject<{
919
1050
  beat: z.ZodString;
920
1051
  element: z.ZodString;
@@ -952,6 +1083,12 @@ export declare const storyboardSchema: z.ZodObject<{
952
1083
  }, z.core.$strip>;
953
1084
  id: z.ZodString;
954
1085
  intent: z.ZodString;
1086
+ role: z.ZodOptional<z.ZodEnum<{
1087
+ intro: "intro";
1088
+ background: "background";
1089
+ limitations: "limitations";
1090
+ conclusion: "conclusion";
1091
+ }>>;
955
1092
  inside: z.ZodOptional<z.ZodObject<{
956
1093
  beat: z.ZodString;
957
1094
  element: z.ZodString;
@@ -990,6 +1127,12 @@ export declare const storyboardSchema: z.ZodObject<{
990
1127
  }, z.core.$strip>;
991
1128
  id: z.ZodString;
992
1129
  intent: z.ZodString;
1130
+ role: z.ZodOptional<z.ZodEnum<{
1131
+ intro: "intro";
1132
+ background: "background";
1133
+ limitations: "limitations";
1134
+ conclusion: "conclusion";
1135
+ }>>;
993
1136
  inside: z.ZodOptional<z.ZodObject<{
994
1137
  beat: z.ZodString;
995
1138
  element: z.ZodString;
@@ -1028,6 +1171,12 @@ export declare const storyboardSchema: z.ZodObject<{
1028
1171
  }, z.core.$strip>;
1029
1172
  id: z.ZodString;
1030
1173
  intent: z.ZodString;
1174
+ role: z.ZodOptional<z.ZodEnum<{
1175
+ intro: "intro";
1176
+ background: "background";
1177
+ limitations: "limitations";
1178
+ conclusion: "conclusion";
1179
+ }>>;
1031
1180
  inside: z.ZodOptional<z.ZodObject<{
1032
1181
  beat: z.ZodString;
1033
1182
  element: z.ZodString;
@@ -1062,6 +1211,12 @@ export declare const storyboardSchema: z.ZodObject<{
1062
1211
  }, z.core.$strip>;
1063
1212
  id: z.ZodString;
1064
1213
  intent: z.ZodString;
1214
+ role: z.ZodOptional<z.ZodEnum<{
1215
+ intro: "intro";
1216
+ background: "background";
1217
+ limitations: "limitations";
1218
+ conclusion: "conclusion";
1219
+ }>>;
1065
1220
  inside: z.ZodOptional<z.ZodObject<{
1066
1221
  beat: z.ZodString;
1067
1222
  element: z.ZodString;
@@ -1093,6 +1248,12 @@ export declare const storyboardSchema: z.ZodObject<{
1093
1248
  }, z.core.$strip>;
1094
1249
  id: z.ZodString;
1095
1250
  intent: z.ZodString;
1251
+ role: z.ZodOptional<z.ZodEnum<{
1252
+ intro: "intro";
1253
+ background: "background";
1254
+ limitations: "limitations";
1255
+ conclusion: "conclusion";
1256
+ }>>;
1096
1257
  inside: z.ZodOptional<z.ZodObject<{
1097
1258
  beat: z.ZodString;
1098
1259
  element: z.ZodString;
@@ -1135,6 +1296,12 @@ export declare const storyboardSchema: z.ZodObject<{
1135
1296
  }, z.core.$strip>;
1136
1297
  id: z.ZodString;
1137
1298
  intent: z.ZodString;
1299
+ role: z.ZodOptional<z.ZodEnum<{
1300
+ intro: "intro";
1301
+ background: "background";
1302
+ limitations: "limitations";
1303
+ conclusion: "conclusion";
1304
+ }>>;
1138
1305
  inside: z.ZodOptional<z.ZodObject<{
1139
1306
  beat: z.ZodString;
1140
1307
  element: z.ZodString;
@@ -1179,6 +1346,12 @@ export declare const storyboardSchema: z.ZodObject<{
1179
1346
  }, z.core.$strip>;
1180
1347
  id: z.ZodString;
1181
1348
  intent: z.ZodString;
1349
+ role: z.ZodOptional<z.ZodEnum<{
1350
+ intro: "intro";
1351
+ background: "background";
1352
+ limitations: "limitations";
1353
+ conclusion: "conclusion";
1354
+ }>>;
1182
1355
  inside: z.ZodOptional<z.ZodObject<{
1183
1356
  beat: z.ZodString;
1184
1357
  element: z.ZodString;
@@ -1221,6 +1394,12 @@ export declare const storyboardSchema: z.ZodObject<{
1221
1394
  }, z.core.$strip>;
1222
1395
  id: z.ZodString;
1223
1396
  intent: z.ZodString;
1397
+ role: z.ZodOptional<z.ZodEnum<{
1398
+ intro: "intro";
1399
+ background: "background";
1400
+ limitations: "limitations";
1401
+ conclusion: "conclusion";
1402
+ }>>;
1224
1403
  inside: z.ZodOptional<z.ZodObject<{
1225
1404
  beat: z.ZodString;
1226
1405
  element: z.ZodString;
@@ -1259,6 +1438,12 @@ export declare const storyboardSchema: z.ZodObject<{
1259
1438
  }, z.core.$strip>;
1260
1439
  id: z.ZodString;
1261
1440
  intent: z.ZodString;
1441
+ role: z.ZodOptional<z.ZodEnum<{
1442
+ intro: "intro";
1443
+ background: "background";
1444
+ limitations: "limitations";
1445
+ conclusion: "conclusion";
1446
+ }>>;
1262
1447
  inside: z.ZodOptional<z.ZodObject<{
1263
1448
  beat: z.ZodString;
1264
1449
  element: z.ZodString;
@@ -1291,6 +1476,12 @@ export declare const storyboardSchema: z.ZodObject<{
1291
1476
  }, z.core.$strip>;
1292
1477
  id: z.ZodString;
1293
1478
  intent: z.ZodString;
1479
+ role: z.ZodOptional<z.ZodEnum<{
1480
+ intro: "intro";
1481
+ background: "background";
1482
+ limitations: "limitations";
1483
+ conclusion: "conclusion";
1484
+ }>>;
1294
1485
  inside: z.ZodOptional<z.ZodObject<{
1295
1486
  beat: z.ZodString;
1296
1487
  element: z.ZodString;
@@ -1336,6 +1527,12 @@ export declare const storyboardSchema: z.ZodObject<{
1336
1527
  }, z.core.$strip>;
1337
1528
  id: z.ZodString;
1338
1529
  intent: z.ZodString;
1530
+ role: z.ZodOptional<z.ZodEnum<{
1531
+ intro: "intro";
1532
+ background: "background";
1533
+ limitations: "limitations";
1534
+ conclusion: "conclusion";
1535
+ }>>;
1339
1536
  inside: z.ZodOptional<z.ZodObject<{
1340
1537
  beat: z.ZodString;
1341
1538
  element: z.ZodString;
@@ -1376,6 +1573,10 @@ export declare const prefsSchema: z.ZodObject<{
1376
1573
  normal: "normal";
1377
1574
  dense: "dense";
1378
1575
  }>>;
1576
+ genre: z.ZodDefault<z.ZodEnum<{
1577
+ general: "general";
1578
+ paper: "paper";
1579
+ }>>;
1379
1580
  duration: z.ZodOptional<z.ZodNumber>;
1380
1581
  theme: z.ZodDefault<z.ZodString>;
1381
1582
  animationSpeed: z.ZodDefault<z.ZodNumber>;
@@ -1490,6 +1691,10 @@ export declare const packSchema: z.ZodObject<{
1490
1691
  normal: "normal";
1491
1692
  dense: "dense";
1492
1693
  }>>;
1694
+ genre: z.ZodDefault<z.ZodEnum<{
1695
+ general: "general";
1696
+ paper: "paper";
1697
+ }>>;
1493
1698
  duration: z.ZodOptional<z.ZodNumber>;
1494
1699
  theme: z.ZodDefault<z.ZodString>;
1495
1700
  animationSpeed: z.ZodDefault<z.ZodNumber>;
@@ -1529,12 +1734,19 @@ export declare const packSchema: z.ZodObject<{
1529
1734
  }, z.core.$strip>>;
1530
1735
  figures: z.ZodArray<z.ZodObject<{
1531
1736
  id: z.ZodString;
1737
+ kind: z.ZodDefault<z.ZodEnum<{
1738
+ image: "image";
1739
+ clip: "clip";
1740
+ }>>;
1532
1741
  src: z.ZodString;
1533
1742
  caption: z.ZodString;
1534
1743
  width: z.ZodInt;
1535
1744
  height: z.ZodInt;
1536
1745
  sectionId: z.ZodOptional<z.ZodString>;
1537
1746
  mention: z.ZodOptional<z.ZodString>;
1747
+ poster: z.ZodOptional<z.ZodString>;
1748
+ seconds: z.ZodOptional<z.ZodNumber>;
1749
+ href: z.ZodOptional<z.ZodString>;
1538
1750
  }, z.core.$strip>>;
1539
1751
  equations: z.ZodArray<z.ZodObject<{
1540
1752
  id: z.ZodString;
@@ -1563,6 +1775,12 @@ export declare const packSchema: z.ZodObject<{
1563
1775
  }, z.core.$strip>;
1564
1776
  id: z.ZodString;
1565
1777
  intent: z.ZodString;
1778
+ role: z.ZodOptional<z.ZodEnum<{
1779
+ intro: "intro";
1780
+ background: "background";
1781
+ limitations: "limitations";
1782
+ conclusion: "conclusion";
1783
+ }>>;
1566
1784
  inside: z.ZodOptional<z.ZodObject<{
1567
1785
  beat: z.ZodString;
1568
1786
  element: z.ZodString;
@@ -1595,6 +1813,12 @@ export declare const packSchema: z.ZodObject<{
1595
1813
  }, z.core.$strip>;
1596
1814
  id: z.ZodString;
1597
1815
  intent: z.ZodString;
1816
+ role: z.ZodOptional<z.ZodEnum<{
1817
+ intro: "intro";
1818
+ background: "background";
1819
+ limitations: "limitations";
1820
+ conclusion: "conclusion";
1821
+ }>>;
1598
1822
  inside: z.ZodOptional<z.ZodObject<{
1599
1823
  beat: z.ZodString;
1600
1824
  element: z.ZodString;
@@ -1632,6 +1856,12 @@ export declare const packSchema: z.ZodObject<{
1632
1856
  }, z.core.$strip>;
1633
1857
  id: z.ZodString;
1634
1858
  intent: z.ZodString;
1859
+ role: z.ZodOptional<z.ZodEnum<{
1860
+ intro: "intro";
1861
+ background: "background";
1862
+ limitations: "limitations";
1863
+ conclusion: "conclusion";
1864
+ }>>;
1635
1865
  inside: z.ZodOptional<z.ZodObject<{
1636
1866
  beat: z.ZodString;
1637
1867
  element: z.ZodString;
@@ -1670,6 +1900,12 @@ export declare const packSchema: z.ZodObject<{
1670
1900
  }, z.core.$strip>;
1671
1901
  id: z.ZodString;
1672
1902
  intent: z.ZodString;
1903
+ role: z.ZodOptional<z.ZodEnum<{
1904
+ intro: "intro";
1905
+ background: "background";
1906
+ limitations: "limitations";
1907
+ conclusion: "conclusion";
1908
+ }>>;
1673
1909
  inside: z.ZodOptional<z.ZodObject<{
1674
1910
  beat: z.ZodString;
1675
1911
  element: z.ZodString;
@@ -1708,6 +1944,12 @@ export declare const packSchema: z.ZodObject<{
1708
1944
  }, z.core.$strip>;
1709
1945
  id: z.ZodString;
1710
1946
  intent: z.ZodString;
1947
+ role: z.ZodOptional<z.ZodEnum<{
1948
+ intro: "intro";
1949
+ background: "background";
1950
+ limitations: "limitations";
1951
+ conclusion: "conclusion";
1952
+ }>>;
1711
1953
  inside: z.ZodOptional<z.ZodObject<{
1712
1954
  beat: z.ZodString;
1713
1955
  element: z.ZodString;
@@ -1742,6 +1984,12 @@ export declare const packSchema: z.ZodObject<{
1742
1984
  }, z.core.$strip>;
1743
1985
  id: z.ZodString;
1744
1986
  intent: z.ZodString;
1987
+ role: z.ZodOptional<z.ZodEnum<{
1988
+ intro: "intro";
1989
+ background: "background";
1990
+ limitations: "limitations";
1991
+ conclusion: "conclusion";
1992
+ }>>;
1745
1993
  inside: z.ZodOptional<z.ZodObject<{
1746
1994
  beat: z.ZodString;
1747
1995
  element: z.ZodString;
@@ -1773,6 +2021,12 @@ export declare const packSchema: z.ZodObject<{
1773
2021
  }, z.core.$strip>;
1774
2022
  id: z.ZodString;
1775
2023
  intent: z.ZodString;
2024
+ role: z.ZodOptional<z.ZodEnum<{
2025
+ intro: "intro";
2026
+ background: "background";
2027
+ limitations: "limitations";
2028
+ conclusion: "conclusion";
2029
+ }>>;
1776
2030
  inside: z.ZodOptional<z.ZodObject<{
1777
2031
  beat: z.ZodString;
1778
2032
  element: z.ZodString;
@@ -1815,6 +2069,12 @@ export declare const packSchema: z.ZodObject<{
1815
2069
  }, z.core.$strip>;
1816
2070
  id: z.ZodString;
1817
2071
  intent: z.ZodString;
2072
+ role: z.ZodOptional<z.ZodEnum<{
2073
+ intro: "intro";
2074
+ background: "background";
2075
+ limitations: "limitations";
2076
+ conclusion: "conclusion";
2077
+ }>>;
1818
2078
  inside: z.ZodOptional<z.ZodObject<{
1819
2079
  beat: z.ZodString;
1820
2080
  element: z.ZodString;
@@ -1859,6 +2119,12 @@ export declare const packSchema: z.ZodObject<{
1859
2119
  }, z.core.$strip>;
1860
2120
  id: z.ZodString;
1861
2121
  intent: z.ZodString;
2122
+ role: z.ZodOptional<z.ZodEnum<{
2123
+ intro: "intro";
2124
+ background: "background";
2125
+ limitations: "limitations";
2126
+ conclusion: "conclusion";
2127
+ }>>;
1862
2128
  inside: z.ZodOptional<z.ZodObject<{
1863
2129
  beat: z.ZodString;
1864
2130
  element: z.ZodString;
@@ -1901,6 +2167,12 @@ export declare const packSchema: z.ZodObject<{
1901
2167
  }, z.core.$strip>;
1902
2168
  id: z.ZodString;
1903
2169
  intent: z.ZodString;
2170
+ role: z.ZodOptional<z.ZodEnum<{
2171
+ intro: "intro";
2172
+ background: "background";
2173
+ limitations: "limitations";
2174
+ conclusion: "conclusion";
2175
+ }>>;
1904
2176
  inside: z.ZodOptional<z.ZodObject<{
1905
2177
  beat: z.ZodString;
1906
2178
  element: z.ZodString;
@@ -1939,6 +2211,12 @@ export declare const packSchema: z.ZodObject<{
1939
2211
  }, z.core.$strip>;
1940
2212
  id: z.ZodString;
1941
2213
  intent: z.ZodString;
2214
+ role: z.ZodOptional<z.ZodEnum<{
2215
+ intro: "intro";
2216
+ background: "background";
2217
+ limitations: "limitations";
2218
+ conclusion: "conclusion";
2219
+ }>>;
1942
2220
  inside: z.ZodOptional<z.ZodObject<{
1943
2221
  beat: z.ZodString;
1944
2222
  element: z.ZodString;
@@ -1971,6 +2249,12 @@ export declare const packSchema: z.ZodObject<{
1971
2249
  }, z.core.$strip>;
1972
2250
  id: z.ZodString;
1973
2251
  intent: z.ZodString;
2252
+ role: z.ZodOptional<z.ZodEnum<{
2253
+ intro: "intro";
2254
+ background: "background";
2255
+ limitations: "limitations";
2256
+ conclusion: "conclusion";
2257
+ }>>;
1974
2258
  inside: z.ZodOptional<z.ZodObject<{
1975
2259
  beat: z.ZodString;
1976
2260
  element: z.ZodString;
@@ -2016,6 +2300,12 @@ export declare const packSchema: z.ZodObject<{
2016
2300
  }, z.core.$strip>;
2017
2301
  id: z.ZodString;
2018
2302
  intent: z.ZodString;
2303
+ role: z.ZodOptional<z.ZodEnum<{
2304
+ intro: "intro";
2305
+ background: "background";
2306
+ limitations: "limitations";
2307
+ conclusion: "conclusion";
2308
+ }>>;
2019
2309
  inside: z.ZodOptional<z.ZodObject<{
2020
2310
  beat: z.ZodString;
2021
2311
  element: z.ZodString;
@@ -2273,6 +2563,7 @@ export type Illustration = z.infer<typeof illustrationSchema>;
2273
2563
  /** The `images` block of the preferences, resolved. What `illustrate` reads. */
2274
2564
  export type ImagesPrefs = z.infer<typeof prefsSchema>["images"];
2275
2565
  export type Beat = z.infer<typeof beatSchema>;
2566
+ export type BeatRole = z.infer<typeof beatRoleSchema>;
2276
2567
  export type Inside = z.infer<typeof insideSchema>;
2277
2568
  export type Archetype = Beat["archetype"];
2278
2569
  export type Storyboard = z.infer<typeof storyboardSchema>;