hyperframes 0.8.111 → 0.8.112

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 (182) hide show
  1. package/dist/{add-M5WN2AM2.js → add-NIVC2YMT.js} +15 -15
  2. package/dist/{agentPromptGenerator-QL2KAWEP.js → agentPromptGenerator-VIIPZCJ3.js} +1 -1
  3. package/dist/{animatedGifPrep-NMGFOSIL.js → animatedGifPrep-NWAJKCHG.js} +6 -6
  4. package/dist/{asset-GUASPIKN.js → asset-O6JJKF3Z.js} +2 -2
  5. package/dist/{assetCataloger-FXEHOUA3.js → assetCataloger-DJSPW3RL.js} +2 -2
  6. package/dist/{auth-3YMEVUKJ.js → auth-6XRZQQQS.js} +2 -2
  7. package/dist/{autoUpdate-FYCGHBPC.js → autoUpdate-GZHLQBLS.js} +2 -2
  8. package/dist/{backgroundChecks-ZLYIRMTS.js → backgroundChecks-4QQRGJ5S.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-ZTHFMHZY.js → batchRender-PJGNXN7F.js} +3 -3
  11. package/dist/{beats-GXY5ZBPB.js → beats-VYR6B4UB.js} +10 -10
  12. package/dist/{benchmark-MJFVBVNW.js → benchmark-CGP2NKIP.js} +12 -12
  13. package/dist/{browser-ZDI7IX6H.js → browser-ZWD4ETXK.js} +9 -9
  14. package/dist/{bundleWithLocalizedFonts-4Q3ETTHW.js → bundleWithLocalizedFonts-JWHKLSZM.js} +2 -2
  15. package/dist/{capture-4OPH4PMK.js → capture-C4MPRLJV.js} +40 -42
  16. package/dist/{capture-OG6532RA.js → capture-IQ7AUK6M.js} +3 -3
  17. package/dist/{captureFile-JOPOCRU7.js → captureFile-LYOJOUIE.js} +3 -1
  18. package/dist/{catalog-23DP7KCW.js → catalog-RZ7PWQMS.js} +15 -15
  19. package/dist/{check-5X6BJA2P.js → check-7UU4SSO6.js} +50 -38
  20. package/dist/{checkBrowser-3QHBTMYM.js → checkBrowser-6KYNYIU7.js} +32 -31
  21. package/dist/{chunk-CFC3EEDQ.js → chunk-2BEOCUAG.js} +1 -1
  22. package/dist/{chunk-6CI65KCP.js → chunk-2GXKCB7J.js} +1 -1
  23. package/dist/{chunk-HQGJLZB6.js → chunk-36XLW2TP.js} +2 -2
  24. package/dist/{chunk-NH75EKOP.js → chunk-3Q7HXIXZ.js} +1 -1
  25. package/dist/{chunk-2JXJ5SGK.js → chunk-4BXTKKRD.js} +6 -6
  26. package/dist/{chunk-XYVFPDNU.js → chunk-5SDXALUQ.js} +1 -1
  27. package/dist/{chunk-ITBEN3QD.js → chunk-7G25WGTA.js} +2 -2
  28. package/dist/{chunk-YIXEH4TF.js → chunk-7OJSZTJK.js} +2 -2
  29. package/dist/{chunk-5ER3PYYP.js → chunk-7VIXEM6Q.js} +1 -1
  30. package/dist/{chunk-HPEHQUJX.js → chunk-A6GVXZZ3.js} +1 -1
  31. package/dist/{chunk-YLOSZHA2.js → chunk-BD3MHTSR.js} +2 -2
  32. package/dist/{chunk-Q2QNAFQV.js → chunk-BLI5XATY.js} +1 -1
  33. package/dist/{chunk-N32ITJ7L.js → chunk-BSBIG74E.js} +15 -12
  34. package/dist/{chunk-ZU54D6MI.js → chunk-BZGWHPRW.js} +3 -3
  35. package/dist/{chunk-B25H4M4V.js → chunk-C4JINRJK.js} +1 -1
  36. package/dist/{chunk-5ON5GH3X.js → chunk-CS4IE5G7.js} +1 -1
  37. package/dist/{chunk-EE6SV6KW.js → chunk-E664L6K3.js} +3 -3
  38. package/dist/{chunk-J4RPT4QW.js → chunk-E6RPWJVC.js} +1 -1
  39. package/dist/{chunk-TQKKC4MB.js → chunk-EA4LCCJI.js} +5 -5
  40. package/dist/{chunk-LFUXJBYA.js → chunk-GODQ5XA4.js} +16 -8
  41. package/dist/{chunk-LAQEZHOH.js → chunk-H3WFEPV2.js} +1 -1
  42. package/dist/{chunk-U4TDAJZE.js → chunk-J2S4MY2M.js} +2 -2
  43. package/dist/{chunk-CQRF7VU3.js → chunk-JRULOVZK.js} +1 -1
  44. package/dist/{chunk-C4TZBEHY.js → chunk-KIIKVKHB.js} +2 -2
  45. package/dist/{chunk-M224DAMG.js → chunk-KPSRL2NB.js} +1 -1
  46. package/dist/{chunk-JTTAS7N6.js → chunk-KQ3VNA6R.js} +1 -1
  47. package/dist/{chunk-ZXSNGIYS.js → chunk-KS5HFREQ.js} +4 -4
  48. package/dist/{chunk-AMSBTN6L.js → chunk-LYBFDHXD.js} +3 -3
  49. package/dist/{chunk-AWUZ3AUD.js → chunk-M4RYK5OF.js} +1 -1
  50. package/dist/chunk-MRF4AMKD.js +104 -0
  51. package/dist/{chunk-JWPSBANO.js → chunk-NOOBRCMC.js} +3 -3
  52. package/dist/{chunk-TIZQC44K.js → chunk-OWN3ZIIK.js} +1 -1
  53. package/dist/{chunk-NIGUNLOO.js → chunk-OXZO4WQI.js} +9 -8
  54. package/dist/{chunk-JUP65S7D.js → chunk-P3AQVFY2.js} +3 -3
  55. package/dist/{chunk-OF3RKOPU.js → chunk-P74PW7KR.js} +189 -111
  56. package/dist/{chunk-PFEKMIN5.js → chunk-POEGJGEA.js} +1 -1
  57. package/dist/{chunk-BQYGGX3B.js → chunk-PRETPA7Z.js} +1 -1
  58. package/dist/{chunk-QMAXDSCH.js → chunk-Q7U7QRC7.js} +2 -2
  59. package/dist/chunk-S6TH5G6Z.js +3541 -0
  60. package/dist/{chunk-MGFVNTIB.js → chunk-TSZU5JMC.js} +2 -2
  61. package/dist/{chunk-MR2LOG32.js → chunk-TXVN43SX.js} +8 -8
  62. package/dist/{chunk-V4HKT2LV.js → chunk-UTXMQVB2.js} +9 -9
  63. package/dist/{chunk-I5WWEBDG.js → chunk-VHRHI3CU.js} +1 -1
  64. package/dist/{chunk-E4AYSXMS.js → chunk-VW6CVKVA.js} +2 -2
  65. package/dist/{chunk-BAVM2XBR.js → chunk-YAFO7V4A.js} +209 -33
  66. package/dist/{chunk-32P7FTFC.js → chunk-YQ5MFXWG.js} +8 -7
  67. package/dist/{clean-ATMEGSGP.js → clean-263PH5CR.js} +15 -15
  68. package/dist/cli.js +50 -50
  69. package/dist/{cloud-ZFGUHACY.js → cloud-STLYEQNN.js} +4 -4
  70. package/dist/{cloudrun-LVZ4OPPC.js → cloudrun-7ZVNB6FY.js} +3 -3
  71. package/dist/commands/layout-audit.browser.js +178 -202
  72. package/dist/commands/motion-sample.browser.js +24 -71
  73. package/dist/commands/motion-signature.browser.js +374 -0
  74. package/dist/{compare-55LEUY7M.js → compare-33JLJ52D.js} +26 -26
  75. package/dist/{compiler-C32VXLE2.js → compiler-H3QAMMC2.js} +3 -3
  76. package/dist/{component-3EDFANIC.js → component-O5JLM26B.js} +3 -3
  77. package/dist/{compositions-OPU6U6GM.js → compositions-CN4ZVT5G.js} +11 -11
  78. package/dist/{contactSheet-54AJDSR5.js → contactSheet-27SRU7A4.js} +2 -2
  79. package/dist/{delete-PJE4P3HH.js → delete-Z23A45R3.js} +2 -2
  80. package/dist/{deploy-4T3RMA5G.js → deploy-PJLSZMUH.js} +1 -1
  81. package/dist/{destroy-EYDBVHGF.js → destroy-IPUDK6YN.js} +1 -1
  82. package/dist/{dist-YUIPB7OX.js → dist-7VEVT4NT.js} +2 -2
  83. package/dist/{dist-FMHQMEMX.js → dist-ICXYT7XK.js} +1 -1
  84. package/dist/docker/Dockerfile.render +1 -1
  85. package/dist/{doctor-EIVBJJAF.js → doctor-6QLXSGPK.js} +10 -10
  86. package/dist/{events-ISMT4RDW.js → events-EAAIWITP.js} +8 -8
  87. package/dist/{events-NP666TF4.js → events-UA4DJUO2.js} +9 -9
  88. package/dist/{feedback-4OSLMKBW.js → feedback-2CIRCBHY.js} +10 -10
  89. package/dist/{figma-Y7ZHFCOU.js → figma-DFCCII66.js} +3 -3
  90. package/dist/fontLocalizeCli.js +8 -8
  91. package/dist/{get-E4GBRHQK.js → get-UQ2AAXWM.js} +2 -2
  92. package/dist/{gpuPolicy-CA6KRFQQ.js → gpuPolicy-CPCLBMS5.js} +6 -6
  93. package/dist/{grade-compare-B2EHEOLR.js → grade-compare-THUUFHO3.js} +24 -24
  94. package/dist/{help-ISGUWGOR.js → help-SR2MRL3U.js} +1 -1
  95. package/dist/{history-FNRU3TL4.js → history-WLI7KFXB.js} +15 -15
  96. package/dist/hyperframe-runtime.js +49 -49
  97. package/dist/hyperframe.manifest.json +1 -1
  98. package/dist/hyperframe.runtime.iife.js +49 -49
  99. package/dist/hyperframes-player.global.js +1 -1
  100. package/dist/{info-FO7VR5NC.js → info-DFJM3YRJ.js} +11 -11
  101. package/dist/{init-IGW4DTVC.js → init-HEAMOTGH.js} +22 -22
  102. package/dist/{inspect-D4GUGDW7.js → inspect-TO2EXJNK.js} +25 -25
  103. package/dist/{installer-NBEN3ZIP.js → installer-REA7ZASD.js} +4 -4
  104. package/dist/{keyframes-CXZLEC3R.js → keyframes-XHEBAJY7.js} +12 -12
  105. package/dist/{lambda-BFHJMMCG.js → lambda-MSWYKDNT.js} +6 -6
  106. package/dist/{layout-XEDEOLAH.js → layout-UQXCTFFV.js} +25 -25
  107. package/dist/{lint-LLGMCVZ5.js → lint-BSMZ526C.js} +12 -12
  108. package/dist/{lintProject-X7L7EZWZ.js → lintProject-VNE322A7.js} +1 -1
  109. package/dist/{list-LUCWSLK6.js → list-RNP5EMTX.js} +2 -2
  110. package/dist/{login-SMWYXJWJ.js → login-S6V75HG5.js} +4 -4
  111. package/dist/{media-treatment-OYTNU6PX.js → media-treatment-IHEEEDUQ.js} +15 -14
  112. package/dist/{models-RILNQV3Z.js → models-OQEBKNJI.js} +7 -7
  113. package/dist/{motionShot-5F4DCMWC.js → motionShot-EAIFVJ2I.js} +10 -10
  114. package/dist/{normalize-audio-4LHYKFON.js → normalize-audio-4ACUR6W6.js} +11 -11
  115. package/dist/{pipeline-5UY45ELH.js → pipeline-SOQHD5YN.js} +6 -6
  116. package/dist/{play-D4AHRZQD.js → play-3WJPS3FE.js} +20 -20
  117. package/dist/{preflight-3V5IHGWQ.js → preflight-ZUADCOLZ.js} +7 -7
  118. package/dist/{present-VUH7PLOO.js → present-MU23WZZA.js} +16 -16
  119. package/dist/{preview-NCFC65VR.js → preview-VOTNRX67.js} +17 -17
  120. package/dist/{producer-7JGAPEAF.js → producer-HKRMTCPU.js} +1 -1
  121. package/dist/{projectConfig-JHEWPAA5.js → projectConfig-H37MQGE6.js} +6 -6
  122. package/dist/{publication-7XA2H7UB.js → publication-QVDKMAKD.js} +2 -2
  123. package/dist/{publish-257VZMWI.js → publish-54IPKU5O.js} +8 -8
  124. package/dist/{remove-background-EV6XVADN.js → remove-background-KQQ2WPKP.js} +7 -7
  125. package/dist/{render-DHCMWKFV.js → render-HJQ44SEI.js} +12 -12
  126. package/dist/{render-DKXGFQVW.js → render-P7727PLY.js} +21 -21
  127. package/dist/{render-4C3YKVZI.js → render-S2T3SLI4.js} +3 -3
  128. package/dist/{render-batch-AFDBPDMM.js → render-batch-DUFAHD6F.js} +3 -3
  129. package/dist/{renderCancellation-VIZELWDD.js → renderCancellation-BSVXXGZM.js} +6 -6
  130. package/dist/renderSetupWorker.js +1 -1
  131. package/dist/{resolver-S72XBTEQ.js → resolver-PHWKDEH2.js} +4 -4
  132. package/dist/{screenshotCapture-FA5HPN7Q.js → screenshotCapture-ECBTLCU6.js} +3 -3
  133. package/dist/{sherpa-BAADWCHB.js → sherpa-GHQOWXFV.js} +7 -7
  134. package/dist/skills/hyperframes/references/frame-worker-core.md +2 -2
  135. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +2 -2
  136. package/dist/skills/media-use/audio/references/bgm.md +1 -1
  137. package/dist/skills/media-use/audio/references/tts.md +1 -1
  138. package/dist/skills/media-use/audio/scripts/lib/python.mjs +19 -5
  139. package/dist/skills/media-use/audio/scripts/lib/python.test.mjs +69 -1
  140. package/dist/{skills-2BGFBUR6.js → skills-SOCMD66Y.js} +40 -14
  141. package/dist/{skillsUpdateCheck-5LYFYHUF.js → skillsUpdateCheck-PONPICQM.js} +3 -3
  142. package/dist/{snapshot-Z37DZL4T.js → snapshot-ECXEZ4TY.js} +50 -29
  143. package/dist/{src-GD7RGV5U.js → src-LVBNYMJW.js} +5 -5
  144. package/dist/{src-GRC63B6L.js → src-RQE5HXZK.js} +7 -7
  145. package/dist/{staticProjectServer-SFINO3DE.js → staticProjectServer-TQYP44CW.js} +14 -14
  146. package/dist/{status-LXQL3L3H.js → status-HVI7QZHE.js} +6 -6
  147. package/dist/studio/assets/{hyperframes-player-DvJeHBHi.js → hyperframes-player-CBpg41JM.js} +1 -1
  148. package/dist/studio/assets/{index-Bt4vDkfw.js → index-BFitquwi.js} +1 -1
  149. package/dist/studio/assets/{index-SFktf7O1.js → index-BKy_birQ.js} +194 -194
  150. package/dist/studio/assets/{index--G6c4Q_x.js → index-CZfrSyU9.js} +1 -1
  151. package/dist/studio/assets/{index-C7apTvpr.css → index-DbfKVTId.css} +1 -1
  152. package/dist/studio/{chunk-PQFEBX32.js → chunk-BIUXP3PG.js} +2 -2
  153. package/dist/studio/{chunk-6LUNLTHR.js → chunk-K47E2ZJA.js} +13 -8
  154. package/dist/studio/chunk-K47E2ZJA.js.map +1 -0
  155. package/dist/studio/{chunk-QUXZVHOJ.js → chunk-VWT7STY3.js} +2 -2
  156. package/dist/studio/{domEditingLayers-JQPQGGT7.js → domEditingLayers-V67MS4WP.js} +3 -3
  157. package/dist/studio/index.d.ts +80 -46
  158. package/dist/studio/index.html +2 -2
  159. package/dist/studio/index.js +7294 -6844
  160. package/dist/studio/index.js.map +1 -1
  161. package/dist/studio/player.js +2 -2
  162. package/dist/studio/styles.css +1 -1
  163. package/dist/{studio-api-WRSCXPWS.js → studio-api-EKF6TFDB.js} +8 -8
  164. package/dist/{studioServer-HTLRGC5G.js → studioServer-BSNDGK63.js} +38 -38
  165. package/dist/{system-EEWYEHYX.js → system-NLNIE7PO.js} +6 -6
  166. package/dist/{telemetry-NLEEMXO2.js → telemetry-XNDAM6JU.js} +9 -9
  167. package/dist/{timeline-7C4KM3KD.js → timeline-IKWTTCNY.js} +15 -15
  168. package/dist/{tokens-QQLJXW4G.js → tokens-KOTFKBAK.js} +2 -2
  169. package/dist/{transcribe-GCKJF5A6.js → transcribe-ELJHKA5B.js} +7 -7
  170. package/dist/{transcribe-TGR5CTA7.js → transcribe-STEYOXIO.js} +12 -12
  171. package/dist/{updateCheck-73JM5QR3.js → updateCheck-OJMEQUST.js} +2 -2
  172. package/dist/{upgrade-V6E5P53C.js → upgrade-NIS32YR6.js} +2 -2
  173. package/dist/{urlDownloader-NYXPEBUN.js → urlDownloader-KJSQAFN7.js} +5 -5
  174. package/dist/{validate-INP7WJAK.js → validate-7MCKNH5K.js} +15 -15
  175. package/dist/{video-KWQ5TSVD.js → video-TUXP3VGQ.js} +17 -9
  176. package/package.json +1 -1
  177. package/dist/chunk-5GQAJ43Q.js +0 -31
  178. package/dist/chunk-YLVI7VL5.js +0 -3541
  179. package/dist/studio/chunk-6LUNLTHR.js.map +0 -1
  180. /package/dist/studio/{chunk-PQFEBX32.js.map → chunk-BIUXP3PG.js.map} +0 -0
  181. /package/dist/studio/{chunk-QUXZVHOJ.js.map → chunk-VWT7STY3.js.map} +0 -0
  182. /package/dist/studio/{domEditingLayers-JQPQGGT7.js.map → domEditingLayers-V67MS4WP.js.map} +0 -0
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-IHFUKJOR.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-AMSBTN6L.js";
12
+ } from "./chunk-LYBFDHXD.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-PBN6GBJE.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.111" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.111" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.112" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.112" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-YLOSZHA2.js";
20
+ } from "./chunk-BD3MHTSR.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -17,7 +17,7 @@ import {
17
17
  EncoderInterruptedError,
18
18
  encoderFailureError,
19
19
  prepareAnimatedGifInputs
20
- } from "./chunk-YIXEH4TF.js";
20
+ } from "./chunk-7OJSZTJK.js";
21
21
  import {
22
22
  createStudioPositionSeekReapplyScript
23
23
  } from "./chunk-KC5XXX3X.js";
@@ -145,7 +145,7 @@ import {
145
145
  validateEngineConfigSnapshot,
146
146
  verifyDiskDrawElementSamples,
147
147
  writeCapturedFrame
148
- } from "./chunk-OF3RKOPU.js";
148
+ } from "./chunk-P74PW7KR.js";
149
149
  import {
150
150
  HF_VFX_ATTR,
151
151
  MEDIA_START_BASIS_ATTR,
@@ -162,7 +162,7 @@ import {
162
162
  resolveAbsoluteMediaStartSeconds,
163
163
  resolveAuthoredTimingWindow,
164
164
  toFps
165
- } from "./chunk-B25H4M4V.js";
165
+ } from "./chunk-C4JINRJK.js";
166
166
  import {
167
167
  CANVAS_DIMENSIONS,
168
168
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -186,7 +186,7 @@ import {
186
186
  inlineSubCompositions,
187
187
  prepareFlattenedInnerRoot,
188
188
  styleElementsFor
189
- } from "./chunk-U4TDAJZE.js";
189
+ } from "./chunk-J2S4MY2M.js";
190
190
  import {
191
191
  HF_COLOR_GRADING_ATTR,
192
192
  MAX_AUDIO_GAIN,
@@ -207,7 +207,7 @@ import {
207
207
  resolveNaturalMediaTimelineDurationFromValues,
208
208
  shouldClampResolvedMediaDuration,
209
209
  sourceTimeAt
210
- } from "./chunk-YLVI7VL5.js";
210
+ } from "./chunk-S6TH5G6Z.js";
211
211
  import {
212
212
  chromeMajorCeiling
213
213
  } from "./chunk-TWWSYAKJ.js";
@@ -216,7 +216,7 @@ import {
216
216
  lintHyperframeHtml,
217
217
  readProjectFile,
218
218
  resolveProjectRelativeSrc
219
- } from "./chunk-BAVM2XBR.js";
219
+ } from "./chunk-YAFO7V4A.js";
220
220
  import {
221
221
  CSS_URL_RE,
222
222
  checkSubCompositionUsability,
@@ -7997,7 +7997,7 @@ async function runExtractVideosStage(input) {
7997
7997
  collectProbeFailures: extractionPolicy.failureMode === "enforce"
7998
7998
  },
7999
7999
  abortSignal,
8000
- { extractCacheDir: cfg.extractCacheDir, extractCacheMaxBytes: cfg.extractCacheMaxBytes },
8000
+ cfg,
8001
8001
  compiledDir
8002
8002
  );
8003
8003
  extractionResult.phaseBreakdown.transientRetries = (extractionResult.phaseBreakdown.transientRetries ?? 0) + hdrProbeTransientRetries;
@@ -8945,7 +8945,7 @@ async function runHybridLayeredFrameLoop(input) {
8945
8945
  cfg
8946
8946
  );
8947
8947
  await initializeSession(s);
8948
- await initTransparentBackground(s.page);
8948
+ await initTransparentBackground(s.page, { clearCompositionRoot: true });
8949
8949
  workerSessions.push(s);
8950
8950
  }
8951
8951
  const sessions = [domSession, ...workerSessions];
@@ -9191,7 +9191,7 @@ async function runCaptureHdrStage(input) {
9191
9191
  await initializeSession(domSession);
9192
9192
  assertNotAborted();
9193
9193
  lastBrowserConsole = domSession.browserConsoleBuffer;
9194
- await initTransparentBackground(domSession.page);
9194
+ await initTransparentBackground(domSession.page, { clearCompositionRoot: true });
9195
9195
  const transitionMeta = await domSession.page.evaluate(() => {
9196
9196
  return window.__hf?.transitions ?? [];
9197
9197
  });
@@ -10043,7 +10043,10 @@ async function runFfprobeJson(args, signal) {
10043
10043
  if (!args.includes("--")) {
10044
10044
  throw new Error('[audioPadTrim] ffprobe args must terminate options with "--".');
10045
10045
  }
10046
- const proc = spawn(getFfprobeBinary(), args, { stdio: ["ignore", "pipe", "pipe"] });
10046
+ const proc = spawn(getFfprobeBinary(), args, {
10047
+ stdio: ["ignore", "pipe", "pipe"],
10048
+ windowsHide: true
10049
+ });
10047
10050
  trackChildProcess(proc);
10048
10051
  let stdout = "";
10049
10052
  proc.stdout.on("data", (data) => {
@@ -14144,7 +14147,7 @@ function startServer(options = {}) {
14144
14147
  });
14145
14148
  async function shutdown(signal) {
14146
14149
  log.info(`Received ${signal}, shutting down`);
14147
- const { drainBrowserPool } = await import("./src-GD7RGV5U.js");
14150
+ const { drainBrowserPool } = await import("./src-LVBNYMJW.js");
14148
14151
  await drainBrowserPool().catch(() => {
14149
14152
  });
14150
14153
  const handle = await Promise.race([
@@ -15267,7 +15270,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
15267
15270
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15268
15271
  if (probeResult.probeSession) {
15269
15272
  try {
15270
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-GD7RGV5U.js");
15273
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-LVBNYMJW.js");
15271
15274
  await closeCaptureSession2(probeResult.probeSession);
15272
15275
  } catch (err) {
15273
15276
  log.warn("[plan] probe session close failed", {
@@ -8,7 +8,7 @@ import {
8
8
  isAllowedHtmlAttribute,
9
9
  isSafeAttributeValue,
10
10
  sanitizeRichTextChildren
11
- } from "./chunk-B25H4M4V.js";
11
+ } from "./chunk-C4JINRJK.js";
12
12
  import {
13
13
  removeElementWithGsapCascade
14
14
  } from "./chunk-UUDQD62L.js";
@@ -17,10 +17,10 @@ import {
17
17
  ensureHfIds,
18
18
  mintHfId,
19
19
  walkCompositionDescendants
20
- } from "./chunk-U4TDAJZE.js";
20
+ } from "./chunk-J2S4MY2M.js";
21
21
  import {
22
22
  require_dist
23
- } from "./chunk-BAVM2XBR.js";
23
+ } from "./chunk-YAFO7V4A.js";
24
24
  import {
25
25
  readClipTiming,
26
26
  readMediaOffsetSeconds,
@@ -17,7 +17,7 @@ import {
17
17
  parseStrictFiniteTimingNumber,
18
18
  resolveNaturalMediaTimelineDuration,
19
19
  resolveTimedImageDurationSeconds
20
- } from "./chunk-YLVI7VL5.js";
20
+ } from "./chunk-S6TH5G6Z.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  parseStartExpression
@@ -8,7 +8,7 @@ import {
8
8
  MAX_AUDIO_GAIN_DB,
9
9
  formatAudioGain,
10
10
  isAudibleVideoElement
11
- } from "./chunk-YLVI7VL5.js";
11
+ } from "./chunk-S6TH5G6Z.js";
12
12
  import {
13
13
  findFfBinary
14
14
  } from "./chunk-PJ3HDUCY.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ZTZA4UWZ.js";
13
13
  import {
14
14
  getSystemMeta
15
- } from "./chunk-CQRF7VU3.js";
15
+ } from "./chunk-JRULOVZK.js";
16
16
  import {
17
17
  getInvocationId
18
18
  } from "./chunk-54HJ63Q2.js";
@@ -23,7 +23,7 @@ import {
23
23
  evaluateCanary,
24
24
  findCanary,
25
25
  parseCanaryOverride
26
- } from "./chunk-B25H4M4V.js";
26
+ } from "./chunk-C4JINRJK.js";
27
27
  import {
28
28
  hostAnswers
29
29
  } from "./chunk-K4WIOZFP.js";
@@ -37,7 +37,7 @@ import {
37
37
  } from "./chunk-XUXGIA7H.js";
38
38
  import {
39
39
  VERSION
40
- } from "./chunk-YLOSZHA2.js";
40
+ } from "./chunk-BD3MHTSR.js";
41
41
 
42
42
  // src/telemetry/transport.ts
43
43
  import { spawn } from "child_process";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  writeCaptureFileSync
9
- } from "./chunk-5GQAJ43Q.js";
9
+ } from "./chunk-MRF4AMKD.js";
10
10
 
11
11
  // src/capture/contactSheet.ts
12
12
  import sharp from "sharp";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-5ETJX6WM.js";
17
17
  import {
18
18
  runEnvironmentChecks
19
- } from "./chunk-E4AYSXMS.js";
19
+ } from "./chunk-VW6CVKVA.js";
20
20
  import {
21
21
  c
22
22
  } from "./chunk-ZTZA4UWZ.js";
@@ -25,24 +25,24 @@ import {
25
25
  getFreeDiskMb,
26
26
  getShmSizeMb,
27
27
  getSystemMeta
28
- } from "./chunk-CQRF7VU3.js";
28
+ } from "./chunk-JRULOVZK.js";
29
29
  import {
30
30
  defineCommand
31
31
  } from "./chunk-S3S4TGEH.js";
32
32
  import {
33
33
  resolveExtractCacheDir
34
- } from "./chunk-OF3RKOPU.js";
34
+ } from "./chunk-P74PW7KR.js";
35
35
  import {
36
36
  getUpdateMeta,
37
37
  withMeta
38
- } from "./chunk-Q2QNAFQV.js";
38
+ } from "./chunk-BLI5XATY.js";
39
39
  import {
40
40
  CONFIG_PATH,
41
41
  withFileLock
42
42
  } from "./chunk-XUXGIA7H.js";
43
43
  import {
44
44
  VERSION
45
- } from "./chunk-YLOSZHA2.js";
45
+ } from "./chunk-BD3MHTSR.js";
46
46
  import {
47
47
  normalizeErrorMessage
48
48
  } from "./chunk-KNU5COPB.js";
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-PFEKMIN5.js";
10
+ } from "./chunk-POEGJGEA.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-LAQEZHOH.js";
17
+ } from "./chunk-H3WFEPV2.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-XYVFPDNU.js";
21
+ } from "./chunk-5SDXALUQ.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-HQGJLZB6.js";
26
+ } from "./chunk-36XLW2TP.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-AWUZ3AUD.js";
29
+ } from "./chunk-M4RYK5OF.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-AMSBTN6L.js";
32
+ } from "./chunk-LYBFDHXD.js";
33
33
  import {
34
34
  c
35
35
  } from "./chunk-ZTZA4UWZ.js";
@@ -37,11 +37,12 @@ import {
37
37
  defineCommand
38
38
  } from "./chunk-S3S4TGEH.js";
39
39
  import {
40
- failCommand
40
+ failCommand,
41
+ failUsage
41
42
  } from "./chunk-PBN6GBJE.js";
42
43
  import {
43
44
  ITEM_TYPE_DIRS
44
- } from "./chunk-B25H4M4V.js";
45
+ } from "./chunk-C4JINRJK.js";
45
46
  import {
46
47
  isProjectRootMissing,
47
48
  realpath
@@ -360,6 +361,13 @@ var add_default = defineCommand({
360
361
  const projectDir = resolve(args.dir ?? process.cwd());
361
362
  const json = args.json === true;
362
363
  const skipClipboard = args.clipboard === false;
364
+ const extra = args._.slice(1);
365
+ if (extra.length > 0) {
366
+ const msg = `add installs one item or tag per invocation. Got extra argument${extra.length === 1 ? "" : "s"}: ${extra.join(", ")}. Run add once per item, or pass a single tag to install every item tagged with it.`;
367
+ if (json) console.log(JSON.stringify({ ok: false, error: msg }));
368
+ else console.error(c.error(msg));
369
+ failUsage();
370
+ }
363
371
  const hasConfigBefore = existsSync(projectConfigPath(projectDir));
364
372
  try {
365
373
  const result = await runAdd({
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-AWUZ3AUD.js";
15
+ } from "./chunk-M4RYK5OF.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -21,7 +21,7 @@ import {
21
21
  shouldClampResolvedMediaDuration,
22
22
  stripEmbeddedRuntimeScripts,
23
23
  warnUnknownEnumValues
24
- } from "./chunk-YLVI7VL5.js";
24
+ } from "./chunk-S6TH5G6Z.js";
25
25
  import {
26
26
  cssVariableName
27
27
  } from "./chunk-VC76R6W2.js";
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-OFQWTKPW.js";
32
32
  import {
33
33
  lintHyperframeHtml
34
- } from "./chunk-BAVM2XBR.js";
34
+ } from "./chunk-YAFO7V4A.js";
35
35
  import {
36
36
  CSS_URL_RE,
37
37
  checkSubCompositionUsability,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-AMKC3AXA.js";
10
10
  import {
11
11
  getSystemTotalMb
12
- } from "./chunk-OF3RKOPU.js";
12
+ } from "./chunk-P74PW7KR.js";
13
13
 
14
14
  // src/telemetry/system.ts
15
15
  import { cpus, freemem, platform as platform2, release as release2 } from "os";
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  DEFAULT_VP9_CPU_USED,
18
18
  renderProvenanceArgs
19
- } from "./chunk-OF3RKOPU.js";
19
+ } from "./chunk-P74PW7KR.js";
20
20
  import {
21
21
  loadOptionalPackage
22
22
  } from "./chunk-XT5P4QMO.js";
@@ -202,7 +202,7 @@ function inferInputKind(inputPath) {
202
202
  }
203
203
  async function probeMedia(inputPath) {
204
204
  const isImage = inferInputKind(inputPath) === "image";
205
- const engine = await import("./src-GD7RGV5U.js");
205
+ const engine = await import("./src-LVBNYMJW.js");
206
206
  const meta = await engine.extractMediaMetadata(inputPath);
207
207
  if (isImage) {
208
208
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -13,7 +13,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
13
13
  return "auto";
14
14
  }
15
15
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath) {
16
- const { resolveBrowserGpuMode } = await import("./src-GD7RGV5U.js");
16
+ const { resolveBrowserGpuMode } = await import("./src-LVBNYMJW.js");
17
17
  return resolveBrowserGpuMode(requestedMode, { chromePath });
18
18
  }
19
19
 
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  setHostHandlesSigint
9
- } from "./chunk-OF3RKOPU.js";
9
+ } from "./chunk-P74PW7KR.js";
10
10
  import {
11
11
  processAncestorSnapshot,
12
12
  processIdentity,
@@ -7,16 +7,16 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parseFeedbackRating,
9
9
  trackRenderFeedback
10
- } from "./chunk-AMSBTN6L.js";
10
+ } from "./chunk-LYBFDHXD.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-EE6SV6KW.js";
13
+ } from "./chunk-E664L6K3.js";
14
14
  import {
15
15
  c
16
16
  } from "./chunk-ZTZA4UWZ.js";
17
17
  import {
18
18
  detectAgentRuntime
19
- } from "./chunk-CQRF7VU3.js";
19
+ } from "./chunk-JRULOVZK.js";
20
20
  import {
21
21
  readConfig,
22
22
  writeConfig
@@ -83,7 +83,7 @@ async function maybePromptRenderFeedback(opts) {
83
83
  async function getDoctorSummary() {
84
84
  try {
85
85
  const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
86
- import("./system-EEWYEHYX.js"),
86
+ import("./system-NLNIE7PO.js"),
87
87
  import("./ffmpeg-QIUFEFTY.js")
88
88
  ]);
89
89
  const sys = getSystemMeta();
@@ -8,16 +8,16 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-EE6SV6KW.js";
11
+ } from "./chunk-E664L6K3.js";
12
12
  import {
13
13
  getPowerState
14
- } from "./chunk-CQRF7VU3.js";
14
+ } from "./chunk-JRULOVZK.js";
15
15
  import {
16
16
  CliRuntimeError
17
17
  } from "./chunk-PBN6GBJE.js";
18
18
  import {
19
19
  redactTelemetryString
20
- } from "./chunk-B25H4M4V.js";
20
+ } from "./chunk-C4JINRJK.js";
21
21
  import {
22
22
  readConfig
23
23
  } from "./chunk-XUXGIA7H.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-GMECXFAN.js";
13
13
  import {
14
14
  ITEM_TYPE_DIRS
15
- } from "./chunk-B25H4M4V.js";
15
+ } from "./chunk-C4JINRJK.js";
16
16
  import {
17
17
  realProjectRoot
18
18
  } from "./chunk-OFQWTKPW.js";
@@ -0,0 +1,104 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+
8
+ // src/capture/captureFile.ts
9
+ import {
10
+ mkdirSync,
11
+ mkdtempSync,
12
+ realpathSync,
13
+ renameSync,
14
+ rmSync,
15
+ statSync,
16
+ writeFileSync
17
+ } from "fs";
18
+ import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "path";
19
+
20
+ // src/capture/captureErrors.ts
21
+ var NavigationDeadlineError = class extends Error {
22
+ constructor(cause, webglObserved) {
23
+ super("capture navigation timed out");
24
+ this.cause = cause;
25
+ this.webglObserved = webglObserved;
26
+ this.name = "NavigationDeadlineError";
27
+ }
28
+ cause;
29
+ webglObserved;
30
+ };
31
+ var CaptureDirRefusedError = class extends Error {
32
+ constructor(message) {
33
+ super(message);
34
+ this.name = "CaptureDirRefusedError";
35
+ }
36
+ };
37
+
38
+ // src/capture/captureFile.ts
39
+ function publishCaptureFileSync(path, data, options) {
40
+ const stagingDir = mkdtempSync(join(dirname(path), ".capture-"));
41
+ try {
42
+ const staged = join(stagingDir, basename(path));
43
+ writeCaptureFileSync(staged, data, { ...options, flag: "wx" });
44
+ renameSync(staged, path);
45
+ } finally {
46
+ rmSync(stagingDir, { recursive: true, force: true });
47
+ }
48
+ }
49
+ function writeCaptureFileSync(path, data, options) {
50
+ const normalized = typeof options === "string" ? { encoding: options } : options;
51
+ if (normalized?.flag === void 0 || normalized.flag === "w") {
52
+ return publishCaptureFileSync(path, data, normalized);
53
+ }
54
+ writeFileSync(path, data, { ...normalized, mode: 384 });
55
+ }
56
+ function hasCode(error, ...codes) {
57
+ return error instanceof Error && "code" in error && typeof error.code === "string" && codes.includes(error.code);
58
+ }
59
+ function resolvedPath(path) {
60
+ try {
61
+ return realpathSync(path);
62
+ } catch (error) {
63
+ if (hasCode(error, "ENOENT", "ELOOP")) return void 0;
64
+ throw error;
65
+ }
66
+ }
67
+ function ensureCaptureDirSync(root, dir) {
68
+ const rootPath = resolve(root);
69
+ const target = resolve(dir);
70
+ const rel = relative(rootPath, target);
71
+ if (rel === ".." || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {
72
+ throw new CaptureDirRefusedError(
73
+ `Refusing to create ${target}: it is outside the capture directory ${rootPath}`
74
+ );
75
+ }
76
+ mkdirSync(rootPath, { recursive: true });
77
+ let current = rootPath;
78
+ let expected = realpathSync(rootPath);
79
+ for (const segment of rel.split(sep).filter(Boolean)) {
80
+ current = join(current, segment);
81
+ expected = join(expected, segment);
82
+ try {
83
+ mkdirSync(current);
84
+ } catch (error) {
85
+ if (!hasCode(error, "EEXIST")) throw error;
86
+ }
87
+ if (resolvedPath(current) !== expected) {
88
+ throw new CaptureDirRefusedError(
89
+ `Refusing to write into ${current}: it resolves outside the capture directory ${rootPath}`
90
+ );
91
+ }
92
+ if (!statSync(current).isDirectory()) {
93
+ throw new CaptureDirRefusedError(`Refusing to write into ${current}: it is not a directory`);
94
+ }
95
+ }
96
+ return target;
97
+ }
98
+
99
+ export {
100
+ NavigationDeadlineError,
101
+ CaptureDirRefusedError,
102
+ writeCaptureFileSync,
103
+ ensureCaptureDirSync
104
+ };
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType,
9
9
  injectMediaCodecMapIntoHtml
10
- } from "./chunk-MR2LOG32.js";
10
+ } from "./chunk-TXVN43SX.js";
11
11
  import {
12
12
  PROXY_VARIANT_CONFIG,
13
13
  ProxyCapacityError,
@@ -18,10 +18,10 @@ import {
18
18
  recordProxyRequest,
19
19
  resolveProxy,
20
20
  resolveProxyVariantRequest
21
- } from "./chunk-MGFVNTIB.js";
21
+ } from "./chunk-TSZU5JMC.js";
22
22
  import {
23
23
  resolveAutoProxy
24
- } from "./chunk-LAQEZHOH.js";
24
+ } from "./chunk-H3WFEPV2.js";
25
25
 
26
26
  // src/utils/staticProjectServer.ts
27
27
  import { createServer } from "http";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-PBN6GBJE.js";
16
16
  import {
17
17
  parseFps
18
- } from "./chunk-B25H4M4V.js";
18
+ } from "./chunk-C4JINRJK.js";
19
19
 
20
20
  // src/utils/renderArgs.ts
21
21
  import { readFileSync } from "fs";
@@ -6,19 +6,19 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  serveStaticProjectHtml
9
- } from "./chunk-JWPSBANO.js";
9
+ } from "./chunk-NOOBRCMC.js";
10
10
  import {
11
11
  AUDIT_SEEK_OPTIONS,
12
12
  installPageFunctionGuard,
13
13
  seekCompositionTimeline,
14
14
  waitForCompositionFonts
15
- } from "./chunk-32P7FTFC.js";
15
+ } from "./chunk-YQ5MFXWG.js";
16
16
  import {
17
17
  resolveDiagnosticNavigationTimeoutMs
18
- } from "./chunk-TIZQC44K.js";
18
+ } from "./chunk-OWN3ZIIK.js";
19
19
  import {
20
20
  resolveProject
21
- } from "./chunk-HPEHQUJX.js";
21
+ } from "./chunk-A6GVXZZ3.js";
22
22
  import {
23
23
  c
24
24
  } from "./chunk-ZTZA4UWZ.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  printDeprecationNotice,
34
34
  withMeta
35
- } from "./chunk-Q2QNAFQV.js";
35
+ } from "./chunk-BLI5XATY.js";
36
36
  import {
37
37
  normalizeErrorMessage
38
38
  } from "./chunk-KNU5COPB.js";
@@ -665,7 +665,7 @@ async function collectTweenBoundaries(page) {
665
665
  });
666
666
  }
667
667
  async function bundleProjectHtml(projectDir) {
668
- const { bundleToSingleHtml } = await import("./compiler-C32VXLE2.js");
668
+ const { bundleToSingleHtml } = await import("./compiler-H3QAMMC2.js");
669
669
  return bundleToSingleHtml(projectDir);
670
670
  }
671
671
  async function alignViewportToComposition(page, url) {
@@ -687,13 +687,13 @@ async function alignViewportToComposition(page, url) {
687
687
  async function runLayoutAudit(projectDir, opts) {
688
688
  const { ensureBrowser } = await import("./manager-NEVLEZK3.js");
689
689
  const puppeteer = await import("puppeteer-core");
690
- const { buildChromeArgs } = await import("./src-GD7RGV5U.js");
690
+ const { buildChromeArgs } = await import("./src-LVBNYMJW.js");
691
691
  const {
692
692
  assertWebGpuAdapterAvailable,
693
693
  compositionRequiresWebGpu,
694
694
  resolveCaptureBrowserGpuMode,
695
695
  resolveLocalBrowserGpuMode
696
- } = await import("./gpuPolicy-CA6KRFQQ.js");
696
+ } = await import("./gpuPolicy-CPCLBMS5.js");
697
697
  const html = await bundleProjectHtml(projectDir);
698
698
  const server = await serveStaticProjectHtml(
699
699
  projectDir,
@@ -834,6 +834,7 @@ async function runMotionPass(page, spec, duration) {
834
834
  width: window.innerWidth,
835
835
  height: window.innerHeight
836
836
  }));
837
+ await page.addScriptTag({ content: loadBrowserScript("motion-signature.browser.js") });
837
838
  await page.addScriptTag({ content: loadBrowserScript("motion-sample.browser.js") });
838
839
  const frames = await collectMotionFrames(page, times, selectors, livenessScopes);
839
840
  return { issues: evaluateMotion(frames, spec.assertions, canvas), sampleCount: frames.length };