hyperframes 0.8.188 → 0.8.190

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 (167) hide show
  1. package/dist/{add-UORF6235.js → add-DBKN5H7H.js} +11 -11
  2. package/dist/{animatedGifPrep-23MLSEXF.js → animatedGifPrep-YVBKKLQY.js} +5 -5
  3. package/dist/api.js +13 -13
  4. package/dist/{asset-DOKDVHCW.js → asset-2OHQKUMQ.js} +2 -2
  5. package/dist/{assetCataloger-CD27MHEY.js → assetCataloger-O3QAUWIK.js} +5 -5
  6. package/dist/{audio-3NMZHNNU.js → audio-IR3JGCMM.js} +11 -11
  7. package/dist/{auth-AWKTSKGC.js → auth-J6TAJLGD.js} +1 -1
  8. package/dist/{autoUpdate-VBOI4CNU.js → autoUpdate-D7BJJUT2.js} +2 -2
  9. package/dist/{backgroundChecks-S4R454YU.js → backgroundChecks-AILHY2YZ.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-EGPYNDHK.js → batchRender-QZKFVWEI.js} +3 -3
  12. package/dist/{beats-YENEQUOA.js → beats-6LOEKZPB.js} +4 -4
  13. package/dist/{benchmark-THSJIQG7.js → benchmark-RJMHI3YW.js} +8 -8
  14. package/dist/{browser-BDMVQ6WJ.js → browser-Q3Q36FE3.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-3QG722YD.js → bundleWithLocalizedFonts-RWHFMSFL.js} +2 -2
  16. package/dist/{capture-Z6BGCTK3.js → capture-2PNTGVYV.js} +8 -8
  17. package/dist/{capture-WM4XDMFX.js → capture-FO3ZZCT4.js} +2 -2
  18. package/dist/{captureCompositionFrame-EMHSAIBZ.js → captureCompositionFrame-WTMLWVEJ.js} +11 -11
  19. package/dist/{catalog-7TV6UNCG.js → catalog-LUZYPUYT.js} +11 -11
  20. package/dist/{catch-up-63IUDZRW.js → catch-up-TUTLUTFP.js} +4 -4
  21. package/dist/{check-7RHZL4DV.js → check-K2TBTJZS.js} +34 -33
  22. package/dist/{checkBrowser-PF56CT5X.js → checkBrowser-JT7CXDT6.js} +29 -30
  23. package/dist/{chunk-I7C5GUEQ.js → chunk-2FFOLLU2.js} +3 -3
  24. package/dist/{chunk-OKSYDQHY.js → chunk-3QLT727N.js} +3 -3
  25. package/dist/{chunk-NFHRGHCJ.js → chunk-45U3KY7Z.js} +4 -4
  26. package/dist/{chunk-MJKUCR3C.js → chunk-56IDMP37.js} +2 -2
  27. package/dist/{chunk-YV4WT7CJ.js → chunk-56IOFIYB.js} +12 -1
  28. package/dist/{chunk-HKUZCSNZ.js → chunk-6HYHHMX3.js} +2 -2
  29. package/dist/{chunk-46VJ2UAV.js → chunk-76ITJYXX.js} +5 -5
  30. package/dist/{chunk-YZ73IPW2.js → chunk-7JHTNUF2.js} +2 -2
  31. package/dist/{chunk-2WUDFZCR.js → chunk-A5YHWTSP.js} +2 -2
  32. package/dist/{chunk-HPQSUPR7.js → chunk-AYFF3GX6.js} +1 -1
  33. package/dist/{chunk-W2KGJHUL.js → chunk-B7JFAXDP.js} +2 -2
  34. package/dist/{chunk-LWYZN7HS.js → chunk-BT64TTSE.js} +219 -79
  35. package/dist/{chunk-ZIRIDSDB.js → chunk-BWPY64WA.js} +1 -1
  36. package/dist/{chunk-MTPPEEYZ.js → chunk-CWVSJA52.js} +16 -8
  37. package/dist/{chunk-BWEZDN6U.js → chunk-CWYS2UNQ.js} +1 -1
  38. package/dist/chunk-DIV37NUE.js +3896 -0
  39. package/dist/{chunk-DA4TQFSF.js → chunk-DRTIIAIZ.js} +1 -1
  40. package/dist/{chunk-IJYR4TTA.js → chunk-DX7VEUBO.js} +1 -1
  41. package/dist/{chunk-V6NM4KL3.js → chunk-E7DXKMKU.js} +2 -2
  42. package/dist/{chunk-LWY3PFJ7.js → chunk-EPOYPP36.js} +2 -2
  43. package/dist/{chunk-BU4HRISA.js → chunk-EQF6TVWB.js} +91 -24
  44. package/dist/{chunk-KDBPZOXK.js → chunk-EU5HTY3E.js} +11 -11
  45. package/dist/{chunk-KY7375C4.js → chunk-EUUHVDMN.js} +1 -1
  46. package/dist/{chunk-6HYPEIH7.js → chunk-F6DNM676.js} +2 -2
  47. package/dist/{chunk-2DHCCBCN.js → chunk-FANFO5HI.js} +9 -9
  48. package/dist/{chunk-FWVILDOZ.js → chunk-FUHI34T4.js} +3 -3
  49. package/dist/{chunk-GYBPAKBM.js → chunk-FVD44EQX.js} +53 -31
  50. package/dist/{chunk-MXXX6WVC.js → chunk-GGVGOY6M.js} +1 -1
  51. package/dist/{chunk-XPVN4R66.js → chunk-HJZ5CPZA.js} +31 -7
  52. package/dist/{chunk-NMOTNNP2.js → chunk-IARWN467.js} +1 -1
  53. package/dist/{chunk-OJOZXWLC.js → chunk-JB7LML5B.js} +3 -3
  54. package/dist/{chunk-UF6RCYA5.js → chunk-JLSXXMRU.js} +1 -1
  55. package/dist/{chunk-JYC53CW4.js → chunk-K4664CDS.js} +97 -30
  56. package/dist/{chunk-T3OXKSRG.js → chunk-KNQQZRB2.js} +2 -2
  57. package/dist/{chunk-L243NE72.js → chunk-KUMUK6QS.js} +7 -7
  58. package/dist/{chunk-6HZ7TSJJ.js → chunk-L34DPWY4.js} +15 -11
  59. package/dist/{chunk-YCW345M4.js → chunk-OAPYPSEB.js} +357 -211
  60. package/dist/{chunk-6Q5CFUAP.js → chunk-OOAVKK2W.js} +1 -1
  61. package/dist/{chunk-FSTLXRIN.js → chunk-OTQXYTQZ.js} +1 -1
  62. package/dist/{chunk-44QWRPGE.js → chunk-R4QASDTN.js} +2 -2
  63. package/dist/{chunk-NFLZNSUZ.js → chunk-RBGNU7VD.js} +1 -1
  64. package/dist/{chunk-5DPV7LU3.js → chunk-RDHEG7RX.js} +2 -2
  65. package/dist/{chunk-FOLMMQF3.js → chunk-S2IEO6TH.js} +13 -13
  66. package/dist/{chunk-6OWNUXTU.js → chunk-S7C6EM7N.js} +1 -1
  67. package/dist/{chunk-KWSEIVR6.js → chunk-STJ2ANMF.js} +1 -1
  68. package/dist/{chunk-DLFAVRF3.js → chunk-SUSSMCWL.js} +1 -1
  69. package/dist/{chunk-U6RXZNZE.js → chunk-TMBUBLZB.js} +55 -23
  70. package/dist/{chunk-SMF6YAUL.js → chunk-TSQAPPRS.js} +1 -1
  71. package/dist/{chunk-PMXR3IUH.js → chunk-TTZTGXKG.js} +1 -1
  72. package/dist/{chunk-DG4ME554.js → chunk-UZ7RJDEC.js} +1 -1
  73. package/dist/{chunk-X556BGL7.js → chunk-WBUO6WH6.js} +1 -1
  74. package/dist/{chunk-IA2IDJAG.js → chunk-WCT6KGGT.js} +1 -1
  75. package/dist/{chunk-57XL23DE.js → chunk-WLG4OYH7.js} +1 -1
  76. package/dist/{chunk-JWRT2IXO.js → chunk-XBGEWNGQ.js} +1 -1
  77. package/dist/{chunk-B2P4JRUJ.js → chunk-XNLYMHX2.js} +1 -1
  78. package/dist/{chunk-PQLFJYGP.js → chunk-Y5L5I4US.js} +5 -5
  79. package/dist/{chunk-5OZI55AC.js → chunk-YT5VLUHM.js} +1 -1
  80. package/dist/{chunk-FH7WODJH.js → chunk-ZFFKWHXN.js} +8 -0
  81. package/dist/{clean-43O47OTN.js → clean-UVTWBPXK.js} +14 -14
  82. package/dist/cli.js +53 -53
  83. package/dist/{cloud-ZFWKFFSU.js → cloud-M42IPKFD.js} +4 -4
  84. package/dist/{cloudrun-XBBESKEU.js → cloudrun-CTNX64R6.js} +4 -4
  85. package/dist/{compare-OW4ELTFZ.js → compare-MQI7TG5M.js} +26 -26
  86. package/dist/{compiler-23MT6CX6.js → compiler-EJE3HLCS.js} +2 -2
  87. package/dist/{component-SDV7LWH6.js → component-QSYOSFVV.js} +3 -3
  88. package/dist/{compositions-DI5QZCEK.js → compositions-ITDFE7K4.js} +9 -9
  89. package/dist/{delete-QY2NSQ2G.js → delete-NTGTENKJ.js} +2 -2
  90. package/dist/{deploy-MJVC4EFY.js → deploy-AOJOXEYX.js} +1 -1
  91. package/dist/{dist-RFTGYT26.js → dist-NHW2JQCA.js} +4 -2
  92. package/dist/{doctor-7ZOECPHR.js → doctor-Q6DAYVSQ.js} +9 -9
  93. package/dist/{events-XVQQGECC.js → events-BQIBYPCF.js} +2 -2
  94. package/dist/{events-WIX4JM2K.js → events-PV3CDO4A.js} +3 -3
  95. package/dist/{feedback-GBYBR6UO.js → feedback-BZH26JQE.js} +6 -6
  96. package/dist/{ffmpeg-QGQBYMO3.js → ffmpeg-KU7RNT3U.js} +5 -5
  97. package/dist/{figma-2CMKUGJQ.js → figma-PBGZUEIL.js} +3 -3
  98. package/dist/fontLocalizeCli.js +7 -7
  99. package/dist/{get-RWCNUOHU.js → get-MM2JZ5ET.js} +2 -2
  100. package/dist/{gpuPolicy-UGWSN32D.js → gpuPolicy-DQE2CD5T.js} +5 -5
  101. package/dist/{grade-compare-J2MX7HZL.js → grade-compare-YTDQ7YXW.js} +27 -27
  102. package/dist/{help-SH3ID7MV.js → help-M4B2DN7E.js} +1 -1
  103. package/dist/{history-C7V5QH7J.js → history-ZW4UYKAJ.js} +7 -7
  104. package/dist/hyperframe.manifest.json +1 -1
  105. package/dist/hyperframe.runtime.iife.js +62 -62
  106. package/dist/hyperframes-player.global.js +3 -3
  107. package/dist/{info-ZN3JJ3IN.js → info-L7LQAXLK.js} +7 -7
  108. package/dist/{init-KRNGSRNH.js → init-HTSQ535A.js} +25 -25
  109. package/dist/{inspect-AYDZXTX7.js → inspect-EWF2THRR.js} +27 -27
  110. package/dist/{installer-N6AIK6XQ.js → installer-PQKH2S7C.js} +4 -4
  111. package/dist/{keyframes-2RFUCEDK.js → keyframes-X2QKJ4DP.js} +6 -6
  112. package/dist/{lambda-VW3CF6EE.js → lambda-BURM66GP.js} +6 -6
  113. package/dist/{layout-OE64APE7.js → layout-3Z3SJGZZ.js} +27 -27
  114. package/dist/{lint-UXJTX5WS.js → lint-OMNZ2K5J.js} +6 -6
  115. package/dist/{list-KOL6JPZJ.js → list-5ZSQEH6N.js} +2 -2
  116. package/dist/{login-MAQXOPDG.js → login-YNCQPHLA.js} +4 -4
  117. package/dist/{manager-3LZKRK7P.js → manager-N6XXRQN3.js} +6 -6
  118. package/dist/{media-treatment-COLSXXQJ.js → media-treatment-EOKBRJPY.js} +11 -11
  119. package/dist/{models-XXWMGOD7.js → models-6T4CCKUV.js} +9 -9
  120. package/dist/{motionShot-RECBNTBZ.js → motionShot-KXKMYZ3A.js} +16 -16
  121. package/dist/{normalize-audio-LKVGHZWR.js → normalize-audio-VWB7RHHA.js} +4 -4
  122. package/dist/{open-UEQVSRKH.js → open-32SQCNUP.js} +11 -11
  123. package/dist/{parakeetRunner-QVPCZ36U.js → parakeetRunner-BXW2WX6Q.js} +10 -10
  124. package/dist/{pipeline-5VSMQBKW.js → pipeline-V5ONFRCY.js} +6 -6
  125. package/dist/{play-MNEABYN4.js → play-BBL262JE.js} +17 -17
  126. package/dist/{preflight-ONJ74DWQ.js → preflight-LCNGQFNY.js} +6 -6
  127. package/dist/{present-GQ24GTYX.js → present-RY4HO4ZQ.js} +13 -13
  128. package/dist/{preview-ALL7O4RG.js → preview-BLLPCCLG.js} +16 -16
  129. package/dist/{producer-43L2UDF6.js → producer-QG4AQ35S.js} +1 -1
  130. package/dist/{projectConfig-VJXUXK7U.js → projectConfig-LN3NR5OM.js} +6 -6
  131. package/dist/{publication-L6E5NTFV.js → publication-TXMCS4KM.js} +2 -2
  132. package/dist/{publish-LCLBJEPR.js → publish-57VURD7Z.js} +7 -7
  133. package/dist/{remove-background-PDL4KPR4.js → remove-background-VEWVIO3A.js} +7 -7
  134. package/dist/{render-OPCRLZVL.js → render-4E7QDVOI.js} +12 -12
  135. package/dist/{render-7HVKJ7T4.js → render-SP7WAUB4.js} +5 -5
  136. package/dist/{render-J33ZHR6I.js → render-XMN3NJIQ.js} +27 -27
  137. package/dist/{render-batch-ZHHIGXU3.js → render-batch-7ULP5RIJ.js} +5 -5
  138. package/dist/{resolver-KNNIMMBM.js → resolver-D3XERO6U.js} +4 -4
  139. package/dist/{sherpa-GI62H3H5.js → sherpa-5B5G426W.js} +9 -9
  140. package/dist/skills/hyperframes/references/motion.md +1 -1
  141. package/dist/{skills-IUTD6VQO.js → skills-RXHRF7O7.js} +5 -5
  142. package/dist/{skillsUpdateCheck-XZE7MJG6.js → skillsUpdateCheck-JOTDZJAE.js} +3 -3
  143. package/dist/{snapshot-XEXTHLZP.js → snapshot-DN4MP4VN.js} +31 -31
  144. package/dist/{src-6STRGCDC.js → src-W6Y5ZYRQ.js} +6 -6
  145. package/dist/{src-ZPIV4PGX.js → src-XSDYRKLG.js} +6 -4
  146. package/dist/{staticProjectServer-HJLT7MHE.js → staticProjectServer-JMFGTPMX.js} +15 -13
  147. package/dist/studio/assets/{hyperframes-player-DwWIKKZG.js → hyperframes-player-0HXJPmYC.js} +1 -1
  148. package/dist/studio/assets/{index-CESvLzz0.css → index-B3vk3hfU.css} +1 -1
  149. package/dist/studio/assets/{index-M8lEpS0Q.js → index-BYw97F07.js} +127 -127
  150. package/dist/studio/assets/{index-Cjwz7_13.js → index-DsSfhjUS.js} +1 -1
  151. package/dist/studio/index.html +2 -2
  152. package/dist/{studio-api-OBHEB5ND.js → studio-api-SZ4OMFPN.js} +7 -7
  153. package/dist/{studioServer-KRIZFYML.js → studioServer-LWO33H7D.js} +44 -44
  154. package/dist/{telemetry-N5OOVBCP.js → telemetry-K3AFDKOP.js} +3 -3
  155. package/dist/{timeline-YUFH65OG.js → timeline-NYQOAQDH.js} +15 -15
  156. package/dist/{tokens-K4VYLSWJ.js → tokens-K7YWUVOK.js} +2 -2
  157. package/dist/{transcribe-GMQXKDYN.js → transcribe-ANPUQDZD.js} +8 -8
  158. package/dist/{transcribe-CY4CVO54.js → transcribe-QAUMODXM.js} +14 -14
  159. package/dist/{updateCheck-2625RXK4.js → updateCheck-RNR4HMDI.js} +2 -2
  160. package/dist/{upgrade-6ZY5MSBQ.js → upgrade-MKUGZZPA.js} +2 -2
  161. package/dist/{urlDownloader-PVJWG7V3.js → urlDownloader-5USPXLCS.js} +4 -4
  162. package/dist/{validate-XSRHEE7E.js → validate-OJHPDLC5.js} +21 -21
  163. package/dist/{video-MBFHC54F.js → video-BCKRR6LU.js} +5 -5
  164. package/dist/warmCheck.js +34 -35
  165. package/package.json +1 -1
  166. package/dist/chunk-BPX7LZG6.js +0 -3896
  167. package/dist/chunk-KANNRHY7.js +0 -53
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-AWDFDFI3.js";
18
18
  import {
19
19
  isBlockedNetworkHost
20
- } from "./chunk-YCW345M4.js";
20
+ } from "./chunk-OAPYPSEB.js";
21
21
  import {
22
22
  DOMParser,
23
23
  parseHTML
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/utils/producer.ts
9
9
  async function loadProducer() {
10
- return await import("./src-6STRGCDC.js");
10
+ return await import("./src-W6Y5ZYRQ.js");
11
11
  }
12
12
 
13
13
  export {
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  trackLintReport,
9
9
  trackLintRuleStreak
10
- } from "./chunk-6Q5CFUAP.js";
10
+ } from "./chunk-OOAVKK2W.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-PMXR3IUH.js";
13
+ } from "./chunk-TTZTGXKG.js";
14
14
  import {
15
15
  LINT_RULE_COUNT,
16
16
  LINT_RULE_GROUP_COUNTS
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType
9
- } from "./chunk-6HZ7TSJJ.js";
9
+ } from "./chunk-L34DPWY4.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-BPX7LZG6.js";
12
+ } from "./chunk-DIV37NUE.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -11,19 +11,20 @@ import {
11
11
  } from "./chunk-57GN6KWT.js";
12
12
  import {
13
13
  captureArtifactRevision
14
- } from "./chunk-MJKUCR3C.js";
14
+ } from "./chunk-56IDMP37.js";
15
15
  import {
16
16
  loadProducer
17
- } from "./chunk-IJYR4TTA.js";
17
+ } from "./chunk-DX7VEUBO.js";
18
18
  import {
19
19
  trackLintRun
20
- } from "./chunk-V6NM4KL3.js";
20
+ } from "./chunk-E7DXKMKU.js";
21
21
  import {
22
22
  beginCheckSnapshots,
23
23
  checkSnapshotDirectory,
24
24
  finishCheckSnapshots,
25
+ preResolveHostileMediaProxies,
25
26
  rectToBbox
26
- } from "./chunk-KANNRHY7.js";
27
+ } from "./chunk-K4664CDS.js";
27
28
  import {
28
29
  CONTENT_OVERLAP_HELD_ERROR_MS,
29
30
  DEFAULT_MAX_STATIC_SEC,
@@ -46,27 +47,27 @@ import {
46
47
  mergeSampleTimes,
47
48
  parseAt,
48
49
  readMotionSpec
49
- } from "./chunk-2DHCCBCN.js";
50
+ } from "./chunk-FANFO5HI.js";
50
51
  import {
51
52
  resolveProject
52
- } from "./chunk-FSTLXRIN.js";
53
+ } from "./chunk-OTQXYTQZ.js";
53
54
  import {
54
55
  recordArtifacts
55
- } from "./chunk-U6RXZNZE.js";
56
+ } from "./chunk-TMBUBLZB.js";
56
57
  import {
57
58
  BrowserCleanupError,
58
59
  closeManagedBrowser
59
- } from "./chunk-MXXX6WVC.js";
60
+ } from "./chunk-GGVGOY6M.js";
60
61
  import {
61
62
  withRemainingBudget
62
63
  } from "./chunk-EHSBBBR2.js";
63
64
  import {
64
65
  resolveLocalBrowserGpuMode
65
- } from "./chunk-T3OXKSRG.js";
66
+ } from "./chunk-KNQQZRB2.js";
66
67
  import {
67
68
  trackCheckReport,
68
69
  trackCommandFailure
69
- } from "./chunk-6Q5CFUAP.js";
70
+ } from "./chunk-OOAVKK2W.js";
70
71
  import {
71
72
  swallowedFlagUsageError
72
73
  } from "./chunk-HTIUNMTP.js";
@@ -86,7 +87,7 @@ import {
86
87
  import {
87
88
  extractMediaMetadata,
88
89
  findHdrAutoPromotion
89
- } from "./chunk-YCW345M4.js";
90
+ } from "./chunk-OAPYPSEB.js";
90
91
  import {
91
92
  lintProject,
92
93
  shouldBlockRender
@@ -96,7 +97,7 @@ import {
96
97
  } from "./chunk-6BNTGNGD.js";
97
98
  import {
98
99
  withMeta
99
- } from "./chunk-KWSEIVR6.js";
100
+ } from "./chunk-STJ2ANMF.js";
100
101
  import {
101
102
  normalizeErrorMessage
102
103
  } from "./chunk-KNU5COPB.js";
@@ -107,7 +108,7 @@ import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
107
108
  import { join as join2, resolve } from "path";
108
109
 
109
110
  // src/utils/checkDeadline.ts
110
- var CHECK_DEADLINE_MS = 12e4;
111
+ var CHECK_IDLE_MS = 12e4;
111
112
  var SCRIPT_START = "[hyperframes:script:start] ";
112
113
  var SCRIPT_FINISH = "[hyperframes:script:finish] ";
113
114
  var PHASE_LABELS = {
@@ -153,6 +154,7 @@ var CheckDeadline = class {
153
154
  if (this.work) this.spend(this.work.phase, now - this.work.since);
154
155
  this.work = { phase, since: now };
155
156
  this.spend(phase, 0);
157
+ this.rearm();
156
158
  };
157
159
  spend(phase, ms) {
158
160
  this.spent.set(phase, (this.spent.get(phase) ?? 0) + ms);
@@ -164,18 +166,22 @@ var CheckDeadline = class {
164
166
  const seconds2 = ((phase === this.work?.phase ? ms + open : ms) / 1e3).toFixed(1);
165
167
  return `${PHASE_LABELS[phase]} ${seconds2}${BEFORE_DEADLINE.has(phase) ? " (before the deadline)" : ""}`;
166
168
  });
167
- return ` (${CHECK_DEADLINE_MS / 1e3} s from when Chrome was ready), while ${PHASE_LABELS[this.work.phase]}. Seconds per phase: ${parts.join(", ")}.`;
169
+ return ` (no progress for ${CHECK_IDLE_MS / 1e3} s after Chrome was ready), while ${PHASE_LABELS[this.work.phase]}. Seconds per phase: ${parts.join(", ")}.`;
168
170
  }
169
171
  start = () => {
170
172
  if (this.phase !== "waiting") return;
171
173
  this.phase = "started";
172
174
  this.enter("load");
175
+ };
176
+ rearm() {
177
+ if (this.phase !== "started" || this.expired) return;
178
+ clearTimeout(this.timer);
173
179
  this.timer = setTimeout(() => {
174
180
  this.expired = new CheckDeadlineError(this.scripts.at(-1), this.describe());
175
181
  this.rejectExpiry(this.expired);
176
182
  this.abort.abort(this.expired);
177
- }, CHECK_DEADLINE_MS);
178
- };
183
+ }, CHECK_IDLE_MS);
184
+ }
179
185
  ownBrowser = (browser) => {
180
186
  if (this.expired) throw this.expired;
181
187
  if (this.phase === "closed") throw new Error("Check has already finished.");
@@ -204,6 +210,8 @@ var CheckDeadline = class {
204
210
  if (this.expired) return Promise.reject(this.expired);
205
211
  const pending = operation();
206
212
  this.operations.add(pending);
213
+ const settled = () => this.rearm();
214
+ pending.then(settled, settled);
207
215
  return Promise.race([pending, this.expiry]);
208
216
  }
209
217
  async close() {
@@ -605,7 +613,7 @@ function round(value) {
605
613
 
606
614
  // src/utils/hdrPromotion.ts
607
615
  async function bundleProjectHtml(projectDir) {
608
- const { bundleToSingleHtml } = await import("./compiler-23MT6CX6.js");
616
+ const { bundleToSingleHtml } = await import("./compiler-EJE3HLCS.js");
609
617
  return bundleToSingleHtml(projectDir);
610
618
  }
611
619
  async function collectBundledRenderMedia(html) {
@@ -981,6 +989,7 @@ async function collectGridSamples(driver, options, grid, motion, helpers, enter)
981
989
  taken.push(index);
982
990
  const time = times[index] ?? 0;
983
991
  perTime[index] = await collectSampleAt(worker, options, grid, motion, sets, time);
992
+ enter("samples");
984
993
  }
985
994
  };
986
995
  const helpWith = async (helper) => {
@@ -1015,7 +1024,8 @@ async function collectGridSamples(driver, options, grid, motion, helpers, enter)
1015
1024
  grid,
1016
1025
  collected,
1017
1026
  options.range,
1018
- craftEnabled(driver, options)
1027
+ craftEnabled(driver, options),
1028
+ () => enter("overlap")
1019
1029
  );
1020
1030
  enter("samples");
1021
1031
  return collected;
@@ -1033,6 +1043,7 @@ async function collectContrastAt(driver, options, time, issuesAtTime, collected)
1033
1043
  var OVERLAP_SAMPLE_FPS = 8;
1034
1044
  var OVERLAP_MAX_SAMPLES = 240;
1035
1045
  var OVERLAP_HOLD_PROBES = 60;
1046
+ var OVERLAP_BATCH = 8;
1036
1047
  function evenlyPicked(times, count) {
1037
1048
  if (times.length <= count) return times;
1038
1049
  const last = Math.max(1, count - 1);
@@ -1098,7 +1109,15 @@ async function denseOverlapTimes(driver, grid, range) {
1098
1109
  const overlapTimes = buildOverlapSampleTimes(range ? range[1] - range[0] : grid.duration, edges);
1099
1110
  return range ? mergeSampleTimes(overlapTimes.map((time) => time + range[0])) : overlapTimes;
1100
1111
  }
1101
- async function collectMotionOverlapSamples(driver, grid, collected, range, craft) {
1112
+ async function collectOverlapGridInBatches(driver, times, progress) {
1113
+ const issues = [];
1114
+ for (let from = 0; from < times.length; from += OVERLAP_BATCH) {
1115
+ issues.push(...await driver.collectOverlapGrid(times.slice(from, from + OVERLAP_BATCH)));
1116
+ progress();
1117
+ }
1118
+ return issues;
1119
+ }
1120
+ async function collectMotionOverlapSamples(driver, grid, collected, range, craft, progress) {
1102
1121
  const baseTimes = new Set(grid.layoutSamples);
1103
1122
  const shiftedTimes = await denseOverlapTimes(driver, grid, range);
1104
1123
  if (craft) {
@@ -1106,16 +1125,19 @@ async function collectMotionOverlapSamples(driver, grid, collected, range, craft
1106
1125
  if (time >= grid.duration) continue;
1107
1126
  await driver.seekGeometry(time);
1108
1127
  collected.craftFrames.push(...await collectCraftFrame(driver, time));
1128
+ progress();
1109
1129
  }
1110
1130
  }
1111
1131
  const probeHold = holdProber(driver, collected, range ? range[1] : grid.duration);
1112
- const gridIssues = await driver.collectOverlapGrid(shiftedTimes.filter((t) => !baseTimes.has(t)));
1132
+ const gridTimes = shiftedTimes.filter((t) => !baseTimes.has(t));
1133
+ const gridIssues = await collectOverlapGridInBatches(driver, gridTimes, progress);
1113
1134
  let sample = 0;
1114
1135
  for (const [index, time] of shiftedTimes.entries()) {
1115
1136
  if (baseTimes.has(time)) continue;
1116
1137
  const issues = gridIssues[sample++] ?? [];
1117
1138
  collected.layoutIssues.push(...issues);
1118
1139
  await probeHold(time, shiftedTimes[index + 1] ?? Number.POSITIVE_INFINITY, issues);
1140
+ progress();
1119
1141
  }
1120
1142
  }
1121
1143
  var CRAFT_SAMPLE_FPS = 8;
@@ -2133,7 +2155,7 @@ function resolveMotionSpec(projectDir) {
2133
2155
  };
2134
2156
  }
2135
2157
  async function runBrowserCheck(project, options, motion, deadline, prelaunched) {
2136
- const module = await import("./checkBrowser-PF56CT5X.js");
2158
+ const module = await import("./checkBrowser-JT7CXDT6.js");
2137
2159
  return module.runBrowserCheck(project, options, motion, runAuditGrid, deadline, prelaunched);
2138
2160
  }
2139
2161
  var adoptedBrowser;
@@ -2147,7 +2169,7 @@ async function prelaunchBrowser(project, options) {
2147
2169
  if (adopted) return adopted;
2148
2170
  const html = await readFile(project.indexPath, "utf8").catch(() => void 0);
2149
2171
  if (html === void 0) return void 0;
2150
- const { prelaunchCompositionBrowser } = await import("./captureCompositionFrame-EMHSAIBZ.js");
2172
+ const { prelaunchCompositionBrowser } = await import("./captureCompositionFrame-WTMLWVEJ.js");
2151
2173
  return prelaunchCompositionBrowser(html, options.browserGpuMode);
2152
2174
  }
2153
2175
  async function writeSnapshot(projectDir, index, time, pngBase64) {
@@ -2159,7 +2181,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
2159
2181
  return relative(projectDir, path);
2160
2182
  }
2161
2183
  async function captureFindingCrops(project, options, requests, deadline) {
2162
- const module = await import("./checkBrowser-PF56CT5X.js");
2184
+ const module = await import("./checkBrowser-JT7CXDT6.js");
2163
2185
  return module.captureFindingCrops(project, options, requests, deadline);
2164
2186
  }
2165
2187
  var DEFAULT_DEPENDENCIES2 = {
@@ -2177,7 +2199,8 @@ var examples = [
2177
2199
  ["Run the full verification gate", "hyperframes check"],
2178
2200
  ["Output one agent-readable envelope", "hyperframes check --json"],
2179
2201
  ["Persist the five audited contrast frames", "hyperframes check --snapshots"],
2180
- ["Also fail on warnings", "hyperframes check --strict"]
2202
+ ["Also fail on warnings", "hyperframes check --strict"],
2203
+ ["Make only the browser-playable video copies, then exit", "hyperframes check --prepare-media"]
2181
2204
  ];
2182
2205
  var DEFAULT_COMMAND_DEPENDENCIES = {
2183
2206
  resolveProject,
@@ -2196,6 +2219,11 @@ var DEFAULT_COMMAND_DEPENDENCIES = {
2196
2219
  return report;
2197
2220
  }
2198
2221
  },
2222
+ async prepareMedia(project, options) {
2223
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-RWHFMSFL.js");
2224
+ const html = await bundleWithLocalizedFonts(project.dir);
2225
+ return (await preResolveHostileMediaProxies(project.dir, html, options.autoProxy)).files;
2226
+ },
2199
2227
  withMeta
2200
2228
  };
2201
2229
  function warnNotRecorded(error) {
@@ -2321,6 +2349,11 @@ var CHECK_COMMAND_ARGS = {
2321
2349
  description: "Exit non-zero on warnings too",
2322
2350
  default: false
2323
2351
  },
2352
+ "prepare-media": {
2353
+ type: "boolean",
2354
+ description: "Only make the browser-playable copies of videos Chrome cannot decode, then exit (no browser, no report). Stopped copies resume on the next run",
2355
+ default: false
2356
+ },
2324
2357
  proxy: {
2325
2358
  type: "boolean",
2326
2359
  description: "Auto-transcode browser-hostile video codecs (default: hyperframes.json media.autoProxy, which defaults on)",
@@ -2365,6 +2398,10 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
2365
2398
  if (!asJson) {
2366
2399
  console.log(`${c.accent("\u25C6")} Checking ${c.accent(project.name)}`);
2367
2400
  }
2401
+ if (args["prepare-media"] === true) {
2402
+ await runPrepareMedia(dependencies, project, options, asJson);
2403
+ return;
2404
+ }
2368
2405
  const report = await withProjectLock(
2369
2406
  project.dir,
2370
2407
  "check",
@@ -2396,6 +2433,36 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
2396
2433
  }
2397
2434
  });
2398
2435
  }
2436
+ async function runPrepareMedia(dependencies, project, options, asJson) {
2437
+ const files = await withProjectLock(
2438
+ project.dir,
2439
+ "check",
2440
+ () => dependencies.prepareMedia(project, options)
2441
+ );
2442
+ const failed = files.filter((file) => file.state === "failed");
2443
+ if (asJson) {
2444
+ console.log(
2445
+ JSON.stringify(
2446
+ dependencies.withMeta({
2447
+ ok: failed.length === 0,
2448
+ prepared: files,
2449
+ total: files.length,
2450
+ ready: files.length - failed.length,
2451
+ failed: failed.length
2452
+ }),
2453
+ null,
2454
+ 2
2455
+ )
2456
+ );
2457
+ } else {
2458
+ const mark = failed.length === 0 ? c.success("\u2713") : c.error("\u2717");
2459
+ console.log(
2460
+ `${mark} Browser-playable copies: ${files.length - failed.length}/${files.length} ready`
2461
+ );
2462
+ for (const file of failed) console.log(` ${file.file}: ${file.reason}`);
2463
+ }
2464
+ setCommandExitCode(failed.length === 0 ? 0 : 1);
2465
+ }
2399
2466
  function parseCheckOptions(args) {
2400
2467
  const maxTransitionSamples = positiveInteger(args["max-transition-samples"], 0);
2401
2468
  return {
@@ -4,35 +4,35 @@ 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
- resolveCompositionViewportFromHtml
9
- } from "./chunk-FH7WODJH.js";
10
7
  import {
11
8
  launchManagedBrowser,
12
9
  resolveManagedGpuMode,
13
10
  rethrowAfterBrowserCleanup
14
- } from "./chunk-MXXX6WVC.js";
11
+ } from "./chunk-GGVGOY6M.js";
15
12
  import {
16
13
  gotoWhenSent
17
14
  } from "./chunk-MOEGCMKI.js";
18
15
  import {
19
16
  pageNavigationTimeoutMs,
20
17
  windowsChromeCrashRemediation
21
- } from "./chunk-MTPPEEYZ.js";
18
+ } from "./chunk-CWVSJA52.js";
22
19
  import {
23
20
  oneProcessOverPipe
24
21
  } from "./chunk-DKPNNYBZ.js";
22
+ import {
23
+ resolveCompositionViewportFromHtml
24
+ } from "./chunk-ZFFKWHXN.js";
25
25
  import {
26
26
  resolveLocalBrowserGpuMode,
27
27
  resolveLocalWebGpu
28
- } from "./chunk-T3OXKSRG.js";
28
+ } from "./chunk-KNQQZRB2.js";
29
29
  import {
30
30
  c
31
31
  } from "./chunk-ZTZA4UWZ.js";
32
32
  import {
33
33
  assertWebGpuAdapterAvailable,
34
34
  compositionRequiresWebGpu
35
- } from "./chunk-YCW345M4.js";
35
+ } from "./chunk-OAPYPSEB.js";
36
36
  import {
37
37
  normalizeErrorMessage
38
38
  } from "./chunk-KNU5COPB.js";
@@ -138,7 +138,7 @@ async function waitForCompositionSettle(page, options) {
138
138
  console.warn(` ${c.warn("\u26A0")} Shader transitions did not finish pre-rendering`);
139
139
  });
140
140
  await waitForLateSubresources(page, options.lateSubresourceTimeoutMs ?? CAPTURE_SETTLE_MS);
141
- const { resolveConfig, waitForImagesReady } = await import("./src-ZPIV4PGX.js");
141
+ const { resolveConfig, waitForImagesReady } = await import("./src-XSDYRKLG.js");
142
142
  const imageTimeoutMs = resolveConfig().playerReadyTimeout;
143
143
  await waitForImagesReady(
144
144
  page,
@@ -187,7 +187,7 @@ async function installPageFunctionGuard(page) {
187
187
  async function openSettledCompositionPage(html, url, options) {
188
188
  const viewport = resolveCompositionViewportFromHtml(html);
189
189
  const requiresWebGpu = compositionRequiresWebGpu(html);
190
- const answer = (await import("./staticProjectServer-HJLT7MHE.js")).inProcessAnswer(url);
190
+ const answer = (await import("./staticProjectServer-JMFGTPMX.js")).inProcessAnswer(url);
191
191
  const noListen = answer !== void 0;
192
192
  let chromeBrowser;
193
193
  try {
@@ -198,7 +198,7 @@ async function openSettledCompositionPage(html, url, options) {
198
198
  options.onBrowserReady?.();
199
199
  const page = await chromeBrowser.newPage();
200
200
  await installPageFunctionGuard(page);
201
- const { installMediaRenderIdBridge } = await import("./src-ZPIV4PGX.js");
201
+ const { installMediaRenderIdBridge } = await import("./src-XSDYRKLG.js");
202
202
  await installMediaRenderIdBridge(page);
203
203
  await page.setViewport(viewport);
204
204
  if (answer) await answerPageInProcess(page, url, answer);
@@ -217,7 +217,7 @@ async function launchCompositionBrowser(html, noListen, options) {
217
217
  const { ensureBrowser, findSystemBrowser } = await import("./manager-UHWEKPXC.js");
218
218
  const browser = await ensureBrowser({ signal: options.signal });
219
219
  const puppeteer = await import("puppeteer-core");
220
- const { buildChromeArgs } = await import("./src-ZPIV4PGX.js");
220
+ const { buildChromeArgs } = await import("./src-XSDYRKLG.js");
221
221
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
222
222
  const requiresWebGpu = compositionRequiresWebGpu(html);
223
223
  let softwareWebGpu = false;
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-KWSEIVR6.js";
9
+ } from "./chunk-STJ2ANMF.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/version.ts
9
- var VERSION = true ? "0.8.188" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.188" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.190" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.190" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -6,27 +6,27 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-FSTLXRIN.js";
9
+ } from "./chunk-OTQXYTQZ.js";
10
10
  import {
11
11
  serveStaticProjectHtml
12
- } from "./chunk-XPVN4R66.js";
12
+ } from "./chunk-HJZ5CPZA.js";
13
13
  import {
14
14
  AUDIT_SEEK_OPTIONS,
15
15
  installPageFunctionGuard,
16
16
  seekCompositionTimeline,
17
17
  waitForCompositionFonts,
18
18
  waitForRuntimeReady
19
- } from "./chunk-KDBPZOXK.js";
19
+ } from "./chunk-EU5HTY3E.js";
20
20
  import {
21
21
  launchManagedBrowser,
22
22
  resolveManagedGpuMode
23
- } from "./chunk-MXXX6WVC.js";
23
+ } from "./chunk-GGVGOY6M.js";
24
24
  import {
25
25
  gotoWhenSent
26
26
  } from "./chunk-MOEGCMKI.js";
27
27
  import {
28
28
  pageNavigationTimeoutMs
29
- } from "./chunk-MTPPEEYZ.js";
29
+ } from "./chunk-CWVSJA52.js";
30
30
  import {
31
31
  defineCommand
32
32
  } from "./chunk-S3S4TGEH.js";
@@ -40,7 +40,7 @@ import {
40
40
  import {
41
41
  printDeprecationNotice,
42
42
  withMeta
43
- } from "./chunk-KWSEIVR6.js";
43
+ } from "./chunk-STJ2ANMF.js";
44
44
  import {
45
45
  normalizeErrorMessage
46
46
  } from "./chunk-KNU5COPB.js";
@@ -715,7 +715,7 @@ async function collectTweenBoundaries(page) {
715
715
  });
716
716
  }
717
717
  async function bundleProjectHtml(projectDir) {
718
- const { bundleToSingleHtml } = await import("./compiler-23MT6CX6.js");
718
+ const { bundleToSingleHtml } = await import("./compiler-EJE3HLCS.js");
719
719
  return bundleToSingleHtml(projectDir);
720
720
  }
721
721
  async function alignViewportToComposition(page, url) {
@@ -734,13 +734,13 @@ async function alignViewportToComposition(page, url) {
734
734
  async function runLayoutAudit(projectDir, opts) {
735
735
  const { ensureBrowser } = await import("./manager-UHWEKPXC.js");
736
736
  const puppeteer = await import("puppeteer-core");
737
- const { buildChromeArgs } = await import("./src-ZPIV4PGX.js");
737
+ const { buildChromeArgs } = await import("./src-XSDYRKLG.js");
738
738
  const {
739
739
  assertWebGpuAdapterAvailable,
740
740
  compositionRequiresWebGpu,
741
741
  resolveLocalBrowserGpuMode,
742
742
  resolveLocalWebGpu
743
- } = await import("./gpuPolicy-UGWSN32D.js");
743
+ } = await import("./gpuPolicy-DQE2CD5T.js");
744
744
  const html = await bundleProjectHtml(projectDir);
745
745
  const server = await serveStaticProjectHtml(
746
746
  projectDir,
@@ -21,13 +21,13 @@ import {
21
21
  emitWords,
22
22
  getPreparedWavDurationSeconds,
23
23
  prepareWav
24
- } from "./chunk-I7C5GUEQ.js";
24
+ } from "./chunk-2FFOLLU2.js";
25
25
  import {
26
26
  stoppedByCancelSignal
27
- } from "./chunk-NFLZNSUZ.js";
27
+ } from "./chunk-RBGNU7VD.js";
28
28
  import {
29
29
  verifies
30
- } from "./chunk-6OWNUXTU.js";
30
+ } from "./chunk-S7C6EM7N.js";
31
31
  import {
32
32
  PARAKEET_MODEL_LABEL,
33
33
  SHERPA_ERROR_PREFIX,