hyperframes 0.8.149 → 0.8.151

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 (176) hide show
  1. package/dist/{add-MG53577L.js → add-QKZZG7A2.js} +12 -12
  2. package/dist/{animatedGifPrep-HV4ZFVPV.js → animatedGifPrep-YQDPYGOD.js} +7 -7
  3. package/dist/api.js +17 -17
  4. package/dist/{asset-3GIBXLLL.js → asset-3Q737Y4H.js} +2 -2
  5. package/dist/{assetCataloger-JJQ4JW2P.js → assetCataloger-BTHEBJJB.js} +3 -3
  6. package/dist/{auth-XQMT727H.js → auth-XL7EU3SO.js} +1 -1
  7. package/dist/{autoUpdate-CREZJGMU.js → autoUpdate-PJFLTQ3U.js} +2 -2
  8. package/dist/{backgroundChecks-K3S5QKR3.js → backgroundChecks-T5TIR5WK.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-42AKNX73.js → batchRender-NFLVIDB4.js} +4 -4
  11. package/dist/{beats-Y7IKETUS.js → beats-JU4GZ26R.js} +13 -13
  12. package/dist/{benchmark-22SAXSO5.js → benchmark-7U2YWLTW.js} +9 -9
  13. package/dist/{browser-ABNISCC3.js → browser-D57UPYDA.js} +5 -5
  14. package/dist/{bundleWithLocalizedFonts-OE5ZI4JE.js → bundleWithLocalizedFonts-26MXQOZG.js} +2 -2
  15. package/dist/{capture-DBNHO4WJ.js → capture-47BV25G3.js} +2 -2
  16. package/dist/{capture-HQG5W42I.js → capture-LT252COQ.js} +11 -11
  17. package/dist/{catalog-KICZFIDX.js → catalog-BEZXOV4O.js} +12 -12
  18. package/dist/{catch-up-ZCQUCI45.js → catch-up-KVV5X6BF.js} +4 -4
  19. package/dist/{check-TGXIICEF.js → check-6KQ433E6.js} +191 -55
  20. package/dist/{checkBrowser-3N23I56J.js → checkBrowser-PRDR6XBY.js} +172 -30
  21. package/dist/{chunk-GESJSXFH.js → chunk-35PWWBGZ.js} +1 -1
  22. package/dist/{chunk-62RUQJ5J.js → chunk-3SVC7SW4.js} +47 -21
  23. package/dist/{chunk-KMJLHHBF.js → chunk-3ZPFRDEJ.js} +1 -1
  24. package/dist/{chunk-XHBX7QN6.js → chunk-4LE27ST4.js} +1 -1
  25. package/dist/{chunk-DUUFDLC4.js → chunk-4MLYMDQ4.js} +1 -1
  26. package/dist/{chunk-WX7VCRM7.js → chunk-4PKQEKAI.js} +2 -2
  27. package/dist/{chunk-ZKDKFJCK.js → chunk-4YZYYP7V.js} +5 -5
  28. package/dist/{chunk-XPQSL5VS.js → chunk-54DMWFQZ.js} +8 -1
  29. package/dist/{chunk-NKM53WMI.js → chunk-BRF3O35X.js} +7 -7
  30. package/dist/chunk-DHPFXAUF.js +165 -0
  31. package/dist/{chunk-CT6ZQRLD.js → chunk-DIOBKUBV.js} +2 -2
  32. package/dist/{chunk-SP6XL3NP.js → chunk-FAIYEIZ4.js} +1 -1
  33. package/dist/{chunk-CYFFYK2F.js → chunk-FLVI7FHU.js} +1 -1
  34. package/dist/{chunk-JDB65PPT.js → chunk-GNTVYF7E.js} +8 -7
  35. package/dist/{chunk-KQHJKJ3V.js → chunk-HVXRYMGQ.js} +1 -1
  36. package/dist/{chunk-CNPJHUOX.js → chunk-IP73NMQT.js} +11 -11
  37. package/dist/{chunk-VX4AL2FQ.js → chunk-IPDS2SWI.js} +1 -1
  38. package/dist/{chunk-LACFOFWX.js → chunk-IZ7L6V76.js} +1 -1
  39. package/dist/{chunk-VC7JBNPS.js → chunk-IZPN423R.js} +481 -68
  40. package/dist/{chunk-P7NTODQE.js → chunk-KQGWP4KH.js} +2 -2
  41. package/dist/{chunk-SFUBSJFP.js → chunk-KXX6NLOT.js} +1 -1
  42. package/dist/{chunk-K44HCHZN.js → chunk-L3N7RJHS.js} +3 -3
  43. package/dist/{chunk-MI6U3OIN.js → chunk-L6RIMCMG.js} +3 -3
  44. package/dist/{chunk-7IEGPJ4P.js → chunk-LBT4AMSF.js} +1 -1
  45. package/dist/{chunk-AY2BONTF.js → chunk-LKQS72D5.js} +1 -1
  46. package/dist/{chunk-VXM4BH23.js → chunk-N3I6RAOR.js} +136 -54
  47. package/dist/{chunk-Q2Y5OZCY.js → chunk-N4IXP3MY.js} +2 -2
  48. package/dist/{chunk-LCILS4AF.js → chunk-O3DUX6P2.js} +5 -5
  49. package/dist/{chunk-MXB6CWVH.js → chunk-OSAH7S5M.js} +1 -1
  50. package/dist/{chunk-YDRX42P3.js → chunk-OZ4K46OV.js} +3 -3
  51. package/dist/{chunk-ZK3BQXHC.js → chunk-POEEDPJI.js} +1 -1
  52. package/dist/{chunk-LTJDUBSQ.js → chunk-PUIELIFA.js} +1 -1
  53. package/dist/chunk-QBYHNRHU.js +3795 -0
  54. package/dist/{chunk-KUTT3JXL.js → chunk-QF7AE3DB.js} +3 -3
  55. package/dist/{chunk-BNYRD7PQ.js → chunk-QLGBNGXC.js} +2 -2
  56. package/dist/{chunk-U7SASZC5.js → chunk-RJRGR5KF.js} +10 -10
  57. package/dist/{chunk-4S4VUXW3.js → chunk-RRBKEHST.js} +1 -1
  58. package/dist/{chunk-TPIG7ZBX.js → chunk-RYL6ZIJP.js} +6 -6
  59. package/dist/{chunk-L274XRWA.js → chunk-S22FKF6G.js} +6 -3
  60. package/dist/{chunk-OMBSUO4T.js → chunk-TCWMDCBX.js} +2 -2
  61. package/dist/{chunk-YA62XGXS.js → chunk-UJKQWGFF.js} +1 -1
  62. package/dist/{chunk-M5B42RL5.js → chunk-WUUOFMHU.js} +3 -3
  63. package/dist/{chunk-PR7QQBSC.js → chunk-XGLNQDLN.js} +1 -1
  64. package/dist/{chunk-VGCEMOQA.js → chunk-XKKBIFE5.js} +7 -7
  65. package/dist/{chunk-2HWB4TCI.js → chunk-XNDXENJQ.js} +27 -12
  66. package/dist/{chunk-AHBYQRGI.js → chunk-XQKVEQNY.js} +2 -2
  67. package/dist/{chunk-ZFN6GQU4.js → chunk-XXPYZBZ3.js} +1 -1
  68. package/dist/{chunk-K4RIT6PX.js → chunk-XYHBVSWD.js} +2 -2
  69. package/dist/{chunk-RMIFSBRV.js → chunk-YEBKEWKB.js} +1 -1
  70. package/dist/{chunk-CZQLCBWY.js → chunk-YG2Y55KF.js} +1 -1
  71. package/dist/{chunk-B3XLIBFL.js → chunk-YIJMVFEJ.js} +1 -1
  72. package/dist/{chunk-K35E45SI.js → chunk-YZTVHRJ2.js} +1 -1
  73. package/dist/{chunk-Y475GD4L.js → chunk-ZD3RDNZI.js} +1 -1
  74. package/dist/{chunk-QIJLIULK.js → chunk-ZGCRVM5M.js} +2 -2
  75. package/dist/{clean-6QP7VAV4.js → clean-RLTHFTQA.js} +18 -18
  76. package/dist/cli.js +52 -52
  77. package/dist/{cloud-5TME5ROM.js → cloud-Q5TGBTW3.js} +4 -4
  78. package/dist/{cloudrun-F5VVCVF5.js → cloudrun-4UZF74MV.js} +4 -4
  79. package/dist/{compare-XPY2EXX6.js → compare-Q5UNR2V4.js} +25 -25
  80. package/dist/{compiler-NPD3MYMO.js → compiler-ZXT27Z62.js} +4 -4
  81. package/dist/{component-OPVL3PUX.js → component-H734P32V.js} +3 -3
  82. package/dist/{compositions-WSEOI454.js → compositions-YEHDSTDR.js} +11 -11
  83. package/dist/{delete-SLMH57VH.js → delete-LDBMPWRT.js} +2 -2
  84. package/dist/{dist-CUIR3GFX.js → dist-7JXLFD6U.js} +3 -3
  85. package/dist/{dist-HUMFCJ6T.js → dist-RGE4QASU.js} +1 -1
  86. package/dist/{doctor-QZW3EKIH.js → doctor-XNJFIWJ7.js} +13 -13
  87. package/dist/{events-FIFWFRGC.js → events-G6UFLNXR.js} +2 -2
  88. package/dist/{events-6C3ZG7LS.js → events-UKCPUWMH.js} +3 -3
  89. package/dist/{feedback-VKXM7YJ5.js → feedback-CK3KZ7DE.js} +7 -7
  90. package/dist/{ffmpeg-TZB5WAYE.js → ffmpeg-MJFMBBSF.js} +2 -2
  91. package/dist/{figma-3UYNADNA.js → figma-3D5C737B.js} +3 -3
  92. package/dist/fontLocalizeCli.js +9 -9
  93. package/dist/{get-VH7VMRVX.js → get-QGTQUWFT.js} +2 -2
  94. package/dist/{gpuPolicy-M2JZGGVW.js → gpuPolicy-G5QAQDYF.js} +7 -7
  95. package/dist/{grade-compare-OSC2YQWN.js → grade-compare-XIHOM62P.js} +27 -27
  96. package/dist/{help-DCBFEZPT.js → help-U5UBXT52.js} +1 -1
  97. package/dist/{history-XYJMQE26.js → history-5J73QZSA.js} +5 -5
  98. package/dist/hyperframe-runtime.js +65 -58
  99. package/dist/hyperframe.manifest.json +1 -1
  100. package/dist/hyperframe.runtime.iife.js +65 -58
  101. package/dist/hyperframes-player.global.js +3 -3
  102. package/dist/{info-YEHGENAH.js → info-RJHQQQUP.js} +8 -8
  103. package/dist/{init-64SML7PY.js → init-M6UQOYYC.js} +29 -29
  104. package/dist/{inspect-GFOQKRJI.js → inspect-PRQWDBTP.js} +26 -26
  105. package/dist/{installer-Q4MMZKLA.js → installer-ZL7UKYK5.js} +5 -5
  106. package/dist/{keyframes-ORYFWKBZ.js → keyframes-VMUJYTCQ.js} +6 -6
  107. package/dist/{lambda-DRMOJGTC.js → lambda-ON42DRQD.js} +5 -5
  108. package/dist/{layout-ZEQBE6UQ.js → layout-QKBFVDVY.js} +26 -26
  109. package/dist/{lint-67KGFY63.js → lint-ZQHHL2SV.js} +7 -7
  110. package/dist/{lintProject-SSEXWCH6.js → lintProject-3Z6OJCSO.js} +1 -1
  111. package/dist/{list-T6OU5ARJ.js → list-YBRKIWGF.js} +2 -2
  112. package/dist/{login-2PXIGDP7.js → login-4B2YXGLB.js} +4 -4
  113. package/dist/{manager-ES2UFT4X.js → manager-X44GKUEL.js} +3 -3
  114. package/dist/{manager-GWU5J6RJ.js → manager-ZLJD3EAY.js} +2 -2
  115. package/dist/{media-treatment-NAAHID6M.js → media-treatment-5C5EJAAP.js} +12 -12
  116. package/dist/{models-P6XB6RWK.js → models-R7ZDWBJ6.js} +13 -13
  117. package/dist/{motionShot-7MHRIV6V.js → motionShot-ZHESZNUL.js} +14 -14
  118. package/dist/{normalize-audio-LWNFYR2F.js → normalize-audio-EVWZVTBM.js} +6 -6
  119. package/dist/{open-DAP5C7UD.js → open-TV6HT4UT.js} +4 -4
  120. package/dist/{parakeetRunner-3ZVFPOD4.js → parakeetRunner-YVVF4CG6.js} +14 -14
  121. package/dist/{pipeline-V4YJCPUX.js → pipeline-ETR5SEBS.js} +9 -9
  122. package/dist/{play-UDCESJO3.js → play-C6WONRZV.js} +19 -19
  123. package/dist/{preflight-JOD4OXGC.js → preflight-JYOX64YP.js} +4 -4
  124. package/dist/{present-DXTHBH3F.js → present-RANXTVPA.js} +15 -15
  125. package/dist/{preview-YHXKRXKB.js → preview-KF6UMBT2.js} +19 -19
  126. package/dist/{producer-343ENLAM.js → producer-CY2GXBWN.js} +1 -1
  127. package/dist/{projectConfig-YXKU3CTB.js → projectConfig-KPXCNMBM.js} +7 -7
  128. package/dist/{publication-ODXP3JI7.js → publication-Y36N4A7E.js} +3 -3
  129. package/dist/{publish-UEFBFGV3.js → publish-RCQJO35C.js} +9 -9
  130. package/dist/{remove-background-FMV6IDOH.js → remove-background-3ZMXVWLB.js} +10 -10
  131. package/dist/{render-ZTXNPRGF.js → render-FKVRCDT2.js} +58 -35
  132. package/dist/{render-N7QGX6RJ.js → render-PTNEFO5U.js} +9 -9
  133. package/dist/{render-SYC4RPGT.js → render-WUSTRMUD.js} +4 -4
  134. package/dist/{render-batch-SZRPCRUJ.js → render-batch-AQHU2JWZ.js} +4 -4
  135. package/dist/renderSetupWorker.js +4 -4
  136. package/dist/{resolver-7MYXNEAX.js → resolver-L5BDZJKU.js} +5 -5
  137. package/dist/{sherpa-M4Z2Q5Y2.js → sherpa-3S3ISG7G.js} +13 -13
  138. package/dist/skills/hyperframes/references/frame-worker-core.md +11 -9
  139. package/dist/skills/hyperframes/references/subagent-dispatch.md +1 -1
  140. package/dist/skills/media-use/audio/scripts/lib/tts.cleanup.test.mjs +175 -0
  141. package/dist/skills/media-use/audio/scripts/lib/tts.mjs +24 -19
  142. package/dist/skills/media-use/references/grading.md +1 -2
  143. package/dist/skills/media-use/references/meta.md +17 -17
  144. package/dist/skills/media-use/references/operations.md +6 -6
  145. package/dist/skills/media-use/references/setup-providers.md +3 -4
  146. package/dist/skills/media-use/scripts/lib/cutlist.mjs +9 -2
  147. package/dist/skills/media-use/scripts/lib/cutlist.test.mjs +12 -0
  148. package/dist/skills/media-use/scripts/lib/telemetry.mjs +4 -1
  149. package/dist/skills/media-use/scripts/lib/telemetry.test.mjs +20 -0
  150. package/dist/skills/media-use/scripts/transcript-cut.mjs +23 -4
  151. package/dist/skills/media-use/scripts/transcript-cut.test.mjs +224 -0
  152. package/dist/{skills-NEHNSHZK.js → skills-X4WQEKNF.js} +5 -5
  153. package/dist/{skillsUpdateCheck-O77QR72A.js → skillsUpdateCheck-UYCVHDZ6.js} +3 -3
  154. package/dist/{snapshot-GDVXFBVY.js → snapshot-YEYHQEZQ.js} +252 -141
  155. package/dist/{src-VMTHSARJ.js → src-2NN2WB6X.js} +10 -6
  156. package/dist/{src-PTIV7IVV.js → src-OLBDPEG6.js} +8 -8
  157. package/dist/{staticProjectServer-3D2NXQ6W.js → staticProjectServer-7H35NMWB.js} +15 -15
  158. package/dist/studio/assets/{hyperframes-player-C-2YwYre.js → hyperframes-player-DJt8E7k4.js} +1 -1
  159. package/dist/studio/assets/{index-ByJU5J6n.js → index-BGks9KLI.js} +131 -131
  160. package/dist/studio/assets/{index-BybGk67U.js → index-DWIHrAY2.js} +1 -1
  161. package/dist/studio/assets/{index-Cfs2r3fz.js → index-DgbLblGR.js} +1 -1
  162. package/dist/studio/index.html +1 -1
  163. package/dist/{studio-api-XIBDLRHB.js → studio-api-HGM2A5I3.js} +9 -9
  164. package/dist/{studioServer-QIQK47UN.js → studioServer-M6XFL7N6.js} +45 -45
  165. package/dist/{telemetry-565KDZUW.js → telemetry-KVCZKVTE.js} +3 -3
  166. package/dist/{timeline-E6XB7I6W.js → timeline-VYYKZR4V.js} +68 -15
  167. package/dist/{tokens-3ZAJENSE.js → tokens-B5NFFL55.js} +2 -2
  168. package/dist/{transcribe-XWQQCCBG.js → transcribe-SBETOIWI.js} +12 -12
  169. package/dist/{transcribe-WODP3T77.js → transcribe-WNFRYZAC.js} +18 -18
  170. package/dist/{updateCheck-QPYU4GRL.js → updateCheck-5MM2DFUC.js} +2 -2
  171. package/dist/{upgrade-2FJ5ZEN6.js → upgrade-LWID54R3.js} +2 -2
  172. package/dist/{urlDownloader-352AY25I.js → urlDownloader-CVLNXFDG.js} +6 -6
  173. package/dist/{validate-SP2VGNEI.js → validate-V4CGQ6OF.js} +20 -20
  174. package/dist/{video-RVNPFEA6.js → video-VJB2KRSS.js} +7 -7
  175. package/package.json +1 -1
  176. package/dist/chunk-3WD4JNMU.js +0 -3795
@@ -4,15 +4,19 @@ 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
+ reportArtifacts,
9
+ withProjectLock
10
+ } from "./chunk-DHPFXAUF.js";
7
11
  import {
8
12
  rectToBbox
9
13
  } from "./chunk-WBLXWOYK.js";
10
14
  import {
11
15
  loadProducer
12
- } from "./chunk-ZK3BQXHC.js";
16
+ } from "./chunk-POEEDPJI.js";
13
17
  import {
14
18
  trackLintRun
15
- } from "./chunk-MI6U3OIN.js";
19
+ } from "./chunk-L6RIMCMG.js";
16
20
  import {
17
21
  assertionTargets,
18
22
  buildLayoutSampleTimes,
@@ -31,37 +35,37 @@ import {
31
35
  mergeSampleTimes,
32
36
  parseAt,
33
37
  readMotionSpec
34
- } from "./chunk-U7SASZC5.js";
35
- import "./chunk-K44HCHZN.js";
38
+ } from "./chunk-RJRGR5KF.js";
39
+ import "./chunk-L3N7RJHS.js";
36
40
  import "./chunk-XUHOIDKG.js";
37
- import "./chunk-BNYRD7PQ.js";
41
+ import "./chunk-QLGBNGXC.js";
38
42
  import "./chunk-X7MTZ4T2.js";
39
- import "./chunk-TPIG7ZBX.js";
43
+ import "./chunk-RYL6ZIJP.js";
40
44
  import "./chunk-FH7WODJH.js";
41
- import "./chunk-4S4VUXW3.js";
42
- import "./chunk-KQHJKJ3V.js";
45
+ import "./chunk-RRBKEHST.js";
46
+ import "./chunk-HVXRYMGQ.js";
43
47
  import "./chunk-WPNE5NEP.js";
44
- import "./chunk-NKM53WMI.js";
45
- import "./chunk-2HWB4TCI.js";
48
+ import "./chunk-BRF3O35X.js";
49
+ import "./chunk-XNDXENJQ.js";
46
50
  import "./chunk-FJWEYVEM.js";
47
- import "./chunk-ZFN6GQU4.js";
48
- import "./chunk-KMJLHHBF.js";
51
+ import "./chunk-XXPYZBZ3.js";
52
+ import "./chunk-3ZPFRDEJ.js";
49
53
  import "./chunk-AIJS74LG.js";
50
54
  import {
51
55
  resolveProject
52
- } from "./chunk-SFUBSJFP.js";
56
+ } from "./chunk-KXX6NLOT.js";
53
57
  import "./chunk-K2FLNJVB.js";
54
58
  import {
55
59
  resolveLocalBrowserGpuMode
56
- } from "./chunk-QIJLIULK.js";
60
+ } from "./chunk-ZGCRVM5M.js";
57
61
  import "./chunk-442JNXRM.js";
58
- import "./chunk-SP6XL3NP.js";
62
+ import "./chunk-FAIYEIZ4.js";
59
63
  import "./chunk-XT7X6QCP.js";
60
64
  import "./chunk-4YYJOFKS.js";
61
65
  import "./chunk-HVW7ABXD.js";
62
- import "./chunk-PR7QQBSC.js";
63
- import "./chunk-Q2Y5OZCY.js";
64
- import "./chunk-K35E45SI.js";
66
+ import "./chunk-XGLNQDLN.js";
67
+ import "./chunk-N4IXP3MY.js";
68
+ import "./chunk-YZTVHRJ2.js";
65
69
  import "./chunk-AWDFDFI3.js";
66
70
  import "./chunk-P6LJ4Y32.js";
67
71
  import "./chunk-GMECXFAN.js";
@@ -69,8 +73,8 @@ import "./chunk-374QQGBQ.js";
69
73
  import {
70
74
  trackCheckReport,
71
75
  trackCommandFailure
72
- } from "./chunk-Y475GD4L.js";
73
- import "./chunk-LACFOFWX.js";
76
+ } from "./chunk-ZD3RDNZI.js";
77
+ import "./chunk-IZ7L6V76.js";
74
78
  import "./chunk-VWG7OQKU.js";
75
79
  import "./chunk-XBSPQ52S.js";
76
80
  import {
@@ -94,25 +98,25 @@ import "./chunk-TJSTGSAW.js";
94
98
  import "./chunk-Q5X2B5WT.js";
95
99
  import {
96
100
  withMeta
97
- } from "./chunk-GESJSXFH.js";
101
+ } from "./chunk-35PWWBGZ.js";
98
102
  import "./chunk-K4WIOZFP.js";
99
103
  import "./chunk-XUXGIA7H.js";
100
104
  import "./chunk-WERLJGIC.js";
101
105
  import "./chunk-ISN5GRYI.js";
102
- import "./chunk-OMBSUO4T.js";
106
+ import "./chunk-TCWMDCBX.js";
103
107
  import "./chunk-EOVYQ3IG.js";
104
108
  import "./chunk-AMKC3AXA.js";
105
109
  import {
106
110
  extractMediaMetadata,
107
111
  findHdrAutoPromotion
108
- } from "./chunk-VC7JBNPS.js";
109
- import "./chunk-62RUQJ5J.js";
112
+ } from "./chunk-IZPN423R.js";
113
+ import "./chunk-3SVC7SW4.js";
110
114
  import "./chunk-NE55C6S5.js";
111
115
  import "./chunk-JYVGYKXG.js";
112
- import "./chunk-AHBYQRGI.js";
113
- import "./chunk-3WD4JNMU.js";
116
+ import "./chunk-XQKVEQNY.js";
117
+ import "./chunk-QBYHNRHU.js";
114
118
  import "./chunk-VC76R6W2.js";
115
- import "./chunk-YA62XGXS.js";
119
+ import "./chunk-UJKQWGFF.js";
116
120
  import "./chunk-LFNQDTSH.js";
117
121
  import "./chunk-OFQWTKPW.js";
118
122
  import "./chunk-DPVXBVLL.js";
@@ -123,7 +127,7 @@ import "./chunk-TWWSYAKJ.js";
123
127
  import {
124
128
  lintProject,
125
129
  shouldBlockRender
126
- } from "./chunk-JDB65PPT.js";
130
+ } from "./chunk-GNTVYF7E.js";
127
131
  import {
128
132
  resolveProjectRelativeSrc
129
133
  } from "./chunk-IWFLMU2N.js";
@@ -140,13 +144,16 @@ import {
140
144
  import "./chunk-3GXQPCJC.js";
141
145
  import "./chunk-M2WBOQ2Q.js";
142
146
 
147
+ // src/commands/check.ts
148
+ import { resolve } from "path";
149
+
143
150
  // src/utils/checkPipeline.ts
144
151
  import { mkdirSync, writeFileSync } from "fs";
145
152
  import { join, relative } from "path";
146
153
 
147
154
  // src/utils/hdrPromotion.ts
148
155
  async function bundleProjectHtml(projectDir) {
149
- const { bundleToSingleHtml } = await import("./compiler-NPD3MYMO.js");
156
+ const { bundleToSingleHtml } = await import("./compiler-ZXT27Z62.js");
150
157
  return bundleToSingleHtml(projectDir);
151
158
  }
152
159
  async function collectBundledRenderMedia(html) {
@@ -255,22 +262,61 @@ function gateSampleTimes(duration, seeks, fallback) {
255
262
  const fractions = seeks && seeks.length > 0 ? seeks : [fallback];
256
263
  return mergeSampleTimes(fractions.map((fraction) => fraction * duration));
257
264
  }
258
- async function buildSampleGrid(driver, options) {
259
- const duration = await driver.getDuration();
265
+ function validateSampleRange([start, end], duration) {
266
+ if (!Number.isFinite(start + end) || start < 0 || end <= start || end > duration)
267
+ throw new Error(`Check range must lie within the composition duration (${duration} seconds)`);
268
+ }
269
+ function gateSamplesInRange(flag, samples, inRange, range) {
270
+ if (!range) return samples;
271
+ const selected = samples.filter(inRange);
272
+ if (samples.length > 0 && selected.length === 0) {
273
+ throw new Error(`No ${flag} seek samples lie within --range`);
274
+ }
275
+ return selected;
276
+ }
277
+ function layoutSamplesInRange(options, duration) {
278
+ if (!options.range)
279
+ return {
280
+ inRange: (_t) => true,
281
+ baseSamples: buildLayoutSampleTimes({ duration, samples: options.samples, at: options.at })
282
+ };
283
+ validateSampleRange(options.range, duration);
284
+ const [start, end] = options.range;
285
+ const inRange = (t) => t >= start && t <= end;
286
+ const selected = (options.at ?? []).filter(inRange);
287
+ if (options.at?.length && !selected.length) throw new Error("No --at samples lie within --range");
260
288
  const baseSamples = buildLayoutSampleTimes({
261
- duration,
289
+ duration: end - start,
262
290
  samples: options.samples,
263
- at: options.at
264
- });
291
+ at: selected.map((t) => t - start)
292
+ }).map((t) => t + start);
293
+ return { inRange, baseSamples };
294
+ }
295
+ async function buildSampleGrid(driver, options) {
296
+ const duration = await driver.getDuration();
297
+ const { inRange, baseSamples } = layoutSamplesInRange(options, duration);
265
298
  const transitions = options.atTransitions ? buildTransitionSampleTimes({
266
299
  duration,
267
- boundaries: await driver.getTransitionBoundaries(),
300
+ boundaries: (await driver.getTransitionBoundaries()).filter(inRange),
268
301
  cap: options.maxTransitionSamples
269
302
  }) : { times: [], dropped: 0 };
270
- const captionSamples = options.captionZone ? gateSampleTimes(duration, options.captionZone.seek, 1) : [];
271
- const frameSamples = options.frameCheck ? gateSampleTimes(duration, options.frameCheck.seek, 0.5) : [];
272
- const auditSamples = mergeSampleTimes(baseSamples, transitions.times);
273
- const layoutSamples = mergeSampleTimes(auditSamples, captionSamples, frameSamples);
303
+ const captionSamples = gateSamplesInRange(
304
+ "--caption-zone",
305
+ options.captionZone ? gateSampleTimes(duration, options.captionZone.seek, 1) : [],
306
+ inRange,
307
+ options.range
308
+ );
309
+ const frameSamples = gateSamplesInRange(
310
+ "--frame-check",
311
+ options.frameCheck ? gateSampleTimes(duration, options.frameCheck.seek, 0.5) : [],
312
+ inRange,
313
+ options.range
314
+ );
315
+ transitions.times = transitions.times.filter(inRange);
316
+ const auditSamples = mergeSampleTimes(baseSamples, transitions.times).filter(inRange);
317
+ const layoutSamples = mergeSampleTimes(auditSamples, captionSamples, frameSamples).filter(
318
+ inRange
319
+ );
274
320
  if (layoutSamples.length === 0) {
275
321
  throw new Error("Could not determine composition duration \u2014 no layout samples run");
276
322
  }
@@ -462,7 +508,7 @@ async function collectGridSamples(driver, options, grid, motion) {
462
508
  collected.screenshots.push({ time, pngBase64: capture.pngBase64 });
463
509
  }
464
510
  }
465
- await collectMotionOverlapSamples(driver, grid, collected);
511
+ await collectMotionOverlapSamples(driver, grid, collected, options.range);
466
512
  return collected;
467
513
  }
468
514
  var OVERLAP_SAMPLE_FPS = 8;
@@ -478,9 +524,11 @@ function buildOverlapSampleTimes(duration) {
478
524
  Array.from({ length: count }, (_, index) => Math.round(index * step * 1e3) / 1e3)
479
525
  );
480
526
  }
481
- async function collectMotionOverlapSamples(driver, grid, collected) {
527
+ async function collectMotionOverlapSamples(driver, grid, collected, range) {
482
528
  const baseTimes = new Set(grid.layoutSamples);
483
- for (const time of buildOverlapSampleTimes(grid.duration)) {
529
+ const overlapTimes = buildOverlapSampleTimes(range ? range[1] - range[0] : grid.duration);
530
+ const shiftedTimes = range ? mergeSampleTimes(overlapTimes.map((time) => time + range[0])) : overlapTimes;
531
+ for (const time of shiftedTimes) {
484
532
  if (baseTimes.has(time)) continue;
485
533
  await driver.seekGeometry(time);
486
534
  collected.layoutIssues.push(...await driver.collectOverlap(time));
@@ -875,7 +923,11 @@ function annotationBoxesFrom(issues) {
875
923
  async function runAuditGrid(driver, options, motion) {
876
924
  await driver.initialize(options.contrast);
877
925
  const grid = await buildSampleGrid(driver, options);
878
- const plan = await planMotionSampling(driver, motion, grid.duration);
926
+ const plan = await planMotionSampling(
927
+ driver,
928
+ options.range ? { kind: "none" } : motion,
929
+ grid.duration
930
+ );
879
931
  const seekLoopStart = Date.now();
880
932
  const collected = await collectGridSamples(driver, options, grid, plan);
881
933
  const seekLoopMs = Date.now() - seekLoopStart;
@@ -889,7 +941,7 @@ async function runAuditGrid(driver, options, motion) {
889
941
  motionIssues = [...motionIssues, ...await driver.anchorMotionIssues(evaluated)];
890
942
  }
891
943
  const userPicked = new Set(grid.userPickedSamples);
892
- const sweepFindings = detectSweepStatic(
944
+ const sweepFindings = options.range ? [] : detectSweepStatic(
893
945
  grid.duration,
894
946
  collected.layoutStateSignatures.filter((sample) => !userPicked.has(sample.time)),
895
947
  motionIssues,
@@ -901,6 +953,22 @@ async function runAuditGrid(driver, options, motion) {
901
953
  );
902
954
  const offPivotFindings = detectOffPivotRotation(collected.indicatorFrames);
903
955
  const contrast = buildContrastResults(collected.contrastEntries);
956
+ if (options.components?.length) {
957
+ if (!driver.matchComponents)
958
+ throw new Error("Component filtering unavailable in this check driver");
959
+ const findings = [
960
+ ...collected.layoutIssues,
961
+ ...sweepFindings,
962
+ ...rotationFindings,
963
+ ...offPivotFindings,
964
+ ...motionIssues,
965
+ ...contrast.findings
966
+ ];
967
+ const matches = await driver.matchComponents(options.components, findings);
968
+ findings.forEach((finding, i) => {
969
+ finding.componentMatch = matches[i];
970
+ });
971
+ }
904
972
  return {
905
973
  duration: grid.duration,
906
974
  layoutSamples: grid.layoutSamples,
@@ -1116,8 +1184,9 @@ function buildLintSection(result) {
1116
1184
  return { ...section(findings), filesScanned: result.results.length };
1117
1185
  }
1118
1186
  function buildReport(options, lint, browser, motion, extraMotionFindings, snapshotFiles, hdrPromotion = null, hdrInspection = "available") {
1119
- const layout = shapeLayoutSection(browser.layoutIssues, browser, options);
1120
- const shapedMotion = shapeLayoutFindings(browser.motionIssues, options);
1187
+ const shaping = options.components?.length ? { ...options, maxIssues: Number.MAX_SAFE_INTEGER } : options;
1188
+ const layout = shapeLayoutSection(browser.layoutIssues, browser, shaping);
1189
+ const shapedMotion = shapeLayoutFindings(browser.motionIssues, shaping);
1121
1190
  const motionFindings = [...shapedMotion.findings, ...extraMotionFindings];
1122
1191
  const runtime = section(browser.runtimeFindings);
1123
1192
  const motionSection = section(motionFindings);
@@ -1133,7 +1202,7 @@ function buildReport(options, lint, browser, motion, extraMotionFindings, snapsh
1133
1202
  layout,
1134
1203
  motion: {
1135
1204
  ...motionSection,
1136
- enabled: motion.kind !== "none",
1205
+ enabled: motion.kind !== "none" && !options.range,
1137
1206
  specPath: motion.kind === "none" ? void 0 : motion.path,
1138
1207
  samples: browser.motionSampleCount
1139
1208
  },
@@ -1154,7 +1223,7 @@ function buildReport(options, lint, browser, motion, extraMotionFindings, snapsh
1154
1223
  };
1155
1224
  trackCheckReport({
1156
1225
  contrastGate: options.contrast,
1157
- motionGate: motion.kind !== "none",
1226
+ motionGate: motion.kind !== "none" && !options.range,
1158
1227
  captionZoneGate: options.captionZone !== void 0,
1159
1228
  frameCheckGate: options.frameCheck !== void 0,
1160
1229
  snapshotsGate: options.snapshots,
@@ -1177,6 +1246,35 @@ function buildReport(options, lint, browser, motion, extraMotionFindings, snapsh
1177
1246
  exitCode: checkExitCode(report),
1178
1247
  runId: getRunId()
1179
1248
  });
1249
+ return filterComponentReport(report, options);
1250
+ }
1251
+ function filterComponentReport(report, options) {
1252
+ if (!options.range && !options.components?.length) return report;
1253
+ {
1254
+ report.scope = {
1255
+ range: options.range,
1256
+ components: options.components,
1257
+ hiddenFindings: 0,
1258
+ notes: [
1259
+ "Static lint and unscoped runtime failures remain project-wide.",
1260
+ ...options.range ? [
1261
+ "Whole-timeline motion assertions and frozen-sweep detection are skipped for range checks."
1262
+ ] : []
1263
+ ]
1264
+ };
1265
+ for (const group of [report.layout, report.motion, report.contrast]) {
1266
+ const before = group.findings.length;
1267
+ group.findings = group.findings.filter((f) => f.componentMatch !== false);
1268
+ report.scope.hiddenFindings += before - group.findings.length;
1269
+ if (group !== report.contrast && group.findings.length > options.maxIssues) {
1270
+ group.findings = group.findings.slice(0, options.maxIssues);
1271
+ report.scope.notes.push(
1272
+ "Selected findings exceed --max-issues; increase it to see the remainder."
1273
+ );
1274
+ if (group === report.layout) report.layout.truncated = true;
1275
+ }
1276
+ }
1277
+ }
1180
1278
  return report;
1181
1279
  }
1182
1280
  function shapeLayoutSection(issues, browser, options) {
@@ -1292,7 +1390,7 @@ function resolveMotionSpec(projectDir) {
1292
1390
  };
1293
1391
  }
1294
1392
  async function runBrowserCheck(project, options, motion) {
1295
- const module = await import("./checkBrowser-3N23I56J.js");
1393
+ const module = await import("./checkBrowser-PRDR6XBY.js");
1296
1394
  return module.runBrowserCheck(project, options, motion, runAuditGrid);
1297
1395
  }
1298
1396
  async function writeSnapshot(projectDir, index, time, pngBase64) {
@@ -1304,7 +1402,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
1304
1402
  return join("snapshots", filename);
1305
1403
  }
1306
1404
  async function captureFindingCrops(project, options, requests) {
1307
- const module = await import("./checkBrowser-3N23I56J.js");
1405
+ const module = await import("./checkBrowser-PRDR6XBY.js");
1308
1406
  return module.captureFindingCrops(project, options, requests);
1309
1407
  }
1310
1408
  var DEFAULT_DEPENDENCIES2 = {
@@ -1325,7 +1423,13 @@ var examples = [
1325
1423
  ];
1326
1424
  var DEFAULT_COMMAND_DEPENDENCIES = {
1327
1425
  resolveProject,
1328
- runPipeline: runCheckPipeline,
1426
+ async runPipeline(project, options) {
1427
+ const report = await runCheckPipeline(project, options);
1428
+ const images = (files) => files.map((file) => resolve(project.dir, file));
1429
+ reportArtifacts("check", "frame", images(report.snapshots.files));
1430
+ reportArtifacts("check", "finding", images(report.snapshots.findingFiles));
1431
+ return report;
1432
+ },
1329
1433
  withMeta
1330
1434
  };
1331
1435
  var CHECK_COMMAND_ARGS = {
@@ -1336,6 +1440,14 @@ var CHECK_COMMAND_ARGS = {
1336
1440
  description: "Number of midpoint samples across the duration (default: 9)",
1337
1441
  default: "9"
1338
1442
  },
1443
+ range: {
1444
+ type: "string",
1445
+ description: "Runtime sample interval in global seconds: start,end. Static lint remains project-wide."
1446
+ },
1447
+ components: {
1448
+ type: "string",
1449
+ description: "CSS selector list: filter findings involving these components or descendants; preserve full-check status."
1450
+ },
1339
1451
  at: {
1340
1452
  type: "string",
1341
1453
  description: "Comma-separated timestamps in seconds (e.g., --at 1.5,4,7.25)"
@@ -1423,7 +1535,11 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
1423
1535
  if (!asJson) {
1424
1536
  console.log(`${c.accent("\u25C6")} Checking ${c.accent(project.name)}`);
1425
1537
  }
1426
- const report = await dependencies.runPipeline(project, options);
1538
+ const report = await withProjectLock(
1539
+ project.dir,
1540
+ "check",
1541
+ () => dependencies.runPipeline(project, options)
1542
+ );
1427
1543
  if (asJson) {
1428
1544
  console.log(JSON.stringify(dependencies.withMeta(report), null, 2));
1429
1545
  } else {
@@ -1448,6 +1564,8 @@ function parseCheckOptions(args) {
1448
1564
  const maxTransitionSamples = positiveInteger(args["max-transition-samples"], 0);
1449
1565
  return {
1450
1566
  samples: positiveInteger(args.samples, DEFAULT_CHECK_OPTIONS.samples),
1567
+ range: parseCheckRange(args.range),
1568
+ components: typeof args.components === "string" ? [args.components] : void 0,
1451
1569
  at: parseAt(args.at),
1452
1570
  atTransitions: args["at-transitions"] === true,
1453
1571
  maxTransitionSamples: maxTransitionSamples > 0 ? maxTransitionSamples : void 0,
@@ -1465,6 +1583,14 @@ function parseCheckOptions(args) {
1465
1583
  browserGpuMode: resolveLocalBrowserGpuMode(args["browser-gpu"])
1466
1584
  };
1467
1585
  }
1586
+ function parseCheckRange(value) {
1587
+ if (value === void 0) return void 0;
1588
+ const parts = String(value).split(/[,:]/);
1589
+ const start = Number(parts[0]), end = Number(parts[1]);
1590
+ if (parts.length !== 2 || parts.some((p) => !p.trim()) || !Number.isFinite(start) || !Number.isFinite(end) || start < 0 || end <= start)
1591
+ throw new Error("Invalid --range: use non-negative start,end with end > start");
1592
+ return [start, end];
1593
+ }
1468
1594
  var CAPTION_ZONE_FIELDS = /* @__PURE__ */ new Set(["x0", "y0", "x1", "y1", "severity", "seek"]);
1469
1595
  var FRAME_CHECK_FIELDS = /* @__PURE__ */ new Set(["severity", "seek", "tol"]);
1470
1596
  var LAYOUT_FIELDS = /* @__PURE__ */ new Set(["proseCoverageFloor"]);
@@ -1622,6 +1748,12 @@ function nonNegativeNumber(value, fallback) {
1622
1748
  return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;
1623
1749
  }
1624
1750
  function printHumanReport(report) {
1751
+ if (report.scope) {
1752
+ console.log(
1753
+ `Scope: ${report.scope.range ? report.scope.range.join("\u2013") + "s" : "full timeline"}; ${report.scope.hiddenFindings} findings hidden by component filter. Counts/status include hidden findings.`
1754
+ );
1755
+ for (const note of report.scope.notes) console.log(note);
1756
+ }
1625
1757
  printSection("Lint", report.lint);
1626
1758
  if (report.browserSkipped) {
1627
1759
  console.log();
@@ -1638,10 +1770,13 @@ function printHumanReport(report) {
1638
1770
  const label = report.ok ? c.success("Check passed") : c.error("Check failed");
1639
1771
  console.log(`${report.ok ? c.success("\u25C7") : c.error("\u25C7")} ${label}`);
1640
1772
  }
1773
+ function isEmptySection(section2) {
1774
+ return section2.findings.length === 0 && section2.errorCount + section2.warningCount + section2.infoCount === 0;
1775
+ }
1641
1776
  function printSection(title, section2) {
1642
1777
  console.log();
1643
1778
  console.log(c.bold(title));
1644
- if (section2.findings.length === 0) {
1779
+ if (isEmptySection(section2)) {
1645
1780
  console.log(` ${c.success("\u25C7")} 0 errors, 0 warnings`);
1646
1781
  return;
1647
1782
  }
@@ -1651,7 +1786,7 @@ function printSection(title, section2) {
1651
1786
  function printLayoutSection(title, section2) {
1652
1787
  console.log();
1653
1788
  console.log(c.bold(title));
1654
- if (section2.findings.length === 0) {
1789
+ if (isEmptySection(section2)) {
1655
1790
  console.log(` ${c.success("\u25C7")} 0 issues across ${section2.samples.length} sample(s)`);
1656
1791
  } else {
1657
1792
  for (const finding of section2.findings) {
@@ -1674,7 +1809,7 @@ function printContrastSection(report) {
1674
1809
  console.log(` ${c.dim("\u25C7")} skipped`);
1675
1810
  return;
1676
1811
  }
1677
- if (section2.findings.length === 0) {
1812
+ if (isEmptySection(section2)) {
1678
1813
  console.log(
1679
1814
  ` ${c.success("\u25C7")} ${section2.passed}/${section2.checked} text checks pass WCAG AA`
1680
1815
  );
@@ -1725,6 +1860,7 @@ export {
1725
1860
  createCheckCommand,
1726
1861
  check_default as default,
1727
1862
  examples,
1863
+ parseCheckRange,
1728
1864
  parseFrameCheck,
1729
1865
  parseLayout
1730
1866
  };