hyperframes 0.8.184 → 0.8.186

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 (314) hide show
  1. package/dist/{add-5ZTD3MUZ.js → add-UGK7AZI6.js} +14 -14
  2. package/dist/{agentPromptGenerator-VIIPZCJ3.js → agentPromptGenerator-KYO5MKTW.js} +1 -1
  3. package/dist/{animatedGifPrep-AGASIWVA.js → animatedGifPrep-HPZPSB43.js} +9 -9
  4. package/dist/api.js +18 -18
  5. package/dist/{asset-LSTEMPIB.js → asset-X2GTFWOY.js} +2 -2
  6. package/dist/{assetCataloger-BKBMNL3A.js → assetCataloger-5NWEG4IU.js} +9 -9
  7. package/dist/audio-7PBM5F3H.js +2317 -0
  8. package/dist/{auth-MJWKYK77.js → auth-WABSMO46.js} +1 -1
  9. package/dist/{autoUpdate-2GGDKYR2.js → autoUpdate-6SCMLTSC.js} +2 -2
  10. package/dist/{backgroundChecks-7GRX5VQY.js → backgroundChecks-XOGPAAR3.js} +3 -3
  11. package/dist/backgroundChecksWorker.js +3 -3
  12. package/dist/{batchRender-BCV2LELR.js → batchRender-VR6IA77K.js} +5 -5
  13. package/dist/{beats-7BCFRBAL.js → beats-3IWXLMSC.js} +7 -7
  14. package/dist/{benchmark-2R6CN5MQ.js → benchmark-2SSYATCX.js} +10 -10
  15. package/dist/{browser-6AFGOI7G.js → browser-PMRN345D.js} +3 -3
  16. package/dist/{bundleWithLocalizedFonts-2EGPA5ZO.js → bundleWithLocalizedFonts-TT32MZBO.js} +2 -2
  17. package/dist/{capture-HOIAW6MO.js → capture-4VD6AKUJ.js} +13 -13
  18. package/dist/{capture-HA2UHLIU.js → capture-BDGYTE57.js} +2 -2
  19. package/dist/{captureCompositionFrame-4236FVWJ.js → captureCompositionFrame-5FVLAETA.js} +17 -13
  20. package/dist/{catalog-A6CZAWW4.js → catalog-HUYZO5D7.js} +14 -14
  21. package/dist/{catch-up-TNA4DJOA.js → catch-up-SSGTR2ZT.js} +4 -4
  22. package/dist/{check-5E5U2EQZ.js → check-JWUWHGM2.js} +34 -34
  23. package/dist/{checkBrowser-FNINXBMZ.js → checkBrowser-X7G6YNR7.js} +31 -31
  24. package/dist/{chunk-UJKUB2LH.js → chunk-22QKQDEE.js} +11 -11
  25. package/dist/{chunk-2PVE4WS2.js → chunk-27H2363S.js} +33 -6
  26. package/dist/{chunk-2ULXZ4PG.js → chunk-2II34JPM.js} +154 -21
  27. package/dist/{chunk-3QVMJ7GX.js → chunk-2PZZMAME.js} +11 -10
  28. package/dist/{chunk-X3CG5YQA.js → chunk-3YHGQJI6.js} +3 -3
  29. package/dist/{chunk-EEP5Y5IE.js → chunk-46HEFGXJ.js} +1 -1
  30. package/dist/{chunk-DWUGKEHR.js → chunk-4AFNEKU7.js} +1 -1
  31. package/dist/{chunk-R2BFTECP.js → chunk-4NTW45W5.js} +3 -3
  32. package/dist/{chunk-7HJALUIO.js → chunk-4XFFJAWS.js} +1 -1
  33. package/dist/{chunk-SN7KI5JA.js → chunk-5ZMIVTHN.js} +2 -2
  34. package/dist/{chunk-QL2PNIXC.js → chunk-5ZMXGNGC.js} +24 -16
  35. package/dist/{chunk-UKOTVJFV.js → chunk-6IOBAOU7.js} +1 -1
  36. package/dist/{chunk-JIUTXKWA.js → chunk-77QM6YRQ.js} +2 -1
  37. package/dist/{chunk-ES426XRJ.js → chunk-7AUMTARQ.js} +3 -3
  38. package/dist/{chunk-5CS4T6C6.js → chunk-7L37AB57.js} +1 -1
  39. package/dist/{chunk-RGXVEYHI.js → chunk-7M7TMM4S.js} +81 -10
  40. package/dist/{chunk-3TXNNBI2.js → chunk-7MLFYMFB.js} +2 -2
  41. package/dist/{chunk-MFAETWIF.js → chunk-7MVODWQF.js} +1 -1
  42. package/dist/{chunk-WHPN2TIT.js → chunk-ACLABKEF.js} +6 -6
  43. package/dist/{chunk-YMS5FOMC.js → chunk-B2A56S5C.js} +1 -1
  44. package/dist/{chunk-YALM6XN4.js → chunk-BRTDLVK3.js} +3 -3
  45. package/dist/{chunk-VDM3FEDP.js → chunk-DQZMJS2P.js} +1 -1
  46. package/dist/{chunk-PSKEKWVU.js → chunk-DTXDQ6OP.js} +1 -1
  47. package/dist/{chunk-Q33P4EAC.js → chunk-EZINX6HH.js} +3 -3
  48. package/dist/{chunk-3MDJIWOV.js → chunk-FCWFV4P7.js} +75 -35
  49. package/dist/{chunk-ABZYYUUH.js → chunk-FRLTKTOR.js} +1 -1
  50. package/dist/{chunk-E32ZQ2WO.js → chunk-GTMBII7X.js} +1 -1
  51. package/dist/{chunk-YOZPQCSR.js → chunk-HOFX63F2.js} +3 -3
  52. package/dist/{chunk-LRGYPXHF.js → chunk-HZ7M2MZA.js} +1 -1
  53. package/dist/{chunk-TYXH3EKP.js → chunk-I5JRXMCV.js} +16 -1
  54. package/dist/{chunk-LLC4CS6I.js → chunk-ID5AJ4L3.js} +3 -3
  55. package/dist/{chunk-FGJEUV4S.js → chunk-K6KBOORN.js} +48 -4
  56. package/dist/{chunk-EM7C7H7S.js → chunk-KNLSYCI5.js} +7 -7
  57. package/dist/{chunk-4N4P3ZWL.js → chunk-LDW3KVGK.js} +2 -2
  58. package/dist/{chunk-OLZENUPI.js → chunk-LLFQA7XF.js} +1 -1
  59. package/dist/chunk-LLMSX6V6.js +17 -0
  60. package/dist/{chunk-5UDRPPN2.js → chunk-MY6CVBDD.js} +7 -4
  61. package/dist/{chunk-7NRI7HYX.js → chunk-NPDPDEPP.js} +1 -1
  62. package/dist/{chunk-BCHSTE7U.js → chunk-PEIV2SOG.js} +1 -1
  63. package/dist/{chunk-ADDHW2FS.js → chunk-Q447CX26.js} +82 -12
  64. package/dist/{chunk-YWNJTZGN.js → chunk-R6IGQ5NO.js} +2 -2
  65. package/dist/{chunk-YWHCXIMD.js → chunk-RFJ6SX4U.js} +5 -5
  66. package/dist/{chunk-J3QM7AHP.js → chunk-RNZEQTWZ.js} +2 -2
  67. package/dist/{chunk-SAX7HQ5E.js → chunk-ROWEDRVX.js} +1 -1
  68. package/dist/{chunk-PFYWVUHA.js → chunk-RPUIMFHF.js} +1 -1
  69. package/dist/{chunk-OYLO6TYK.js → chunk-RUOG4VB7.js} +1 -1
  70. package/dist/{chunk-UNNXFKVG.js → chunk-RVZNSKRH.js} +2 -2
  71. package/dist/{chunk-VNVQGDPC.js → chunk-T4RP55P2.js} +1 -1
  72. package/dist/{chunk-GDEV42FA.js → chunk-TH7J3JZ5.js} +524 -42
  73. package/dist/{chunk-VHZ6DL3M.js → chunk-TMK4Q7JA.js} +10 -7
  74. package/dist/{chunk-74JMKLVU.js → chunk-TQ2RRB5V.js} +1 -1
  75. package/dist/{chunk-ICJEAFPD.js → chunk-U4BMRIE6.js} +16 -7
  76. package/dist/{chunk-HR23IKLZ.js → chunk-U7QTMRLW.js} +2 -2
  77. package/dist/{chunk-KN46TGHV.js → chunk-UAJCTEK2.js} +1 -1
  78. package/dist/{chunk-CXABAXB3.js → chunk-UJZT6HNN.js} +1 -1
  79. package/dist/chunk-UOZX5W5T.js +3852 -0
  80. package/dist/{chunk-FFJ5TDRD.js → chunk-VHBBV5DH.js} +10 -3
  81. package/dist/{chunk-ZRHO6YMM.js → chunk-WHMFW5ET.js} +4 -4
  82. package/dist/{chunk-WTFUDNW2.js → chunk-WLHNIIXU.js} +3 -3
  83. package/dist/{chunk-ZOCHDXDG.js → chunk-Y2M6XSNK.js} +1 -1
  84. package/dist/{chunk-2XA7KXQO.js → chunk-YNH6ERDL.js} +2 -2
  85. package/dist/{chunk-JB6ARMQS.js → chunk-YQICCAVA.js} +1 -1
  86. package/dist/{chunk-7MB2ZAQF.js → chunk-YRAJDFIN.js} +1 -1
  87. package/dist/{chunk-IWTNTUPQ.js → chunk-Z5233OAN.js} +11 -13
  88. package/dist/{chunk-TE427YID.js → chunk-ZKBW7NU2.js} +2 -2
  89. package/dist/{chunk-4KKKBEP3.js → chunk-ZVBEGBII.js} +3 -3
  90. package/dist/{clean-HGASSMWI.js → clean-IM2JIAUT.js} +18 -18
  91. package/dist/cli.js +53 -53
  92. package/dist/{cloud-JPDVNXHN.js → cloud-6IPBCJSX.js} +4 -4
  93. package/dist/{cloudrun-AMMGSDRP.js → cloudrun-MWZ6S2I2.js} +7 -7
  94. package/dist/commands/contrast-audit.browser.js +1 -2
  95. package/dist/commands/layout-audit.browser.js +196 -0
  96. package/dist/{compare-LHHVHUN3.js → compare-WD7A2TV5.js} +28 -28
  97. package/dist/{compiler-Q3N6QXMT.js → compiler-2EKSMC3I.js} +6 -6
  98. package/dist/{component-D72J32Q7.js → component-JKALWH36.js} +3 -3
  99. package/dist/{compositions-UQRJ5ROG.js → compositions-643NAG4A.js} +13 -13
  100. package/dist/{delete-P42VIDDA.js → delete-EASPXKHQ.js} +2 -2
  101. package/dist/{deploy-WZTH57O4.js → deploy-CDKCQ5MX.js} +1 -1
  102. package/dist/{deterministicFonts-VQ5UBMXY.js → deterministicFonts-EGAAE7QL.js} +3 -3
  103. package/dist/{dist-DYS24AMA.js → dist-F6FOKRSU.js} +10 -4
  104. package/dist/{dist-SENYPQGW.js → dist-LM7AVHOU.js} +3 -3
  105. package/dist/docs/data-attributes.md +1 -1
  106. package/dist/{doctor-KEJIG2SK.js → doctor-7XUVYDJQ.js} +13 -13
  107. package/dist/{events-CYKSNR7N.js → events-5TTPYBKG.js} +3 -3
  108. package/dist/{events-UZXFQPMT.js → events-TULV6D3G.js} +3 -3
  109. package/dist/{feedback-LXNQF7CA.js → feedback-4FTPWM6P.js} +8 -8
  110. package/dist/{ffmpeg-BYHON577.js → ffmpeg-MP7ZVYLZ.js} +9 -9
  111. package/dist/{figma-EIQ35PS6.js → figma-B7LFWYKO.js} +3 -3
  112. package/dist/fontLocalizeCli.js +12 -12
  113. package/dist/{get-CC2YL7QO.js → get-F7W4AQ2V.js} +2 -2
  114. package/dist/{gpuPolicy-VFSACUQV.js → gpuPolicy-NSNVDFXC.js} +9 -9
  115. package/dist/{grade-compare-TUQL7IV2.js → grade-compare-6QXDTLS2.js} +29 -29
  116. package/dist/{gsapParserAcorn-7NCK2LVT.js → gsapParserAcorn-SKODXC2N.js} +2 -2
  117. package/dist/{help-ROROO5K6.js → help-RJAA4O74.js} +1 -1
  118. package/dist/{history-PNELYLXX.js → history-OOQBDVV5.js} +6 -6
  119. package/dist/hyperframe.manifest.json +1 -1
  120. package/dist/hyperframe.runtime.iife.js +67 -67
  121. package/dist/hyperframes-player.global.js +1 -1
  122. package/dist/{info-4FZTH6AS.js → info-5OGGYYLO.js} +9 -9
  123. package/dist/{init-I43GHHVP.js → init-DM3TJKW2.js} +68 -50
  124. package/dist/{inspect-IT4TYIZ3.js → inspect-FECQCLS5.js} +29 -29
  125. package/dist/{installer-CWOJVK5K.js → installer-WOG4VORV.js} +7 -7
  126. package/dist/{keyframes-3FBOGVD4.js → keyframes-SZHWUF5Y.js} +7 -7
  127. package/dist/{lambda-H3V32I7M.js → lambda-JG2ZRGMC.js} +9 -9
  128. package/dist/{layout-BZ5LYJ5C.js → layout-7ACF7ZKC.js} +29 -29
  129. package/dist/{lint-ZTNSGP2S.js → lint-ZCQGMILV.js} +9 -9
  130. package/dist/{lintProject-C2ONSH2U.js → lintProject-JATQKR64.js} +3 -3
  131. package/dist/{list-XM4GWJYY.js → list-MH2X3Y2T.js} +2 -2
  132. package/dist/{login-H6HYKMWX.js → login-CK46WX5U.js} +4 -4
  133. package/dist/{manager-TWVDSJXO.js → manager-GXTPNJVW.js} +10 -10
  134. package/dist/{media-treatment-N7MY5NXB.js → media-treatment-EH2AT34Z.js} +15 -15
  135. package/dist/{models-WEMIMYBD.js → models-D5XP2UK6.js} +13 -13
  136. package/dist/{motionShot-RHICTVPU.js → motionShot-UR7D3SRQ.js} +16 -16
  137. package/dist/{normalize-4UDISLPL.js → normalize-3AYFSN2F.js} +1 -1
  138. package/dist/{normalize-audio-ZFUZCJE3.js → normalize-audio-635JOR5W.js} +4 -4
  139. package/dist/{open-IBJ4FL3G.js → open-6WE5WFVM.js} +14 -14
  140. package/dist/{parakeetRunner-XXO4WSLR.js → parakeetRunner-STHZPG32.js} +14 -14
  141. package/dist/{pipeline-6ML3LUVK.js → pipeline-LVEKRETU.js} +10 -10
  142. package/dist/{play-RV4NAVF5.js → play-W6TDW4FE.js} +21 -21
  143. package/dist/{preflight-R3DEFMLA.js → preflight-LIMQXLR7.js} +10 -10
  144. package/dist/{present-5TBJGE6B.js → present-RX5QX6UR.js} +17 -17
  145. package/dist/{preview-FLKZ5CXJ.js → preview-KIWTWK63.js} +20 -20
  146. package/dist/{producer-7XYSPVKH.js → producer-TSNKSCUM.js} +1 -1
  147. package/dist/{projectConfig-TBU2VWZX.js → projectConfig-NCP7JRH4.js} +9 -9
  148. package/dist/{publication-CWWUJYJ5.js → publication-5W5UZWGC.js} +4 -4
  149. package/dist/{publish-FSNE4FEB.js → publish-7WR4XJ6I.js} +11 -11
  150. package/dist/{remove-background-MDFWRWCT.js → remove-background-43JGBRWQ.js} +11 -11
  151. package/dist/{render-F4JQ553X.js → render-456HCO6O.js} +31 -31
  152. package/dist/{render-LWZKXCLY.js → render-7T44HIM6.js} +5 -5
  153. package/dist/{render-DBGQZAZT.js → render-WHMLYIOI.js} +18 -30
  154. package/dist/{render-batch-PU7NMLIJ.js → render-batch-LURBJTBV.js} +5 -5
  155. package/dist/renderSetupWorker.js +3 -3
  156. package/dist/{resolver-RUBGFXPC.js → resolver-MBIW4VC4.js} +6 -6
  157. package/dist/{sherpa-X2TBNO6P.js → sherpa-5J2AALED.js} +13 -13
  158. package/dist/skills/hyperframes/SKILL.md +52 -174
  159. package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/FRAME.md +289 -0
  160. package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/caption-skin.html +220 -0
  161. package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  162. package/dist/skills/hyperframes/assets/frame-presets/blockframe/FRAME.md +275 -0
  163. package/dist/skills/hyperframes/assets/frame-presets/blockframe/caption-skin.html +223 -0
  164. package/dist/skills/hyperframes/assets/frame-presets/blockframe/frame-showcase.html +1347 -0
  165. package/dist/skills/hyperframes/assets/frame-presets/blue-professional/FRAME.md +307 -0
  166. package/dist/skills/hyperframes/assets/frame-presets/blue-professional/caption-skin.html +222 -0
  167. package/dist/skills/hyperframes/assets/frame-presets/blue-professional/frame-showcase.html +1372 -0
  168. package/dist/skills/hyperframes/assets/frame-presets/bold-poster/FRAME.md +275 -0
  169. package/dist/skills/hyperframes/assets/frame-presets/bold-poster/caption-skin.html +229 -0
  170. package/dist/skills/hyperframes/assets/frame-presets/bold-poster/frame-showcase.html +1140 -0
  171. package/dist/skills/hyperframes/assets/frame-presets/broadside/FRAME.md +284 -0
  172. package/dist/skills/hyperframes/assets/frame-presets/broadside/caption-skin.html +224 -0
  173. package/dist/skills/hyperframes/assets/frame-presets/broadside/frame-showcase.html +1166 -0
  174. package/dist/skills/hyperframes/assets/frame-presets/capsule/FRAME.md +284 -0
  175. package/dist/skills/hyperframes/assets/frame-presets/capsule/caption-skin.html +223 -0
  176. package/dist/skills/hyperframes/assets/frame-presets/capsule/frame-showcase.html +1465 -0
  177. package/dist/skills/hyperframes/assets/frame-presets/cartesian/FRAME.md +278 -0
  178. package/dist/skills/hyperframes/assets/frame-presets/cartesian/caption-skin.html +221 -0
  179. package/dist/skills/hyperframes/assets/frame-presets/cartesian/frame-showcase.html +1263 -0
  180. package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/FRAME.md +265 -0
  181. package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/caption-skin.html +237 -0
  182. package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  183. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/FRAME.md +277 -0
  184. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/caption-skin.html +223 -0
  185. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 +0 -0
  186. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 +0 -0
  187. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/Inter-400.woff2 +0 -0
  188. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/Inter-700.woff2 +0 -0
  189. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 +0 -0
  190. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 +0 -0
  191. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +93 -0
  192. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-inter.txt +93 -0
  193. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +93 -0
  194. package/dist/skills/hyperframes/assets/frame-presets/code-editorial/frame-showcase.html +1438 -0
  195. package/dist/skills/hyperframes/assets/frame-presets/coral/FRAME.md +314 -0
  196. package/dist/skills/hyperframes/assets/frame-presets/coral/caption-skin.html +225 -0
  197. package/dist/skills/hyperframes/assets/frame-presets/coral/frame-showcase.html +1268 -0
  198. package/dist/skills/hyperframes/assets/frame-presets/creative-mode/FRAME.md +333 -0
  199. package/dist/skills/hyperframes/assets/frame-presets/creative-mode/caption-skin.html +226 -0
  200. package/dist/skills/hyperframes/assets/frame-presets/creative-mode/frame-showcase.html +1330 -0
  201. package/dist/skills/hyperframes/assets/frame-presets/daisy-days/FRAME.md +274 -0
  202. package/dist/skills/hyperframes/assets/frame-presets/daisy-days/caption-skin.html +229 -0
  203. package/dist/skills/hyperframes/assets/frame-presets/daisy-days/frame-showcase.html +1444 -0
  204. package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/FRAME.md +265 -0
  205. package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/caption-skin.html +222 -0
  206. package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  207. package/dist/skills/hyperframes/references/captions.md +46 -0
  208. package/dist/skills/hyperframes/references/film.md +47 -0
  209. package/dist/skills/hyperframes/references/format.md +157 -0
  210. package/dist/skills/hyperframes/references/look.md +69 -0
  211. package/dist/skills/hyperframes/references/motion.md +94 -0
  212. package/dist/skills/hyperframes/references/overlays.md +39 -0
  213. package/dist/skills/hyperframes/references/plugin-installation.md +3 -3
  214. package/dist/skills/hyperframes/references/review.md +51 -0
  215. package/dist/skills/hyperframes/references/runtimes.md +43 -0
  216. package/dist/skills/hyperframes/references/skill-lifecycle.md +21 -13
  217. package/dist/skills/hyperframes/references/sound.md +43 -0
  218. package/dist/skills/hyperframes/references/spec.md +76 -0
  219. package/dist/skills/hyperframes/references/story.md +103 -0
  220. package/dist/skills/hyperframes/references/storyboard-format.md +30 -22
  221. package/dist/skills/hyperframes/references/storyboard.md +36 -0
  222. package/dist/skills/hyperframes/references/types/3d.md +25 -0
  223. package/dist/skills/hyperframes/references/types/character.md +20 -0
  224. package/dist/skills/hyperframes/references/types/data.md +19 -0
  225. package/dist/skills/hyperframes/references/types/explainer.md +34 -0
  226. package/dist/skills/hyperframes/references/types/launch.md +31 -0
  227. package/dist/skills/hyperframes/references/types/music.md +24 -0
  228. package/dist/skills/hyperframes/references/types/vertical.md +23 -0
  229. package/dist/skills/hyperframes/scripts/bake-basemap.mjs +324 -0
  230. package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +1 -6
  231. package/dist/skills/hyperframes/scripts/locate.mjs +228 -0
  232. package/dist/skills/hyperframes-cli/SKILL.md +76 -179
  233. package/dist/skills/hyperframes-cli/references/beats.md +1 -1
  234. package/dist/skills/hyperframes-cli/references/cloud.md +2 -2
  235. package/dist/skills/hyperframes-cli/references/cloudrun.md +1 -1
  236. package/dist/skills/hyperframes-cli/references/conventions.md +17 -0
  237. package/dist/skills/hyperframes-cli/references/feedback.md +14 -0
  238. package/dist/skills/hyperframes-cli/references/init-and-scaffold.md +11 -7
  239. package/dist/skills/hyperframes-cli/references/lambda.md +1 -1
  240. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +19 -8
  241. package/dist/skills/hyperframes-cli/references/preview-render.md +8 -2
  242. package/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +8 -0
  243. package/dist/skills/media-use/SKILL.md +47 -91
  244. package/dist/skills/media-use/audio/references/bgm.md +1 -1
  245. package/dist/skills/media-use/audio/references/captions/authoring.md +1 -2
  246. package/dist/skills/media-use/audio/references/captions/motion.md +5 -5
  247. package/dist/skills/media-use/audio/references/tts.md +0 -3
  248. package/dist/skills/media-use/audio/scripts/audio.mjs +5 -6
  249. package/dist/skills/media-use/audio/scripts/carve.mjs +560 -0
  250. package/dist/skills/media-use/audio/scripts/carve.test.mjs +254 -0
  251. package/dist/skills/media-use/audio/scripts/extract-audio-data.py +199 -0
  252. package/dist/skills/media-use/references/local.md +24 -0
  253. package/dist/skills/media-use/references/memory.md +4 -4
  254. package/dist/skills/media-use/references/mixing.md +71 -0
  255. package/dist/skills/media-use/references/operations.md +1 -1
  256. package/dist/skills/media-use/scripts/compatibility.test.mjs +1 -56
  257. package/dist/skills/media-use/scripts/lib/prefs-store.mjs +1 -1
  258. package/dist/skills/media-use/scripts/lib/recipe-store.mjs +1 -1
  259. package/dist/skills/media-use/scripts/prefs.mjs +2 -3
  260. package/dist/skills/media-use/scripts/recipe.mjs +1 -3
  261. package/dist/{skills-WHKMWO2D.js → skills-UHOXOGGF.js} +20 -13
  262. package/dist/{skillsUpdateCheck-XQGZGJJG.js → skillsUpdateCheck-PDZIFUJE.js} +3 -3
  263. package/dist/{snapshot-M4NUUSNU.js → snapshot-PFV7ALLH.js} +462 -100
  264. package/dist/{src-4UYM2K3S.js → src-DCVSEODX.js} +8 -8
  265. package/dist/{src-6MSC62U2.js → src-XK5YIR6L.js} +11 -11
  266. package/dist/{staticProjectServer-ERDTFP45.js → staticProjectServer-4IE4G4JO.js} +17 -17
  267. package/dist/studio/assets/{hyperframes-player-DEncBxR7.js → hyperframes-player-B_skzvYC.js} +1 -1
  268. package/dist/studio/assets/{index-Cc22mgvY.js → index-CgLbvCUo.js} +1 -1
  269. package/dist/studio/assets/{index-BABXr78Q.js → index-Dn5FAk2e.js} +99 -99
  270. package/dist/studio/index.html +1 -1
  271. package/dist/{studio-api-SAKD3VKC.js → studio-api-JMWYU7KF.js} +11 -11
  272. package/dist/{studioServer-IRI7EVOM.js → studioServer-BWLSTGIG.js} +50 -49
  273. package/dist/{telemetry-F4XADVAF.js → telemetry-JCU3AV7W.js} +3 -3
  274. package/dist/templates/_shared/AGENTS.md +14 -19
  275. package/dist/templates/_shared/CLAUDE.md +14 -19
  276. package/dist/templates/blank/index.html +10 -4
  277. package/dist/{timeline-5I444RRE.js → timeline-BCIFQYOM.js} +20 -19
  278. package/dist/{tokens-LRRYM35A.js → tokens-7IXKALMQ.js} +2 -2
  279. package/dist/{transcribe-44XDFNVU.js → transcribe-HW7HGJ4V.js} +19 -19
  280. package/dist/{transcribe-WHYHWAB2.js → transcribe-ZUQD3B32.js} +12 -12
  281. package/dist/{updateCheck-7CPH3CAZ.js → updateCheck-Z6LNEK7B.js} +2 -2
  282. package/dist/{upgrade-WW4GQ2RI.js → upgrade-JYH72JGL.js} +2 -2
  283. package/dist/{urlDownloader-OHLLP45A.js → urlDownloader-WKLFHSUH.js} +8 -8
  284. package/dist/{validate-VNCDH2LW.js → validate-QCC27YYI.js} +23 -23
  285. package/dist/{video-5OHTLL2D.js → video-EZ7ONY6L.js} +9 -9
  286. package/dist/warmCheck.js +36 -36
  287. package/package.json +1 -1
  288. package/dist/audio-KGK44XE4.js +0 -1153
  289. package/dist/chunk-R2SQBPMH.js +0 -3805
  290. package/dist/skills/hyperframes/references/brief-contract.md +0 -108
  291. package/dist/skills/hyperframes/references/brief-format.md +0 -72
  292. package/dist/skills/hyperframes/references/capability-menu.md +0 -47
  293. package/dist/skills/hyperframes/references/frame-worker-core.md +0 -82
  294. package/dist/skills/hyperframes/references/intent-interview.md +0 -73
  295. package/dist/skills/hyperframes/references/pitch-round.md +0 -40
  296. package/dist/skills/hyperframes/references/production-loop.md +0 -26
  297. package/dist/skills/hyperframes/references/review-loop.md +0 -37
  298. package/dist/skills/hyperframes/references/route-briefs.md +0 -11
  299. package/dist/skills/hyperframes/references/routes/embedded-captions.md +0 -11
  300. package/dist/skills/hyperframes/references/routes/faceless-explainer.md +0 -12
  301. package/dist/skills/hyperframes/references/routes/general-video.md +0 -12
  302. package/dist/skills/hyperframes/references/routes/motion-graphics.md +0 -11
  303. package/dist/skills/hyperframes/references/routes/music-to-video.md +0 -12
  304. package/dist/skills/hyperframes/references/routes/pr-to-video.md +0 -28
  305. package/dist/skills/hyperframes/references/routes/product-launch-video.md +0 -13
  306. package/dist/skills/hyperframes/references/routes/remotion-to-hyperframes.md +0 -9
  307. package/dist/skills/hyperframes/references/routes/slideshow.md +0 -11
  308. package/dist/skills/hyperframes/references/routes/talking-head-recut.md +0 -11
  309. package/dist/skills/hyperframes/references/script-format.md +0 -52
  310. package/dist/skills/hyperframes/references/subagent-dispatch.md +0 -35
  311. package/dist/skills/hyperframes/references/workflow-catalog.md +0 -10
  312. package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +0 -176
  313. package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +0 -28
  314. package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +0 -106
@@ -8,7 +8,7 @@ import {
8
8
  EncoderInterruptedError,
9
9
  encoderFailureError,
10
10
  prepareAnimatedGifInputs
11
- } from "./chunk-TE427YID.js";
11
+ } from "./chunk-ZKBW7NU2.js";
12
12
  import {
13
13
  GENERIC_FAMILIES,
14
14
  collectFontFamilyCustomProperties,
@@ -16,7 +16,7 @@ import {
16
16
  iterateFontFamilyDeclarations,
17
17
  normalizeSystemFontPrimaryFamilies,
18
18
  resolveFontFamilyDeclarationFamilies
19
- } from "./chunk-OLZENUPI.js";
19
+ } from "./chunk-LLFQA7XF.js";
20
20
  import {
21
21
  parseEncoderOptions
22
22
  } from "./chunk-KLIKCX6Q.js";
@@ -154,7 +154,7 @@ import {
154
154
  validateEngineConfigSnapshot,
155
155
  verifyDiskDrawElementSamples,
156
156
  writeCapturedFrame
157
- } from "./chunk-RGXVEYHI.js";
157
+ } from "./chunk-7M7TMM4S.js";
158
158
  import {
159
159
  DISTRIBUTED_FPS,
160
160
  HF_VFX_ATTR,
@@ -169,7 +169,7 @@ import {
169
169
  parseVfxChain,
170
170
  resolveAuthoredTimingWindow,
171
171
  toFps
172
- } from "./chunk-J3QM7AHP.js";
172
+ } from "./chunk-RNZEQTWZ.js";
173
173
  import {
174
174
  assignBundledRuntimeCompositionIds,
175
175
  buildVariablesByCompScript,
@@ -182,7 +182,7 @@ import {
182
182
  isTemplateEntry,
183
183
  parsesAsScript,
184
184
  prepareFlattenedInnerRoot
185
- } from "./chunk-YALM6XN4.js";
185
+ } from "./chunk-BRTDLVK3.js";
186
186
  import {
187
187
  COMPOSITION_SOURCE_URL,
188
188
  HF_COLOR_GRADING_ATTR,
@@ -210,7 +210,7 @@ import {
210
210
  shouldClampResolvedMediaDuration,
211
211
  sourceTimeAt,
212
212
  styleElementsFor
213
- } from "./chunk-R2SQBPMH.js";
213
+ } from "./chunk-UOZX5W5T.js";
214
214
  import {
215
215
  MAX_AUDIO_GAIN
216
216
  } from "./chunk-UJKQWGFF.js";
@@ -224,7 +224,7 @@ import {
224
224
  isAspectAgnosticResolutionAlias,
225
225
  normalizeResolutionFlag,
226
226
  suggestMatchingPreset
227
- } from "./chunk-YMS5FOMC.js";
227
+ } from "./chunk-B2A56S5C.js";
228
228
  import {
229
229
  TRANSITIONS,
230
230
  convertTransfer,
@@ -240,7 +240,7 @@ import {
240
240
  import {
241
241
  lintHyperframeHtml,
242
242
  resolveReferencedStart
243
- } from "./chunk-ADDHW2FS.js";
243
+ } from "./chunk-Q447CX26.js";
244
244
  import {
245
245
  isUnresolvedAssetPlaceholder,
246
246
  readProjectFile,
@@ -5694,7 +5694,10 @@ function stripCompilerMountBootstrap(source) {
5694
5694
  ""
5695
5695
  );
5696
5696
  }
5697
- function detectRenderModeHints(html) {
5697
+ function runtimeRoot(document2) {
5698
+ return document2.querySelector('[data-composition-id][data-root="true"]') ?? document2.querySelector("[data-composition-id]");
5699
+ }
5700
+ function detectRenderModeHints(html, pageMotionBlur) {
5698
5701
  const reasons = [];
5699
5702
  const { document: document2 } = parseHTML(html);
5700
5703
  if (document2.querySelector("canvas[layoutsubtree]")) {
@@ -5702,6 +5705,11 @@ function detectRenderModeHints(html) {
5702
5705
  code: "htmlInCanvas",
5703
5706
  message: "Detected html-in-canvas API (layoutsubtree canvas). Chrome does not support concurrent drawElementImage across multiple workers; render is pinned to a single worker."
5704
5707
  });
5708
+ } else if (pageMotionBlur !== "off" && runtimeRoot(document2)?.getAttribute("data-motion-blur") === "on") {
5709
+ reasons.push({
5710
+ code: "captureMotionBlur",
5711
+ message: 'Detected capture motion blur (data-motion-blur="on"), which draws each frame with html-in-canvas; routed through screenshot capture mode.'
5712
+ });
5705
5713
  }
5706
5714
  if (document2.querySelector("iframe")) {
5707
5715
  reasons.push({
@@ -6604,7 +6612,7 @@ async function readLocalFont(absPath) {
6604
6612
  return { kind: "inline", buffer: Buffer.concat(chunks, totalBytes) };
6605
6613
  }
6606
6614
  async function embedLocalFontFaces(html, projectDir) {
6607
- const { fontToDataUri: toDataUri } = await import("./deterministicFonts-VQ5UBMXY.js");
6615
+ const { fontToDataUri: toDataUri } = await import("./deterministicFonts-EGAAE7QL.js");
6608
6616
  const styleBlockRe = /<style\b[^>]*>([\s\S]*?)<\/style>/gi;
6609
6617
  const fontFaceRe = /@font-face\s*\{([^}]*)\}/gi;
6610
6618
  let result = html;
@@ -6733,7 +6741,7 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
6733
6741
  /(<(?:video|audio)\b[^>]*?)\s+preload\s*=\s*["']none["']/gi,
6734
6742
  "$1"
6735
6743
  );
6736
- const renderModeHints = detectRenderModeHints(sanitizedHtml);
6744
+ const renderModeHints = detectRenderModeHints(sanitizedHtml, options.pageMotionBlur);
6737
6745
  const hasShaderTransitions = detectShaderTransitionUsage(sanitizedHtml);
6738
6746
  const usesThreeDTransforms = detectThreeDTransformUsage(sanitizedHtml);
6739
6747
  const usesMixBlendMode = detectMixBlendModeUsage(sanitizedHtml);
@@ -7218,6 +7226,7 @@ async function runCompileStage(input) {
7218
7226
  abortSignal,
7219
7227
  variables: input.variables,
7220
7228
  urlByAbsentLocalPath: input.urlByAbsentLocalPath,
7229
+ pageMotionBlur: input.pageMotionBlur,
7221
7230
  animatedGifCacheDir: cfg.extractCacheDir ? join13(cfg.extractCacheDir, "animated-gif") : void 0,
7222
7231
  ffmpegProcessTimeout: cfg.ffmpegProcessTimeout
7223
7232
  });
@@ -7501,6 +7510,7 @@ async function runProbeStage(input) {
7501
7510
  variables: job.config.variables,
7502
7511
  deviceScaleFactor,
7503
7512
  motionBlur,
7513
+ pageMotionBlur: job.config.pageMotionBlur,
7504
7514
  requiresWebGpu: compositionRequiresWebGpu(compiled.html),
7505
7515
  subTimelineWaitMemo
7506
7516
  };
@@ -10357,7 +10367,6 @@ async function enforceAacTruePeak(input) {
10357
10367
  try {
10358
10368
  scratchDir = mkdtempSync3(join24(dirname8(input.audioPath), ".true-peak-"));
10359
10369
  const correctedPath = join24(scratchDir, "audio.m4a");
10360
- const correctionTargetDbfs = AAC_DELIVERY_TRUE_PEAK_DBFS - AAC_TRUE_PEAK_CORRECTION_HEADROOM_DB;
10361
10370
  const measurements = [];
10362
10371
  let attenuationDb = 0;
10363
10372
  let measuredPath = input.audioPath;
@@ -10375,7 +10384,8 @@ async function enforceAacTruePeak(input) {
10375
10384
  return { success: true, loweredDb: Number((-attenuationDb).toFixed(2)) };
10376
10385
  }
10377
10386
  if (pass === MAX_TRUE_PEAK_CORRECTION_PASSES) break;
10378
- attenuationDb += correctionTargetDbfs - truePeakDbfs;
10387
+ const headroomDb = AAC_TRUE_PEAK_CORRECTION_HEADROOM_DB * 2 ** pass;
10388
+ attenuationDb += AAC_DELIVERY_TRUE_PEAK_DBFS - headroomDb - truePeakDbfs;
10379
10389
  const result = await input.encode(
10380
10390
  input.audioPath,
10381
10391
  correctedPath,
@@ -10670,6 +10680,10 @@ function assertMotionBlurSupported(motionBlur, route) {
10670
10680
  `[MotionBlur] sub-frame motion blur is not supported on the "${route}" capture route: ${reason}`
10671
10681
  );
10672
10682
  }
10683
+ function pageMotionBlurForRoute(route) {
10684
+ if (route.hasHdrContent) return "hdr-render";
10685
+ return route.useLayeredComposite ? "layered-composite" : void 0;
10686
+ }
10673
10687
 
10674
10688
  // ../producer/src/services/render/outputScaleRoute.ts
10675
10689
  var UNSUPPORTED_REASON2 = {
@@ -11744,7 +11758,8 @@ async function executeRenderPipeline(input) {
11744
11758
  needsAlpha,
11745
11759
  log,
11746
11760
  assertNotAborted,
11747
- variables: job.config.variables
11761
+ variables: job.config.variables,
11762
+ pageMotionBlur: job.config.pageMotionBlur
11748
11763
  })
11749
11764
  );
11750
11765
  let compiled = compileResult.compiled;
@@ -12048,14 +12063,17 @@ async function executeRenderPipeline(input) {
12048
12063
  variables: job.config.variables,
12049
12064
  deviceScaleFactor,
12050
12065
  motionBlur: job.config.motionBlur,
12066
+ pageMotionBlur: job.config.pageMotionBlur,
12051
12067
  ...videoCaptureBeyondViewport !== void 0 ? { captureBeyondViewport: videoCaptureBeyondViewport } : {}
12052
12068
  };
12053
12069
  resolvedCaptureBeyondViewport = captureOptions.captureBeyondViewport ?? resolvedCaptureBeyondViewport;
12054
12070
  if (resolvedCaptureBeyondViewport !== void 0) {
12055
12071
  updateCaptureObservability({ captureBeyondViewport: resolvedCaptureBeyondViewport });
12056
12072
  }
12073
+ let routePageMotionBlur;
12057
12074
  const buildCaptureOptions = () => ({
12058
12075
  ...captureOptions,
12076
+ ...routePageMotionBlur ? { pageMotionBlur: routePageMotionBlur } : {},
12059
12077
  videoMetadataHints,
12060
12078
  skipReadinessVideoIds: videoReadinessSkipIds,
12061
12079
  subTimelineWaitMemo,
@@ -12089,6 +12107,7 @@ async function executeRenderPipeline(input) {
12089
12107
  const nativeHdrIds = /* @__PURE__ */ new Set([...nativeHdrVideoIds, ...nativeHdrImageIds]);
12090
12108
  const hasHdrContent = Boolean(effectiveHdr && nativeHdrIds.size > 0);
12091
12109
  if (hasHdrContent) assertOutputScaleSupported(deviceScaleFactor, "hdr_layered");
12110
+ routePageMotionBlur = pageMotionBlurForRoute({ hasHdrContent, useLayeredComposite: false });
12092
12111
  const deSingleMinFramesRaw = process.env.HF_DE_SINGLE_MIN_FRAMES;
12093
12112
  const deSingleMinFramesNum = deSingleMinFramesRaw === void 0 || deSingleMinFramesRaw.trim() === "" ? 900 : Number(deSingleMinFramesRaw);
12094
12113
  const deSingleMinFrames = Number.isFinite(deSingleMinFramesNum) ? deSingleMinFramesNum : 900;
@@ -12491,6 +12510,7 @@ async function executeRenderPipeline(input) {
12491
12510
  hasShaderTransitions: compiled.hasShaderTransitions && !isGif,
12492
12511
  isPngSequence
12493
12512
  });
12513
+ routePageMotionBlur = pageMotionBlurForRoute({ hasHdrContent, useLayeredComposite });
12494
12514
  const inversionFallback = resolveInversionRetryPlan({
12495
12515
  deWorkerInversion,
12496
12516
  preInversionWorkerCount: preRoutingWorkerCount,
@@ -13642,7 +13662,8 @@ function buildSyntheticRenderJob(input) {
13642
13662
  hdrMode: input.hdrMode,
13643
13663
  strictness: input.strictness,
13644
13664
  producerConfig: input.producerConfig,
13645
- variables: input.variables
13665
+ variables: input.variables,
13666
+ pageMotionBlur: "off"
13646
13667
  };
13647
13668
  return createRenderJob(renderConfig);
13648
13669
  }
@@ -13687,7 +13708,14 @@ var RenderChunkValidationError = class extends Error {
13687
13708
  }
13688
13709
  };
13689
13710
  function createChunkVideoFrameInjectorFactory(frameLookup) {
13690
- return () => createVideoFrameInjector(frameLookup);
13711
+ if (!(frameLookup instanceof Promise)) return () => createVideoFrameInjector(frameLookup);
13712
+ return () => {
13713
+ let hook;
13714
+ return async (page, time, heldVideoTime) => {
13715
+ hook ??= createVideoFrameInjector(await frameLookup);
13716
+ await hook?.(page, time, heldVideoTime);
13717
+ };
13718
+ };
13691
13719
  }
13692
13720
  function frameNumberFromFileName(name) {
13693
13721
  const match = /(\d+)(?=\.[^.]+$)/.exec(name);
@@ -13759,6 +13787,7 @@ function buildChunkCaptureOptions(input) {
13759
13787
  skipReadinessVideoIds: input.skipReadinessVideoIds,
13760
13788
  videoMetadataHints: input.videoMetadataHints,
13761
13789
  ...videoCaptureBeyondViewport !== void 0 ? { captureBeyondViewport: videoCaptureBeyondViewport } : {},
13790
+ pageMotionBlur: "distributed-render",
13762
13791
  // A fixed warmup count keeps `beginFrameTimeTicks` host-independent.
13763
13792
  lockWarmupTicks: true,
13764
13793
  requiresWebGpu: compositionRequiresWebGpu(input.html)
@@ -15420,7 +15449,8 @@ async function compilePlanComposition(projectDir, config, planDir, options) {
15420
15449
  // Distributed renders must not capture host-specific system fonts —
15421
15450
  // the Lambda/worker filesystem won't have the same fonts installed.
15422
15451
  allowSystemFontCapture: false,
15423
- variables: config.variables
15452
+ variables: config.variables,
15453
+ pageMotionBlur: job.config.pageMotionBlur
15424
15454
  });
15425
15455
  logPlanStage(log, "compile", stageStarted);
15426
15456
  let compiled = compileResult.compiled;
@@ -15463,7 +15493,7 @@ async function compilePlanComposition(projectDir, config, planDir, options) {
15463
15493
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15464
15494
  if (probeResult.probeSession) {
15465
15495
  try {
15466
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-4UYM2K3S.js");
15496
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-DCVSEODX.js");
15467
15497
  await closeCaptureSession2(probeResult.probeSession);
15468
15498
  } catch (err) {
15469
15499
  log.warn("[plan] probe session close failed", {
@@ -16131,6 +16161,7 @@ function assertRequestOptionScalars(options) {
16131
16161
  }
16132
16162
  assertOptionalEnum(options, "strictness", ["strict", "best-effort"]);
16133
16163
  assertOptionalEnum(options, "hdrMode", ["auto", "force-hdr", "force-sdr"]);
16164
+ assertOptionalEnum(options, "pageMotionBlur", ["off"]);
16134
16165
  if (options.videoFrameFormat !== void 0 && !isVideoFrameFormat(options.videoFrameFormat)) {
16135
16166
  throw new Error("Render request videoFrameFormat is invalid");
16136
16167
  }
@@ -16678,9 +16709,6 @@ function validateOutputResolutionOverride(body) {
16678
16709
  if (body.outputResolution.trim().length > 0 && normalized === void 0) {
16679
16710
  return `Invalid outputResolution "${body.outputResolution}". Must be one of: landscape, portrait, landscape-4k, portrait-4k, square, square-4k (aliases: 1080p, 4k, \u2026).`;
16680
16711
  }
16681
- if (normalized !== void 0 && (body.format === "webm" || body.format === "mov")) {
16682
- return `outputResolution is not supported with format "${body.format}": the alpha (webm/mov) capture path can't supersample. Use format "mp4", or omit outputResolution to render at the composition's native dimensions.`;
16683
- }
16684
16712
  return void 0;
16685
16713
  }
16686
16714
  function prepareProjectDirectory(projectDir, options) {
@@ -17126,7 +17154,7 @@ function startServer(options = {}) {
17126
17154
  });
17127
17155
  async function shutdown(signal) {
17128
17156
  log.info(`Received ${signal}, shutting down`);
17129
- const { drainBrowserPool } = await import("./src-4UYM2K3S.js");
17157
+ const { drainBrowserPool } = await import("./src-DCVSEODX.js");
17130
17158
  await drainBrowserPool().catch(() => {
17131
17159
  });
17132
17160
  const handle = await Promise.race([
@@ -18626,6 +18654,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18626
18654
  const captureAttempts = [];
18627
18655
  let forceScreenshotForChunk = encoder.forceScreenshot;
18628
18656
  let shownBoxes;
18657
+ let extraction;
18629
18658
  try {
18630
18659
  if (chunkWorkerCount === 1 || !forceScreenshotForChunk) {
18631
18660
  const bootStarted = Date.now();
@@ -18682,7 +18711,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18682
18711
  session = null;
18683
18712
  }
18684
18713
  }
18685
- const deferredVideoFrames = planVideos ? await extractDeferredVideoFramesForChunk({
18714
+ const deferredVideoFrames = planVideos ? extractDeferredVideoFramesForChunk({
18686
18715
  planDir,
18687
18716
  planVideos,
18688
18717
  frames: chunkFrameNumbers,
@@ -18691,19 +18720,24 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18691
18720
  cfg,
18692
18721
  remoteSources,
18693
18722
  shownBoxes
18694
- }) : [];
18695
- const videoFrameLookup = planVideos && planVideos.extracted.length > 0 ? createFrameLookupTable(
18696
- planVideos.videos,
18697
- [
18698
- ...rebuildExtractedFramesFromPlanDir(
18699
- planDir,
18700
- planVideos.extracted.filter((video) => !video.deferredRange),
18701
- v2Manifest === null ? "dense-v1" : "sparse-v2"
18702
- ),
18703
- ...deferredVideoFrames
18704
- ],
18705
- resolveRenderFpsConfig(job.config.fps).value
18723
+ }) : Promise.resolve([]);
18724
+ extraction = deferredVideoFrames;
18725
+ const videoFrameLookup = planVideos && planVideos.extracted.length > 0 ? deferredVideoFrames.then(
18726
+ (deferred) => createFrameLookupTable(
18727
+ planVideos.videos,
18728
+ [
18729
+ ...rebuildExtractedFramesFromPlanDir(
18730
+ planDir,
18731
+ planVideos.extracted.filter((video) => !video.deferredRange),
18732
+ v2Manifest === null ? "dense-v1" : "sparse-v2"
18733
+ ),
18734
+ ...deferred
18735
+ ],
18736
+ resolveRenderFpsConfig(job.config.fps).value
18737
+ )
18706
18738
  ) : null;
18739
+ videoFrameLookup?.catch(() => {
18740
+ });
18707
18741
  const createChunkVideoFrameInjector = createChunkVideoFrameInjectorFactory(videoFrameLookup);
18708
18742
  const captureStarted = Date.now();
18709
18743
  captureMode = await runCaptureWithScreenshotFallback({
@@ -18786,7 +18820,11 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18786
18820
  }
18787
18821
  );
18788
18822
  }
18823
+ }).catch(async (captureError) => {
18824
+ await deferredVideoFrames;
18825
+ throw captureError;
18789
18826
  });
18827
+ await deferredVideoFrames;
18790
18828
  captureStageMs = Date.now() - captureStarted;
18791
18829
  applyRenderWarningPolicy(
18792
18830
  job,
@@ -18865,6 +18903,8 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18865
18903
  }
18866
18904
  encodeStageMs = Date.now() - encodeStarted;
18867
18905
  } finally {
18906
+ await extraction?.catch(() => {
18907
+ });
18868
18908
  if (session) {
18869
18909
  try {
18870
18910
  await closeCaptureSession(session);
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-4N4P3ZWL.js";
20
+ } from "./chunk-LDW3KVGK.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -11,7 +11,7 @@ import {
11
11
  distroLabel,
12
12
  getFFmpegInstallHint,
13
13
  parseLddMissingLibs
14
- } from "./chunk-7HJALUIO.js";
14
+ } from "./chunk-4XFFJAWS.js";
15
15
  import {
16
16
  ensureBrowser,
17
17
  findBrowser
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parseFeedbackRating,
9
9
  trackRenderFeedback
10
- } from "./chunk-JIUTXKWA.js";
10
+ } from "./chunk-77QM6YRQ.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-UKOTVJFV.js";
13
+ } from "./chunk-6IOBAOU7.js";
14
14
  import {
15
15
  c
16
16
  } from "./chunk-ZTZA4UWZ.js";
@@ -84,7 +84,7 @@ async function getDoctorSummary() {
84
84
  try {
85
85
  const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
86
86
  import("./system-7F3UEHQT.js"),
87
- import("./ffmpeg-BYHON577.js")
87
+ import("./ffmpeg-MP7ZVYLZ.js")
88
88
  ]);
89
89
  const sys = getSystemMeta();
90
90
  const parts = [
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-K2FLNJVB.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-JIUTXKWA.js";
12
+ } from "./chunk-77QM6YRQ.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-JVBRJMOP.js";
@@ -5728,6 +5728,12 @@ function ancestor(node, visitors, baseVisitor, state, override) {
5728
5728
  }
5729
5729
  })(node, state, override);
5730
5730
  }
5731
+ function recursive(node, state, funcs, baseVisitor, override) {
5732
+ var visitor = funcs ? make(funcs, baseVisitor || void 0) : baseVisitor;
5733
+ (function c(node2, st, override2) {
5734
+ visitor[override2 || node2.type](node2, st, c);
5735
+ })(node, state, override);
5736
+ }
5731
5737
  function full(node, callback, baseVisitor, state, override) {
5732
5738
  if (!baseVisitor) {
5733
5739
  baseVisitor = base;
@@ -5742,6 +5748,13 @@ function full(node, callback, baseVisitor, state, override) {
5742
5748
  }
5743
5749
  })(node, state, override);
5744
5750
  }
5751
+ function make(funcs, baseVisitor) {
5752
+ var visitor = Object.create(baseVisitor || base);
5753
+ for (var type in funcs) {
5754
+ visitor[type] = funcs[type];
5755
+ }
5756
+ return visitor;
5757
+ }
5745
5758
  function skipThrough(node, st, c) {
5746
5759
  c(node, st);
5747
5760
  }
@@ -6058,5 +6071,7 @@ export {
6058
6071
  parseExpressionAt2 as parseExpressionAt,
6059
6072
  simple,
6060
6073
  ancestor,
6061
- full
6074
+ recursive,
6075
+ full,
6076
+ base
6062
6077
  };
@@ -8,20 +8,20 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemFile,
10
10
  validRegistryItem
11
- } from "./chunk-7MB2ZAQF.js";
11
+ } from "./chunk-YRAJDFIN.js";
12
12
  import {
13
13
  publishRegistryFile,
14
14
  registryTargetPath
15
15
  } from "./chunk-GMECXFAN.js";
16
16
  import {
17
17
  validateVariables
18
- } from "./chunk-J3QM7AHP.js";
18
+ } from "./chunk-RNZEQTWZ.js";
19
19
  import {
20
20
  realProjectRoot
21
21
  } from "./chunk-OFQWTKPW.js";
22
22
  import {
23
23
  isCompositionVariable
24
- } from "./chunk-OYLO6TYK.js";
24
+ } from "./chunk-RUOG4VB7.js";
25
25
 
26
26
  // src/registry/installer.ts
27
27
  import { createHash } from "crypto";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-LRGYPXHF.js";
9
+ } from "./chunk-HZ7M2MZA.js";
10
10
  import {
11
11
  DEFAULT_HISTORY_ROOT,
12
12
  HistoryBusyError,
@@ -21,7 +21,15 @@ import {
21
21
 
22
22
  // src/utils/historyOwner.ts
23
23
  import { randomUUID } from "crypto";
24
- import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "fs";
24
+ import {
25
+ accessSync,
26
+ constants,
27
+ mkdirSync,
28
+ readFileSync,
29
+ renameSync,
30
+ rmSync,
31
+ writeFileSync
32
+ } from "fs";
25
33
  import { dirname, join, resolve } from "path";
26
34
  var historyDeps = {
27
35
  historyRoot: resolve(process.env.HYPERFRAMES_HISTORY_ROOT || DEFAULT_HISTORY_ROOT),
@@ -183,11 +191,47 @@ async function withOwner(dir, task, { ownerWaitMs } = {}) {
183
191
  }
184
192
  }
185
193
  }
194
+ var CANNOT_WRITE = /* @__PURE__ */ new Set(["ENOSPC", "EDQUOT", "EACCES", "EPERM", "EROFS"]);
195
+ var WRITE_CALLS = /* @__PURE__ */ new Set([
196
+ "mkdir",
197
+ "write",
198
+ "rename",
199
+ "unlink",
200
+ "link",
201
+ "copyfile",
202
+ "rmdir",
203
+ "symlink",
204
+ "utime",
205
+ "ftruncate",
206
+ "fsync"
207
+ ]);
208
+ function openedForWriting(path) {
209
+ try {
210
+ accessSync(path, constants.R_OK);
211
+ return true;
212
+ } catch (error) {
213
+ return error.code === "ENOENT";
214
+ }
215
+ }
216
+ function failedWrite(error) {
217
+ const { code = "", syscall = "", path } = error;
218
+ if (!CANNOT_WRITE.has(code)) return false;
219
+ return WRITE_CALLS.has(syscall) || syscall === "open" && path !== void 0 && openedForWriting(path);
220
+ }
186
221
  async function withReader(dir, task) {
222
+ let ran = false;
187
223
  try {
188
- return await withOwner(dir, (owner) => task(owner));
224
+ return await withOwner(dir, (owner) => {
225
+ ran = true;
226
+ return task(owner);
227
+ });
189
228
  } catch (error) {
190
- if (!(error instanceof HistoryBusyError)) throw error;
229
+ const unwritable = failedWrite(error);
230
+ if (ran || !(error instanceof HistoryBusyError || unwritable)) throw error;
231
+ if (unwritable)
232
+ console.error(
233
+ `[hyperframes] Could not write this project's history (${error.message}); showing it as last recorded.`
234
+ );
191
235
  }
192
236
  const view = readProjectHistory({
193
237
  projectDir: resolveProject(dir).dir,
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-DWUGKEHR.js";
10
+ } from "./chunk-4AFNEKU7.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-PFYWVUHA.js";
17
+ } from "./chunk-RPUIMFHF.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-ZOCHDXDG.js";
21
+ } from "./chunk-Y2M6XSNK.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-LLC4CS6I.js";
26
+ } from "./chunk-ID5AJ4L3.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-7MB2ZAQF.js";
29
+ } from "./chunk-YRAJDFIN.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-JIUTXKWA.js";
32
+ } from "./chunk-77QM6YRQ.js";
33
33
  import {
34
34
  defineCommand
35
35
  } from "./chunk-S3S4TGEH.js";
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-ZTZA4UWZ.js";
42
42
  import {
43
43
  ITEM_TYPE_DIRS
44
- } from "./chunk-J3QM7AHP.js";
44
+ } from "./chunk-RNZEQTWZ.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -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.184" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.184" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.186" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.186" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  FONT_ALIAS_MAP,
16
16
  resolveAliasDisplayName
17
- } from "./chunk-YMS5FOMC.js";
17
+ } from "./chunk-B2A56S5C.js";
18
18
  import {
19
19
  parseHTML
20
20
  } from "./chunk-SDYDNHEE.js";
@@ -0,0 +1,17 @@
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/timeline/domStructure.ts
9
+ function toDomNode(el) {
10
+ const attrs = {};
11
+ for (const { name, value } of Array.from(el.attributes)) attrs[name] = value;
12
+ return { tag: el.tagName, attrs, children: Array.from(el.children).map(toDomNode), el };
13
+ }
14
+
15
+ export {
16
+ toDomNode
17
+ };
@@ -36,14 +36,15 @@ function normalizeUploadHeaders(raw) {
36
36
  }
37
37
  return out;
38
38
  }
39
- async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, body, contentType) {
39
+ async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, body, contentType, signal) {
40
40
  const headers = {
41
41
  "content-type": contentType,
42
42
  ...normalizeUploadHeaders(uploadHeaders)
43
43
  };
44
- if (!(body instanceof Uint8Array)) return putFileToPresignedUrl(uploadUrl, headers, body);
44
+ if (!(body instanceof Uint8Array)) return putFileToPresignedUrl(uploadUrl, headers, body, signal);
45
45
  const res = await fetchImpl(uploadUrl, {
46
46
  method: "PUT",
47
+ signal,
47
48
  headers,
48
49
  body
49
50
  });
@@ -54,10 +55,11 @@ async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, body,
54
55
  );
55
56
  }
56
57
  }
57
- async function putFileToPresignedUrl(uploadUrl, headers, file) {
58
+ async function putFileToPresignedUrl(uploadUrl, headers, file, signal) {
58
59
  const send = new URL(uploadUrl).protocol === "https:" ? httpsRequest : httpRequest;
59
60
  const req = send(uploadUrl, {
60
61
  method: "PUT",
62
+ signal,
61
63
  headers: { ...headers, "content-length": String(file.size) }
62
64
  });
63
65
  const response = new Promise((resolve, reject) => {
@@ -121,7 +123,8 @@ async function uploadAssetViaDirectUpload(opts) {
121
123
  initialize.upload_url,
122
124
  initialize.upload_headers,
123
125
  body,
124
- opts.contentType
126
+ opts.contentType,
127
+ opts.signal
125
128
  );
126
129
  opts.onProgress?.({ phase: "upload", percent: 100 });
127
130
  opts.onProgress?.({ phase: "complete" });
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-R2BFTECP.js";
10
+ } from "./chunk-4NTW45W5.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";