hyperframes 0.8.157 → 0.8.159

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 (155) hide show
  1. package/README.md +14 -0
  2. package/dist/{add-XKIJJAC6.js → add-7UMRT6IJ.js} +11 -11
  3. package/dist/{animatedGifPrep-MTJRHJ5G.js → animatedGifPrep-COFZMEVD.js} +5 -5
  4. package/dist/api.js +11 -11
  5. package/dist/{asset-TEWIJMG5.js → asset-N37XIJTB.js} +2 -2
  6. package/dist/{assetCataloger-DI7FC5KZ.js → assetCataloger-ZOQ67MGR.js} +2 -2
  7. package/dist/{auth-ERW6EOVW.js → auth-GKFS2PL6.js} +1 -1
  8. package/dist/{autoUpdate-IHYT5BQF.js → autoUpdate-V4PLREDQ.js} +2 -2
  9. package/dist/{backgroundChecks-DTKZTDHN.js → backgroundChecks-TVOKARY2.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-FTZ67377.js → batchRender-IARQXQHN.js} +3 -3
  12. package/dist/{beats-AE4ZKJ3I.js → beats-FY4UDXBL.js} +11 -10
  13. package/dist/{benchmark-Q3YSQVWW.js → benchmark-ZJYFRFYF.js} +8 -8
  14. package/dist/{browser-IRRLG5FG.js → browser-WRZOH4PD.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-IVO43QBQ.js → bundleWithLocalizedFonts-SFHKZZAX.js} +2 -2
  16. package/dist/{capture-ANATPLOS.js → capture-KFYPMVTT.js} +18 -8
  17. package/dist/{capture-MVH3XNAE.js → capture-LLLIHYEF.js} +2 -2
  18. package/dist/{catalog-5BJJW3G4.js → catalog-QO762U7V.js} +11 -11
  19. package/dist/{catch-up-DU2O72RS.js → catch-up-MELHNTGB.js} +4 -4
  20. package/dist/{check-P5D3YU2H.js → check-RX3LTKYB.js} +38 -37
  21. package/dist/{checkBrowser-RNIDFQZZ.js → checkBrowser-EUUMEILI.js} +35 -34
  22. package/dist/{chunk-YBKIAQNU.js → chunk-24N3BB5M.js} +3 -3
  23. package/dist/{chunk-IRRRH66M.js → chunk-2CEH75X3.js} +115 -13
  24. package/dist/{chunk-LQXHRO6F.js → chunk-3W3MOLRL.js} +2 -2
  25. package/dist/{chunk-EYNN5DJG.js → chunk-4D5RBIX6.js} +30 -10
  26. package/dist/{chunk-4YDQQQY6.js → chunk-4DEBDQD4.js} +2 -2
  27. package/dist/{chunk-6B6G3QMQ.js → chunk-4IKI2RYR.js} +11 -11
  28. package/dist/{chunk-QAWCWGQG.js → chunk-5GPX4X4L.js} +2 -2
  29. package/dist/{chunk-WZBGU46C.js → chunk-5HNZQSO4.js} +1 -1
  30. package/dist/{chunk-OTG5H2VM.js → chunk-5O6I5ZV7.js} +2 -2
  31. package/dist/{chunk-ZFZNPLRJ.js → chunk-5RSV6DWB.js} +4 -3
  32. package/dist/{chunk-WK375PPO.js → chunk-5YCFHCD4.js} +2 -2
  33. package/dist/{chunk-SMPG26EL.js → chunk-6TDZJ43G.js} +1 -1
  34. package/dist/{chunk-7ZWOLEGS.js → chunk-76NO4ZRM.js} +1 -1
  35. package/dist/{chunk-3FRK53UC.js → chunk-7RTTPSXG.js} +1 -1
  36. package/dist/{chunk-ZY4A2R7C.js → chunk-7XEVZDKU.js} +7 -7
  37. package/dist/{chunk-56QTFOWH.js → chunk-A5RDOXZE.js} +1 -1
  38. package/dist/{chunk-GPUVPZRK.js → chunk-AEQWF7PE.js} +1 -1
  39. package/dist/{chunk-DRT6ZQI2.js → chunk-AFYZWHR7.js} +7 -7
  40. package/dist/{chunk-EGKIQS5J.js → chunk-AQXJC64X.js} +1 -1
  41. package/dist/{chunk-BPTKOTF2.js → chunk-BEW7RCCW.js} +1 -1
  42. package/dist/{chunk-O4ZB2LUC.js → chunk-DLQQA25O.js} +1 -1
  43. package/dist/{chunk-23VDPRQ3.js → chunk-DVAEX52Q.js} +1 -1
  44. package/dist/{chunk-J7WFHOCW.js → chunk-EGJVFPUX.js} +1 -1
  45. package/dist/{chunk-T76NSAXO.js → chunk-ESOAYGIT.js} +6 -4
  46. package/dist/{chunk-OGJFYVRC.js → chunk-EWAAH7AU.js} +1 -1
  47. package/dist/{chunk-QRPYTJBW.js → chunk-FEKRMXT6.js} +1 -1
  48. package/dist/{chunk-J6SJCYAQ.js → chunk-GGDCBVXK.js} +4 -4
  49. package/dist/{chunk-YB26LWR2.js → chunk-H6BKVVU4.js} +2 -2
  50. package/dist/{chunk-EEEUI3ON.js → chunk-HEEN6X6O.js} +15 -8
  51. package/dist/{chunk-HQG7B5ZE.js → chunk-HO3SITVT.js} +1 -1
  52. package/dist/{chunk-25IXEZXH.js → chunk-IJ7JPX4W.js} +2 -2
  53. package/dist/{chunk-UGIIDY6C.js → chunk-IKDBT5WT.js} +79 -4
  54. package/dist/{chunk-FJT35XBA.js → chunk-INNBWSZK.js} +1 -1
  55. package/dist/{chunk-SLUFA6UM.js → chunk-IWOEAWIP.js} +1 -1
  56. package/dist/{chunk-LZ7C6CXD.js → chunk-JZLFHF2M.js} +2 -2
  57. package/dist/{chunk-NIT2ZCNI.js → chunk-K5BMHQOU.js} +9 -9
  58. package/dist/{chunk-CA7IDB4Z.js → chunk-MMYY4KV3.js} +18 -3
  59. package/dist/{chunk-ZTUZDPHE.js → chunk-MTUC2Z32.js} +2 -2
  60. package/dist/{chunk-XRRZZFGI.js → chunk-NCVGBBWC.js} +1 -1
  61. package/dist/{chunk-NFX4K6OW.js → chunk-NIGOOCVS.js} +1 -1
  62. package/dist/{chunk-TQ62EMUI.js → chunk-ODE7HHNN.js} +20 -20
  63. package/dist/chunk-TWBTXEDZ.js +3795 -0
  64. package/dist/{chunk-T243WV6D.js → chunk-UK4KRTIX.js} +1 -1
  65. package/dist/{chunk-SGIZMTWO.js → chunk-V5J4XEBG.js} +1 -1
  66. package/dist/{chunk-ZZ3ZWTOI.js → chunk-WWMFR4SH.js} +1 -1
  67. package/dist/{chunk-SWRIMG46.js → chunk-YITZFHRJ.js} +1 -1
  68. package/dist/{clean-4WDZ3TFN.js → clean-RW7Z4XM6.js} +18 -18
  69. package/dist/cli.js +52 -52
  70. package/dist/{cloud-FL6VP6IU.js → cloud-EEOV7JKB.js} +4 -4
  71. package/dist/{cloudrun-STLNWUBW.js → cloudrun-EZAXYVXG.js} +3 -3
  72. package/dist/{compare-MXZ7QKBN.js → compare-5UARQFXX.js} +29 -28
  73. package/dist/{compiler-VFJVUZWR.js → compiler-THI7BXZU.js} +2 -2
  74. package/dist/{component-XKBA5ON2.js → component-AYOFPL33.js} +3 -3
  75. package/dist/{compositions-2LUY6RQW.js → compositions-XJNJBOMG.js} +9 -9
  76. package/dist/{delete-OBAOZCXI.js → delete-653AOR25.js} +2 -2
  77. package/dist/{dist-SVTSOG4Q.js → dist-DLR4X3KN.js} +2 -2
  78. package/dist/{doctor-BLXWRHAE.js → doctor-WA6VRRE7.js} +7 -7
  79. package/dist/{events-V4LYF3MW.js → events-U5COLUWT.js} +2 -2
  80. package/dist/{events-LSJDXTXK.js → events-XXBCP2I4.js} +3 -3
  81. package/dist/{feedback-LMDNGTYB.js → feedback-DX6Q3LN7.js} +8 -8
  82. package/dist/{figma-BXHFTYCT.js → figma-LCQVLBXF.js} +3 -3
  83. package/dist/fontLocalizeCli.js +8 -8
  84. package/dist/{get-2ZKWMYCG.js → get-UYNPFMHX.js} +2 -2
  85. package/dist/{gpuPolicy-VXNJ4UBN.js → gpuPolicy-YIW3HL3B.js} +5 -5
  86. package/dist/{grade-compare-F7JNDXGF.js → grade-compare-YQEYATJV.js} +28 -28
  87. package/dist/{help-WGANCPIE.js → help-FDURC7WR.js} +1 -1
  88. package/dist/{history-FILLGPWB.js → history-EU5UZLHT.js} +10 -10
  89. package/dist/hyperframe-runtime.js +55 -55
  90. package/dist/hyperframe.manifest.json +1 -1
  91. package/dist/hyperframe.runtime.iife.js +55 -55
  92. package/dist/hyperframes-player.global.js +1 -1
  93. package/dist/{info-QQJ7C6SO.js → info-7T6CK6CL.js} +7 -7
  94. package/dist/{init-BQYTOLTG.js → init-KQYSKFVU.js} +31 -26
  95. package/dist/{inspect-BTBKTW5W.js → inspect-HQBV7VHS.js} +28 -27
  96. package/dist/{installer-HF5BXXXM.js → installer-OKKPQNKS.js} +4 -4
  97. package/dist/{keyframes-Y5QDNXST.js → keyframes-SK74JHOA.js} +6 -6
  98. package/dist/{lambda-ZCX7KGTY.js → lambda-S2N4VTRO.js} +4 -4
  99. package/dist/{layout-HITFK2H5.js → layout-MTE5Y6DE.js} +28 -27
  100. package/dist/{lint-6HH5X4NJ.js → lint-FJGGJYB7.js} +8 -8
  101. package/dist/{list-KBERMLPP.js → list-MBPALK5U.js} +2 -2
  102. package/dist/{login-MZNDV73I.js → login-HDN4T5E4.js} +4 -4
  103. package/dist/{media-treatment-YACCPVXX.js → media-treatment-IP34DXWN.js} +11 -11
  104. package/dist/{models-WHDUQZQZ.js → models-W5TASRHD.js} +8 -8
  105. package/dist/{motionShot-CRQTWUJB.js → motionShot-2WYEMOPJ.js} +12 -11
  106. package/dist/{normalize-audio-Z7UQTZ5J.js → normalize-audio-F4NQPXII.js} +7 -7
  107. package/dist/{open-GM2J5QEA.js → open-DRXNALDE.js} +7 -7
  108. package/dist/{parakeetRunner-5PNBGCGH.js → parakeetRunner-VISBF2EA.js} +8 -8
  109. package/dist/{pipeline-QA2422UI.js → pipeline-A2XOVZOM.js} +5 -5
  110. package/dist/{play-JGMRZO6G.js → play-W2QELQX7.js} +26 -26
  111. package/dist/{present-SI7ZE6IB.js → present-NHYRS4F4.js} +20 -20
  112. package/dist/{preview-PZOQHOIO.js → preview-SMJVUPXE.js} +21 -21
  113. package/dist/{producer-PQMZ7OYH.js → producer-276O3CKW.js} +1 -1
  114. package/dist/{projectConfig-EYYDESVO.js → projectConfig-FXFUHFPZ.js} +6 -6
  115. package/dist/{publication-MJY3XYYV.js → publication-SSQO6ECV.js} +2 -2
  116. package/dist/{publish-UT3L777Q.js → publish-UHDKDXZI.js} +10 -10
  117. package/dist/{remove-background-HT73ZUIG.js → remove-background-IG6U56HC.js} +6 -6
  118. package/dist/{render-6CJXA7UA.js → render-6P5RSFS3.js} +12 -12
  119. package/dist/{render-YTJ3SMCD.js → render-XQONIJEJ.js} +3 -3
  120. package/dist/{render-SFIX3O3B.js → render-ZJPSLTKV.js} +49 -28
  121. package/dist/{render-batch-AFB2XK3I.js → render-batch-MH3Z6IPT.js} +3 -3
  122. package/dist/{resolver-F2D2YCSQ.js → resolver-JMSGO2JF.js} +4 -4
  123. package/dist/{sherpa-IBKSF6GX.js → sherpa-64JLV4YM.js} +7 -7
  124. package/dist/skills/hyperframes/SKILL.md +1 -1
  125. package/dist/skills/hyperframes/references/frame-worker-core.md +1 -1
  126. package/dist/skills/hyperframes/references/intent-interview.md +2 -2
  127. package/dist/skills/hyperframes/references/production-loop.md +11 -11
  128. package/dist/skills/hyperframes/references/review-loop.md +6 -6
  129. package/dist/skills/hyperframes/references/storyboard-format.md +1 -1
  130. package/dist/skills/hyperframes-cli/SKILL.md +1 -1
  131. package/dist/{skills-G26XO2BY.js → skills-UXOL62PY.js} +5 -5
  132. package/dist/{skillsUpdateCheck-ZNDQSDB4.js → skillsUpdateCheck-5Y6676K6.js} +3 -3
  133. package/dist/{snapshot-SN7I7O7I.js → snapshot-SQBPCXOV.js} +74 -48
  134. package/dist/{src-NDI4KNT3.js → src-N42CT3YR.js} +6 -4
  135. package/dist/{src-4GCHM2LX.js → src-RQMK5INS.js} +7 -7
  136. package/dist/{staticProjectServer-TTC3LYHO.js → staticProjectServer-AQXVWMLU.js} +15 -13
  137. package/dist/studio/assets/{hyperframes-player-D3ufdOJ_.js → hyperframes-player-kqB1psAJ.js} +1 -1
  138. package/dist/studio/assets/{index-7oKTFwYd.js → index-BrViH8hj.js} +1 -1
  139. package/dist/studio/assets/{index-CALVHgsJ.js → index-C3AZLr-0.js} +1 -1
  140. package/dist/studio/assets/{index-DYk4U8BS.js → index-X_d1b5vz.js} +4 -4
  141. package/dist/studio/index.html +1 -1
  142. package/dist/{studio-api-TVIDDUZG.js → studio-api-GY5D7RAP.js} +9 -9
  143. package/dist/{studioServer-WBV2Q3SH.js → studioServer-O3VONODG.js} +49 -49
  144. package/dist/{telemetry-RVFKZEOH.js → telemetry-V2K5P7CI.js} +3 -3
  145. package/dist/{timeline-BUYUBI5X.js → timeline-YU3YPLKB.js} +18 -18
  146. package/dist/{tokens-PUA5FQKP.js → tokens-NPSSSG2A.js} +2 -2
  147. package/dist/{transcribe-DZ6O6EG5.js → transcribe-BXJNS3RZ.js} +6 -6
  148. package/dist/{transcribe-L2QHSNHO.js → transcribe-FNBDG24U.js} +12 -12
  149. package/dist/{updateCheck-PULEO7CW.js → updateCheck-MB3RHSVK.js} +2 -2
  150. package/dist/{upgrade-UJJIVNHJ.js → upgrade-5VNRUR37.js} +2 -2
  151. package/dist/{urlDownloader-INLS5A6I.js → urlDownloader-WCT7FMLA.js} +4 -4
  152. package/dist/{validate-DJAZMEQB.js → validate-UXSXRCE6.js} +20 -19
  153. package/dist/{video-3GLT6U6Z.js → video-NRNQBZMV.js} +5 -5
  154. package/package.json +1 -1
  155. package/dist/chunk-LPOTN5GW.js +0 -3795
@@ -4,6 +4,12 @@ import { dirname as __hf_dirname } from "node:path";
4
4
  var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ formatLintStartupMessage
9
+ } from "./chunk-6CSYCFQV.js";
10
+ import {
11
+ desktopHint
12
+ } from "./chunk-EDUBJPGL.js";
7
13
  import {
8
14
  openBrowser,
9
15
  parseRemoteDebuggingPort,
@@ -12,13 +18,7 @@ import {
12
18
  import {
13
19
  resolveProject,
14
20
  resolveProjectOrThrow
15
- } from "./chunk-WZBGU46C.js";
16
- import {
17
- formatLintStartupMessage
18
- } from "./chunk-6CSYCFQV.js";
19
- import {
20
- desktopHint
21
- } from "./chunk-EDUBJPGL.js";
21
+ } from "./chunk-5HNZQSO4.js";
22
22
  import "./chunk-K2FLNJVB.js";
23
23
  import "./chunk-DCAI5DBR.js";
24
24
  import {
@@ -31,21 +31,21 @@ import {
31
31
  } from "./chunk-DQBY7FRR.js";
32
32
  import {
33
33
  resolveLocalBrowserGpuMode
34
- } from "./chunk-YB26LWR2.js";
34
+ } from "./chunk-H6BKVVU4.js";
35
35
  import {
36
36
  resolveAutoProxy
37
- } from "./chunk-GPUVPZRK.js";
37
+ } from "./chunk-AEQWF7PE.js";
38
38
  import "./chunk-XT7X6QCP.js";
39
39
  import "./chunk-4YYJOFKS.js";
40
40
  import "./chunk-HVW7ABXD.js";
41
- import "./chunk-3FRK53UC.js";
42
- import "./chunk-LQXHRO6F.js";
43
- import "./chunk-QRPYTJBW.js";
41
+ import "./chunk-7RTTPSXG.js";
42
+ import "./chunk-3W3MOLRL.js";
43
+ import "./chunk-FEKRMXT6.js";
44
44
  import "./chunk-AWDFDFI3.js";
45
45
  import "./chunk-P6LJ4Y32.js";
46
46
  import "./chunk-GMECXFAN.js";
47
- import "./chunk-XRRZZFGI.js";
48
- import "./chunk-HQG7B5ZE.js";
47
+ import "./chunk-NCVGBBWC.js";
48
+ import "./chunk-HO3SITVT.js";
49
49
  import "./chunk-VWG7OQKU.js";
50
50
  import "./chunk-QWQ6GQTI.js";
51
51
  import {
@@ -70,19 +70,19 @@ import "./chunk-WERLJGIC.js";
70
70
  import {
71
71
  isDevMode
72
72
  } from "./chunk-ISN5GRYI.js";
73
- import "./chunk-ZTUZDPHE.js";
73
+ import "./chunk-MTUC2Z32.js";
74
74
  import "./chunk-EOVYQ3IG.js";
75
75
  import {
76
76
  buildNpxCommand
77
77
  } from "./chunk-6BEFEWFB.js";
78
78
  import "./chunk-XT6MXC7A.js";
79
- import "./chunk-IRRRH66M.js";
80
- import "./chunk-FJT35XBA.js";
79
+ import "./chunk-2CEH75X3.js";
80
+ import "./chunk-INNBWSZK.js";
81
81
  import "./chunk-KCF6GHJP.js";
82
82
  import "./chunk-JYVGYKXG.js";
83
83
  import "./chunk-7KDQAD2W.js";
84
- import "./chunk-SGIZMTWO.js";
85
- import "./chunk-LPOTN5GW.js";
84
+ import "./chunk-V5J4XEBG.js";
85
+ import "./chunk-TWBTXEDZ.js";
86
86
  import "./chunk-VC76R6W2.js";
87
87
  import "./chunk-UJKQWGFF.js";
88
88
  import "./chunk-ALLKNYC3.js";
@@ -1701,7 +1701,7 @@ async function runLocalStudioMode(dir, options) {
1701
1701
  return waitForStudioChildClose(child);
1702
1702
  }
1703
1703
  async function runEmbeddedMode(dir, startPort, options) {
1704
- const { createStudioServer, loadPreviewServerBuildSignature, resolveStudioBundle } = await import("./studioServer-WBV2Q3SH.js");
1704
+ const { createStudioServer, loadPreviewServerBuildSignature, resolveStudioBundle } = await import("./studioServer-O3VONODG.js");
1705
1705
  const pName = options?.projectName ?? basename(dir);
1706
1706
  const studioBundle = resolveStudioBundle();
1707
1707
  if (!options?.json) ge(c.bold("hyperframes preview"));
@@ -1831,7 +1831,7 @@ async function runEmbeddedMode(dir, startPort, options) {
1831
1831
  };
1832
1832
  process.on("SIGINT", shutdown);
1833
1833
  process.on("SIGTERM", shutdown);
1834
- import("./src-NDI4KNT3.js").then(({ killTrackedProcesses }) => {
1834
+ import("./src-N42CT3YR.js").then(({ killTrackedProcesses }) => {
1835
1835
  process.once("exit", () => {
1836
1836
  if (!shuttingDown) killTrackedProcesses();
1837
1837
  });
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  loadProducer
9
- } from "./chunk-NFX4K6OW.js";
9
+ } from "./chunk-NIGOOCVS.js";
10
10
  import "./chunk-M2WBOQ2Q.js";
11
11
  export {
12
12
  loadProducer
@@ -17,18 +17,18 @@ import {
17
17
  resolveAutoProxy,
18
18
  seedProjectAuthoringSkill,
19
19
  writeProjectConfig
20
- } from "./chunk-GPUVPZRK.js";
20
+ } from "./chunk-AEQWF7PE.js";
21
21
  import "./chunk-XT7X6QCP.js";
22
22
  import "./chunk-4YYJOFKS.js";
23
23
  import "./chunk-HVW7ABXD.js";
24
- import "./chunk-3FRK53UC.js";
25
- import "./chunk-LQXHRO6F.js";
26
- import "./chunk-QRPYTJBW.js";
24
+ import "./chunk-7RTTPSXG.js";
25
+ import "./chunk-3W3MOLRL.js";
26
+ import "./chunk-FEKRMXT6.js";
27
27
  import "./chunk-AWDFDFI3.js";
28
28
  import "./chunk-P6LJ4Y32.js";
29
29
  import "./chunk-GMECXFAN.js";
30
- import "./chunk-SGIZMTWO.js";
31
- import "./chunk-LPOTN5GW.js";
30
+ import "./chunk-V5J4XEBG.js";
31
+ import "./chunk-TWBTXEDZ.js";
32
32
  import "./chunk-VC76R6W2.js";
33
33
  import "./chunk-UJKQWGFF.js";
34
34
  import "./chunk-ALLKNYC3.js";
@@ -8,8 +8,8 @@ import {
8
8
  publishRegistryFile,
9
9
  registryTargetPath
10
10
  } from "./chunk-GMECXFAN.js";
11
- import "./chunk-SGIZMTWO.js";
12
- import "./chunk-LPOTN5GW.js";
11
+ import "./chunk-V5J4XEBG.js";
12
+ import "./chunk-TWBTXEDZ.js";
13
13
  import "./chunk-VC76R6W2.js";
14
14
  import "./chunk-UJKQWGFF.js";
15
15
  import "./chunk-ALLKNYC3.js";
@@ -20,26 +20,26 @@ import "./chunk-KMAAOHLO.js";
20
20
  import {
21
21
  envCredentialVar
22
22
  } from "./chunk-NAMGMP3R.js";
23
+ import {
24
+ formatLintStartupMessage
25
+ } from "./chunk-6CSYCFQV.js";
23
26
  import "./chunk-X7MTZ4T2.js";
24
27
  import {
25
28
  ProxyTranscodeError,
26
29
  proxyVariantFor,
27
30
  resolveProxies,
28
31
  scanProjectMediaCodecMap
29
- } from "./chunk-ZFZNPLRJ.js";
32
+ } from "./chunk-5RSV6DWB.js";
30
33
  import "./chunk-FFDC5OWV.js";
31
- import {
32
- formatLintStartupMessage
33
- } from "./chunk-6CSYCFQV.js";
34
34
  import {
35
35
  resolveAutoProxy
36
- } from "./chunk-GPUVPZRK.js";
36
+ } from "./chunk-AEQWF7PE.js";
37
37
  import "./chunk-XT7X6QCP.js";
38
38
  import "./chunk-4YYJOFKS.js";
39
39
  import "./chunk-HVW7ABXD.js";
40
- import "./chunk-3FRK53UC.js";
41
- import "./chunk-LQXHRO6F.js";
42
- import "./chunk-QRPYTJBW.js";
40
+ import "./chunk-7RTTPSXG.js";
41
+ import "./chunk-3W3MOLRL.js";
42
+ import "./chunk-FEKRMXT6.js";
43
43
  import "./chunk-AWDFDFI3.js";
44
44
  import "./chunk-P6LJ4Y32.js";
45
45
  import "./chunk-GMECXFAN.js";
@@ -64,8 +64,8 @@ import {
64
64
  definitiveEntryMismatchComposition,
65
65
  hasDefinitiveEntryMismatch
66
66
  } from "./chunk-Q5X2B5WT.js";
67
- import "./chunk-SGIZMTWO.js";
68
- import "./chunk-LPOTN5GW.js";
67
+ import "./chunk-V5J4XEBG.js";
68
+ import "./chunk-TWBTXEDZ.js";
69
69
  import "./chunk-VC76R6W2.js";
70
70
  import "./chunk-UJKQWGFF.js";
71
71
  import "./chunk-ALLKNYC3.js";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  RemoveBackgroundError,
21
21
  removeBackground
22
- } from "./chunk-23VDPRQ3.js";
22
+ } from "./chunk-DVAEX52Q.js";
23
23
  import {
24
24
  DEFAULT_MODEL,
25
25
  DEFAULT_QUALITY,
@@ -31,19 +31,19 @@ import {
31
31
  listAvailableProviders,
32
32
  modelPath,
33
33
  selectProviders
34
- } from "./chunk-OTG5H2VM.js";
34
+ } from "./chunk-5O6I5ZV7.js";
35
35
  import "./chunk-3DKN5WKL.js";
36
36
  import "./chunk-6BEFEWFB.js";
37
37
  import "./chunk-PO2SDVQA.js";
38
38
  import "./chunk-KEGTYA7V.js";
39
39
  import "./chunk-XT6MXC7A.js";
40
- import "./chunk-IRRRH66M.js";
41
- import "./chunk-FJT35XBA.js";
40
+ import "./chunk-2CEH75X3.js";
41
+ import "./chunk-INNBWSZK.js";
42
42
  import "./chunk-KCF6GHJP.js";
43
43
  import "./chunk-JYVGYKXG.js";
44
44
  import "./chunk-7KDQAD2W.js";
45
- import "./chunk-SGIZMTWO.js";
46
- import "./chunk-LPOTN5GW.js";
45
+ import "./chunk-V5J4XEBG.js";
46
+ import "./chunk-TWBTXEDZ.js";
47
47
  import "./chunk-VC76R6W2.js";
48
48
  import "./chunk-UJKQWGFF.js";
49
49
  import "./chunk-ALLKNYC3.js";
@@ -21,11 +21,6 @@ import {
21
21
  pollUntilTerminal,
22
22
  reportApiError
23
23
  } from "./chunk-IYLHJV34.js";
24
- import {
25
- reportVariableIssues,
26
- resolveVariablesArg,
27
- validateVariablesAgainstProject
28
- } from "./chunk-SLUFA6UM.js";
29
24
  import {
30
25
  buildPublishFileMap,
31
26
  zipPublishFileMap
@@ -33,17 +28,22 @@ import {
33
28
  import "./chunk-YJDB4FLT.js";
34
29
  import "./chunk-KMAAOHLO.js";
35
30
  import "./chunk-NAMGMP3R.js";
31
+ import {
32
+ reportVariableIssues,
33
+ resolveVariablesArg,
34
+ validateVariablesAgainstProject
35
+ } from "./chunk-IWOEAWIP.js";
36
36
  import {
37
37
  resolveProject
38
- } from "./chunk-WZBGU46C.js";
38
+ } from "./chunk-5HNZQSO4.js";
39
39
  import {
40
40
  errorBox,
41
41
  formatBytes,
42
42
  formatDuration
43
43
  } from "./chunk-K2FLNJVB.js";
44
44
  import "./chunk-442JNXRM.js";
45
- import "./chunk-XRRZZFGI.js";
46
- import "./chunk-HQG7B5ZE.js";
45
+ import "./chunk-NCVGBBWC.js";
46
+ import "./chunk-HO3SITVT.js";
47
47
  import "./chunk-VWG7OQKU.js";
48
48
  import "./chunk-QWQ6GQTI.js";
49
49
  import {
@@ -58,12 +58,12 @@ import {
58
58
  } from "./chunk-ZTZA4UWZ.js";
59
59
  import {
60
60
  withMeta
61
- } from "./chunk-O4ZB2LUC.js";
61
+ } from "./chunk-DLQQA25O.js";
62
62
  import "./chunk-K4WIOZFP.js";
63
63
  import "./chunk-XUXGIA7H.js";
64
64
  import "./chunk-WERLJGIC.js";
65
65
  import "./chunk-ISN5GRYI.js";
66
- import "./chunk-ZTUZDPHE.js";
66
+ import "./chunk-MTUC2Z32.js";
67
67
  import {
68
68
  downloadToFile
69
69
  } from "./chunk-BXCMXMJQ.js";
@@ -71,8 +71,8 @@ import "./chunk-EOVYQ3IG.js";
71
71
  import "./chunk-XT6MXC7A.js";
72
72
  import "./chunk-JYVGYKXG.js";
73
73
  import "./chunk-7KDQAD2W.js";
74
- import "./chunk-SGIZMTWO.js";
75
- import "./chunk-LPOTN5GW.js";
74
+ import "./chunk-V5J4XEBG.js";
75
+ import "./chunk-TWBTXEDZ.js";
76
76
  import "./chunk-VC76R6W2.js";
77
77
  import "./chunk-UJKQWGFF.js";
78
78
  import "./chunk-ALLKNYC3.js";
@@ -15,7 +15,7 @@ import {
15
15
  reportVariableIssues,
16
16
  resolveVariablesArg,
17
17
  validateVariablesAgainstProject
18
- } from "./chunk-SLUFA6UM.js";
18
+ } from "./chunk-IWOEAWIP.js";
19
19
  import "./chunk-FH7WODJH.js";
20
20
  import "./chunk-K2FLNJVB.js";
21
21
  import "./chunk-442JNXRM.js";
@@ -25,8 +25,8 @@ import {
25
25
  import {
26
26
  c
27
27
  } from "./chunk-ZTZA4UWZ.js";
28
- import "./chunk-SGIZMTWO.js";
29
- import "./chunk-LPOTN5GW.js";
28
+ import "./chunk-V5J4XEBG.js";
29
+ import "./chunk-TWBTXEDZ.js";
30
30
  import "./chunk-VC76R6W2.js";
31
31
  import "./chunk-UJKQWGFF.js";
32
32
  import "./chunk-ALLKNYC3.js";
@@ -6,19 +6,19 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  maybePromptRenderFeedback
9
- } from "./chunk-25IXEZXH.js";
9
+ } from "./chunk-IJ7JPX4W.js";
10
10
  import {
11
11
  captureArtifactRevision
12
- } from "./chunk-BPTKOTF2.js";
13
- import "./chunk-DRT6ZQI2.js";
12
+ } from "./chunk-BEW7RCCW.js";
13
+ import "./chunk-AFYZWHR7.js";
14
14
  import {
15
15
  reportVariableIssues,
16
16
  resolveVariablesArg,
17
17
  validateVariablesAgainstProject
18
- } from "./chunk-SLUFA6UM.js";
18
+ } from "./chunk-IWOEAWIP.js";
19
19
  import {
20
20
  loadProducer
21
- } from "./chunk-NFX4K6OW.js";
21
+ } from "./chunk-NIGOOCVS.js";
22
22
  import {
23
23
  renderJobObservabilityTelemetryPayload
24
24
  } from "./chunk-VXVRPIJA.js";
@@ -30,22 +30,17 @@ import {
30
30
  resolveCompositionEntryArg,
31
31
  resolveDefaultFpsArg,
32
32
  windowsChromeCrashRemediation
33
- } from "./chunk-J7WFHOCW.js";
33
+ } from "./chunk-EGJVFPUX.js";
34
34
  import "./chunk-WPNE5NEP.js";
35
- import {
36
- recordRenderSuccess,
37
- registerRenderOutput
38
- } from "./chunk-6PIGOKTE.js";
39
- import "./chunk-FFDC5OWV.js";
40
- import {
41
- resolveProject
42
- } from "./chunk-WZBGU46C.js";
43
35
  import {
44
36
  formatLintStartupMessage
45
37
  } from "./chunk-6CSYCFQV.js";
46
38
  import {
47
39
  desktopHint
48
40
  } from "./chunk-EDUBJPGL.js";
41
+ import {
42
+ resolveProject
43
+ } from "./chunk-5HNZQSO4.js";
49
44
  import {
50
45
  errorBox,
51
46
  formatBytes,
@@ -60,19 +55,24 @@ import {
60
55
  runEnvironmentChecks
61
56
  } from "./chunk-BB2SFTMY.js";
62
57
  import "./chunk-442JNXRM.js";
58
+ import {
59
+ recordRenderSuccess,
60
+ registerRenderOutput
61
+ } from "./chunk-6PIGOKTE.js";
62
+ import "./chunk-FFDC5OWV.js";
63
63
  import {
64
64
  loadProjectConfig,
65
65
  readProjectConfigWithStatus,
66
66
  seedProjectAuthoringSkill
67
- } from "./chunk-GPUVPZRK.js";
67
+ } from "./chunk-AEQWF7PE.js";
68
68
  import "./chunk-XT7X6QCP.js";
69
69
  import "./chunk-4YYJOFKS.js";
70
70
  import {
71
71
  normalizeSkillSlug
72
72
  } from "./chunk-HVW7ABXD.js";
73
- import "./chunk-3FRK53UC.js";
74
- import "./chunk-LQXHRO6F.js";
75
- import "./chunk-QRPYTJBW.js";
73
+ import "./chunk-7RTTPSXG.js";
74
+ import "./chunk-3W3MOLRL.js";
75
+ import "./chunk-FEKRMXT6.js";
76
76
  import "./chunk-AWDFDFI3.js";
77
77
  import "./chunk-P6LJ4Y32.js";
78
78
  import "./chunk-GMECXFAN.js";
@@ -81,8 +81,8 @@ import {
81
81
  trackRenderError,
82
82
  trackRenderObservation,
83
83
  trackRenderPreflightRejected
84
- } from "./chunk-XRRZZFGI.js";
85
- import "./chunk-HQG7B5ZE.js";
84
+ } from "./chunk-NCVGBBWC.js";
85
+ import "./chunk-HO3SITVT.js";
86
86
  import "./chunk-VWG7OQKU.js";
87
87
  import {
88
88
  bytesToMb
@@ -123,11 +123,11 @@ import {
123
123
  } from "./chunk-ISN5GRYI.js";
124
124
  import {
125
125
  VERSION
126
- } from "./chunk-ZTUZDPHE.js";
126
+ } from "./chunk-MTUC2Z32.js";
127
127
  import "./chunk-EOVYQ3IG.js";
128
128
  import {
129
129
  createRenderCancellationScope
130
- } from "./chunk-T243WV6D.js";
130
+ } from "./chunk-UK4KRTIX.js";
131
131
  import {
132
132
  H264EncoderUnavailableError,
133
133
  chromeLaunchRemediation,
@@ -141,9 +141,10 @@ import {
141
141
  EXTRACT_CACHE_DIR_DISABLED_ALIASES,
142
142
  MAX_VP9_CPU_USED,
143
143
  MIN_VP9_CPU_USED,
144
+ audioFailureDiagnostics,
144
145
  isVideoFrameFormat
145
- } from "./chunk-IRRRH66M.js";
146
- import "./chunk-FJT35XBA.js";
146
+ } from "./chunk-2CEH75X3.js";
147
+ import "./chunk-INNBWSZK.js";
147
148
  import "./chunk-KCF6GHJP.js";
148
149
  import "./chunk-JYVGYKXG.js";
149
150
  import "./chunk-7KDQAD2W.js";
@@ -152,8 +153,8 @@ import {
152
153
  fpsToFfmpegArg,
153
154
  fpsToNumber,
154
155
  parseFps
155
- } from "./chunk-SGIZMTWO.js";
156
- import "./chunk-LPOTN5GW.js";
156
+ } from "./chunk-V5J4XEBG.js";
157
+ import "./chunk-TWBTXEDZ.js";
157
158
  import "./chunk-VC76R6W2.js";
158
159
  import "./chunk-UJKQWGFF.js";
159
160
  import {
@@ -684,7 +685,7 @@ async function executeRenderPlan(plan, dependencies, cancellation) {
684
685
  let batchModule;
685
686
  let preparedBatch;
686
687
  if (plan.batchPath) {
687
- batchModule = await import("./batchRender-FTZ67377.js");
688
+ batchModule = await import("./batchRender-IARQXQHN.js");
688
689
  try {
689
690
  preparedBatch = batchModule.prepareBatchRender({
690
691
  batchPath: plan.batchPath,
@@ -1046,6 +1047,25 @@ ${c.warn("\u26A0")} ${c.bold("Transparency not preserved")}`);
1046
1047
  `);
1047
1048
  }
1048
1049
 
1050
+ // src/ui/renderDiagnostic.ts
1051
+ function renderMachineDiagnostic(values) {
1052
+ if (process.stdout.isTTY || process.env.HYPERFRAMES_STDOUT_IS_TTY === "1") return;
1053
+ const failures = audioFailureDiagnostics(values);
1054
+ if (failures.length === 0) return;
1055
+ process.stdout.write(
1056
+ `@hf-diagnostic ${JSON.stringify({ version: 1, operation: "render", audioFailures: failures })}
1057
+ `
1058
+ );
1059
+ }
1060
+ function renderFailureDiagnostic(job, error, quiet) {
1061
+ if (quiet) return;
1062
+ const interruptedFailures = error !== null && typeof error === "object" && "audioFailures" in error && Array.isArray(error.audioFailures) ? error.audioFailures : [];
1063
+ renderMachineDiagnostic([
1064
+ ...interruptedFailures,
1065
+ ...job?.warnings.flatMap((warning) => warning.details?.audioFailures ?? []) ?? []
1066
+ ]);
1067
+ }
1068
+
1049
1069
  // src/ui/progress.ts
1050
1070
  var { stdout } = process;
1051
1071
  function renderProgress(percent, stage, row) {
@@ -1679,7 +1699,7 @@ async function renderDocker(projectDir, outputPath, options) {
1679
1699
  await new Promise((resolvePromise, reject) => {
1680
1700
  const stderrTail = createStderrTail();
1681
1701
  const child = spawn("docker", dockerArgs, {
1682
- stdio: options.quiet ? ["pipe", "pipe", "pipe"] : ["inherit", "inherit", "pipe"]
1702
+ stdio: options.quiet ? ["pipe", "ignore", "pipe"] : ["inherit", "inherit", "pipe"]
1683
1703
  });
1684
1704
  child.stderr?.on("data", (chunk) => {
1685
1705
  process.stderr.write(chunk);
@@ -2208,6 +2228,7 @@ function normalizeStageCode(stage) {
2208
2228
  }
2209
2229
  function handleRenderError(error, options, startTime, docker, hint, failedStage, job) {
2210
2230
  const message = normalizeErrorMessage(error);
2231
+ renderFailureDiagnostic(job, error, options.quiet);
2211
2232
  trackRenderError({
2212
2233
  fps: fpsToNumber(options.fps),
2213
2234
  quality: options.quality,
@@ -14,7 +14,7 @@ import {
14
14
  loadProjectVariableSchema,
15
15
  reportVariableIssues,
16
16
  validateVariablesAgainstSchema
17
- } from "./chunk-SLUFA6UM.js";
17
+ } from "./chunk-IWOEAWIP.js";
18
18
  import "./chunk-FH7WODJH.js";
19
19
  import {
20
20
  errorBox
@@ -27,8 +27,8 @@ import {
27
27
  import {
28
28
  c
29
29
  } from "./chunk-ZTZA4UWZ.js";
30
- import "./chunk-SGIZMTWO.js";
31
- import "./chunk-LPOTN5GW.js";
30
+ import "./chunk-V5J4XEBG.js";
31
+ import "./chunk-TWBTXEDZ.js";
32
32
  import "./chunk-VC76R6W2.js";
33
33
  import "./chunk-UJKQWGFF.js";
34
34
  import "./chunk-ALLKNYC3.js";
@@ -11,13 +11,13 @@ import {
11
11
  resolveItemWithDependencies,
12
12
  resolveItemsByTag,
13
13
  unreachableRegistryMessage
14
- } from "./chunk-3FRK53UC.js";
15
- import "./chunk-QRPYTJBW.js";
14
+ } from "./chunk-7RTTPSXG.js";
15
+ import "./chunk-FEKRMXT6.js";
16
16
  import "./chunk-AWDFDFI3.js";
17
17
  import "./chunk-P6LJ4Y32.js";
18
18
  import "./chunk-GMECXFAN.js";
19
- import "./chunk-SGIZMTWO.js";
20
- import "./chunk-LPOTN5GW.js";
19
+ import "./chunk-V5J4XEBG.js";
20
+ import "./chunk-TWBTXEDZ.js";
21
21
  import "./chunk-VC76R6W2.js";
22
22
  import "./chunk-UJKQWGFF.js";
23
23
  import "./chunk-ALLKNYC3.js";
@@ -16,24 +16,24 @@ import {
16
16
  sherpaRuntimeLoadError,
17
17
  sherpaUnsupportedReason,
18
18
  transcribeWithSherpa
19
- } from "./chunk-4YDQQQY6.js";
19
+ } from "./chunk-4DEBDQD4.js";
20
20
  import "./chunk-BXCMXMJQ.js";
21
21
  import "./chunk-3DKN5WKL.js";
22
22
  import "./chunk-EOVYQ3IG.js";
23
- import "./chunk-ZZ3ZWTOI.js";
24
- import "./chunk-T243WV6D.js";
23
+ import "./chunk-WWMFR4SH.js";
24
+ import "./chunk-UK4KRTIX.js";
25
25
  import "./chunk-6BEFEWFB.js";
26
26
  import "./chunk-SQHWDFTV.js";
27
27
  import "./chunk-PO2SDVQA.js";
28
28
  import "./chunk-KEGTYA7V.js";
29
29
  import "./chunk-XT6MXC7A.js";
30
- import "./chunk-IRRRH66M.js";
31
- import "./chunk-FJT35XBA.js";
30
+ import "./chunk-2CEH75X3.js";
31
+ import "./chunk-INNBWSZK.js";
32
32
  import "./chunk-KCF6GHJP.js";
33
33
  import "./chunk-JYVGYKXG.js";
34
34
  import "./chunk-7KDQAD2W.js";
35
- import "./chunk-SGIZMTWO.js";
36
- import "./chunk-LPOTN5GW.js";
35
+ import "./chunk-V5J4XEBG.js";
36
+ import "./chunk-TWBTXEDZ.js";
37
37
  import "./chunk-VC76R6W2.js";
38
38
  import "./chunk-UJKQWGFF.js";
39
39
  import "./chunk-ALLKNYC3.js";
@@ -80,7 +80,7 @@ Before finalizing the route, read `references/routes/<workflow>.md` — one smal
80
80
  - An explicitly short motion graphic may use a URL, tweet, article, or screenshot as source material. A generic "make a video from this site" request is `/product-launch-video`.
81
81
  - Existing footage with captions routes to `/embedded-captions`; footage with designed information cards routes to `/talking-head-recut`. Retiming, reordering, recoloring, reframing, or remixing footage is a custom edit and falls through to `/general-video`.
82
82
  - A music file selects `/music-to-video` only when its beat grid drives the piece. Music used as a bed does not override the subject-matched route.
83
- - "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use `/general-video`. A confirmed sketched `storyboard.html` may itself be the requested deliverable; the review loop defines that stop point.
83
+ - "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use `/general-video`. A confirmed board (`boards/storyboard.html`, format in `/hyperframes-creative` `references/storyboard-recipe.md`) may itself be the requested deliverable; the review loop defines that stop point.
84
84
  - Specialized narrative workflows support up to about 3 minutes and are strongest around 30–90s. Route a clearly longer piece to `/general-video`. Length never overrides an explicit port, deck, caption, overlay, or music-driven deliverable.
85
85
 
86
86
  ## 3. Route once, then leave
@@ -29,7 +29,7 @@ You build the frame composition file(s) assigned in your dispatch and nothing el
29
29
 
30
30
  ## When a confirmed sketch exists
31
31
 
32
- In collaborative runs the orchestrator sketches every frame first as a cell of `storyboard.html` (`id="frame-NN"`), so your frame may have a **user-confirmed wireframe** there — your dispatch says whether it does (a target file found on a retry is your own prior output, not a sketch). Read that cell first and **keep its composition**: the placement, hierarchy, and copy were approved — don't move or drop them. Everything else is yours to finish: the finished content where the sketch used stand-in blocks (what that content is — real assets, invented visuals, a code block — is the delta's call, since the sketch already carries the full `frame.md` treatment), and the motion — map each Scene onto a timeline phase, reveal each piece on its `voiceover` cue with `fromTo` entrances, adding DOM only where a phase needs it. The frame's landed state must still read as the approved sketch, now moving.
32
+ In collaborative runs the orchestrator first poses every frame in its composition and shows it as a still on the board (`boards/storyboard.html`, stills in `boards/stills/`, format in `hyperframes-creative/references/storyboard-recipe.md`), so your frame may have a **user-confirmed wireframe**: the posed composition at your target file — your dispatch says whether it does (a target file found on a retry is your own prior output, not a sketch). Read that file and its still first and **keep its composition**: the placement, hierarchy, and copy were approved — don't move or drop them. Everything else is yours to finish: the finished content where the sketch used stand-in blocks (what that content is — real assets, invented visuals, a code block — is the delta's call, since the sketch already carries the full `frame.md` treatment), and the motion — map each Scene onto a timeline phase, reveal each piece on its `voiceover` cue with `fromTo` entrances, adding DOM only where a phase needs it. The frame's landed state must still read as the approved sketch, now moving.
33
33
 
34
34
  ## You do NOT decide
35
35
 
@@ -26,7 +26,7 @@ A GitHub PR URL is not a website source. A named or adopted recipe already carri
26
26
  - **Remembered defaults.** Let `<MEDIA_DIR>` be the installed `/media-use` skill directory. For an existing project, `<MEMORY_ROOT>` is its root. Before scaffolding, use a deliberately nonexistent probe path with no `.media`, such as `/tmp/hyperframes-intent-memory-<run-id>`; never use the current workspace. Run `node <MEDIA_DIR>/scripts/prefs.mjs get --hyperframes <MEMORY_ROOT> --json`. Make each remembered value the recommended option and name its source. The pre-project probe sees only the personal tier; do not claim project provenance.
27
27
  - **Recipes.** Run `node <MEDIA_DIR>/scripts/recipe.mjs list --hyperframes <MEMORY_ROOT> --json`. If the user names a recipe, says "like last time," or a recipe matches the probable route, ask whether to adopt it before other brief questions — and make the offer earn the yes: say why it matches and what adopting saves ("this matches your launch-promo recipe — adopting fills destination, aspect, language, and the design spec; you'd confirm the message and the two run-shape questions"). When several match, list them and include "none." An adopted recipe locks the fields it contains; ask only its missing fields and the run-shape questions. It does not remove review or render approval gates.
28
28
 
29
- **2 — Triage the input.** What is the video about — a website (sold or shown), a PR, a topic, a music track, existing footage? And is the request **formed** — the message, the material, and the occasion readable from what the user gave — or **unformed**, a subject with no take on it? Source material doesn't settle this by itself: a site, document, or PR carries its own thesis, but five tellings of that thesis are five different videos — a request whose only shape comes from its source ("make a video about this URL") is formed about the facts and unformed about the telling, and enters the round to pitch the telling. A formed request runs the layer exactly as it always has; nothing below is added for it. An unformed one goes through the pitch round after routing (step 4) and earns one question here, before anything is generated: what is the user already picturing? Their answer seeds the round (`pitch-round.md`). A user who says they don't know video at all gets that reference's decision map instead of a question sequence. For a genuinely exploratory request ("we need a video but I'm not sure what kind"), don't interrogate — establish the subject and what exists to show, one question at a time, then close by **recommending** a route plus how the run will review: a plan in chat first, with optional wireframe sketches on a `storyboard.html` sheet before the full build (`review-loop.md`). The user hears the process before any workflow starts.
29
+ **2 — Triage the input.** What is the video about — a website (sold or shown), a PR, a topic, a music track, existing footage? And is the request **formed** — the message, the material, and the occasion readable from what the user gave — or **unformed**, a subject with no take on it? Source material doesn't settle this by itself: a site, document, or PR carries its own thesis, but five tellings of that thesis are five different videos — a request whose only shape comes from its source ("make a video about this URL") is formed about the facts and unformed about the telling, and enters the round to pitch the telling. A formed request runs the layer exactly as it always has; nothing below is added for it. An unformed one goes through the pitch round after routing (step 4) and earns one question here, before anything is generated: what is the user already picturing? Their answer seeds the round (`pitch-round.md`). A user who says they don't know video at all gets that reference's decision map instead of a question sequence. For a genuinely exploratory request ("we need a video but I'm not sure what kind"), don't interrogate — establish the subject and what exists to show, one question at a time, then close by **recommending** a route plus how the run will review: a plan in chat first, with optional stills on a board (`boards/storyboard.html`, format in `hyperframes-creative/references/storyboard-recipe.md`) before the full build (`review-loop.md`). The user hears the process before any workflow starts.
30
30
 
31
31
  **3 — Pick the route** (the route table and ambiguity rules in the SKILL.md), then read `routes/<workflow>.md`. Its Interview section lists the must-have questions to ask now, the **deferred asks** to announce, whether the two run-shape questions apply, and which fields the pitch round may answer.
32
32
 
@@ -36,7 +36,7 @@ A GitHub PR URL is not a website source. A named or adopted recipe already carri
36
36
 
37
37
  **6 — The two run-shape questions** — where the route's entry applies them, asked after the must-haves, each on its own:
38
38
 
39
- - **(a) Storyboard?** Review the plan in chat, wireframe sketches on a `storyboard.html` sheet, and the finished piece pass by pass (`review-loop.md`) — recommended for anything beyond a couple of scenes — or skip the review and get one finished video from the confirmed brief.
39
+ - **(a) Storyboard?** Review the plan in chat, stills on a board (`boards/storyboard.html`, format in `hyperframes-creative/references/storyboard-recipe.md`), and the finished piece pass by pass (`review-loop.md`) — recommended for anything beyond a couple of scenes — or skip the review and get one finished video from the confirmed brief.
40
40
  - **(b) Automation or companion?** **Automation** — the matched workflow's pipeline executes the brief end to end. **Companion** — build it together in `/general-video` with every HyperFrames capability on the table; the route's answers still describe the video, general-video executes them.
41
41
 
42
42
  These two are **orthogonal — never merge them into one menu.** All four `flow` × `storyboard` combinations are valid user choices (a companion run runs the same review passes when `storyboard: yes`); a flattened three-option list ("storyboard review / one shot / companion") silently makes companion-with-storyboard unselectable. When a diagram or source material summarizes the outcomes as three branches, that is the derived behavior (`brief-contract.md` § 1), not the question shape. In a form-style question UI, keep (a) and (b) as two separate selects.