hyperframes 0.8.173 → 0.8.175

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 (187) hide show
  1. package/dist/{add-V7VBTFNG.js → add-S4AOKSNH.js} +14 -15
  2. package/dist/{animatedGifPrep-62S72ZY6.js → animatedGifPrep-QRDM2NMV.js} +9 -11
  3. package/dist/api.js +19 -21
  4. package/dist/{asset-Z4JI2F6V.js → asset-DQ45BUBL.js} +2 -2
  5. package/dist/{assetCataloger-Q7LE7BCC.js → assetCataloger-NPDCMAYE.js} +9 -11
  6. package/dist/{audio-HIHNLQJ7.js → audio-OOAXEELO.js} +16 -18
  7. package/dist/{auth-4K6DSZCD.js → auth-33IY64LT.js} +2 -2
  8. package/dist/{autoUpdate-DXZDD5VT.js → autoUpdate-KGLJUGNZ.js} +2 -2
  9. package/dist/{backgroundChecks-ODMKKJ4S.js → backgroundChecks-DQPHYLVN.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-I4BFJGPA.js → batchRender-KXXTVNPB.js} +4 -4
  12. package/dist/{beats-7QCA6GDR.js → beats-WDYSCACS.js} +6 -7
  13. package/dist/{benchmark-IT4WTSMZ.js → benchmark-WOAULMYW.js} +11 -12
  14. package/dist/{browser-5VHM72PM.js → browser-2HX46R74.js} +5 -6
  15. package/dist/{bundleWithLocalizedFonts-MKTQCB2Y.js → bundleWithLocalizedFonts-32N7TVM6.js} +2 -2
  16. package/dist/{capture-B5Y45EWD.js → capture-5ASPHTMF.js} +22 -18
  17. package/dist/{capture-CMNNIMIL.js → capture-7LR5UVM2.js} +2 -2
  18. package/dist/{catalog-AKPJ65GY.js → catalog-LVW3RT4U.js} +15 -16
  19. package/dist/{catch-up-2SVYRMD3.js → catch-up-W6Z73GXL.js} +6 -7
  20. package/dist/{check-Q7AX6K7O.js → check-C23ZWACZ.js} +56 -52
  21. package/dist/{checkBrowser-CPXD5BZY.js → checkBrowser-WS6FSLBJ.js} +182 -88
  22. package/dist/{chunk-QVPOR7WE.js → chunk-32GKETR7.js} +22 -1
  23. package/dist/{chunk-4RDDUBOC.js → chunk-3Q4Y33FT.js} +11 -11
  24. package/dist/{chunk-2DWYRHJS.js → chunk-3SWMUZ4Y.js} +2 -2
  25. package/dist/{chunk-PBVUVNWP.js → chunk-3X3CELOP.js} +1 -1
  26. package/dist/{chunk-5E43335V.js → chunk-42T7OP4O.js} +1 -1
  27. package/dist/{chunk-TWZRU64W.js → chunk-4XM6VXLN.js} +7 -7
  28. package/dist/{chunk-6JQDH4O6.js → chunk-7E4YFL4U.js} +1 -1
  29. package/dist/{chunk-NOMPG5HQ.js → chunk-7GUAZGSW.js} +3 -3
  30. package/dist/{chunk-XRQBHOBT.js → chunk-B4VT6YU2.js} +2 -2
  31. package/dist/{chunk-2BL7BJ22.js → chunk-BHMWVRNS.js} +1 -1
  32. package/dist/{chunk-LN4SZS7W.js → chunk-CEYY3SOX.js} +3 -3
  33. package/dist/chunk-CIWX5UKC.js +16 -0
  34. package/dist/{chunk-CBOYQOLY.js → chunk-DQY6WTF7.js} +1 -1
  35. package/dist/{chunk-BCPJSBCS.js → chunk-DZMWNCHM.js} +7 -3
  36. package/dist/chunk-EEXE43II.js +3805 -0
  37. package/dist/{chunk-ROQBQHBK.js → chunk-EKDTCSCL.js} +1 -1
  38. package/dist/{chunk-L4SFGSSQ.js → chunk-FRNKM4MG.js} +1 -1
  39. package/dist/{chunk-6HKO6VWS.js → chunk-G7I3WZK4.js} +1 -1
  40. package/dist/{chunk-2TNPXPI5.js → chunk-GK2FIKIQ.js} +10 -8
  41. package/dist/chunk-HIP62XAW.js +36 -0
  42. package/dist/{chunk-FDWTZVA6.js → chunk-IUOPF3DL.js} +1 -1
  43. package/dist/{chunk-N7RTLKMM.js → chunk-J53AJK3Q.js} +2 -2
  44. package/dist/{chunk-OFFNB2SU.js → chunk-JNL3RMDG.js} +241 -6
  45. package/dist/{chunk-HCOL75LA.js → chunk-JT7PV3GL.js} +3 -3
  46. package/dist/{chunk-6RIH2NDU.js → chunk-KHR4IJAW.js} +178 -122
  47. package/dist/{chunk-WIAO42MD.js → chunk-KZHYAGC3.js} +5 -5
  48. package/dist/{chunk-C4QGOXO2.js → chunk-KZQGUXG5.js} +494 -136
  49. package/dist/{chunk-2QJDC4NT.js → chunk-LY2GLSOS.js} +1 -1
  50. package/dist/{chunk-CHALU2TF.js → chunk-LZT3NUTE.js} +1 -1
  51. package/dist/{chunk-BTPZ74Z3.js → chunk-MJZQ44NV.js} +1 -1
  52. package/dist/{chunk-YOOW26KG.js → chunk-NELZN7SV.js} +2 -2
  53. package/dist/{chunk-VFCKXTBB.js → chunk-NL5F3AD4.js} +27 -38
  54. package/dist/{chunk-X3SCQP2A.js → chunk-NSWIF4VH.js} +1 -1
  55. package/dist/{chunk-L3RCYYON.js → chunk-NWEER3QY.js} +2 -2
  56. package/dist/{chunk-3O45NOL7.js → chunk-NZRAS3FB.js} +1 -1
  57. package/dist/chunk-NZZYJOMJ.js +136 -0
  58. package/dist/{chunk-5JTRGGTX.js → chunk-O6FWDZYJ.js} +1 -1
  59. package/dist/{chunk-2YTOJ447.js → chunk-OUMYTLPP.js} +3 -3
  60. package/dist/{chunk-QURKHVV5.js → chunk-OYEDHVSI.js} +1 -1
  61. package/dist/{chunk-BYRHCRU3.js → chunk-PBKOURSI.js} +2 -2
  62. package/dist/{chunk-MWNSVO4P.js → chunk-QMQZXNGU.js} +8 -8
  63. package/dist/{chunk-XDPXSQJO.js → chunk-QWCXGTOH.js} +1 -1
  64. package/dist/{chunk-V2D4QZBC.js → chunk-RAZVWSU5.js} +3 -3
  65. package/dist/{chunk-O433SZAJ.js → chunk-RERXOG54.js} +35 -16
  66. package/dist/{chunk-IK3SOMZ4.js → chunk-S354WIFQ.js} +19 -22
  67. package/dist/{chunk-QWQ6GQTI.js → chunk-T6AGUTZJ.js} +2 -4
  68. package/dist/{chunk-PCLYCYBK.js → chunk-TNDNFZOK.js} +4 -4
  69. package/dist/{chunk-SOAXQ7Q7.js → chunk-UWUKJDTA.js} +2 -2
  70. package/dist/{chunk-KR5ZHRF2.js → chunk-V7T7WA2K.js} +2 -2
  71. package/dist/{chunk-U7EGMXQR.js → chunk-VEQ7DKPG.js} +4 -17
  72. package/dist/{chunk-JYVGYKXG.js → chunk-W2LGJSEN.js} +73 -1
  73. package/dist/{chunk-ETPPGNJB.js → chunk-W5USVP6Z.js} +2 -2
  74. package/dist/{chunk-H5C375DW.js → chunk-WDFLYDKN.js} +5 -5
  75. package/dist/{chunk-BYVBP3U5.js → chunk-XDK2FUAC.js} +9 -9
  76. package/dist/{chunk-TDPVEMBS.js → chunk-XFCLWWL3.js} +1 -1
  77. package/dist/{chunk-TNHRCZT3.js → chunk-XRRDVRCY.js} +42 -2
  78. package/dist/{chunk-4D2T6Y5Y.js → chunk-YCSCDQDS.js} +6 -6
  79. package/dist/{chunk-XZNKIYIG.js → chunk-YMU42UU2.js} +1 -1
  80. package/dist/{chunk-ODR7V2JL.js → chunk-Z2R7CFWH.js} +1 -1
  81. package/dist/{chunk-X2ALZSKK.js → chunk-ZD7QKZSS.js} +3 -3
  82. package/dist/{chunk-45IAFBUP.js → chunk-ZDOWJ3NS.js} +14 -14
  83. package/dist/{chunk-A2DMF2Q6.js → chunk-ZGSLXWH2.js} +2 -2
  84. package/dist/{chunk-KRWEUM4R.js → chunk-ZXHEOTYW.js} +1 -1
  85. package/dist/{clean-SBFI3ZKR.js → clean-KBNXV6DP.js} +18 -20
  86. package/dist/cli.js +53 -53
  87. package/dist/{cloud-IRE4HLEK.js → cloud-BWWKDRR6.js} +4 -4
  88. package/dist/{cloudrun-GIHWEBGM.js → cloudrun-P35BPQCO.js} +5 -5
  89. package/dist/commands/contrast-audit.browser.js +18 -50
  90. package/dist/{compare-S6NM2FSV.js → compare-UWJRKF5K.js} +28 -30
  91. package/dist/{compiler-WCWRB2LZ.js → compiler-5TFPJPQQ.js} +5 -6
  92. package/dist/{component-WDFZQ2HN.js → component-SWOGSIO2.js} +3 -3
  93. package/dist/{compositions-RMUBDPD4.js → compositions-PIPVEXE3.js} +14 -16
  94. package/dist/{delete-SDNARGJ4.js → delete-OXIDK7N3.js} +4 -4
  95. package/dist/{deploy-4MK3Y67M.js → deploy-NKWMPAMH.js} +19 -5
  96. package/dist/{destroy-GFQLTIY3.js → destroy-UKP522AE.js} +4 -2
  97. package/dist/{deterministicFonts-RWGQPEZU.js → deterministicFonts-L7YEEFGI.js} +1 -1
  98. package/dist/{dist-FAN2FFAV.js → dist-2FMTAVGL.js} +3 -3
  99. package/dist/{dist-65ELHZOF.js → dist-U2HCECNB.js} +3 -3
  100. package/dist/{doctor-YPCZILXV.js → doctor-KLQLFPCF.js} +14 -16
  101. package/dist/{events-Q2K7SNEZ.js → events-EGCYD45B.js} +5 -6
  102. package/dist/{events-INXDJ44V.js → events-EVTTGISX.js} +4 -5
  103. package/dist/{feedback-FRGRCTIX.js → feedback-G4WZLOVD.js} +10 -11
  104. package/dist/{ffmpeg-7BYARPLM.js → ffmpeg-QIYSAPHO.js} +24 -4
  105. package/dist/{figma-C262EFOC.js → figma-Q4CKDE7M.js} +3 -3
  106. package/dist/fontLocalizeCli.js +12 -14
  107. package/dist/{get-ZIUUGSVI.js → get-NPRQH64W.js} +4 -4
  108. package/dist/{gpuPolicy-FRLW63IY.js → gpuPolicy-L72BQRFR.js} +9 -11
  109. package/dist/{grade-compare-DN342HJC.js → grade-compare-H4NJEL4P.js} +29 -31
  110. package/dist/{help-XQPBPSBP.js → help-2S3XXDEA.js} +1 -1
  111. package/dist/{history-PF5FUC6M.js → history-X4CGCVEQ.js} +8 -9
  112. package/dist/hyperframe-runtime.js +59 -59
  113. package/dist/hyperframe.manifest.json +1 -1
  114. package/dist/hyperframe.runtime.iife.js +59 -59
  115. package/dist/hyperframes-player.global.js +3 -3
  116. package/dist/{info-PC7IKGVB.js → info-YYUISGL7.js} +10 -11
  117. package/dist/{init-ORZX3PSQ.js → init-BAAI4ZMR.js} +34 -34
  118. package/dist/{inspect-L5GRL6SP.js → inspect-LXJ3XJUZ.js} +29 -31
  119. package/dist/{installer-KXS557O7.js → installer-NY5E5HCO.js} +5 -5
  120. package/dist/{keyframes-EIZDSXUH.js → keyframes-NXXJSQWG.js} +8 -9
  121. package/dist/{lambda-U3N7MRD7.js → lambda-PG3JKNWS.js} +16 -12
  122. package/dist/{layout-WHAVE2H5.js → layout-CBFO36IE.js} +29 -31
  123. package/dist/{lint-I7PYIW56.js → lint-Y6NWQTKF.js} +11 -12
  124. package/dist/{lintProject-7IEOAXJY.js → lintProject-ARKJXDQF.js} +3 -3
  125. package/dist/{list-XXQM3WDO.js → list-VY6KIYTX.js} +4 -4
  126. package/dist/{login-64NUUDYU.js → login-426Q3H3P.js} +4 -4
  127. package/dist/{manager-B6MVBM2E.js → manager-3RRUFZ4H.js} +25 -3
  128. package/dist/{media-treatment-5XIM4A3F.js → media-treatment-ZVIXMJZJ.js} +23 -18
  129. package/dist/{models-WRB3S67Z.js → models-KC2QBPVK.js} +13 -15
  130. package/dist/{motionShot-BOFBL73C.js → motionShot-3ZSLQJ4D.js} +19 -21
  131. package/dist/{normalize-audio-PP4BSZSU.js → normalize-audio-DRU5LFYU.js} +6 -7
  132. package/dist/{open-F4CUWMZF.js → open-LPBZQ4DC.js} +14 -15
  133. package/dist/{parakeetRunner-O7QYJ7V7.js → parakeetRunner-IFY6NK5G.js} +16 -18
  134. package/dist/{pipeline-BCHSFFT3.js → pipeline-AGMCDT5A.js} +11 -13
  135. package/dist/{play-PPBR2GJK.js → play-WVWXNQED.js} +21 -23
  136. package/dist/{policies-DCSIM4AB.js → policies-5NTZOHJA.js} +2 -0
  137. package/dist/preflight-I5JGCCKM.js +52 -0
  138. package/dist/{present-Y7VTCZRZ.js → present-IPTWJUKY.js} +17 -19
  139. package/dist/{preview-53AD4OME.js → preview-JVLRQVD7.js} +34 -25
  140. package/dist/{producer-WBJDNLBF.js → producer-HKGHSAON.js} +1 -1
  141. package/dist/{progress-5AM2MZ7V.js → progress-I37JB7R4.js} +1 -0
  142. package/dist/{projectConfig-4KUGQ4P6.js → projectConfig-HDALEM6S.js} +7 -7
  143. package/dist/{publication-OFDIFS4R.js → publication-NX4VC7UU.js} +3 -3
  144. package/dist/{publish-RWWTY743.js → publish-AZRRQUXM.js} +11 -11
  145. package/dist/{remove-background-G7VK3VKP.js → remove-background-WY7KA77M.js} +12 -14
  146. package/dist/{render-52W63I3Y.js → render-BEDATKWV.js} +14 -15
  147. package/dist/{render-6CXZNXXZ.js → render-HGT3EGIK.js} +9 -4
  148. package/dist/{render-7PPMS4P6.js → render-P3PFNCBA.js} +40 -38
  149. package/dist/{render-batch-2EJVUVVN.js → render-batch-MUCDZ2WF.js} +4 -4
  150. package/dist/renderSetupWorker.js +3 -3
  151. package/dist/{resolver-FF5GV6IA.js → resolver-FLQ42X2Y.js} +5 -5
  152. package/dist/sam-IKPEJRRO.js +21 -0
  153. package/dist/{screenshotCapture-XAYELJK7.js → screenshotCapture-HXEZ3TNJ.js} +20 -3
  154. package/dist/{sherpa-QJPI6B5S.js → sherpa-SQGEFX3S.js} +15 -17
  155. package/dist/skills/hyperframes/SKILL.md +42 -0
  156. package/dist/skills/hyperframes-cli/references/cloud.md +1 -1
  157. package/dist/skills/media-use/scripts/lib/recipe-store.mjs +5 -2
  158. package/dist/{skills-H6ZJNOLH.js → skills-D2FIQ2JN.js} +11 -10
  159. package/dist/{skillsUpdateCheck-4EBGMO2A.js → skillsUpdateCheck-2OLTHCBX.js} +3 -3
  160. package/dist/{snapshot-DZRUBWRH.js → snapshot-R7U73M3N.js} +32 -34
  161. package/dist/{src-WD5GOYON.js → src-4COYCAFY.js} +8 -10
  162. package/dist/{src-ZL7ACIZ3.js → src-WOD4AEI3.js} +11 -13
  163. package/dist/{staticProjectServer-72JF5PPO.js → staticProjectServer-DG4VZO4G.js} +15 -16
  164. package/dist/{status-RGHSK3DJ.js → status-BV7QAUQD.js} +2 -3
  165. package/dist/studio/assets/{hyperframes-player-B-wEZiX3.js → hyperframes-player-BByRREAU.js} +1 -1
  166. package/dist/studio/assets/{index-DPugLDRK.js → index-CULLUqJo.js} +1 -1
  167. package/dist/studio/assets/{index-Bvkb0Zxy.js → index-Wz-WEqHg.js} +97 -97
  168. package/dist/studio/index.html +1 -1
  169. package/dist/{studio-api-BL6CLOA6.js → studio-api-RGNBVLLL.js} +9 -10
  170. package/dist/{studioServer-TRWCZZXP.js → studioServer-LC5T4OXQ.js} +48 -50
  171. package/dist/{system-VRXC6S4A.js → system-7F3UEHQT.js} +2 -3
  172. package/dist/{telemetry-FDSW3ZOZ.js → telemetry-BLOE3TWY.js} +5 -6
  173. package/dist/{timeline-ZRN336EA.js → timeline-QQPPMADL.js} +124 -51
  174. package/dist/{tokens-RMLNQHIB.js → tokens-E3SHBFDU.js} +2 -2
  175. package/dist/{transcribe-AEHHCYAL.js → transcribe-D5N7SBDO.js} +22 -24
  176. package/dist/{transcribe-SOODKU6H.js → transcribe-O2AQ5E2L.js} +12 -14
  177. package/dist/{updateCheck-OSPEYRBY.js → updateCheck-ELOZ2CID.js} +2 -2
  178. package/dist/{upgrade-AK4S7DMX.js → upgrade-JDFZEPZY.js} +2 -2
  179. package/dist/{urlDownloader-FSCMLFG7.js → urlDownloader-32OGC3EW.js} +8 -10
  180. package/dist/{validate-JJTCKZIV.js → validate-LQQEABER.js} +23 -25
  181. package/dist/{video-ZDM5CFI2.js → video-HXIM27TO.js} +9 -11
  182. package/package.json +1 -1
  183. package/dist/chunk-7JDEZNBY.js +0 -3805
  184. package/dist/chunk-7KDQAD2W.js +0 -81
  185. package/dist/chunk-BXCMXMJQ.js +0 -73
  186. package/dist/chunk-KCF6GHJP.js +0 -250
  187. package/dist/preflight-G5KP7ZKA.js +0 -32
@@ -12,23 +12,23 @@ import {
12
12
  ensureHfIds,
13
13
  mintHfId,
14
14
  walkCompositionDescendants
15
- } from "./chunk-KCF6GHJP.js";
15
+ } from "./chunk-JNL3RMDG.js";
16
16
  import {
17
17
  isAllowedHtmlAttribute,
18
18
  isSafeAttributeValue,
19
19
  sanitizeRichTextChildren
20
- } from "./chunk-U7EGMXQR.js";
20
+ } from "./chunk-VEQ7DKPG.js";
21
21
  import {
22
22
  decodedUrlPath,
23
23
  removeElementWithGsapCascade
24
24
  } from "./chunk-YMS5FOMC.js";
25
25
  import {
26
26
  require_dist
27
- } from "./chunk-2TNPXPI5.js";
27
+ } from "./chunk-GK2FIKIQ.js";
28
28
  import {
29
29
  readClipTiming,
30
30
  writeClipTiming
31
- } from "./chunk-QVPOR7WE.js";
31
+ } from "./chunk-32GKETR7.js";
32
32
  import {
33
33
  readMediaOffsetSeconds,
34
34
  readPlaybackRate
@@ -8,10 +8,10 @@ import {
8
8
  DEFAULT_VP9_CPU_USED,
9
9
  isHttpUrl,
10
10
  runFfmpeg
11
- } from "./chunk-O433SZAJ.js";
11
+ } from "./chunk-RERXOG54.js";
12
12
  import {
13
13
  parseAnimatedGifMetadata
14
- } from "./chunk-U7EGMXQR.js";
14
+ } from "./chunk-VEQ7DKPG.js";
15
15
  import {
16
16
  parseHTML
17
17
  } from "./chunk-SDYDNHEE.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveConfig,
9
9
  usesSoftwareWebGpu
10
- } from "./chunk-O433SZAJ.js";
10
+ } from "./chunk-RERXOG54.js";
11
11
 
12
12
  // src/browser/gpuPolicy.ts
13
13
  function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCER_BROWSER_GPU_MODE) {
@@ -17,7 +17,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
17
17
  return "auto";
18
18
  }
19
19
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath, probeLifecycle) {
20
- const { resolveBrowserGpuMode } = await import("./src-WD5GOYON.js");
20
+ const { resolveBrowserGpuMode } = await import("./src-4COYCAFY.js");
21
21
  return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
22
22
  }
23
23
  function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-7JDEZNBY.js";
12
+ } from "./chunk-EEXE43II.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -20,8 +20,9 @@ import {
20
20
  } from "./chunk-YMS5FOMC.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
- parseStartExpression
24
- } from "./chunk-QVPOR7WE.js";
23
+ parseStartExpression,
24
+ sameInstant
25
+ } from "./chunk-32GKETR7.js";
25
26
  import {
26
27
  readMediaOffsetSeconds
27
28
  } from "./chunk-BSQ7XANM.js";
@@ -4583,17 +4584,6 @@ function createRuntimeStartTimeResolver(params) {
4583
4584
 
4584
4585
  // ../core/dist/clipFacts.js
4585
4586
  var byStart = (a, b) => a.start - b.start || a.trackIndex - b.trackIndex;
4586
- var instantTolerance = (time) => 4 * Number.EPSILON * Math.max(1, Math.abs(time));
4587
- function sameInstant(a, b) {
4588
- if (!Number.isFinite(a) || !Number.isFinite(b))
4589
- return a === b;
4590
- return Math.abs(a - b) <= instantTolerance(Math.max(Math.abs(a), Math.abs(b)));
4591
- }
4592
- var isBefore = (a, b) => a < b && !sameInstant(a, b);
4593
- function spansShareTime(aStart, aEnd, bStart, bEnd) {
4594
- return isBefore(Math.max(aStart, bStart), Math.min(aEnd, bEnd));
4595
- }
4596
- var isInsideSpan = (time, start, end) => isBefore(start, time) && isBefore(time, end);
4597
4587
 
4598
4588
  // ../core/dist/runtime/clipWindow.js
4599
4589
  var hasClipStarted = (time, start) => time >= start || sameInstant(time, start);
@@ -5614,9 +5604,6 @@ export {
5614
5604
  cutToHostSlots,
5615
5605
  createRuntimeStartTimeResolver,
5616
5606
  byStart,
5617
- sameInstant,
5618
- spansShareTime,
5619
- isInsideSpan,
5620
5607
  hasClipStarted,
5621
5608
  isInClipWindow,
5622
5609
  isClipVisibleAt,
@@ -102,9 +102,81 @@ function isLowMemorySystem(totalMb = getSystemTotalMb()) {
102
102
  return totalMb <= LOW_MEMORY_TOTAL_MB_THRESHOLD;
103
103
  }
104
104
 
105
+ // ../engine/src/services/wslHost.ts
106
+ import { accessSync, constants, existsSync, readFileSync as readFileSync2, statSync } from "fs";
107
+ import { platform, release } from "os";
108
+ function groupName(gid) {
109
+ try {
110
+ const line = readFileSync2("/etc/group", "utf-8").split("\n").find((entry) => entry.split(":")[2] === String(gid));
111
+ return line?.split(":")[0] || String(gid);
112
+ } catch {
113
+ return String(gid);
114
+ }
115
+ }
116
+ var realHost = {
117
+ get platform() {
118
+ return platform();
119
+ },
120
+ get release() {
121
+ return release();
122
+ },
123
+ readProcVersion: () => readFileSync2("/proc/version", "utf-8"),
124
+ renderNodeAccess: (path) => {
125
+ if (!existsSync(path)) return { state: "missing" };
126
+ try {
127
+ accessSync(path, constants.R_OK | constants.W_OK);
128
+ return { state: "read-write" };
129
+ } catch {
130
+ const gid = statSync(path, { throwIfNoEntry: false })?.gid ?? -1;
131
+ return {
132
+ state: "denied",
133
+ group: groupName(gid),
134
+ userInGroup: process.getgroups?.().includes(gid) ?? false
135
+ };
136
+ }
137
+ }
138
+ };
139
+ function detectWsl(host = realHost) {
140
+ if (host.platform !== "linux") return false;
141
+ try {
142
+ const osRelease = host.release.toLowerCase();
143
+ if (osRelease.includes("microsoft") || osRelease.includes("wsl")) return true;
144
+ const procVersion = host.readProcVersion().toLowerCase();
145
+ return procVersion.includes("microsoft") || procVersion.includes("wsl");
146
+ } catch {
147
+ return false;
148
+ }
149
+ }
150
+ var RENDER_NODE = "/dev/dri/renderD128";
151
+ var NATIVE_WINDOWS = "render from native Windows (project copied to a Windows drive, run from PowerShell), where Chrome uses the GPU through Direct3D.";
152
+ function describeWslGpuAccess(host = realHost) {
153
+ if (!detectWsl(host)) return null;
154
+ const access = host.renderNodeAccess(RENDER_NODE);
155
+ if (access.state === "denied" && !access.userInGroup) {
156
+ return [
157
+ ` Your Linux user cannot read and write ${RENDER_NODE} and is not in its group ("${access.group}"), which can stop Mesa from reaching the GPU.`,
158
+ ` Fix: run \`sudo usermod -aG ${access.group} $USER\`, then \`wsl --shutdown\` from Windows, reopen WSL and render again.`,
159
+ ` Or ${NATIVE_WINDOWS}`
160
+ ];
161
+ }
162
+ if (access.state === "denied") {
163
+ return [
164
+ ` Your Linux user is in the "${access.group}" group but still cannot read and write ${RENDER_NODE}; check its permissions with \`ls -l ${RENDER_NODE}\`.`,
165
+ ` Or ${NATIVE_WINDOWS}`
166
+ ];
167
+ }
168
+ const seen = access.state === "missing" ? "does not exist" : "is readable and writable";
169
+ return [
170
+ ` ${RENDER_NODE} ${seen}, so file permissions are not the cause.`,
171
+ ` To use the GPU, ${NATIVE_WINDOWS}`
172
+ ];
173
+ }
174
+
105
175
  export {
106
176
  getCgroupMemoryLimitMb,
107
177
  getSystemTotalMb,
108
178
  LOW_MEMORY_TOTAL_MB_THRESHOLD,
109
- isLowMemorySystem
179
+ isLowMemorySystem,
180
+ detectWsl,
181
+ describeWslGpuAccess
110
182
  };
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-VWG7OQKU.js";
10
10
  import {
11
11
  getSystemMeta
12
- } from "./chunk-QWQ6GQTI.js";
12
+ } from "./chunk-T6AGUTZJ.js";
13
13
  import {
14
14
  getInvocationId
15
15
  } from "./chunk-54HJ63Q2.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-XUXGIA7H.js";
30
30
  import {
31
31
  VERSION
32
- } from "./chunk-YOOW26KG.js";
32
+ } from "./chunk-NELZN7SV.js";
33
33
  import {
34
34
  CANARIES,
35
35
  canaryEnvVar,
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  readCompositionFps
9
- } from "./chunk-CBOYQOLY.js";
9
+ } from "./chunk-DQY6WTF7.js";
10
10
  import {
11
11
  findSyncPartner,
12
12
  readLinkTiming,
@@ -18,7 +18,7 @@ import {
18
18
  extractMediaMetadata,
19
19
  resolveReferencedDuration,
20
20
  resolveReferencedStart
21
- } from "./chunk-O433SZAJ.js";
21
+ } from "./chunk-RERXOG54.js";
22
22
  import {
23
23
  byStart,
24
24
  compositionOriginSeconds,
@@ -27,14 +27,14 @@ import {
27
27
  hostInPointSeconds,
28
28
  parseFpsWithDefault,
29
29
  resolveMediaStartSeconds
30
- } from "./chunk-U7EGMXQR.js";
30
+ } from "./chunk-VEQ7DKPG.js";
31
31
  import {
32
32
  HF_AUDIO_AUTOMATION_ATTR,
33
33
  HF_AUDIO_FX_ATTR,
34
34
  parseAudioFxChain,
35
35
  parseAutomation,
36
36
  resolveAutomation
37
- } from "./chunk-7JDEZNBY.js";
37
+ } from "./chunk-EEXE43II.js";
38
38
  import {
39
39
  isSubCompositionHost,
40
40
  topLevelElements,
@@ -45,7 +45,7 @@ import {
45
45
  } from "./chunk-6BNTGNGD.js";
46
46
  import {
47
47
  parseNumeric
48
- } from "./chunk-QVPOR7WE.js";
48
+ } from "./chunk-32GKETR7.js";
49
49
  import {
50
50
  readMediaOffsetSeconds,
51
51
  readPlaybackRate,
@@ -10,21 +10,21 @@ import {
10
10
  seekCompositionTimeline,
11
11
  waitForCompositionFonts,
12
12
  waitForRuntimeReady
13
- } from "./chunk-6RIH2NDU.js";
13
+ } from "./chunk-KHR4IJAW.js";
14
14
  import {
15
15
  gotoWhenSent,
16
16
  launchManagedBrowser,
17
17
  resolveManagedGpuMode
18
- } from "./chunk-TNHRCZT3.js";
18
+ } from "./chunk-XRRDVRCY.js";
19
19
  import {
20
20
  pageNavigationTimeoutMs
21
- } from "./chunk-V2D4QZBC.js";
21
+ } from "./chunk-RAZVWSU5.js";
22
22
  import {
23
23
  resolveProject
24
- } from "./chunk-6JQDH4O6.js";
24
+ } from "./chunk-7E4YFL4U.js";
25
25
  import {
26
26
  serveStaticProjectHtml
27
- } from "./chunk-2YTOJ447.js";
27
+ } from "./chunk-OUMYTLPP.js";
28
28
  import {
29
29
  defineCommand
30
30
  } from "./chunk-S3S4TGEH.js";
@@ -38,7 +38,7 @@ import {
38
38
  import {
39
39
  printDeprecationNotice,
40
40
  withMeta
41
- } from "./chunk-XZNKIYIG.js";
41
+ } from "./chunk-YMU42UU2.js";
42
42
  import {
43
43
  normalizeErrorMessage
44
44
  } from "./chunk-KNU5COPB.js";
@@ -709,7 +709,7 @@ async function collectTweenBoundaries(page) {
709
709
  });
710
710
  }
711
711
  async function bundleProjectHtml(projectDir) {
712
- const { bundleToSingleHtml } = await import("./compiler-WCWRB2LZ.js");
712
+ const { bundleToSingleHtml } = await import("./compiler-5TFPJPQQ.js");
713
713
  return bundleToSingleHtml(projectDir);
714
714
  }
715
715
  async function alignViewportToComposition(page, url) {
@@ -728,13 +728,13 @@ async function alignViewportToComposition(page, url) {
728
728
  async function runLayoutAudit(projectDir, opts) {
729
729
  const { ensureBrowser } = await import("./manager-HEUPD2YB.js");
730
730
  const puppeteer = await import("puppeteer-core");
731
- const { buildChromeArgs } = await import("./src-WD5GOYON.js");
731
+ const { buildChromeArgs } = await import("./src-4COYCAFY.js");
732
732
  const {
733
733
  assertWebGpuAdapterAvailable,
734
734
  compositionRequiresWebGpu,
735
735
  resolveLocalBrowserGpuMode,
736
736
  resolveLocalWebGpu
737
- } = await import("./gpuPolicy-FRLW63IY.js");
737
+ } = await import("./gpuPolicy-L72BQRFR.js");
738
738
  const html = await bundleProjectHtml(projectDir);
739
739
  const server = await serveStaticProjectHtml(
740
740
  projectDir,
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-PBN6GBJE.js";
22
22
 
23
23
  // src/cloud/poll.ts
24
- var DEFAULT_POLL_INTERVAL_MS = 1e4;
24
+ var DEFAULT_POLL_INTERVAL_MS = 2e3;
25
25
  var DEFAULT_MAX_WAIT_MS = 60 * 60 * 1e3;
26
26
  var TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed"]);
27
27
  var PollTimeoutError = class extends Error {
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-BRHI7EIA.js";
14
14
  import {
15
15
  resolveCaptureBrowserGpuMode
16
- } from "./chunk-KR5ZHRF2.js";
16
+ } from "./chunk-V7T7WA2K.js";
17
17
  import {
18
18
  isNavigationTimeoutError,
19
19
  withRemainingBudget
@@ -237,6 +237,8 @@ async function navigateForCapture(page, url, totalTimeoutMs) {
237
237
  };
238
238
  }
239
239
  var PUPPETEER_LAUNCH_DEFAULT_TIMEOUT_MS = 3e4;
240
+ var PAGE_LOAD_BLOCKING_TYPES = /* @__PURE__ */ new Set(["Document", "Script", "Stylesheet"]);
241
+ var NAMED_BLOCKING_REQUESTS = 3;
240
242
  var SENT_OR_ANSWERED_WITHOUT_NETWORK = [
241
243
  "Network.requestWillBeSentExtraInfo",
242
244
  "Network.responseReceived"
@@ -246,6 +248,7 @@ async function gotoWhenSent(page, url, timeoutMs, coldChromeFirstRequestTimeoutM
246
248
  try {
247
249
  await cdp.send("Network.enable");
248
250
  const sent = documentRequestSent(cdp);
251
+ const unfinished = unfinishedPageLoadRequests(cdp);
249
252
  const navigation = page.goto(url, { waitUntil: "domcontentloaded", timeout: 0 });
250
253
  const navigationAwaitedBelow = navigation.catch(() => void 0);
251
254
  await withRemainingBudget(
@@ -260,7 +263,7 @@ async function gotoWhenSent(page, url, timeoutMs, coldChromeFirstRequestTimeoutM
260
263
  navigation,
261
264
  timeoutMs,
262
265
  "loading the page",
263
- () => new TimeoutError(`Navigation timeout of ${timeoutMs} ms exceeded`)
266
+ () => new TimeoutError(pageLoadTimeoutMessage(timeoutMs, url, unfinished()))
264
267
  );
265
268
  } finally {
266
269
  await cdp.detach().catch(() => void 0);
@@ -285,6 +288,43 @@ function documentRequestSent(cdp) {
285
288
  }
286
289
  });
287
290
  }
291
+ function unfinishedPageLoadRequests(cdp) {
292
+ const unfinished = /* @__PURE__ */ new Map();
293
+ cdp.on("Network.requestWillBeSent", ({ requestId, request, type }) => {
294
+ if (type && PAGE_LOAD_BLOCKING_TYPES.has(type)) unfinished.set(requestId, request.url);
295
+ });
296
+ for (const event of ["Network.loadingFinished", "Network.loadingFailed"]) {
297
+ cdp.on(event, ({ requestId }) => unfinished.delete(requestId));
298
+ }
299
+ return () => [...unfinished.values()];
300
+ }
301
+ function urlWithoutSecrets(raw) {
302
+ try {
303
+ const url = new URL(raw);
304
+ if (url.protocol !== "http:" && url.protocol !== "https:") return `${url.protocol}\u2026`;
305
+ return `${url.origin}${url.pathname}${url.search ? "?\u2026" : ""}`;
306
+ } catch {
307
+ return "(unreadable URL)";
308
+ }
309
+ }
310
+ function originOf(raw) {
311
+ try {
312
+ return new URL(raw).origin;
313
+ } catch {
314
+ return null;
315
+ }
316
+ }
317
+ function pageLoadTimeoutMessage(timeoutMs, pageUrl, waitingOn) {
318
+ const exceeded = `Navigation timeout of ${timeoutMs} ms exceeded`;
319
+ if (waitingOn.length === 0) return exceeded;
320
+ const named = waitingOn.slice(0, NAMED_BLOCKING_REQUESTS).map(urlWithoutSecrets).join(", ");
321
+ const unnamed = waitingOn.length - NAMED_BLOCKING_REQUESTS;
322
+ const more = unnamed > 0 ? ` and ${unnamed} more` : "";
323
+ const pageOrigin = new URL(pageUrl).origin;
324
+ const fromAnotherServer = waitingOn.some((request) => originOf(request) !== pageOrigin);
325
+ const advice = fromAnotherServer ? " A <script> or stylesheet from another server holds the page until it arrives; serve it from the project instead." : "";
326
+ return `${exceeded} while the page was still loading ${named}${more}.${advice}`;
327
+ }
288
328
 
289
329
  export {
290
330
  BrowserCleanupError,
@@ -16,13 +16,13 @@ import {
16
16
  } from "./chunk-5ETJX6WM.js";
17
17
  import {
18
18
  runEnvironmentChecks
19
- } from "./chunk-A2DMF2Q6.js";
19
+ } from "./chunk-ZGSLXWH2.js";
20
20
  import {
21
21
  getAvailableMemoryMb,
22
22
  getFreeDiskMb,
23
23
  getShmSizeMb,
24
24
  getSystemMeta
25
- } from "./chunk-QWQ6GQTI.js";
25
+ } from "./chunk-T6AGUTZJ.js";
26
26
  import {
27
27
  defineCommand
28
28
  } from "./chunk-S3S4TGEH.js";
@@ -32,21 +32,21 @@ import {
32
32
  import {
33
33
  getUpdateMeta,
34
34
  withMeta
35
- } from "./chunk-XZNKIYIG.js";
35
+ } from "./chunk-YMU42UU2.js";
36
36
  import {
37
37
  CONFIG_PATH,
38
38
  withFileLock
39
39
  } from "./chunk-XUXGIA7H.js";
40
40
  import {
41
41
  VERSION
42
- } from "./chunk-YOOW26KG.js";
42
+ } from "./chunk-NELZN7SV.js";
43
43
  import {
44
44
  OPTIONAL_PACKAGES,
45
45
  installedOptionalPackageVersion
46
46
  } from "./chunk-3DKN5WKL.js";
47
47
  import {
48
48
  resolveExtractCacheDir
49
- } from "./chunk-O433SZAJ.js";
49
+ } from "./chunk-RERXOG54.js";
50
50
  import {
51
51
  normalizeErrorMessage
52
52
  } from "./chunk-KNU5COPB.js";
@@ -232,7 +232,7 @@ function checkEnvironment() {
232
232
  return { ok: true, detail: parts.join(" \xB7 ") };
233
233
  }
234
234
  async function checkWhisper() {
235
- const { findWhisper, getInstallInstructions } = await import("./manager-B6MVBM2E.js");
235
+ const { findWhisper, getInstallInstructions } = await import("./manager-3RRUFZ4H.js");
236
236
  const result = findWhisper();
237
237
  if (result) {
238
238
  return { ok: true, detail: result.executablePath };
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-YOOW26KG.js";
20
+ } from "./chunk-NELZN7SV.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  withOwner
9
- } from "./chunk-FDWTZVA6.js";
9
+ } from "./chunk-IUOPF3DL.js";
10
10
  import {
11
11
  HistoryBusyError,
12
12
  beginArtifactCapture
@@ -7,14 +7,14 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  trackLintReport,
9
9
  trackLintRuleStreak
10
- } from "./chunk-BYRHCRU3.js";
10
+ } from "./chunk-PBKOURSI.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-ETPPGNJB.js";
13
+ } from "./chunk-W5USVP6Z.js";
14
14
  import {
15
15
  LINT_RULE_COUNT,
16
16
  LINT_RULE_GROUP_COUNTS
17
- } from "./chunk-2TNPXPI5.js";
17
+ } from "./chunk-GK2FIKIQ.js";
18
18
 
19
19
  // src/telemetry/lintStreaks.ts
20
20
  import { createHash } from "crypto";
@@ -9,20 +9,20 @@ import {
9
9
  resolveCliChromeGpuMode,
10
10
  seekCompositionTimeline,
11
11
  waitForRuntimeReady
12
- } from "./chunk-6RIH2NDU.js";
13
- import {
14
- launchManagedBrowser,
15
- resolveManagedGpuMode
16
- } from "./chunk-TNHRCZT3.js";
12
+ } from "./chunk-KHR4IJAW.js";
17
13
  import {
18
14
  resolveCompositionViewportFromHtml
19
15
  } from "./chunk-FH7WODJH.js";
16
+ import {
17
+ launchManagedBrowser,
18
+ resolveManagedGpuMode
19
+ } from "./chunk-XRRDVRCY.js";
20
20
  import {
21
21
  pageNavigationTimeoutMs
22
- } from "./chunk-V2D4QZBC.js";
22
+ } from "./chunk-RAZVWSU5.js";
23
23
  import {
24
24
  resolveProject
25
- } from "./chunk-6JQDH4O6.js";
25
+ } from "./chunk-7E4YFL4U.js";
26
26
  import {
27
27
  defineCommand
28
28
  } from "./chunk-S3S4TGEH.js";
@@ -36,7 +36,7 @@ import {
36
36
  import {
37
37
  printDeprecationNotice,
38
38
  withMeta
39
- } from "./chunk-XZNKIYIG.js";
39
+ } from "./chunk-YMU42UU2.js";
40
40
  import {
41
41
  decodeWellFormedEscapes
42
42
  } from "./chunk-BSQ7XANM.js";
@@ -227,7 +227,7 @@ function extractCompositionErrorsFromLint(lintResult) {
227
227
  async function localizeRemoteAssets(html) {
228
228
  let dir;
229
229
  try {
230
- const { loadProducer } = await import("./producer-WBJDNLBF.js");
230
+ const { loadProducer } = await import("./producer-HKGHSAON.js");
231
231
  const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
232
232
  dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
233
233
  const assetDir = dir;
@@ -248,10 +248,10 @@ async function localizeRemoteAssets(html) {
248
248
  }
249
249
  async function validateInBrowser(project, opts) {
250
250
  const projectDir = project.dir;
251
- const { bundleToSingleHtml } = await import("./compiler-WCWRB2LZ.js");
251
+ const { bundleToSingleHtml } = await import("./compiler-5TFPJPQQ.js");
252
252
  const { ensureBrowser } = await import("./manager-HEUPD2YB.js");
253
- const { serveStaticProjectHtml } = await import("./staticProjectServer-72JF5PPO.js");
254
- const { lintProject } = await import("./lintProject-7IEOAXJY.js");
253
+ const { serveStaticProjectHtml } = await import("./staticProjectServer-DG4VZO4G.js");
254
+ const { lintProject } = await import("./lintProject-ARKJXDQF.js");
255
255
  const lintResult = await lintProject(projectDir);
256
256
  const compositionErrors = extractCompositionErrorsFromLint(lintResult);
257
257
  const html = await bundleToSingleHtml(projectDir);
@@ -272,9 +272,9 @@ async function validateInBrowser(project, opts) {
272
272
  try {
273
273
  const browser = await ensureBrowser();
274
274
  const puppeteer = await import("puppeteer-core");
275
- const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-WD5GOYON.js");
275
+ const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-4COYCAFY.js");
276
276
  const requestedGpuMode = resolveCliChromeGpuMode();
277
- const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-FRLW63IY.js");
277
+ const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-L72BQRFR.js");
278
278
  const resolvedGpuMode = await resolveManagedGpuMode(requestedGpuMode, browser.executablePath);
279
279
  const requiresWebGpu = compositionRequiresWebGpu(html);
280
280
  const { gpuConfig, softwareWebGpu } = resolveLocalWebGpu(resolvedGpuMode, requiresWebGpu);
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getFreeDiskMb
9
- } from "./chunk-QWQ6GQTI.js";
9
+ } from "./chunk-T6AGUTZJ.js";
10
10
  import {
11
11
  ensureBrowser,
12
12
  findBrowser
@@ -18,7 +18,7 @@ import {
18
18
  distroLabel,
19
19
  getFFmpegInstallHint,
20
20
  parseLddMissingLibs
21
- } from "./chunk-IK3SOMZ4.js";
21
+ } from "./chunk-S354WIFQ.js";
22
22
  import {
23
23
  runCancellableProcess
24
24
  } from "./chunk-D3ZWBHZP.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-HCOL75LA.js";
10
+ } from "./chunk-JT7PV3GL.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";