@jokerized/decksmith 0.8.0 → 0.9.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 (64) hide show
  1. package/README.md +333 -4
  2. package/dist/cli.js +14057 -4749
  3. package/dist/deck-player-element.js +1 -1
  4. package/dist/deck-player.js +1 -1
  5. package/dist/deck-runtime.js +70 -2
  6. package/dist/index.js +13309 -4178
  7. package/dist/mcp.js +5131 -765
  8. package/dist/types/bespoke/art.d.ts +173 -0
  9. package/dist/types/bespoke/cache.d.ts +69 -0
  10. package/dist/types/bespoke/callouts.d.ts +76 -0
  11. package/dist/types/bespoke/contract.d.ts +57 -0
  12. package/dist/types/bespoke/inspect.d.ts +69 -0
  13. package/dist/types/bespoke/pipeline.d.ts +207 -0
  14. package/dist/types/bespoke/probe.d.ts +34 -0
  15. package/dist/types/bespoke/prompt.d.ts +182 -0
  16. package/dist/types/bespoke/references.d.ts +73 -0
  17. package/dist/types/bespoke/repair.d.ts +121 -0
  18. package/dist/types/bespoke/scene.d.ts +97 -0
  19. package/dist/types/bespoke/select.d.ts +52 -0
  20. package/dist/types/bespoke/sheet.d.ts +26 -0
  21. package/dist/types/bespoke/shots.d.ts +128 -0
  22. package/dist/types/bespoke/untangle.d.ts +5 -0
  23. package/dist/types/build/files.d.ts +13 -1
  24. package/dist/types/deck/motion.d.ts +64 -0
  25. package/dist/types/deck/playback.d.ts +206 -0
  26. package/dist/types/deck/repack.d.ts +10 -0
  27. package/dist/types/deck/runtime.d.ts +96 -1
  28. package/dist/types/deck/subtitles.d.ts +29 -1
  29. package/dist/types/emit/archetypes/annotated-figure.d.ts +1 -1
  30. package/dist/types/emit/archetypes/bar-compare.d.ts +0 -28
  31. package/dist/types/emit/archetypes/callout.d.ts +0 -5
  32. package/dist/types/emit/archetypes/claim-figure.d.ts +15 -0
  33. package/dist/types/emit/archetypes/grid.d.ts +0 -14
  34. package/dist/types/emit/archetypes/index.d.ts +0 -7
  35. package/dist/types/emit/archetypes/line-chart.d.ts +0 -8
  36. package/dist/types/emit/archetypes/pipeline.d.ts +15 -1
  37. package/dist/types/emit/archetypes/stack.d.ts +1 -1
  38. package/dist/types/emit/composition.d.ts +83 -3
  39. package/dist/types/emit/faces.d.ts +22 -0
  40. package/dist/types/emit/fit.d.ts +127 -0
  41. package/dist/types/emit/kit.d.ts +121 -2
  42. package/dist/types/emit/look.d.ts +138 -0
  43. package/dist/types/emit/motion.d.ts +244 -0
  44. package/dist/types/emit/svg.d.ts +54 -16
  45. package/dist/types/emit/theme.d.ts +1 -1
  46. package/dist/types/emit/themes/index.d.ts +19 -1
  47. package/dist/types/emit/themes/packs.d.ts +15 -0
  48. package/dist/types/emit/themes/pick.d.ts +107 -0
  49. package/dist/types/emit/type.d.ts +111 -0
  50. package/dist/types/index.d.ts +52 -1
  51. package/dist/types/plan/codex.d.ts +36 -0
  52. package/dist/types/plan/direct.d.ts +66 -0
  53. package/dist/types/prefs.d.ts +25 -2
  54. package/dist/types/render/capture.d.ts +6 -0
  55. package/dist/types/render/timing.d.ts +3 -0
  56. package/dist/types/source/fonts.d.ts +11 -1
  57. package/dist/types/types.d.ts +109 -0
  58. package/dist/types/verify/check.d.ts +1 -1
  59. package/dist/types/verify/fidelity.d.ts +34 -0
  60. package/dist/types/verify/fill.d.ts +205 -0
  61. package/dist/types/verify/index.d.ts +14 -0
  62. package/dist/types/verify/motion.d.ts +33 -0
  63. package/dist/types/verify/scenes.d.ts +325 -0
  64. package/package.json +5 -1
@@ -433,6 +433,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
433
433
  }, z.core.$strip>>>;
434
434
  weight: z.ZodDefault<z.ZodNumber>;
435
435
  seconds: z.ZodDefault<z.ZodNumber>;
436
+ bespoke: z.ZodOptional<z.ZodBoolean>;
436
437
  }, z.core.$strip>, z.ZodObject<{
437
438
  narration: z.ZodOptional<z.ZodString>;
438
439
  archetype: z.ZodLiteral<"claim-figure">;
@@ -471,6 +472,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
471
472
  }, z.core.$strip>>>;
472
473
  weight: z.ZodDefault<z.ZodNumber>;
473
474
  seconds: z.ZodDefault<z.ZodNumber>;
475
+ bespoke: z.ZodOptional<z.ZodBoolean>;
474
476
  }, z.core.$strip>, z.ZodObject<{
475
477
  narration: z.ZodOptional<z.ZodString>;
476
478
  archetype: z.ZodLiteral<"equation-walk">;
@@ -514,6 +516,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
514
516
  }, z.core.$strip>>>;
515
517
  weight: z.ZodDefault<z.ZodNumber>;
516
518
  seconds: z.ZodDefault<z.ZodNumber>;
519
+ bespoke: z.ZodOptional<z.ZodBoolean>;
517
520
  }, z.core.$strip>, z.ZodObject<{
518
521
  narration: z.ZodOptional<z.ZodString>;
519
522
  archetype: z.ZodLiteral<"equation-morph">;
@@ -558,6 +561,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
558
561
  }, z.core.$strip>>>;
559
562
  weight: z.ZodDefault<z.ZodNumber>;
560
563
  seconds: z.ZodDefault<z.ZodNumber>;
564
+ bespoke: z.ZodOptional<z.ZodBoolean>;
561
565
  }, z.core.$strip>, z.ZodObject<{
562
566
  narration: z.ZodOptional<z.ZodString>;
563
567
  archetype: z.ZodLiteral<"data-table">;
@@ -602,6 +606,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
602
606
  }, z.core.$strip>>>;
603
607
  weight: z.ZodDefault<z.ZodNumber>;
604
608
  seconds: z.ZodDefault<z.ZodNumber>;
609
+ bespoke: z.ZodOptional<z.ZodBoolean>;
605
610
  }, z.core.$strip>, z.ZodObject<{
606
611
  narration: z.ZodOptional<z.ZodString>;
607
612
  archetype: z.ZodLiteral<"line-chart">;
@@ -649,6 +654,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
649
654
  }, z.core.$strip>>>;
650
655
  weight: z.ZodDefault<z.ZodNumber>;
651
656
  seconds: z.ZodDefault<z.ZodNumber>;
657
+ bespoke: z.ZodOptional<z.ZodBoolean>;
652
658
  }, z.core.$strip>, z.ZodObject<{
653
659
  narration: z.ZodOptional<z.ZodString>;
654
660
  archetype: z.ZodLiteral<"callout">;
@@ -686,6 +692,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
686
692
  }, z.core.$strip>>>;
687
693
  weight: z.ZodDefault<z.ZodNumber>;
688
694
  seconds: z.ZodDefault<z.ZodNumber>;
695
+ bespoke: z.ZodOptional<z.ZodBoolean>;
689
696
  }, z.core.$strip>, z.ZodObject<{
690
697
  narration: z.ZodOptional<z.ZodString>;
691
698
  archetype: z.ZodLiteral<"pipeline">;
@@ -734,6 +741,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
734
741
  }, z.core.$strip>>>;
735
742
  weight: z.ZodDefault<z.ZodNumber>;
736
743
  seconds: z.ZodDefault<z.ZodNumber>;
744
+ bespoke: z.ZodOptional<z.ZodBoolean>;
737
745
  }, z.core.$strip>, z.ZodObject<{
738
746
  narration: z.ZodOptional<z.ZodString>;
739
747
  archetype: z.ZodLiteral<"annotated-figure">;
@@ -784,6 +792,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
784
792
  }, z.core.$strip>>>;
785
793
  weight: z.ZodDefault<z.ZodNumber>;
786
794
  seconds: z.ZodDefault<z.ZodNumber>;
795
+ bespoke: z.ZodOptional<z.ZodBoolean>;
787
796
  }, z.core.$strip>, z.ZodObject<{
788
797
  narration: z.ZodOptional<z.ZodString>;
789
798
  archetype: z.ZodLiteral<"grid">;
@@ -832,6 +841,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
832
841
  }, z.core.$strip>>>;
833
842
  weight: z.ZodDefault<z.ZodNumber>;
834
843
  seconds: z.ZodDefault<z.ZodNumber>;
844
+ bespoke: z.ZodOptional<z.ZodBoolean>;
835
845
  }, z.core.$strip>, z.ZodObject<{
836
846
  narration: z.ZodOptional<z.ZodString>;
837
847
  archetype: z.ZodLiteral<"bar-compare">;
@@ -876,6 +886,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
876
886
  }, z.core.$strip>>>;
877
887
  weight: z.ZodDefault<z.ZodNumber>;
878
888
  seconds: z.ZodDefault<z.ZodNumber>;
889
+ bespoke: z.ZodOptional<z.ZodBoolean>;
879
890
  }, z.core.$strip>, z.ZodObject<{
880
891
  narration: z.ZodOptional<z.ZodString>;
881
892
  archetype: z.ZodLiteral<"stack">;
@@ -914,6 +925,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
914
925
  }, z.core.$strip>>>;
915
926
  weight: z.ZodDefault<z.ZodNumber>;
916
927
  seconds: z.ZodDefault<z.ZodNumber>;
928
+ bespoke: z.ZodOptional<z.ZodBoolean>;
917
929
  }, z.core.$strip>, z.ZodObject<{
918
930
  narration: z.ZodOptional<z.ZodString>;
919
931
  archetype: z.ZodLiteral<"split-compare">;
@@ -965,6 +977,7 @@ export declare const beatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
965
977
  }, z.core.$strip>>>;
966
978
  weight: z.ZodDefault<z.ZodNumber>;
967
979
  seconds: z.ZodDefault<z.ZodNumber>;
980
+ bespoke: z.ZodOptional<z.ZodBoolean>;
968
981
  }, z.core.$strip>], "archetype">;
969
982
  /**
970
983
  * Archetypes that draw rather than describe. `verify` warns when a deck leans on
@@ -1001,11 +1014,35 @@ export declare const DIAGRAMMATIC: ReadonlySet<string>;
1001
1014
  */
1002
1015
  export type ArchetypeFamily = "frame" | "structure" | "quantity" | "formal";
1003
1016
  export declare const ARCHETYPE_FAMILY: Readonly<Record<Archetype, ArchetypeFamily>>;
1017
+ /**
1018
+ * Which generation of the look a deck is built in.
1019
+ *
1020
+ * `classic` is every deck built before 0.9 and stays byte-identical: it is what
1021
+ * an unset design means, so an npm user and every ink golden see no change. `v2`
1022
+ * opts into the redesign: the v2 player in deck.html (speed, CC, caption size,
1023
+ * remembered preferences — src/deck/playback.ts), the fit engine
1024
+ * (src/emit/fit.ts), a style pack per deck (src/emit/themes/pick.ts), varied
1025
+ * layouts (src/plan/direct.ts) and the motion grammar (src/emit/motion.ts). One
1026
+ * switch rather than one flag per feature, so a deck is always one coherent
1027
+ * design and `--design classic` is a complete rollback.
1028
+ *
1029
+ * OPTIONAL rather than defaulted in both schemas, so a storyboard, a config or
1030
+ * a pack that never mentions it serialises exactly as it did.
1031
+ */
1032
+ export declare const designSchema: z.ZodEnum<{
1033
+ classic: "classic";
1034
+ v2: "v2";
1035
+ }>;
1036
+ export type Design = z.infer<typeof designSchema>;
1004
1037
  export declare const storyboardSchema: z.ZodObject<{
1005
1038
  sourceId: z.ZodString;
1006
1039
  title: z.ZodString;
1007
1040
  lang: z.ZodDefault<z.ZodString>;
1008
1041
  theme: z.ZodDefault<z.ZodString>;
1042
+ design: z.ZodOptional<z.ZodEnum<{
1043
+ classic: "classic";
1044
+ v2: "v2";
1045
+ }>>;
1009
1046
  beats: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1010
1047
  narration: z.ZodOptional<z.ZodString>;
1011
1048
  archetype: z.ZodLiteral<"title">;
@@ -1039,6 +1076,7 @@ export declare const storyboardSchema: z.ZodObject<{
1039
1076
  }, z.core.$strip>>>;
1040
1077
  weight: z.ZodDefault<z.ZodNumber>;
1041
1078
  seconds: z.ZodDefault<z.ZodNumber>;
1079
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1042
1080
  }, z.core.$strip>, z.ZodObject<{
1043
1081
  narration: z.ZodOptional<z.ZodString>;
1044
1082
  archetype: z.ZodLiteral<"claim-figure">;
@@ -1077,6 +1115,7 @@ export declare const storyboardSchema: z.ZodObject<{
1077
1115
  }, z.core.$strip>>>;
1078
1116
  weight: z.ZodDefault<z.ZodNumber>;
1079
1117
  seconds: z.ZodDefault<z.ZodNumber>;
1118
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1080
1119
  }, z.core.$strip>, z.ZodObject<{
1081
1120
  narration: z.ZodOptional<z.ZodString>;
1082
1121
  archetype: z.ZodLiteral<"equation-walk">;
@@ -1120,6 +1159,7 @@ export declare const storyboardSchema: z.ZodObject<{
1120
1159
  }, z.core.$strip>>>;
1121
1160
  weight: z.ZodDefault<z.ZodNumber>;
1122
1161
  seconds: z.ZodDefault<z.ZodNumber>;
1162
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1123
1163
  }, z.core.$strip>, z.ZodObject<{
1124
1164
  narration: z.ZodOptional<z.ZodString>;
1125
1165
  archetype: z.ZodLiteral<"equation-morph">;
@@ -1164,6 +1204,7 @@ export declare const storyboardSchema: z.ZodObject<{
1164
1204
  }, z.core.$strip>>>;
1165
1205
  weight: z.ZodDefault<z.ZodNumber>;
1166
1206
  seconds: z.ZodDefault<z.ZodNumber>;
1207
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1167
1208
  }, z.core.$strip>, z.ZodObject<{
1168
1209
  narration: z.ZodOptional<z.ZodString>;
1169
1210
  archetype: z.ZodLiteral<"data-table">;
@@ -1208,6 +1249,7 @@ export declare const storyboardSchema: z.ZodObject<{
1208
1249
  }, z.core.$strip>>>;
1209
1250
  weight: z.ZodDefault<z.ZodNumber>;
1210
1251
  seconds: z.ZodDefault<z.ZodNumber>;
1252
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1211
1253
  }, z.core.$strip>, z.ZodObject<{
1212
1254
  narration: z.ZodOptional<z.ZodString>;
1213
1255
  archetype: z.ZodLiteral<"line-chart">;
@@ -1255,6 +1297,7 @@ export declare const storyboardSchema: z.ZodObject<{
1255
1297
  }, z.core.$strip>>>;
1256
1298
  weight: z.ZodDefault<z.ZodNumber>;
1257
1299
  seconds: z.ZodDefault<z.ZodNumber>;
1300
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1258
1301
  }, z.core.$strip>, z.ZodObject<{
1259
1302
  narration: z.ZodOptional<z.ZodString>;
1260
1303
  archetype: z.ZodLiteral<"callout">;
@@ -1292,6 +1335,7 @@ export declare const storyboardSchema: z.ZodObject<{
1292
1335
  }, z.core.$strip>>>;
1293
1336
  weight: z.ZodDefault<z.ZodNumber>;
1294
1337
  seconds: z.ZodDefault<z.ZodNumber>;
1338
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1295
1339
  }, z.core.$strip>, z.ZodObject<{
1296
1340
  narration: z.ZodOptional<z.ZodString>;
1297
1341
  archetype: z.ZodLiteral<"pipeline">;
@@ -1340,6 +1384,7 @@ export declare const storyboardSchema: z.ZodObject<{
1340
1384
  }, z.core.$strip>>>;
1341
1385
  weight: z.ZodDefault<z.ZodNumber>;
1342
1386
  seconds: z.ZodDefault<z.ZodNumber>;
1387
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1343
1388
  }, z.core.$strip>, z.ZodObject<{
1344
1389
  narration: z.ZodOptional<z.ZodString>;
1345
1390
  archetype: z.ZodLiteral<"annotated-figure">;
@@ -1390,6 +1435,7 @@ export declare const storyboardSchema: z.ZodObject<{
1390
1435
  }, z.core.$strip>>>;
1391
1436
  weight: z.ZodDefault<z.ZodNumber>;
1392
1437
  seconds: z.ZodDefault<z.ZodNumber>;
1438
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1393
1439
  }, z.core.$strip>, z.ZodObject<{
1394
1440
  narration: z.ZodOptional<z.ZodString>;
1395
1441
  archetype: z.ZodLiteral<"grid">;
@@ -1438,6 +1484,7 @@ export declare const storyboardSchema: z.ZodObject<{
1438
1484
  }, z.core.$strip>>>;
1439
1485
  weight: z.ZodDefault<z.ZodNumber>;
1440
1486
  seconds: z.ZodDefault<z.ZodNumber>;
1487
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1441
1488
  }, z.core.$strip>, z.ZodObject<{
1442
1489
  narration: z.ZodOptional<z.ZodString>;
1443
1490
  archetype: z.ZodLiteral<"bar-compare">;
@@ -1482,6 +1529,7 @@ export declare const storyboardSchema: z.ZodObject<{
1482
1529
  }, z.core.$strip>>>;
1483
1530
  weight: z.ZodDefault<z.ZodNumber>;
1484
1531
  seconds: z.ZodDefault<z.ZodNumber>;
1532
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1485
1533
  }, z.core.$strip>, z.ZodObject<{
1486
1534
  narration: z.ZodOptional<z.ZodString>;
1487
1535
  archetype: z.ZodLiteral<"stack">;
@@ -1520,6 +1568,7 @@ export declare const storyboardSchema: z.ZodObject<{
1520
1568
  }, z.core.$strip>>>;
1521
1569
  weight: z.ZodDefault<z.ZodNumber>;
1522
1570
  seconds: z.ZodDefault<z.ZodNumber>;
1571
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1523
1572
  }, z.core.$strip>, z.ZodObject<{
1524
1573
  narration: z.ZodOptional<z.ZodString>;
1525
1574
  archetype: z.ZodLiteral<"split-compare">;
@@ -1571,6 +1620,7 @@ export declare const storyboardSchema: z.ZodObject<{
1571
1620
  }, z.core.$strip>>>;
1572
1621
  weight: z.ZodDefault<z.ZodNumber>;
1573
1622
  seconds: z.ZodDefault<z.ZodNumber>;
1623
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1574
1624
  }, z.core.$strip>], "archetype">>;
1575
1625
  }, z.core.$strip>;
1576
1626
  /**
@@ -1600,6 +1650,11 @@ export declare const prefsSchema: z.ZodObject<{
1600
1650
  }>>;
1601
1651
  duration: z.ZodOptional<z.ZodNumber>;
1602
1652
  theme: z.ZodDefault<z.ZodString>;
1653
+ design: z.ZodOptional<z.ZodEnum<{
1654
+ classic: "classic";
1655
+ v2: "v2";
1656
+ }>>;
1657
+ packSeed: z.ZodOptional<z.ZodString>;
1603
1658
  animationSpeed: z.ZodDefault<z.ZodNumber>;
1604
1659
  narration: z.ZodDefault<z.ZodObject<{
1605
1660
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -1624,6 +1679,22 @@ export declare const prefsSchema: z.ZodObject<{
1624
1679
  style: z.ZodDefault<z.ZodString>;
1625
1680
  max: z.ZodDefault<z.ZodInt>;
1626
1681
  }, z.core.$strip>>;
1682
+ bespoke: z.ZodOptional<z.ZodObject<{
1683
+ enabled: z.ZodDefault<z.ZodBoolean>;
1684
+ maxCalls: z.ZodDefault<z.ZodInt>;
1685
+ maxSeconds: z.ZodDefault<z.ZodInt>;
1686
+ model: z.ZodOptional<z.ZodString>;
1687
+ cli: z.ZodOptional<z.ZodString>;
1688
+ cache: z.ZodOptional<z.ZodString>;
1689
+ concurrency: z.ZodDefault<z.ZodInt>;
1690
+ effort: z.ZodDefault<z.ZodEnum<{
1691
+ default: "default";
1692
+ high: "high";
1693
+ medium: "medium";
1694
+ low: "low";
1695
+ }>>;
1696
+ art: z.ZodDefault<z.ZodInt>;
1697
+ }, z.core.$strip>>;
1627
1698
  }, z.core.$strip>;
1628
1699
  /** One subtitle line with the timing edge-tts measured for it. */
1629
1700
  export declare const cueSchema: z.ZodObject<{
@@ -1739,6 +1810,11 @@ export declare const packSchema: z.ZodObject<{
1739
1810
  }>>;
1740
1811
  duration: z.ZodOptional<z.ZodNumber>;
1741
1812
  theme: z.ZodDefault<z.ZodString>;
1813
+ design: z.ZodOptional<z.ZodEnum<{
1814
+ classic: "classic";
1815
+ v2: "v2";
1816
+ }>>;
1817
+ packSeed: z.ZodOptional<z.ZodString>;
1742
1818
  animationSpeed: z.ZodDefault<z.ZodNumber>;
1743
1819
  narration: z.ZodDefault<z.ZodObject<{
1744
1820
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -1763,6 +1839,22 @@ export declare const packSchema: z.ZodObject<{
1763
1839
  style: z.ZodDefault<z.ZodString>;
1764
1840
  max: z.ZodDefault<z.ZodInt>;
1765
1841
  }, z.core.$strip>>;
1842
+ bespoke: z.ZodOptional<z.ZodObject<{
1843
+ enabled: z.ZodDefault<z.ZodBoolean>;
1844
+ maxCalls: z.ZodDefault<z.ZodInt>;
1845
+ maxSeconds: z.ZodDefault<z.ZodInt>;
1846
+ model: z.ZodOptional<z.ZodString>;
1847
+ cli: z.ZodOptional<z.ZodString>;
1848
+ cache: z.ZodOptional<z.ZodString>;
1849
+ concurrency: z.ZodDefault<z.ZodInt>;
1850
+ effort: z.ZodDefault<z.ZodEnum<{
1851
+ default: "default";
1852
+ high: "high";
1853
+ medium: "medium";
1854
+ low: "low";
1855
+ }>>;
1856
+ art: z.ZodDefault<z.ZodInt>;
1857
+ }, z.core.$strip>>;
1766
1858
  }, z.core.$strip>;
1767
1859
  source: z.ZodObject<{
1768
1860
  id: z.ZodString;
@@ -1807,6 +1899,10 @@ export declare const packSchema: z.ZodObject<{
1807
1899
  title: z.ZodString;
1808
1900
  lang: z.ZodDefault<z.ZodString>;
1809
1901
  theme: z.ZodDefault<z.ZodString>;
1902
+ design: z.ZodOptional<z.ZodEnum<{
1903
+ classic: "classic";
1904
+ v2: "v2";
1905
+ }>>;
1810
1906
  beats: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1811
1907
  narration: z.ZodOptional<z.ZodString>;
1812
1908
  archetype: z.ZodLiteral<"title">;
@@ -1840,6 +1936,7 @@ export declare const packSchema: z.ZodObject<{
1840
1936
  }, z.core.$strip>>>;
1841
1937
  weight: z.ZodDefault<z.ZodNumber>;
1842
1938
  seconds: z.ZodDefault<z.ZodNumber>;
1939
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1843
1940
  }, z.core.$strip>, z.ZodObject<{
1844
1941
  narration: z.ZodOptional<z.ZodString>;
1845
1942
  archetype: z.ZodLiteral<"claim-figure">;
@@ -1878,6 +1975,7 @@ export declare const packSchema: z.ZodObject<{
1878
1975
  }, z.core.$strip>>>;
1879
1976
  weight: z.ZodDefault<z.ZodNumber>;
1880
1977
  seconds: z.ZodDefault<z.ZodNumber>;
1978
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1881
1979
  }, z.core.$strip>, z.ZodObject<{
1882
1980
  narration: z.ZodOptional<z.ZodString>;
1883
1981
  archetype: z.ZodLiteral<"equation-walk">;
@@ -1921,6 +2019,7 @@ export declare const packSchema: z.ZodObject<{
1921
2019
  }, z.core.$strip>>>;
1922
2020
  weight: z.ZodDefault<z.ZodNumber>;
1923
2021
  seconds: z.ZodDefault<z.ZodNumber>;
2022
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1924
2023
  }, z.core.$strip>, z.ZodObject<{
1925
2024
  narration: z.ZodOptional<z.ZodString>;
1926
2025
  archetype: z.ZodLiteral<"equation-morph">;
@@ -1965,6 +2064,7 @@ export declare const packSchema: z.ZodObject<{
1965
2064
  }, z.core.$strip>>>;
1966
2065
  weight: z.ZodDefault<z.ZodNumber>;
1967
2066
  seconds: z.ZodDefault<z.ZodNumber>;
2067
+ bespoke: z.ZodOptional<z.ZodBoolean>;
1968
2068
  }, z.core.$strip>, z.ZodObject<{
1969
2069
  narration: z.ZodOptional<z.ZodString>;
1970
2070
  archetype: z.ZodLiteral<"data-table">;
@@ -2009,6 +2109,7 @@ export declare const packSchema: z.ZodObject<{
2009
2109
  }, z.core.$strip>>>;
2010
2110
  weight: z.ZodDefault<z.ZodNumber>;
2011
2111
  seconds: z.ZodDefault<z.ZodNumber>;
2112
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2012
2113
  }, z.core.$strip>, z.ZodObject<{
2013
2114
  narration: z.ZodOptional<z.ZodString>;
2014
2115
  archetype: z.ZodLiteral<"line-chart">;
@@ -2056,6 +2157,7 @@ export declare const packSchema: z.ZodObject<{
2056
2157
  }, z.core.$strip>>>;
2057
2158
  weight: z.ZodDefault<z.ZodNumber>;
2058
2159
  seconds: z.ZodDefault<z.ZodNumber>;
2160
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2059
2161
  }, z.core.$strip>, z.ZodObject<{
2060
2162
  narration: z.ZodOptional<z.ZodString>;
2061
2163
  archetype: z.ZodLiteral<"callout">;
@@ -2093,6 +2195,7 @@ export declare const packSchema: z.ZodObject<{
2093
2195
  }, z.core.$strip>>>;
2094
2196
  weight: z.ZodDefault<z.ZodNumber>;
2095
2197
  seconds: z.ZodDefault<z.ZodNumber>;
2198
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2096
2199
  }, z.core.$strip>, z.ZodObject<{
2097
2200
  narration: z.ZodOptional<z.ZodString>;
2098
2201
  archetype: z.ZodLiteral<"pipeline">;
@@ -2141,6 +2244,7 @@ export declare const packSchema: z.ZodObject<{
2141
2244
  }, z.core.$strip>>>;
2142
2245
  weight: z.ZodDefault<z.ZodNumber>;
2143
2246
  seconds: z.ZodDefault<z.ZodNumber>;
2247
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2144
2248
  }, z.core.$strip>, z.ZodObject<{
2145
2249
  narration: z.ZodOptional<z.ZodString>;
2146
2250
  archetype: z.ZodLiteral<"annotated-figure">;
@@ -2191,6 +2295,7 @@ export declare const packSchema: z.ZodObject<{
2191
2295
  }, z.core.$strip>>>;
2192
2296
  weight: z.ZodDefault<z.ZodNumber>;
2193
2297
  seconds: z.ZodDefault<z.ZodNumber>;
2298
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2194
2299
  }, z.core.$strip>, z.ZodObject<{
2195
2300
  narration: z.ZodOptional<z.ZodString>;
2196
2301
  archetype: z.ZodLiteral<"grid">;
@@ -2239,6 +2344,7 @@ export declare const packSchema: z.ZodObject<{
2239
2344
  }, z.core.$strip>>>;
2240
2345
  weight: z.ZodDefault<z.ZodNumber>;
2241
2346
  seconds: z.ZodDefault<z.ZodNumber>;
2347
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2242
2348
  }, z.core.$strip>, z.ZodObject<{
2243
2349
  narration: z.ZodOptional<z.ZodString>;
2244
2350
  archetype: z.ZodLiteral<"bar-compare">;
@@ -2283,6 +2389,7 @@ export declare const packSchema: z.ZodObject<{
2283
2389
  }, z.core.$strip>>>;
2284
2390
  weight: z.ZodDefault<z.ZodNumber>;
2285
2391
  seconds: z.ZodDefault<z.ZodNumber>;
2392
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2286
2393
  }, z.core.$strip>, z.ZodObject<{
2287
2394
  narration: z.ZodOptional<z.ZodString>;
2288
2395
  archetype: z.ZodLiteral<"stack">;
@@ -2321,6 +2428,7 @@ export declare const packSchema: z.ZodObject<{
2321
2428
  }, z.core.$strip>>>;
2322
2429
  weight: z.ZodDefault<z.ZodNumber>;
2323
2430
  seconds: z.ZodDefault<z.ZodNumber>;
2431
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2324
2432
  }, z.core.$strip>, z.ZodObject<{
2325
2433
  narration: z.ZodOptional<z.ZodString>;
2326
2434
  archetype: z.ZodLiteral<"split-compare">;
@@ -2372,6 +2480,7 @@ export declare const packSchema: z.ZodObject<{
2372
2480
  }, z.core.$strip>>>;
2373
2481
  weight: z.ZodDefault<z.ZodNumber>;
2374
2482
  seconds: z.ZodDefault<z.ZodNumber>;
2483
+ bespoke: z.ZodOptional<z.ZodBoolean>;
2375
2484
  }, z.core.$strip>], "archetype">>;
2376
2485
  }, z.core.$strip>;
2377
2486
  narration: z.ZodOptional<z.ZodObject<{
@@ -59,7 +59,7 @@ export declare function sampleTimes(stops: readonly number[], duration: number):
59
59
  * not supply the deck's camera windows gets every off-canvas finding as an
60
60
  * error, exactly as before the camera existed.
61
61
  */
62
- export declare function parseCheckReport(stdout: string, stderr?: string, transit?: Window[]): Verdict;
62
+ export declare function parseCheckReport(stdout: string, stderr?: string, transit?: Window[], clipped?: string[]): Verdict;
63
63
  /** One camera transit, `[t0, t1]` in absolute deck seconds. */
64
64
  /**
65
65
  * A camera's transit window, and WHOSE it is.
@@ -140,6 +140,7 @@
140
140
  * a gate nobody runs; this one costs nothing, so it runs by default.
141
141
  */
142
142
  import type { Finding } from "../types.js";
143
+ import { type FillRow } from "./fill.js";
143
144
  /**
144
145
  * Ink at a stop, as a fraction of the WHOLE frame — not of the measured band.
145
146
  *
@@ -213,6 +214,11 @@ export interface FidelityOptions {
213
214
  export declare function readReserve(timingText: string | null): number;
214
215
  export interface FidelityReport {
215
216
  stops: Measured[];
217
+ /**
218
+ * Main-axis fill at each scene's last hold — measured on every deck, graded
219
+ * only on a v2 one (`fit.json` present). See `./fill.ts`.
220
+ */
221
+ fills: FillRow[];
216
222
  /**
217
223
  * Both gates' findings — this one's `blank_at_stop` and `overprint`'s
218
224
  * `svg_text_overprint`.
@@ -252,6 +258,34 @@ export declare function decodePng(png: Uint8Array): Promise<Frame>;
252
258
  * of those have been wrong in this project inside the last week.
253
259
  */
254
260
  export declare function inkBelow(frame: Frame, bandTopPx: number): number;
261
+ /**
262
+ * Where a scene's BODY is, in device px: the part of the frame that is not its
263
+ * chrome. Classic chrome is a block across the top, so the body is everything
264
+ * below its bottom edge — exactly what `inkBelow` measured, and still is. The
265
+ * `--design v2` placements (src/emit/look.ts) move the chrome, and "below the
266
+ * headline" stops meaning "the body": under a `foot` headline there is nothing
267
+ * at all by design, and beside a `rail` the body is the column to its right.
268
+ * Measured where the body is, rather than below a headline that is no longer
269
+ * on top, the same floor means the same thing.
270
+ */
271
+ export interface BodyRegion {
272
+ top: number;
273
+ left: number;
274
+ bottom: number;
275
+ }
276
+ /**
277
+ * Non-background pixels inside `region`, over the WHOLE frame's pixels.
278
+ *
279
+ * `plate` is the deck's bare background (every scene hidden), when the build
280
+ * captured one — a v2 deck does, for the fill gate. Against it each pixel is
281
+ * compared with the same pixel of the empty ground. Against the frame's modal
282
+ * colour alone a style pack's painted ground — signal's glow, blueprint's grid
283
+ * — read as ink: with every scene hidden, 4.42% of a signal frame and 2.40% of
284
+ * a blueprint one measured "inked", 29x and 16x `INK_FLOOR`, so a stop with
285
+ * nothing drawn on it passed this gate by a wide margin (review, 2026-10-08).
286
+ * A plate of another size is ignored.
287
+ */
288
+ export declare function inkIn(frame: Frame, region: BodyRegion, plate?: Frame | null): number;
255
289
  /**
256
290
  * The stops a built deck declares, from `timing.json` if it is there and the
257
291
  * slideshow island if it is not.