hyperframes 0.8.190 → 0.8.191

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 (179) hide show
  1. package/dist/{add-DBKN5H7H.js → add-S2ZQYG52.js} +11 -11
  2. package/dist/{animatedGifPrep-YVBKKLQY.js → animatedGifPrep-3JA2CQ3U.js} +6 -6
  3. package/dist/api.js +14 -14
  4. package/dist/{asset-2OHQKUMQ.js → asset-2CNTAPOC.js} +2 -2
  5. package/dist/{assetCataloger-O3QAUWIK.js → assetCataloger-5HXLXL7C.js} +6 -6
  6. package/dist/{audio-IR3JGCMM.js → audio-DZTSYHXS.js} +12 -12
  7. package/dist/{auth-J6TAJLGD.js → auth-GX3M6TJ4.js} +1 -1
  8. package/dist/{autoUpdate-D7BJJUT2.js → autoUpdate-EDIWE4Z5.js} +2 -2
  9. package/dist/{backgroundChecks-AILHY2YZ.js → backgroundChecks-VPUPJ7UI.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-QZKFVWEI.js → batchRender-JHIIDBJR.js} +3 -3
  12. package/dist/{beats-6LOEKZPB.js → beats-PZRVTRYW.js} +4 -4
  13. package/dist/{benchmark-RJMHI3YW.js → benchmark-22UFDW2N.js} +8 -8
  14. package/dist/{browser-Q3Q36FE3.js → browser-VRDWYIUM.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-RWHFMSFL.js → bundleWithLocalizedFonts-23QDKFSN.js} +2 -2
  16. package/dist/{capture-FO3ZZCT4.js → capture-NFCBXHDE.js} +2 -2
  17. package/dist/{capture-2PNTGVYV.js → capture-TOCLXYMJ.js} +9 -9
  18. package/dist/{captureCompositionFrame-WTMLWVEJ.js → captureCompositionFrame-BEM6MF7F.js} +13 -11
  19. package/dist/{catalog-LUZYPUYT.js → catalog-NXS35KM7.js} +11 -11
  20. package/dist/{catch-up-TUTLUTFP.js → catch-up-6WJBUI2C.js} +4 -4
  21. package/dist/{check-K2TBTJZS.js → check-WVEBMWN5.js} +33 -33
  22. package/dist/{checkBrowser-JT7CXDT6.js → checkBrowser-RT45HJ36.js} +28 -28
  23. package/dist/{chunk-L34DPWY4.js → chunk-2WNVHZHA.js} +6 -6
  24. package/dist/{chunk-TSFA2Y5C.js → chunk-3NRB7YXW.js} +3 -2
  25. package/dist/{chunk-EQF6TVWB.js → chunk-3WJT2JCX.js} +32 -25
  26. package/dist/{chunk-SUSSMCWL.js → chunk-3XI7MIZB.js} +1 -1
  27. package/dist/{chunk-56IDMP37.js → chunk-7A65UCMI.js} +1 -1
  28. package/dist/{chunk-XNLYMHX2.js → chunk-7FF36MAD.js} +1 -1
  29. package/dist/{chunk-S7C6EM7N.js → chunk-7LUJE3II.js} +1 -1
  30. package/dist/{chunk-JLSXXMRU.js → chunk-7NKJS5KM.js} +1 -1
  31. package/dist/{chunk-OTQXYTQZ.js → chunk-7ZJEQY7Q.js} +1 -1
  32. package/dist/{chunk-EPOYPP36.js → chunk-ALEF2F5N.js} +2 -2
  33. package/dist/{chunk-2FFOLLU2.js → chunk-AQB5M53R.js} +3 -3
  34. package/dist/{chunk-FUHI34T4.js → chunk-BFFLKQVB.js} +3 -3
  35. package/dist/{chunk-E7DXKMKU.js → chunk-CINKQY6M.js} +3 -3
  36. package/dist/{chunk-BT64TTSE.js → chunk-COETAXRN.js} +1 -1
  37. package/dist/{chunk-ZFFKWHXN.js → chunk-COWQITWP.js} +1 -1
  38. package/dist/{chunk-BWPY64WA.js → chunk-CXMXJEVY.js} +1 -1
  39. package/dist/{chunk-Y5L5I4US.js → chunk-DOOSC34Z.js} +5 -5
  40. package/dist/{chunk-CWYS2UNQ.js → chunk-EFCKV7MY.js} +1 -1
  41. package/dist/{chunk-EUUHVDMN.js → chunk-FBDOHH3Q.js} +1 -1
  42. package/dist/{chunk-IARWN467.js → chunk-GLG5JWLI.js} +1 -1
  43. package/dist/{chunk-56IOFIYB.js → chunk-GM3WIOO6.js} +1 -1
  44. package/dist/{chunk-DRTIIAIZ.js → chunk-HYW6HTAK.js} +1 -1
  45. package/dist/{chunk-DX7VEUBO.js → chunk-JGTRVG32.js} +1 -1
  46. package/dist/{chunk-UZ7RJDEC.js → chunk-JJJCFKMF.js} +1 -1
  47. package/dist/{chunk-7JHTNUF2.js → chunk-JOLZ3BSL.js} +1 -1
  48. package/dist/{chunk-JB7LML5B.js → chunk-JTPHFYZI.js} +3 -3
  49. package/dist/{chunk-EU5HTY3E.js → chunk-JYSSPQDT.js} +56 -21
  50. package/dist/{chunk-STJ2ANMF.js → chunk-KAC2WR7P.js} +1 -1
  51. package/dist/{chunk-R4QASDTN.js → chunk-KGMHMYWI.js} +2 -2
  52. package/dist/{chunk-RDHEG7RX.js → chunk-KHCTBZGJ.js} +3 -3
  53. package/dist/{chunk-FANFO5HI.js → chunk-KV72BP7O.js} +9 -9
  54. package/dist/{chunk-AYFF3GX6.js → chunk-LBNEH6IQ.js} +1 -1
  55. package/dist/{chunk-DIV37NUE.js → chunk-LM265QNK.js} +1 -1
  56. package/dist/{chunk-F6DNM676.js → chunk-MSM6VRQ4.js} +2 -2
  57. package/dist/{chunk-45U3KY7Z.js → chunk-NJGTNWQY.js} +5 -5
  58. package/dist/{chunk-OAPYPSEB.js → chunk-NMDUSCCE.js} +141 -32
  59. package/dist/{chunk-WCT6KGGT.js → chunk-OV6KHXLX.js} +1 -1
  60. package/dist/{chunk-3QLT727N.js → chunk-RE3EEBWC.js} +3 -3
  61. package/dist/{chunk-A5YHWTSP.js → chunk-RQBB7PYT.js} +2 -2
  62. package/dist/{chunk-RBGNU7VD.js → chunk-RWYUK7LM.js} +1 -1
  63. package/dist/{chunk-S2IEO6TH.js → chunk-SMEF3TRJ.js} +26 -14
  64. package/dist/{chunk-HJZ5CPZA.js → chunk-T5YF32WV.js} +5 -5
  65. package/dist/{chunk-XBGEWNGQ.js → chunk-TADJOIFW.js} +1 -1
  66. package/dist/{chunk-OOAVKK2W.js → chunk-TFGO5YMI.js} +1 -1
  67. package/dist/{chunk-FVD44EQX.js → chunk-TFMZ4RKM.js} +50 -19
  68. package/dist/{chunk-CWVSJA52.js → chunk-TJKE4EYX.js} +3 -3
  69. package/dist/{chunk-6HYHHMX3.js → chunk-TRZVS6TL.js} +2 -2
  70. package/dist/{chunk-76ITJYXX.js → chunk-U5GTDAQL.js} +5 -5
  71. package/dist/{chunk-B7JFAXDP.js → chunk-UNR3P7IF.js} +2 -2
  72. package/dist/{chunk-TSQAPPRS.js → chunk-VYQYVYQ5.js} +2 -2
  73. package/dist/{chunk-TTZTGXKG.js → chunk-W3CS2KFV.js} +1 -1
  74. package/dist/{chunk-KUMUK6QS.js → chunk-WHAEJX26.js} +7 -7
  75. package/dist/{chunk-WLG4OYH7.js → chunk-WJEVUPVD.js} +1 -1
  76. package/dist/{chunk-WBUO6WH6.js → chunk-WQ3X5OH4.js} +1 -1
  77. package/dist/{chunk-GGVGOY6M.js → chunk-WY3TQ2PT.js} +1 -1
  78. package/dist/{chunk-KNQQZRB2.js → chunk-XMSQRDAK.js} +2 -2
  79. package/dist/{chunk-YT5VLUHM.js → chunk-XWOCXIKR.js} +1 -1
  80. package/dist/{chunk-K4664CDS.js → chunk-ZHKUIC7X.js} +26 -12
  81. package/dist/{clean-UVTWBPXK.js → clean-3VIU2BSK.js} +14 -14
  82. package/dist/cli.js +53 -53
  83. package/dist/{cloud-M42IPKFD.js → cloud-NA3J4XW2.js} +4 -4
  84. package/dist/{cloudrun-CTNX64R6.js → cloudrun-4MHOF7UT.js} +4 -4
  85. package/dist/commands/layout-audit.browser.js +64 -3
  86. package/dist/{compare-MQI7TG5M.js → compare-ZR7XRPPT.js} +29 -26
  87. package/dist/{compiler-EJE3HLCS.js → compiler-MA2ELZPG.js} +3 -3
  88. package/dist/{component-QSYOSFVV.js → component-ZJSOPUAM.js} +3 -3
  89. package/dist/{compositions-ITDFE7K4.js → compositions-WA5V2SHF.js} +10 -10
  90. package/dist/{delete-NTGTENKJ.js → delete-UC427UEA.js} +2 -2
  91. package/dist/{deploy-AOJOXEYX.js → deploy-B5UO4UIK.js} +1 -1
  92. package/dist/{dist-NHW2JQCA.js → dist-BPK37SAB.js} +2 -2
  93. package/dist/{dist-JH32CBQL.js → dist-XGPSPKKP.js} +1 -1
  94. package/dist/docs/rendering.md +2 -2
  95. package/dist/{doctor-Q6DAYVSQ.js → doctor-ZERCTKEK.js} +10 -10
  96. package/dist/{events-PV3CDO4A.js → events-CNIXB2QK.js} +3 -3
  97. package/dist/{events-BQIBYPCF.js → events-DCOZQERS.js} +2 -2
  98. package/dist/{feedback-BZH26JQE.js → feedback-YBD5ITTY.js} +6 -6
  99. package/dist/{ffmpeg-KU7RNT3U.js → ffmpeg-V4BBFDTG.js} +6 -6
  100. package/dist/{figma-PBGZUEIL.js → figma-Z45ZYVGE.js} +3 -3
  101. package/dist/fontLocalizeCli.js +8 -8
  102. package/dist/{get-MM2JZ5ET.js → get-23NXQWCD.js} +2 -2
  103. package/dist/{gpuPolicy-DQE2CD5T.js → gpuPolicy-H6ABHVEB.js} +6 -6
  104. package/dist/{grade-compare-YTDQ7YXW.js → grade-compare-ZPX2G3UV.js} +26 -26
  105. package/dist/{help-M4B2DN7E.js → help-EP4CDPLO.js} +1 -1
  106. package/dist/{history-ZW4UYKAJ.js → history-E5OSXO74.js} +6 -6
  107. package/dist/hyperframe.manifest.json +1 -1
  108. package/dist/hyperframe.runtime.iife.js +64 -64
  109. package/dist/hyperframes-player.global.js +1 -1
  110. package/dist/{info-L7LQAXLK.js → info-2HHGSW5H.js} +7 -7
  111. package/dist/{init-HTSQ535A.js → init-ENEG6RZT.js} +26 -26
  112. package/dist/{inspect-EWF2THRR.js → inspect-PVQK4E2A.js} +26 -26
  113. package/dist/{installer-PQKH2S7C.js → installer-YGGLEOSF.js} +4 -4
  114. package/dist/{keyframes-X2QKJ4DP.js → keyframes-UWSYS2SL.js} +6 -6
  115. package/dist/{lambda-BURM66GP.js → lambda-L3LPXC2M.js} +7 -7
  116. package/dist/{layout-3Z3SJGZZ.js → layout-JVL4QREC.js} +26 -26
  117. package/dist/{lint-OMNZ2K5J.js → lint-JXQ72DDB.js} +7 -7
  118. package/dist/{lintProject-XM3DLUKG.js → lintProject-F7IC7WY4.js} +1 -1
  119. package/dist/{list-5ZSQEH6N.js → list-UFMLM3VV.js} +2 -2
  120. package/dist/{login-YNCQPHLA.js → login-CKGMWQJN.js} +4 -4
  121. package/dist/{manager-N6XXRQN3.js → manager-U6OP3EXB.js} +7 -7
  122. package/dist/{media-treatment-EOKBRJPY.js → media-treatment-MFMEWCDY.js} +12 -12
  123. package/dist/{models-6T4CCKUV.js → models-QA3TJ75Y.js} +10 -10
  124. package/dist/{motionShot-KXKMYZ3A.js → motionShot-NV2OPJHD.js} +14 -14
  125. package/dist/{normalize-audio-VWB7RHHA.js → normalize-audio-JWJRUKK2.js} +4 -4
  126. package/dist/{open-32SQCNUP.js → open-PTJNDRER.js} +11 -11
  127. package/dist/{parakeetRunner-BXW2WX6Q.js → parakeetRunner-B5FCWWOO.js} +11 -11
  128. package/dist/{pipeline-V5ONFRCY.js → pipeline-N26NA6ZG.js} +7 -7
  129. package/dist/{play-BBL262JE.js → play-45D6X6TV.js} +17 -17
  130. package/dist/{preflight-LCNGQFNY.js → preflight-MFOHPUOI.js} +7 -7
  131. package/dist/{present-RY4HO4ZQ.js → present-IFBUDI4D.js} +13 -13
  132. package/dist/{preview-BLLPCCLG.js → preview-MQRLXQOV.js} +18 -17
  133. package/dist/{producer-QG4AQ35S.js → producer-2QG7HLAW.js} +1 -1
  134. package/dist/{projectConfig-LN3NR5OM.js → projectConfig-I4FTZXHB.js} +6 -6
  135. package/dist/{publication-TXMCS4KM.js → publication-3GOFXCGU.js} +2 -2
  136. package/dist/{publish-57VURD7Z.js → publish-3B2TZCFH.js} +8 -8
  137. package/dist/{remove-background-VEWVIO3A.js → remove-background-RK4BJDBF.js} +8 -8
  138. package/dist/{render-SP7WAUB4.js → render-BV6FWFX3.js} +7 -6
  139. package/dist/{render-XMN3NJIQ.js → render-PW3XGS7B.js} +28 -28
  140. package/dist/{render-4E7QDVOI.js → render-SJ4HFPFU.js} +13 -13
  141. package/dist/{render-batch-7ULP5RIJ.js → render-batch-GKX54O6N.js} +7 -6
  142. package/dist/renderSetupWorker.js +1 -1
  143. package/dist/{resolver-D3XERO6U.js → resolver-RQJ7CNXD.js} +4 -4
  144. package/dist/{sherpa-5B5G426W.js → sherpa-XZPG7QFF.js} +10 -10
  145. package/dist/{sites-5PWHAMEG.js → sites-Q2S3DZY4.js} +2 -1
  146. package/dist/skills/hyperframes/references/captions.md +1 -1
  147. package/dist/skills/hyperframes-cli/references/cloudrun.md +1 -1
  148. package/dist/skills/hyperframes-cli/references/lambda.md +1 -1
  149. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +2 -2
  150. package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
  151. package/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +0 -8
  152. package/dist/skills/media-use/audio/references/transcribe.md +2 -2
  153. package/dist/skills/media-use/references/audio.md +1 -1
  154. package/dist/{skills-RXHRF7O7.js → skills-EYLB2V6F.js} +5 -5
  155. package/dist/{skillsUpdateCheck-JOTDZJAE.js → skillsUpdateCheck-TE6K5ROM.js} +3 -3
  156. package/dist/{snapshot-DN4MP4VN.js → snapshot-FE4T3SCN.js} +48 -33
  157. package/dist/{src-W6Y5ZYRQ.js → src-SEJ7LNNB.js} +7 -7
  158. package/dist/{src-XSDYRKLG.js → src-ZOXSEJCD.js} +5 -5
  159. package/dist/{staticProjectServer-JMFGTPMX.js → staticProjectServer-LSVIRDRO.js} +14 -14
  160. package/dist/studio/assets/{hyperframes-player-0HXJPmYC.js → hyperframes-player-Bv9hQ3v7.js} +1 -1
  161. package/dist/studio/assets/index-CBO8uz7-.css +1 -0
  162. package/dist/studio/assets/{index-BYw97F07.js → index-D_QqfWhx.js} +124 -123
  163. package/dist/studio/assets/{index-DsSfhjUS.js → index-Df14bh-L.js} +1 -1
  164. package/dist/studio/index.html +2 -2
  165. package/dist/{studio-api-SZ4OMFPN.js → studio-api-SL2Z76NU.js} +7 -7
  166. package/dist/{studioServer-LWO33H7D.js → studioServer-BADWVIHU.js} +44 -44
  167. package/dist/{telemetry-K3AFDKOP.js → telemetry-RN6VYEID.js} +3 -3
  168. package/dist/{timeline-NYQOAQDH.js → timeline-JBTCIPLU.js} +15 -15
  169. package/dist/{tokens-K7YWUVOK.js → tokens-A7V7UHNK.js} +2 -2
  170. package/dist/{transcribe-ANPUQDZD.js → transcribe-E4BOSNM4.js} +9 -9
  171. package/dist/{transcribe-QAUMODXM.js → transcribe-NTUCJGFI.js} +16 -16
  172. package/dist/{updateCheck-RNR4HMDI.js → updateCheck-M7UAYLUR.js} +2 -2
  173. package/dist/{upgrade-MKUGZZPA.js → upgrade-A2COSIMB.js} +2 -2
  174. package/dist/{urlDownloader-5USPXLCS.js → urlDownloader-MBSQYART.js} +5 -5
  175. package/dist/{validate-OJHPDLC5.js → validate-NODZYBHY.js} +20 -20
  176. package/dist/{video-BCKRR6LU.js → video-LBCUUYK7.js} +6 -6
  177. package/dist/warmCheck.js +33 -33
  178. package/package.json +1 -1
  179. package/dist/studio/assets/index-B3vk3hfU.css +0 -1
@@ -46,7 +46,7 @@ import {
46
46
  reportVariableIssues,
47
47
  resolveVariablesArg,
48
48
  validateVariablesAgainstProject
49
- } from "./chunk-WBUO6WH6.js";
49
+ } from "./chunk-WQ3X5OH4.js";
50
50
  import {
51
51
  downloadToFile
52
52
  } from "./chunk-CZUAX3BV.js";
@@ -54,10 +54,10 @@ import {
54
54
  findFFmpeg,
55
55
  findFFprobe,
56
56
  getFFmpegInstallHint
57
- } from "./chunk-IARWN467.js";
57
+ } from "./chunk-GLG5JWLI.js";
58
58
  import {
59
59
  resolveProject
60
- } from "./chunk-OTQXYTQZ.js";
60
+ } from "./chunk-7ZJEQY7Q.js";
61
61
  import {
62
62
  errorBox,
63
63
  formatBytes,
@@ -65,8 +65,8 @@ import {
65
65
  } from "./chunk-K2FLNJVB.js";
66
66
  import "./chunk-442JNXRM.js";
67
67
  import "./chunk-EOVYQ3IG.js";
68
- import "./chunk-OOAVKK2W.js";
69
- import "./chunk-TTZTGXKG.js";
68
+ import "./chunk-TFGO5YMI.js";
69
+ import "./chunk-W3CS2KFV.js";
70
70
  import "./chunk-VWG7OQKU.js";
71
71
  import {
72
72
  defineCommand
@@ -78,14 +78,14 @@ import {
78
78
  import {
79
79
  c
80
80
  } from "./chunk-ZTZA4UWZ.js";
81
- import "./chunk-OAPYPSEB.js";
81
+ import "./chunk-NMDUSCCE.js";
82
82
  import "./chunk-IZCW2NKT.js";
83
83
  import {
84
84
  parseAnimatedGifMetadata
85
- } from "./chunk-56IOFIYB.js";
85
+ } from "./chunk-GM3WIOO6.js";
86
86
  import "./chunk-RQVDTPGD.js";
87
- import "./chunk-TSQAPPRS.js";
88
- import "./chunk-DIV37NUE.js";
87
+ import "./chunk-VYQYVYQ5.js";
88
+ import "./chunk-LM265QNK.js";
89
89
  import "./chunk-VC76R6W2.js";
90
90
  import "./chunk-X7HBSTCZ.js";
91
91
  import "./chunk-B2A56S5C.js";
@@ -98,7 +98,7 @@ import "./chunk-DYAPHNV6.js";
98
98
  import "./chunk-T6AGUTZJ.js";
99
99
  import "./chunk-XT6MXC7A.js";
100
100
  import "./chunk-4UMPIPCQ.js";
101
- import "./chunk-TSFA2Y5C.js";
101
+ import "./chunk-3NRB7YXW.js";
102
102
  import "./chunk-VAS6HQX3.js";
103
103
  import {
104
104
  cleanAssetUrl,
@@ -121,12 +121,12 @@ import "./chunk-I5JRXMCV.js";
121
121
  import "./chunk-W2LGJSEN.js";
122
122
  import {
123
123
  withMeta
124
- } from "./chunk-STJ2ANMF.js";
124
+ } from "./chunk-KAC2WR7P.js";
125
125
  import "./chunk-K4WIOZFP.js";
126
126
  import "./chunk-XUXGIA7H.js";
127
127
  import "./chunk-WERLJGIC.js";
128
128
  import "./chunk-ISN5GRYI.js";
129
- import "./chunk-F6DNM676.js";
129
+ import "./chunk-MSM6VRQ4.js";
130
130
  import {
131
131
  normalizeErrorMessage
132
132
  } from "./chunk-KNU5COPB.js";
@@ -682,7 +682,7 @@ async function prepareEntryGifs(ctx, fileMap) {
682
682
  if (!html || !/\.gif\b/i.test(html)) return;
683
683
  const sourceAssets = entryGifSources(ctx, entryPath, html);
684
684
  if (!sourceAssets) return;
685
- const prep = ctx.opts.gifPrep ?? (await import("./src-W6Y5ZYRQ.js")).prepareAnimatedGifInputs;
685
+ const prep = ctx.opts.gifPrep ?? (await import("./src-SEJ7LNNB.js")).prepareAnimatedGifInputs;
686
686
  const outputDir = mkdtempSync(join(tmpdir(), "hf-offload-gif-"));
687
687
  ctx.tempFiles.push(outputDir);
688
688
  const result = await prep(html, {
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  warnOnDimensionMismatch
9
- } from "./chunk-BWPY64WA.js";
9
+ } from "./chunk-CXMXJEVY.js";
10
10
  import {
11
11
  requireStack
12
12
  } from "./chunk-RIJHDTM5.js";
@@ -14,11 +14,11 @@ import {
14
14
  loadProjectVariableSchema,
15
15
  reportVariableIssues,
16
16
  validateVariablesAgainstSchema
17
- } from "./chunk-WBUO6WH6.js";
17
+ } from "./chunk-WQ3X5OH4.js";
18
18
  import {
19
19
  errorBox
20
20
  } from "./chunk-K2FLNJVB.js";
21
- import "./chunk-ZFFKWHXN.js";
21
+ import "./chunk-COWQITWP.js";
22
22
  import "./chunk-442JNXRM.js";
23
23
  import {
24
24
  runWithConcurrencyLimit
@@ -30,9 +30,9 @@ import {
30
30
  import {
31
31
  c
32
32
  } from "./chunk-ZTZA4UWZ.js";
33
- import "./chunk-56IOFIYB.js";
33
+ import "./chunk-GM3WIOO6.js";
34
34
  import "./chunk-RQVDTPGD.js";
35
- import "./chunk-DIV37NUE.js";
35
+ import "./chunk-LM265QNK.js";
36
36
  import "./chunk-VC76R6W2.js";
37
37
  import "./chunk-X7HBSTCZ.js";
38
38
  import "./chunk-B2A56S5C.js";
@@ -115,7 +115,8 @@ async function runRenderBatch(args) {
115
115
  siteHandle = await deploySite({
116
116
  projectDir,
117
117
  bucketName: stack.bucketName,
118
- region: stack.region
118
+ region: stack.region,
119
+ onNotice: (message) => console.error(c.dim(message))
119
120
  });
120
121
  if (!args.json) {
121
122
  console.log(
@@ -22,7 +22,7 @@ import "./chunk-XT6MXC7A.js";
22
22
  import "./chunk-4UMPIPCQ.js";
23
23
  import {
24
24
  lintProject
25
- } from "./chunk-TSFA2Y5C.js";
25
+ } from "./chunk-3NRB7YXW.js";
26
26
  import "./chunk-VAS6HQX3.js";
27
27
  import "./chunk-6BNTGNGD.js";
28
28
  import "./chunk-RUOG4VB7.js";
@@ -11,15 +11,15 @@ import {
11
11
  resolveItemWithDependencies,
12
12
  resolveItemsByTag,
13
13
  unreachableRegistryMessage
14
- } from "./chunk-SUSSMCWL.js";
14
+ } from "./chunk-3XI7MIZB.js";
15
15
  import "./chunk-JHOCK3DG.js";
16
- import "./chunk-AYFF3GX6.js";
16
+ import "./chunk-LBNEH6IQ.js";
17
17
  import "./chunk-AWDFDFI3.js";
18
18
  import "./chunk-P6LJ4Y32.js";
19
19
  import "./chunk-GMECXFAN.js";
20
- import "./chunk-56IOFIYB.js";
20
+ import "./chunk-GM3WIOO6.js";
21
21
  import "./chunk-RQVDTPGD.js";
22
- import "./chunk-DIV37NUE.js";
22
+ import "./chunk-LM265QNK.js";
23
23
  import "./chunk-VC76R6W2.js";
24
24
  import "./chunk-X7HBSTCZ.js";
25
25
  import "./chunk-B2A56S5C.js";
@@ -17,22 +17,22 @@ import {
17
17
  sherpaRuntimeLoadError,
18
18
  sherpaUnsupportedReason,
19
19
  transcribeWithSherpa
20
- } from "./chunk-FUHI34T4.js";
20
+ } from "./chunk-BFFLKQVB.js";
21
21
  import "./chunk-CZUAX3BV.js";
22
22
  import "./chunk-QH3T4WI2.js";
23
23
  import "./chunk-6BEFEWFB.js";
24
- import "./chunk-2FFOLLU2.js";
25
- import "./chunk-RBGNU7VD.js";
26
- import "./chunk-S7C6EM7N.js";
24
+ import "./chunk-AQB5M53R.js";
25
+ import "./chunk-RWYUK7LM.js";
26
+ import "./chunk-7LUJE3II.js";
27
27
  import "./chunk-WQ6ZXHFQ.js";
28
- import "./chunk-IARWN467.js";
28
+ import "./chunk-GLG5JWLI.js";
29
29
  import "./chunk-EOVYQ3IG.js";
30
- import "./chunk-OAPYPSEB.js";
30
+ import "./chunk-NMDUSCCE.js";
31
31
  import "./chunk-IZCW2NKT.js";
32
- import "./chunk-56IOFIYB.js";
32
+ import "./chunk-GM3WIOO6.js";
33
33
  import "./chunk-RQVDTPGD.js";
34
- import "./chunk-TSQAPPRS.js";
35
- import "./chunk-DIV37NUE.js";
34
+ import "./chunk-VYQYVYQ5.js";
35
+ import "./chunk-LM265QNK.js";
36
36
  import "./chunk-VC76R6W2.js";
37
37
  import "./chunk-X7HBSTCZ.js";
38
38
  import "./chunk-B2A56S5C.js";
@@ -45,7 +45,7 @@ import "./chunk-W64L7IFS.js";
45
45
  import "./chunk-DYAPHNV6.js";
46
46
  import "./chunk-XT6MXC7A.js";
47
47
  import "./chunk-4UMPIPCQ.js";
48
- import "./chunk-TSFA2Y5C.js";
48
+ import "./chunk-3NRB7YXW.js";
49
49
  import "./chunk-VAS6HQX3.js";
50
50
  import "./chunk-6BNTGNGD.js";
51
51
  import "./chunk-RUOG4VB7.js";
@@ -28,7 +28,8 @@ async function runSitesCreate(args) {
28
28
  projectDir,
29
29
  bucketName: stack.bucketName,
30
30
  region: stack.region,
31
- siteId: args.siteId
31
+ siteId: args.siteId,
32
+ onNotice: (message) => console.error(c.dim(message))
32
33
  });
33
34
  if (args.json) {
34
35
  console.log(JSON.stringify(handle, null, 2));
@@ -3,7 +3,7 @@
3
3
  ## Words and timings
4
4
 
5
5
  - `npx hyperframes transcribe <file> --json` and a HeyGen voiceover (`/media-use`) give every word's start and end. Work from those as `[{ "id": "w0", "text": "Hello", "start": 0.0, "end": 0.5 }, …]`.
6
- - Local transcription defaults to `small.en`, which **translates** non-English speech into English. Pass the model: `npx hyperframes transcribe <file> --model small.en` for English, `--model small --language <code>` otherwise, `--model medium.en` for speech over music. It writes `assets/transcript.json` (its JSON names the path) and overwrites it on the next run; `--to srt` or `--to vtt` writes a sidecar.
6
+ - `npx hyperframes transcribe` defaults to the `small.en` whisper model, which **translates** non-English speech into English. Pass the model: `npx hyperframes transcribe <file> --model small.en` for English, `--model small --language <code>` otherwise, `--model medium.en` for speech over music. It writes `assets/transcript.json` (its JSON names the path) and overwrites it on the next run; `--to srt` or `--to vtt` writes a sidecar.
7
7
  - For Chinese, Japanese and other unspaced scripts, local transcription returns a whole sentence as one "word", sometimes in the other script (Traditional for Simplified speech). Split each segment's text into short phrases and spread its time across them by character count; check the characters against what is said.
8
8
  - Whisper invents "Thank you." over silence and repeats lines over a silent tail: drop words that start inside a final silence (`silencedetect=noise=-35dB:d=0.6`; real speech sits around −16 to −26 dB).
9
9
  - Never put two words in one timed entry, and match transcript words to caption words by position, not text, or a repeated word takes the wrong time.
@@ -22,7 +22,7 @@ npx hyperframes cloudrun destroy --project <gcp-project>
22
22
 
23
23
  `sites create` uploads a content-addressed project archive for reuse by `render-batch`; pass its `--site-id` to that command to skip the batch upload. Single `cloudrun render` currently resolves the project from its directory and does not consume `--site-id`. Both render commands require `--width` and `--height`; supported output formats are `mp4`, `mov`, `png-sequence`, and `webm`. Use `--output-resolution 4k` to supersample an authored composition without changing its layout dimensions.
24
24
 
25
- Common render flags are `--fps 24|30|60`, `--quality draft|standard|high`, `--codec h264|h265` for MP4, `--chunk-size`, `--max-parallel-chunks`, `--target-chunk-frames`, `--render-id`, `--output-key`, `--wait`, and `--wait-interval-ms`. Use `--json` for machine-readable output.
25
+ Common render flags are `--fps 24|25|30|60`, `--quality draft|standard|high`, `--codec h264|h265` for MP4, `--chunk-size`, `--max-parallel-chunks`, `--target-chunk-frames`, `--render-id`, `--output-key`, `--wait`, and `--wait-interval-ms`. Use `--json` for machine-readable output.
26
26
 
27
27
  For a variable-driven single render:
28
28
 
@@ -84,7 +84,7 @@ Starts a Step Functions execution. Returns immediately with a `renderId` unless
84
84
  | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
85
85
  | `--width` / `--height` | Output dimensions in pixels |
86
86
  | `--output-resolution` | Supersampling preset (engages Chrome `deviceScaleFactor`) — `landscape` / `landscape-4k` / `portrait` / `portrait-4k` / `square` / `square-4k`, plus aliases (`1080p`, `4k`, `uhd`, `hd`, `1080p-portrait`, `4k-portrait`, `1080p-square`, `4k-square`). Use this to render an authored-at-1080p composition at 4K without re-laying-out — see footgun below. |
87
- | `--fps` | `24` / `30` / `60` |
87
+ | `--fps` | `24` / `25` / `30` / `60` |
88
88
  | `--format` | `mp4` / `mov` / `png-sequence` / `webm` (default `mp4`) |
89
89
  | `--codec` | `h264` / `h265` (mp4 only) |
90
90
  | `--quality` | `draft` / `standard` / `high` |
@@ -111,7 +111,7 @@ Drop a `*.motion.json` sidecar next to the composition (matching the html basena
111
111
  npx hyperframes snapshot # 5 key frames as PNG
112
112
  npx hyperframes snapshot ./my-project # specific project
113
113
  npx hyperframes snapshot --frames 10 # evenly-spaced N frames
114
- npx hyperframes snapshot --range 3:5 --frames 8 # 8 frames within root-timeline seconds 3–5
114
+ npx hyperframes snapshot --range 3,5 --frames 8 # 8 frames within root-timeline seconds 3–5
115
115
  npx hyperframes snapshot --composition intro --frames 8 # 8 frames within this data-composition-id
116
116
  npx hyperframes snapshot --review # beat sheet, seam strips, phone sheet
117
117
  npx hyperframes snapshot --review --json # same, with paths and times as JSON
@@ -119,7 +119,7 @@ npx hyperframes snapshot --review --json # same, with paths and times as J
119
119
 
120
120
  Still PNGs. Each run writes `.hyperframes/artifacts/snapshots/<id>/` unless `--output` is set. `snapshot` is the standalone capture; `check --snapshots` is the gate.
121
121
 
122
- One of `--at`, `--range START:END` (seconds), or `--composition <data-composition-id>` (not a CSS selector). `--frames` defaults to 5. Range and composition sample just before the end and add no extra end frame; `--at` adds one unless `--no-end`.
122
+ One of `--at`, `--range START,END` (seconds), or `--composition <data-composition-id>` (not a CSS selector). `--frames` defaults to 5. Range and composition sample just before the end and add no extra end frame; `--at` adds one unless `--no-end`.
123
123
 
124
124
  `--review` picks the frames that show a film over time. Scenes are the composition's top-level timed clips and sub-composition hosts, as `timeline` lists them (captions and audio excluded); `--composition` scopes to one. It writes `review-beats.jpg` (each scene at its start + 0.3 s and at its middle, and each timed `data-beat="name"` element at its start + 0.3 s, labelled with time and id), `review-seam-NN.jpg` (frames at −0.2, −0.1, 0, +0.1, +0.2 s around every cut) and `review-phone.jpg` (the beat frames 360 px wide, to judge legibility at phone size), beside the `beat-*.png` and `seam-*.png` stills. With fewer than two scenes the beats spread evenly. `--json` prints `{ok, outputDir, frames[{path,time,role,label}], contactSheets, review{window, scenes, beats, seams[{time,from,to,times,paths,sheet}], sheets, notes}}`.
125
125
 
@@ -120,7 +120,7 @@ npx hyperframes render --docker # byte-identical
120
120
  | `dir` (positional) | path | cwd | Project directory. Omit to use current working directory. |
121
121
  | `--composition`, `-c` | path to composition file | `index.html` | Render a specific composition file (e.g. `compositions/intro.html`) instead of the project's `index.html`. |
122
122
  | `--output`, `-o` | path | `renders/<project>_<ts>.<ext>` | Output path. Default is timestamped (`<project-name>_YYYY-MM-DD_HH-MM-SS.<ext>`). |
123
- | `--fps` | 24, 30, 60 | 30 | 60fps doubles render time |
123
+ | `--fps` | 1–240, or a rational such as `30000/1001` | root `data-fps`, else 30 | 60fps doubles render time. `lambda` and `cloudrun` accept only 24, 25, 30, 60 |
124
124
  | `--quality` | draft, looks, delivery, standard, high | looks | `looks` is CRF 16 on the standard preset. `delivery` is `high`. draft for iterating |
125
125
  | `--format` | mp4, webm, mov, gif, png-sequence, hls | mp4 | WebM/MOV render with transparency; gif for inline autoplay in GitHub PRs/READMEs/docs (two-pass palette encode, fps capped at 30 — prefer `--fps 15` — no audio, 1-bit transparency only, HDR falls back to SDR); png-sequence writes RGBA frames to a directory (AE/Nuke/Fusion ingest); hls writes an HLS VOD directory (master.m3u8 + video/audio playlists + MPEG-TS segments), SDR only, rejects `--gpu`, unavailable on lambda/cloudrun |
126
126
  | `--gif-loop` | 0-65535 | 0 | GIF loop count; `0` loops forever. Only with `--format gif`. |
@@ -132,11 +132,3 @@ Run `npx hyperframes usage --json` at the start of a video workflow and again at
132
132
  Known results contain `status: "known"`, `harness`, `planTier`, `session`, `weekly`, and `spend`. Each available window contains `usedPercent`, `remainingPercent`, and `resetsAt`; an unavailable window is `null`. `planTier` is the readable subscription tier when available, otherwise `null`. Claude Code reports its shared five-hour and weekly windows; a spend-metered plan (such as Enterprise) has neither and reports `spend`, the share of its billing-period spend limit already used, with `resetsAt: null`. Codex reports its shared session and weekly windows when available. Grok reports its included weekly allowance with `session: null`. Only Claude Code reports `spend`; it is `null` elsewhere. When no window is available the result is `status: "unknown"` with `reason: "no_usage_windows"`.
133
133
 
134
134
  Unknown results contain `status: "unknown"` and a token-free `reason`. Missing, expired, unsupported, ambiguous, or unreadable logins and unavailable provider responses return unknown. Report the unknown state without guessing allowance. The command reads existing credentials without refreshing or rewriting them and emits no tokens or telemetry. Usage is a snapshot; it does not reserve allowance or estimate the next video's cost. Keep scope and workflow choices with the user.
135
-
136
- ## Remaining harness usage
137
-
138
- Run `npx hyperframes usage --json` at the start of a video workflow and again at milestones such as after drafting and before rendering. A fresh read at handoff can serve as the start read. Use `--harness claude-code`, `--harness codex`, or `--harness grok` to select explicitly.
139
-
140
- Known results contain `status: "known"`, `harness`, `planTier`, `session`, `weekly`, and `spend`. Each available window contains `usedPercent`, `remainingPercent`, and `resetsAt`; an unavailable window is `null`. `planTier` is the readable subscription tier when available, otherwise `null`. Claude Code reports its shared five-hour and weekly windows; a spend-metered plan (such as Enterprise) has neither and reports `spend`, the share of its billing-period spend limit already used, with `resetsAt: null`. Codex reports its shared session and weekly windows when available. Grok reports its included weekly allowance with `session: null`. Only Claude Code reports `spend`; it is `null` elsewhere. When no window is available the result is `status: "unknown"` with `reason: "no_usage_windows"`.
141
-
142
- Unknown results contain `status: "unknown"` and a token-free `reason`. Missing, expired, unsupported, ambiguous, or unreadable logins and unavailable provider responses return unknown. Report the unknown state without guessing allowance. The command reads existing credentials without refreshing or rewriting them and emits no tokens or telemetry. Usage is a snapshot; it does not reserve allowance or estimate the next video's cost. Keep scope and workflow choices with the user.
@@ -1,6 +1,6 @@
1
1
  # Transcription
2
2
 
3
- Create normalized word-level timestamps. **Always specify `--model` explicitly** — the CLI default is `small.en`, which silently translates non-English audio into English.
3
+ Create normalized word-level timestamps. **Always specify `--model` explicitly** — `npx hyperframes transcribe` uses `small.en` as its default whisper model, which silently translates non-English audio into English.
4
4
 
5
5
  ```bash
6
6
  npx hyperframes transcribe audio.mp3 --model small.en # known English
@@ -19,7 +19,7 @@ npx hyperframes transcribe openai-response.json
19
19
  2. **Known non-English** → `--model small --language <iso-code>` (no `.en` suffix)
20
20
  3. **Unknown language** → `--model small` (whisper auto-detects)
21
21
 
22
- **CLI default is `small.en`** — do not rely on it; always pass `--model` to make the choice explicit. `--language` also filters out non-target-language segments from mixed-language audio.
22
+ **The CLI's default whisper model is `small.en`** — do not rely on it; always pass `--model` to make the choice explicit. `--language` also filters out non-target-language segments from mixed-language audio.
23
23
 
24
24
  ## Model Sizes
25
25
 
@@ -17,4 +17,4 @@ node <SKILL_DIR>/audio/scripts/audio.mjs --request ./audio_request.json --out ./
17
17
 
18
18
  Single-shot helpers: `audio/scripts/heygen-tts.mjs` (one voice file). Transcription / background removal / captions use the `hyperframes` CLI (`transcribe`, `remove-background`), see the per-topic guides in `audio/references/` (`tts.md`, `bgm.md`, `sfx.md`, `transcribe.md`, `remove-background.md`, `captions/`).
19
19
 
20
- Transcription defaults to Parakeet (better than whisper.cpp: 6.05% vs 7.44% WER, 5-10x faster) via `scripts/transcribe.mjs`, with whisper.cpp auto-fallback (see `references/operations.md`).
20
+ Transcription through `scripts/transcribe.mjs` defaults to Parakeet (better than whisper.cpp: 6.05% vs 7.44% WER, 5-10x faster), with whisper.cpp auto-fallback (see `references/operations.md`). `npx hyperframes transcribe` picks its own engine: Parakeet when installed, otherwise whisper with the `small.en` model by default.
@@ -15,8 +15,8 @@ import {
15
15
  } from "./chunk-WMQNIQDJ.js";
16
16
  import {
17
17
  trackSkillsInstallSkipped
18
- } from "./chunk-OOAVKK2W.js";
19
- import "./chunk-TTZTGXKG.js";
18
+ } from "./chunk-TFGO5YMI.js";
19
+ import "./chunk-W3CS2KFV.js";
20
20
  import {
21
21
  diag
22
22
  } from "./chunk-VWG7OQKU.js";
@@ -47,15 +47,15 @@ import {
47
47
  presentSkills,
48
48
  pruneOrphanedLockEntries,
49
49
  retiredSkillNotice
50
- } from "./chunk-EUUHVDMN.js";
50
+ } from "./chunk-FBDOHH3Q.js";
51
51
  import {
52
52
  withMeta
53
- } from "./chunk-STJ2ANMF.js";
53
+ } from "./chunk-KAC2WR7P.js";
54
54
  import "./chunk-K4WIOZFP.js";
55
55
  import "./chunk-XUXGIA7H.js";
56
56
  import "./chunk-WERLJGIC.js";
57
57
  import "./chunk-ISN5GRYI.js";
58
- import "./chunk-F6DNM676.js";
58
+ import "./chunk-MSM6VRQ4.js";
59
59
  import "./chunk-KNU5COPB.js";
60
60
  import "./chunk-M2WBOQ2Q.js";
61
61
 
@@ -9,13 +9,13 @@ import {
9
9
  printSkillsUpdateNotice,
10
10
  refreshSkillsCache,
11
11
  skillsCheckDue
12
- } from "./chunk-EUUHVDMN.js";
13
- import "./chunk-STJ2ANMF.js";
12
+ } from "./chunk-FBDOHH3Q.js";
13
+ import "./chunk-KAC2WR7P.js";
14
14
  import "./chunk-K4WIOZFP.js";
15
15
  import "./chunk-XUXGIA7H.js";
16
16
  import "./chunk-WERLJGIC.js";
17
17
  import "./chunk-ISN5GRYI.js";
18
- import "./chunk-F6DNM676.js";
18
+ import "./chunk-MSM6VRQ4.js";
19
19
  import "./chunk-KNU5COPB.js";
20
20
  import "./chunk-M2WBOQ2Q.js";
21
21
  export {
@@ -25,7 +25,7 @@ import {
25
25
  findFFmpeg,
26
26
  findFFprobe,
27
27
  getFFmpegInstallHint
28
- } from "./chunk-IARWN467.js";
28
+ } from "./chunk-GLG5JWLI.js";
29
29
  import {
30
30
  pngDimensions,
31
31
  reportArtifacts,
@@ -33,20 +33,20 @@ import {
33
33
  } from "./chunk-57GN6KWT.js";
34
34
  import {
35
35
  captureArtifactRevision
36
- } from "./chunk-56IDMP37.js";
37
- import "./chunk-7JHTNUF2.js";
36
+ } from "./chunk-7A65UCMI.js";
37
+ import "./chunk-JOLZ3BSL.js";
38
38
  import "./chunk-X7MTZ4T2.js";
39
39
  import {
40
40
  resolveProject
41
- } from "./chunk-OTQXYTQZ.js";
41
+ } from "./chunk-7ZJEQY7Q.js";
42
42
  import {
43
43
  serveStaticProjectHtml
44
- } from "./chunk-HJZ5CPZA.js";
45
- import "./chunk-EPOYPP36.js";
44
+ } from "./chunk-T5YF32WV.js";
45
+ import "./chunk-ALEF2F5N.js";
46
46
  import "./chunk-X7MTZ4T2.js";
47
47
  import "./chunk-XUHOIDKG.js";
48
- import "./chunk-L34DPWY4.js";
49
- import "./chunk-RDHEG7RX.js";
48
+ import "./chunk-2WNVHZHA.js";
49
+ import "./chunk-KHCTBZGJ.js";
50
50
  import "./chunk-6JR2XUEE.js";
51
51
  import "./chunk-EI7FP7F3.js";
52
52
  import {
@@ -56,10 +56,11 @@ import {
56
56
  recordArtifacts,
57
57
  retainSnapshotOutput
58
58
  } from "./chunk-TMBUBLZB.js";
59
- import "./chunk-BT64TTSE.js";
59
+ import "./chunk-COETAXRN.js";
60
60
  import "./chunk-ALVXFXUG.js";
61
61
  import {
62
62
  DEFAULT_ZOOM_SCALE,
63
+ SCREENSHOT_IMAGE_WAIT_MS,
63
64
  captureRegionCrop,
64
65
  openSettledCompositionPage,
65
66
  parseZoomTarget,
@@ -67,37 +68,37 @@ import {
67
68
  runFfmpegOnce,
68
69
  seekCompositionTimelineOnly,
69
70
  settleCompositionSeek
70
- } from "./chunk-EU5HTY3E.js";
71
- import "./chunk-GGVGOY6M.js";
71
+ } from "./chunk-JYSSPQDT.js";
72
+ import "./chunk-WY3TQ2PT.js";
72
73
  import "./chunk-MOEGCMKI.js";
73
- import "./chunk-CWVSJA52.js";
74
+ import "./chunk-TJKE4EYX.js";
74
75
  import "./chunk-DKPNNYBZ.js";
75
- import "./chunk-XNLYMHX2.js";
76
+ import "./chunk-7FF36MAD.js";
76
77
  import "./chunk-K2FLNJVB.js";
77
78
  import "./chunk-EHSBBBR2.js";
78
- import "./chunk-ZFFKWHXN.js";
79
+ import "./chunk-COWQITWP.js";
79
80
  import "./chunk-442JNXRM.js";
80
81
  import "./chunk-DQBY7FRR.js";
81
82
  import {
82
83
  resolveLocalBrowserGpuMode
83
- } from "./chunk-KNQQZRB2.js";
84
- import "./chunk-UZ7RJDEC.js";
84
+ } from "./chunk-XMSQRDAK.js";
85
+ import "./chunk-JJJCFKMF.js";
85
86
  import "./chunk-XT7X6QCP.js";
86
87
  import "./chunk-4YYJOFKS.js";
87
88
  import "./chunk-HVW7ABXD.js";
88
- import "./chunk-SUSSMCWL.js";
89
+ import "./chunk-3XI7MIZB.js";
89
90
  import {
90
91
  runWithConcurrencyLimit
91
92
  } from "./chunk-JHOCK3DG.js";
92
- import "./chunk-6HYHHMX3.js";
93
- import "./chunk-AYFF3GX6.js";
93
+ import "./chunk-TRZVS6TL.js";
94
+ import "./chunk-LBNEH6IQ.js";
94
95
  import "./chunk-AWDFDFI3.js";
95
96
  import "./chunk-P6LJ4Y32.js";
96
97
  import "./chunk-GMECXFAN.js";
97
98
  import "./chunk-7L37AB57.js";
98
99
  import "./chunk-EOVYQ3IG.js";
99
- import "./chunk-OOAVKK2W.js";
100
- import "./chunk-TTZTGXKG.js";
100
+ import "./chunk-TFGO5YMI.js";
101
+ import "./chunk-W3CS2KFV.js";
101
102
  import "./chunk-VWG7OQKU.js";
102
103
  import {
103
104
  defineCommand
@@ -113,20 +114,20 @@ import {
113
114
  import "./chunk-KLIKCX6Q.js";
114
115
  import "./chunk-EVMY7IPL.js";
115
116
  import "./chunk-7FMUTGOH.js";
116
- import "./chunk-OAPYPSEB.js";
117
+ import "./chunk-NMDUSCCE.js";
117
118
  import "./chunk-IZCW2NKT.js";
118
119
  import {
119
120
  createRuntimeStartTimeResolver,
120
121
  isClipVisibleAt,
121
122
  isInClipWindow
122
- } from "./chunk-56IOFIYB.js";
123
+ } from "./chunk-GM3WIOO6.js";
123
124
  import "./chunk-RQVDTPGD.js";
124
- import "./chunk-TSQAPPRS.js";
125
+ import "./chunk-VYQYVYQ5.js";
125
126
  import {
126
127
  readElementRateSpec,
127
128
  sourceTimeAt,
128
129
  timeAtSourceTime
129
- } from "./chunk-DIV37NUE.js";
130
+ } from "./chunk-LM265QNK.js";
130
131
  import "./chunk-VC76R6W2.js";
131
132
  import "./chunk-X7HBSTCZ.js";
132
133
  import {
@@ -150,7 +151,7 @@ import "./chunk-XT6MXC7A.js";
150
151
  import "./chunk-4UMPIPCQ.js";
151
152
  import {
152
153
  lintProject
153
- } from "./chunk-TSFA2Y5C.js";
154
+ } from "./chunk-3NRB7YXW.js";
154
155
  import "./chunk-VAS6HQX3.js";
155
156
  import "./chunk-6BNTGNGD.js";
156
157
  import "./chunk-RUOG4VB7.js";
@@ -164,12 +165,12 @@ import "./chunk-I5JRXMCV.js";
164
165
  import "./chunk-W2LGJSEN.js";
165
166
  import {
166
167
  withMeta
167
- } from "./chunk-STJ2ANMF.js";
168
+ } from "./chunk-KAC2WR7P.js";
168
169
  import "./chunk-K4WIOZFP.js";
169
170
  import "./chunk-XUXGIA7H.js";
170
171
  import "./chunk-WERLJGIC.js";
171
172
  import "./chunk-ISN5GRYI.js";
172
- import "./chunk-F6DNM676.js";
173
+ import "./chunk-MSM6VRQ4.js";
173
174
  import {
174
175
  normalizeErrorMessage
175
176
  } from "./chunk-KNU5COPB.js";
@@ -695,7 +696,7 @@ function serveCapturePage(projectDir, html, proxy) {
695
696
  }
696
697
  async function captureSnapshots(projectDir, opts) {
697
698
  const log = opts.log ?? ((message) => console.log(message));
698
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-RWHFMSFL.js");
699
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-23QDKFSN.js");
699
700
  const capture = await captureArtifactRevision(projectDir).catch(warnSnapshotsNotRecorded);
700
701
  const invocation = randomUUID();
701
702
  const artifacts = [];
@@ -756,7 +757,7 @@ async function captureSnapshots(projectDir, opts) {
756
757
  return 0;
757
758
  });
758
759
  if (duration <= 0 && !opts.at?.length) {
759
- return { paths: [] };
760
+ return { paths: [], warnings };
760
761
  }
761
762
  const readTiming = () => page.evaluate(() => ({
762
763
  html: document.documentElement.outerHTML,
@@ -827,7 +828,7 @@ async function captureSnapshots(projectDir, opts) {
827
828
  let syncVideoFrameVisibility = null;
828
829
  let extractMediaMetadata = null;
829
830
  try {
830
- const engine = await import("./src-XSDYRKLG.js");
831
+ const engine = await import("./src-ZOXSEJCD.js");
831
832
  injectVideoFramesBatch = engine.injectVideoFramesBatch;
832
833
  syncVideoFrameVisibility = engine.syncVideoFrameVisibility;
833
834
  extractMediaMetadata = engine.extractMediaMetadata;
@@ -852,7 +853,7 @@ async function captureSnapshots(projectDir, opts) {
852
853
  }
853
854
  for (let i = 0; i < positions.length; i++) {
854
855
  const time = positions[i];
855
- const seekOptions = { exactTime: true };
856
+ const seekOptions = { exactTime: true, waitForImagesMs: SCREENSHOT_IMAGE_WAIT_MS };
856
857
  await seekCompositionTimelineOnly(page, time, seekOptions);
857
858
  if (cameraExpr) await page.evaluate(cameraExpr);
858
859
  if (injectVideoFramesBatch && syncVideoFrameVisibility) {
@@ -963,7 +964,7 @@ async function captureSnapshots(projectDir, opts) {
963
964
  );
964
965
  }
965
966
  }
966
- await settleCompositionSeek(page, seekOptions);
967
+ warnUnsettledImages(await settleCompositionSeek(page, seekOptions), time, warnings);
967
968
  await recaptureSnapshotComposite(page);
968
969
  const timeLabel = formatSnapshotTimestamp(time);
969
970
  const slot = opts.keep ? `at-${timeLabel}` : `${String(i).padStart(2, "0")}-at-${timeLabel}`;
@@ -1057,6 +1058,7 @@ async function captureSnapshots(projectDir, opts) {
1057
1058
  }
1058
1059
  return {
1059
1060
  paths: savedPaths,
1061
+ warnings,
1060
1062
  ...review && reviewList ? {
1061
1063
  review: {
1062
1064
  plan: review,
@@ -1068,6 +1070,18 @@ async function captureSnapshots(projectDir, opts) {
1068
1070
  } : {}
1069
1071
  };
1070
1072
  }
1073
+ function warnUnsettledImages(images, time, warnings) {
1074
+ const groups = [
1075
+ [images.pending, `did not finish loading within ${SCREENSHOT_IMAGE_WAIT_MS} ms`],
1076
+ [images.failed, "failed to load"]
1077
+ ];
1078
+ for (const [sources, what] of groups) {
1079
+ if (sources.length === 0) continue;
1080
+ const message = `${sources.length} image(s) ${what} at ${time}s, so the frame may be missing them: ${sources.join(", ")}`;
1081
+ warnings.push(message);
1082
+ console.warn(` ${c.warn("\u26A0")} ${message}`);
1083
+ }
1084
+ }
1071
1085
  function warnSnapshotsNotRecorded(error) {
1072
1086
  console.warn(` ${c.warn("\u26A0")} Snapshots were not recorded: ${normalizeErrorMessage(error)}`);
1073
1087
  return void 0;
@@ -1102,6 +1116,7 @@ function snapshotEnvelope(projectDir, outputDir, captured, extra) {
1102
1116
  outputDir,
1103
1117
  frames,
1104
1118
  contactSheets: extra.contactSheets.map((sheet) => resolve(sheet)),
1119
+ ...captured.warnings.length > 0 ? { warnings: captured.warnings } : {},
1105
1120
  ...extra.describedPath ? { descriptions: extra.describedPath } : {},
1106
1121
  ...review ? {
1107
1122
  review: {
@@ -69,10 +69,10 @@ import {
69
69
  serializeRenderRequest,
70
70
  startServer,
71
71
  validatePlanV2MaterializedTarget
72
- } from "./chunk-FVD44EQX.js";
72
+ } from "./chunk-TFMZ4RKM.js";
73
73
  import {
74
74
  prepareAnimatedGifInputs
75
- } from "./chunk-A5YHWTSP.js";
75
+ } from "./chunk-RQBB7PYT.js";
76
76
  import "./chunk-BZ56MTDX.js";
77
77
  import {
78
78
  FONT_FETCH_FAILED,
@@ -98,14 +98,14 @@ import {
98
98
  isTransientBrowserError,
99
99
  prepareCaptureSessionForReuse,
100
100
  resolveConfig
101
- } from "./chunk-OAPYPSEB.js";
101
+ } from "./chunk-NMDUSCCE.js";
102
102
  import "./chunk-IZCW2NKT.js";
103
103
  import {
104
104
  quantizeTimeToFrame
105
- } from "./chunk-56IOFIYB.js";
105
+ } from "./chunk-GM3WIOO6.js";
106
106
  import "./chunk-RQVDTPGD.js";
107
- import "./chunk-TSQAPPRS.js";
108
- import "./chunk-DIV37NUE.js";
107
+ import "./chunk-VYQYVYQ5.js";
108
+ import "./chunk-LM265QNK.js";
109
109
  import "./chunk-VC76R6W2.js";
110
110
  import "./chunk-X7HBSTCZ.js";
111
111
  import "./chunk-B2A56S5C.js";
@@ -115,7 +115,7 @@ import "./chunk-3GXQPCJC.js";
115
115
  import "./chunk-634HSJ3J.js";
116
116
  import "./chunk-FXMKHHPO.js";
117
117
  import "./chunk-4UMPIPCQ.js";
118
- import "./chunk-TSFA2Y5C.js";
118
+ import "./chunk-3NRB7YXW.js";
119
119
  import "./chunk-VAS6HQX3.js";
120
120
  import "./chunk-6BNTGNGD.js";
121
121
  import "./chunk-RUOG4VB7.js";