hyperframes 0.8.144 → 0.8.146

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 (209) hide show
  1. package/README.md +3 -2
  2. package/dist/{add-CWRTVGDB.js → add-6J4TLUDW.js} +15 -15
  3. package/dist/{animatedGifPrep-JTOHIWI4.js → animatedGifPrep-TPYA45ZZ.js} +10 -10
  4. package/dist/{asset-KU2Z4UFM.js → asset-B4C6ZU4V.js} +2 -2
  5. package/dist/{assetCataloger-3CS2P7PA.js → assetCataloger-GX4B55VB.js} +4 -4
  6. package/dist/{auth-IDSOIQWG.js → auth-T2V3URGO.js} +2 -2
  7. package/dist/{autoUpdate-373B4BA2.js → autoUpdate-O4R7IOYP.js} +2 -2
  8. package/dist/{backgroundChecks-53Q3NAMG.js → backgroundChecks-SQHGZCSH.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-UKZA6BME.js → batchRender-T7S2CGJE.js} +5 -5
  11. package/dist/{beats-N5JGEOFR.js → beats-RNEXDM7U.js} +16 -16
  12. package/dist/{benchmark-CUN3LN4V.js → benchmark-IVK6FCEU.js} +12 -12
  13. package/dist/{browser-NCZT5AP6.js → browser-WUE6VK2N.js} +5 -5
  14. package/dist/{bundleWithLocalizedFonts-FWC7PE2D.js → bundleWithLocalizedFonts-EEIRL7FT.js} +2 -2
  15. package/dist/{capture-YLS32UHT.js → capture-K3EONGGU.js} +2 -2
  16. package/dist/{capture-QBLG3VJR.js → capture-LEKIGJ4G.js} +13 -13
  17. package/dist/{catalog-HIWNAFHW.js → catalog-IXYQ2KXW.js} +15 -15
  18. package/dist/{catch-up-HGS7KIAC.js → catch-up-IIF7HKR6.js} +6 -6
  19. package/dist/{check-FH6UYYLO.js → check-W7CDOXNP.js} +38 -38
  20. package/dist/{checkBrowser-RNWNOMCZ.js → checkBrowser-5VSXEHBZ.js} +118 -61
  21. package/dist/{chunk-XU5GGV6R.js → chunk-2NAUEDA6.js} +2 -2
  22. package/dist/{chunk-GZM2EFOE.js → chunk-3HSWLZ6S.js} +1 -1
  23. package/dist/{chunk-YUAXFWSQ.js → chunk-4RUILXS6.js} +5 -5
  24. package/dist/{chunk-MXNDKDFT.js → chunk-54UXJKFF.js} +1 -1
  25. package/dist/{chunk-DIRJ322I.js → chunk-66SAATRI.js} +3 -3
  26. package/dist/{chunk-RI53TS2Y.js → chunk-6TTAXMDG.js} +2 -2
  27. package/dist/{chunk-YJXHMIZA.js → chunk-A72OAGNB.js} +6 -6
  28. package/dist/{chunk-G75ENCEZ.js → chunk-AIJS74LG.js} +3 -3
  29. package/dist/{chunk-GEWKFRFI.js → chunk-AJ5R4GM6.js} +1 -1
  30. package/dist/{chunk-3VYNNWVA.js → chunk-BAKPN2D2.js} +101 -94
  31. package/dist/{chunk-3XTEXWNN.js → chunk-CVPWZ5LY.js} +3 -3
  32. package/dist/{chunk-AUBOF2PN.js → chunk-DDNS2674.js} +1 -1
  33. package/dist/{chunk-QFSCCQIR.js → chunk-DMKI64EZ.js} +1 -1
  34. package/dist/{chunk-NOPBBSLA.js → chunk-DUU77E2S.js} +69 -64
  35. package/dist/{chunk-RVFEDAUV.js → chunk-EGO6Z24R.js} +3 -3
  36. package/dist/{chunk-KC5XXX3X.js → chunk-EOOEC32M.js} +1 -1
  37. package/dist/{chunk-2DA2BBNY.js → chunk-ETNQF37F.js} +10 -10
  38. package/dist/{chunk-54QISXOC.js → chunk-FDL4HV44.js} +2 -2
  39. package/dist/{chunk-VYSUZEJG.js → chunk-FJLHVAPO.js} +6 -6
  40. package/dist/{chunk-QZ3AZTXI.js → chunk-FJWEYVEM.js} +42 -16
  41. package/dist/{chunk-EX6C672Y.js → chunk-FKLYMV3U.js} +1 -1
  42. package/dist/{chunk-PUGIRFPX.js → chunk-FMNVTKX2.js} +4 -4
  43. package/dist/{chunk-L5TUCXWR.js → chunk-HBGJYBGE.js} +2 -2
  44. package/dist/{chunk-SLCFKB3Y.js → chunk-HTM4CIFS.js} +11 -8
  45. package/dist/{chunk-T42U2W2R.js → chunk-IXLUTE6N.js} +1 -1
  46. package/dist/{chunk-OUSLVRO4.js → chunk-JBQJKC23.js} +76 -6
  47. package/dist/{chunk-IEIJRMLZ.js → chunk-JDB65PPT.js} +62 -63
  48. package/dist/{chunk-USDEMXXL.js → chunk-JYVGYKXG.js} +1 -1
  49. package/dist/{chunk-P6WH6QTV.js → chunk-K7ES5RSK.js} +1 -1
  50. package/dist/{chunk-LC3RQURJ.js → chunk-KFZUUXUN.js} +3 -3
  51. package/dist/{chunk-OIDN7G42.js → chunk-KG265HQ7.js} +2 -2
  52. package/dist/{chunk-7RAYSCYT.js → chunk-KPJMBC4K.js} +2 -2
  53. package/dist/{chunk-MAYCCGMQ.js → chunk-KVGDFUVO.js} +1 -1
  54. package/dist/{chunk-JEHFZQYT.js → chunk-LE7T4ML7.js} +1 -1
  55. package/dist/{chunk-MQZVBHEY.js → chunk-LFNQDTSH.js} +1 -1
  56. package/dist/{chunk-ZOA2SC4P.js → chunk-MOL32UKR.js} +45 -11
  57. package/dist/{chunk-RG3QWWIE.js → chunk-QSSPIATO.js} +2 -2
  58. package/dist/{chunk-F2SMS24Q.js → chunk-R6R74HNZ.js} +117 -139
  59. package/dist/{chunk-7SDCIWHQ.js → chunk-SYMSKGXI.js} +2 -2
  60. package/dist/{chunk-ZEUONDQG.js → chunk-SYUGVPYH.js} +1 -1
  61. package/dist/{chunk-4OC7MQNB.js → chunk-TBOMPYG6.js} +2 -2
  62. package/dist/{chunk-KFKZ3ISO.js → chunk-TH4OXAWY.js} +1 -1
  63. package/dist/{chunk-4LAR447G.js → chunk-UOBYRLDD.js} +1 -1
  64. package/dist/{chunk-NV4RXIQ7.js → chunk-UZUUVYAO.js} +3 -3
  65. package/dist/{chunk-PJ3HDUCY.js → chunk-VAS6HQX3.js} +39 -9
  66. package/dist/{chunk-LFX2HEYP.js → chunk-VT563F4O.js} +7 -7
  67. package/dist/{chunk-5VMR4WBS.js → chunk-WU2B74TL.js} +363 -103
  68. package/dist/{chunk-5HJ343GH.js → chunk-WUZ6TMAO.js} +1 -1
  69. package/dist/{chunk-GQJZORQP.js → chunk-XBSPQ52S.js} +1 -1
  70. package/dist/{chunk-5WADG7PR.js → chunk-XJUZEB44.js} +1 -1
  71. package/dist/{chunk-I5KY7EZP.js → chunk-XVIYZU3D.js} +1 -1
  72. package/dist/{chunk-XGFHYAYN.js → chunk-Z5C4LEAD.js} +33 -28
  73. package/dist/chunk-Z6FLHIDV.js +3795 -0
  74. package/dist/{chunk-DDIVWXN7.js → chunk-ZFN6GQU4.js} +4 -4
  75. package/dist/{chunk-Y6UPYWJS.js → chunk-ZVZSFDW3.js} +2 -2
  76. package/dist/{chunk-A53CBD24.js → chunk-ZZ7H4IJ6.js} +9 -9
  77. package/dist/{clean-KPX27IKJ.js → clean-2GDD2B4F.js} +23 -23
  78. package/dist/cli.js +52 -52
  79. package/dist/{cloud-P7DAOISN.js → cloud-LUKGDTTE.js} +4 -4
  80. package/dist/{cloudrun-XM56TBOH.js → cloudrun-NQF5KFQI.js} +6 -6
  81. package/dist/{compare-F6YAFZZM.js → compare-4P6O4ONG.js} +32 -32
  82. package/dist/{compiler-JZ4GNFMG.js → compiler-ACCPOZMQ.js} +10 -6
  83. package/dist/{component-3CFOGIQA.js → component-SDDOLNJD.js} +3 -3
  84. package/dist/{compositions-CPCMWF24.js → compositions-P2L6HUVQ.js} +15 -15
  85. package/dist/{delete-GYVKOKB6.js → delete-Q6S4BJ3F.js} +2 -2
  86. package/dist/{deterministicFonts-U2BIMGPG.js → deterministicFonts-C5JQLCTS.js} +2 -2
  87. package/dist/{dist-YPWQDWJ4.js → dist-GPDOV3IQ.js} +4 -4
  88. package/dist/{dist-KDJTFJHA.js → dist-HUMFCJ6T.js} +3 -3
  89. package/dist/{doctor-GWI3B6JT.js → doctor-NL73UKHV.js} +15 -15
  90. package/dist/{events-BRRUDPPT.js → events-AVOPOKO3.js} +5 -5
  91. package/dist/{events-V2QFN4YM.js → events-X7KPU7LG.js} +4 -4
  92. package/dist/{feedback-CXMD7FWL.js → feedback-GJZ5NXSH.js} +10 -10
  93. package/dist/{ffmpeg-T5SH2EFJ.js → ffmpeg-5V4FP3R6.js} +2 -2
  94. package/dist/{figma-YABDWD66.js → figma-V7SVQQI5.js} +3 -3
  95. package/dist/fontLocalizeCli.js +14 -14
  96. package/dist/{get-L2SOQKHX.js → get-FO3YZYEU.js} +2 -2
  97. package/dist/{gpuPolicy-NBJNWHYS.js → gpuPolicy-QGS4TFWP.js} +10 -10
  98. package/dist/{grade-compare-STXQPKYQ.js → grade-compare-7ICSN7KE.js} +33 -33
  99. package/dist/{help-4H6BSFLB.js → help-Y5LYZG7K.js} +2 -2
  100. package/dist/{history-4IQOLTHJ.js → history-RKGBRNLD.js} +49 -22
  101. package/dist/hyperframe-runtime.js +214 -68
  102. package/dist/hyperframe.manifest.json +1 -1
  103. package/dist/hyperframe.runtime.iife.js +214 -68
  104. package/dist/hyperframes-player.global.js +4 -5
  105. package/dist/hyperframes-slideshow.global.js +3 -4
  106. package/dist/{info-2CZOTNBC.js → info-GGUTL2NR.js} +11 -11
  107. package/dist/{init-6BXK42VS.js → init-PG7NA5SQ.js} +31 -31
  108. package/dist/{inspect-VKU47TBH.js → inspect-FCXUB6DE.js} +33 -33
  109. package/dist/{installer-T2BSSUDY.js → installer-LZ4X5TZZ.js} +6 -6
  110. package/dist/{keyframes-IEYVHRPI.js → keyframes-R3K6WJ3N.js} +8 -8
  111. package/dist/{lambda-TIKG25CK.js → lambda-3GAKHMC3.js} +7 -7
  112. package/dist/{layout-XOI4PT7A.js → layout-XNIZIGA2.js} +33 -33
  113. package/dist/{lint-DWCMVIX5.js → lint-4KDS2F4O.js} +11 -11
  114. package/dist/{lintProject-UBZ3TDHU.js → lintProject-SSEXWCH6.js} +3 -3
  115. package/dist/{list-7GXKG5QM.js → list-OVPURFPK.js} +2 -2
  116. package/dist/{login-BQ5L2UHX.js → login-EE2AX2PE.js} +4 -4
  117. package/dist/{manager-YKMHR6LN.js → manager-5ORDVWJB.js} +3 -3
  118. package/dist/{media-treatment-IFB7OSZ3.js → media-treatment-UDUEOP67.js} +86 -55
  119. package/dist/{models-TY4PJ545.js → models-LPK2O4B2.js} +14 -14
  120. package/dist/{motionShot-WXMFHICW.js → motionShot-G76XBOYI.js} +35 -29
  121. package/dist/{normalize-audio-RFD776HQ.js → normalize-audio-TUKWZ3OR.js} +10 -10
  122. package/dist/{open-7IXXGO2E.js → open-7XB2TGVB.js} +6 -6
  123. package/dist/{parakeetRunner-IHLYYMTZ.js → parakeetRunner-DL556HXL.js} +14 -14
  124. package/dist/{pipeline-TXKPLL2U.js → pipeline-34N5DLWU.js} +11 -11
  125. package/dist/{play-J2KP64UK.js → play-DDA2UUQF.js} +26 -26
  126. package/dist/{preflight-B4AFK3RG.js → preflight-ONF5AJNO.js} +5 -5
  127. package/dist/{present-MHHNRVRA.js → present-LLNRKXF5.js} +23 -23
  128. package/dist/{preview-CONUOFFQ.js → preview-H3ZZS46F.js} +57 -26
  129. package/dist/{producer-ZI46K7HH.js → producer-IFQOZK2G.js} +1 -1
  130. package/dist/{projectConfig-FGGVG5MV.js → projectConfig-SBRMQZGG.js} +8 -8
  131. package/dist/{publication-TXFBMW6B.js → publication-5BQICRZO.js} +4 -4
  132. package/dist/{publish-YZSPBFRD.js → publish-XDUZA3E3.js} +27 -26
  133. package/dist/{remove-background-4ATVLHLG.js → remove-background-GNKRMFQS.js} +12 -12
  134. package/dist/{render-MH4IUPWB.js → render-JM6KNRIA.js} +27 -27
  135. package/dist/{render-6FBYLYGJ.js → render-KTTC3EE5.js} +12 -12
  136. package/dist/{render-GFW5BPES.js → render-PCFO45RK.js} +5 -5
  137. package/dist/{render-batch-XUCZ2PUJ.js → render-batch-7R2NRNVJ.js} +5 -5
  138. package/dist/{renderCancellation-XF7M7IUP.js → renderCancellation-GP3XD2FS.js} +10 -10
  139. package/dist/renderSetupWorker.js +3 -3
  140. package/dist/{resolver-W7AYCQGS.js → resolver-C4FPX72I.js} +6 -6
  141. package/dist/{sherpa-LDUB5NLY.js → sherpa-MZP3MV2X.js} +14 -14
  142. package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +2 -20
  143. package/dist/skills/hyperframes/scripts/lib/main-module.mjs +13 -0
  144. package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +51 -0
  145. package/dist/skills/hyperframes/scripts/plugin-cli.mjs +4 -3
  146. package/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +5 -1
  147. package/dist/skills/hyperframes-cli/SKILL.md +2 -0
  148. package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +2 -2
  149. package/dist/skills/media-use/audio/scripts/lib/main-module.mjs +13 -0
  150. package/dist/skills/media-use/references/media-treatments.md +5 -1
  151. package/dist/skills/media-use/scripts/lib/cube-validate.mjs +2 -3
  152. package/dist/skills/media-use/scripts/lib/main-module.mjs +13 -0
  153. package/dist/{skills-VENERS5X.js → skills-OET4XSHR.js} +7 -7
  154. package/dist/{skillsUpdateCheck-UXFYTACG.js → skillsUpdateCheck-IPFSKKJD.js} +3 -3
  155. package/dist/{slideshow-4OJEPWNZ.js → slideshow-YTWATJRT.js} +1 -1
  156. package/dist/{snapshot-C6T74HTI.js → snapshot-EC4N75MS.js} +34 -34
  157. package/dist/{src-VUJ2FUFK.js → src-LIERUCFW.js} +13 -9
  158. package/dist/{src-FS5RSVEI.js → src-ZZQJOKO6.js} +13 -13
  159. package/dist/{staticProjectServer-V2RZ4DWD.js → staticProjectServer-YH2RHYKW.js} +20 -20
  160. package/dist/{status-LXPGSSKY.js → status-PTKNQD2E.js} +2 -2
  161. package/dist/studio/assets/{hyperframes-player-Bw_jIaSX.js → hyperframes-player-tkxyWf5H.js} +3 -3
  162. package/dist/studio/assets/{index-Cj7W_c7p.js → index-BrdqOkqP.js} +1 -1
  163. package/dist/studio/assets/{index-BVM9NuWl.js → index-Cg48BxAo.js} +145 -145
  164. package/dist/studio/assets/{index-DyH9dT7b.js → index-Dllxg4aU.js} +1 -1
  165. package/dist/studio/index.html +1 -1
  166. package/dist/{studio-api-TQE7KWKO.js → studio-api-T2TS2CHL.js} +16 -14
  167. package/dist/{studioServer-CYKSQK7L.js → studioServer-GJVVJUEL.js} +54 -52
  168. package/dist/{system-OQLOGGPJ.js → system-OXRG57F2.js} +2 -2
  169. package/dist/{telemetry-A23PPRD6.js → telemetry-ZQ5XVE6Z.js} +5 -5
  170. package/dist/{timeline-T3QSGT3A.js → timeline-I2T5WIPD.js} +34 -25
  171. package/dist/{tokens-RT5HWA6C.js → tokens-ONUWOXEX.js} +2 -2
  172. package/dist/{transcribe-FOLNOC5G.js → transcribe-BCQMA537.js} +12 -12
  173. package/dist/{transcribe-HCF64LQK.js → transcribe-ZLJF7V5Y.js} +13 -13
  174. package/dist/{updateCheck-27PIP3AA.js → updateCheck-ZWHDXF73.js} +2 -2
  175. package/dist/{upgrade-TVGXBUPJ.js → upgrade-32JGFZWS.js} +2 -2
  176. package/dist/{urlDownloader-KBLBJKRL.js → urlDownloader-EVDP43GM.js} +9 -9
  177. package/dist/{validate-ZMYGK4QI.js → validate-G4PUGQCI.js} +27 -27
  178. package/dist/{video-AVE5GIGM.js → video-TILEY3VJ.js} +10 -10
  179. package/package.json +3 -2
  180. package/dist/chunk-WJB7WI4J.js +0 -3753
  181. package/dist/studio/chunk-3GHTHPZD.js +0 -1105
  182. package/dist/studio/chunk-3GHTHPZD.js.map +0 -1
  183. package/dist/studio/chunk-EEXSYY5F.js +0 -190
  184. package/dist/studio/chunk-EEXSYY5F.js.map +0 -1
  185. package/dist/studio/chunk-G3EDKRZH.js +0 -1442
  186. package/dist/studio/chunk-G3EDKRZH.js.map +0 -1
  187. package/dist/studio/chunk-PEAKCOUW.js +0 -942
  188. package/dist/studio/chunk-PEAKCOUW.js.map +0 -1
  189. package/dist/studio/chunk-PZ5AY32C.js +0 -10
  190. package/dist/studio/chunk-PZ5AY32C.js.map +0 -1
  191. package/dist/studio/chunk-Y2OHHNM2.js +0 -970
  192. package/dist/studio/chunk-Y2OHHNM2.js.map +0 -1
  193. package/dist/studio/domEditingLayers-PYST4G45.js +0 -47
  194. package/dist/studio/domEditingLayers-PYST4G45.js.map +0 -1
  195. package/dist/studio/index.css +0 -165
  196. package/dist/studio/index.css.map +0 -1
  197. package/dist/studio/index.d.ts +0 -4315
  198. package/dist/studio/index.js +0 -100971
  199. package/dist/studio/index.js.map +0 -1
  200. package/dist/studio/player.d.ts +0 -30
  201. package/dist/studio/player.js +0 -10
  202. package/dist/studio/player.js.map +0 -1
  203. package/dist/studio/styles/tailwind-preset.d.ts +0 -39
  204. package/dist/studio/styles/tailwind-preset.js +0 -50
  205. package/dist/studio/styles/tailwind-preset.js.map +0 -1
  206. package/dist/studio/styles.css +0 -1
  207. package/dist/studio/ui.d.ts +0 -297
  208. package/dist/studio/ui.js +0 -66
  209. package/dist/studio/ui.js.map +0 -1
@@ -15,18 +15,18 @@ import {
15
15
  reportVariableIssues,
16
16
  resolveVariablesArg,
17
17
  validateVariablesAgainstProject
18
- } from "./chunk-7RAYSCYT.js";
18
+ } from "./chunk-KPJMBC4K.js";
19
19
  import "./chunk-FH7WODJH.js";
20
20
  import "./chunk-K2FLNJVB.js";
21
21
  import "./chunk-442JNXRM.js";
22
22
  import {
23
23
  setCommandExitCode
24
24
  } from "./chunk-PBN6GBJE.js";
25
- import "./chunk-3VYNNWVA.js";
26
- import "./chunk-WJB7WI4J.js";
25
+ import "./chunk-BAKPN2D2.js";
26
+ import "./chunk-Z6FLHIDV.js";
27
27
  import "./chunk-VC76R6W2.js";
28
28
  import "./chunk-YA62XGXS.js";
29
- import "./chunk-MQZVBHEY.js";
29
+ import "./chunk-LFNQDTSH.js";
30
30
  import "./chunk-OFQWTKPW.js";
31
31
  import "./chunk-DPVXBVLL.js";
32
32
  import "./chunk-T76PLPD6.js";
@@ -36,7 +36,7 @@ import "./chunk-3RM2ETQT.js";
36
36
  import "./chunk-BSQ7XANM.js";
37
37
  import "./chunk-SDYDNHEE.js";
38
38
  import "./chunk-2PSPARWP.js";
39
- import "./chunk-T42U2W2R.js";
39
+ import "./chunk-IXLUTE6N.js";
40
40
  import {
41
41
  c
42
42
  } from "./chunk-ZTZA4UWZ.js";
@@ -14,7 +14,7 @@ import {
14
14
  loadProjectVariableSchema,
15
15
  reportVariableIssues,
16
16
  validateVariablesAgainstSchema
17
- } from "./chunk-7RAYSCYT.js";
17
+ } from "./chunk-KPJMBC4K.js";
18
18
  import "./chunk-FH7WODJH.js";
19
19
  import {
20
20
  errorBox
@@ -24,11 +24,11 @@ import {
24
24
  failCommand,
25
25
  setCommandExitCode
26
26
  } from "./chunk-PBN6GBJE.js";
27
- import "./chunk-3VYNNWVA.js";
28
- import "./chunk-WJB7WI4J.js";
27
+ import "./chunk-BAKPN2D2.js";
28
+ import "./chunk-Z6FLHIDV.js";
29
29
  import "./chunk-VC76R6W2.js";
30
30
  import "./chunk-YA62XGXS.js";
31
- import "./chunk-MQZVBHEY.js";
31
+ import "./chunk-LFNQDTSH.js";
32
32
  import "./chunk-OFQWTKPW.js";
33
33
  import "./chunk-DPVXBVLL.js";
34
34
  import "./chunk-T76PLPD6.js";
@@ -38,7 +38,7 @@ import "./chunk-3RM2ETQT.js";
38
38
  import "./chunk-BSQ7XANM.js";
39
39
  import "./chunk-SDYDNHEE.js";
40
40
  import "./chunk-2PSPARWP.js";
41
- import "./chunk-T42U2W2R.js";
41
+ import "./chunk-IXLUTE6N.js";
42
42
  import {
43
43
  normalizeErrorMessage
44
44
  } from "./chunk-KNU5COPB.js";
@@ -7,16 +7,16 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createRenderCancellationScope,
9
9
  stoppedByCancelSignal
10
- } from "./chunk-MXNDKDFT.js";
11
- import "./chunk-5VMR4WBS.js";
12
- import "./chunk-OUSLVRO4.js";
10
+ } from "./chunk-54UXJKFF.js";
11
+ import "./chunk-WU2B74TL.js";
12
+ import "./chunk-JBQJKC23.js";
13
13
  import "./chunk-NE55C6S5.js";
14
- import "./chunk-USDEMXXL.js";
15
- import "./chunk-3VYNNWVA.js";
16
- import "./chunk-WJB7WI4J.js";
14
+ import "./chunk-JYVGYKXG.js";
15
+ import "./chunk-BAKPN2D2.js";
16
+ import "./chunk-Z6FLHIDV.js";
17
17
  import "./chunk-VC76R6W2.js";
18
18
  import "./chunk-YA62XGXS.js";
19
- import "./chunk-MQZVBHEY.js";
19
+ import "./chunk-LFNQDTSH.js";
20
20
  import "./chunk-OFQWTKPW.js";
21
21
  import "./chunk-DPVXBVLL.js";
22
22
  import "./chunk-T76PLPD6.js";
@@ -25,15 +25,15 @@ import "./chunk-RQVDTPGD.js";
25
25
  import "./chunk-A4Q7W4LV.js";
26
26
  import "./chunk-BYSBRF24.js";
27
27
  import "./chunk-TWWSYAKJ.js";
28
- import "./chunk-IEIJRMLZ.js";
28
+ import "./chunk-JDB65PPT.js";
29
29
  import "./chunk-IWFLMU2N.js";
30
30
  import "./chunk-APDLWWFG.js";
31
- import "./chunk-PJ3HDUCY.js";
31
+ import "./chunk-VAS6HQX3.js";
32
32
  import "./chunk-3RM2ETQT.js";
33
33
  import "./chunk-BSQ7XANM.js";
34
34
  import "./chunk-SDYDNHEE.js";
35
35
  import "./chunk-2PSPARWP.js";
36
- import "./chunk-T42U2W2R.js";
36
+ import "./chunk-IXLUTE6N.js";
37
37
  import "./chunk-KNU5COPB.js";
38
38
  import "./chunk-3GXQPCJC.js";
39
39
  import "./chunk-M2WBOQ2Q.js";
@@ -20,15 +20,15 @@ import {
20
20
  import "./chunk-TWWSYAKJ.js";
21
21
  import {
22
22
  lintProject
23
- } from "./chunk-IEIJRMLZ.js";
23
+ } from "./chunk-JDB65PPT.js";
24
24
  import "./chunk-IWFLMU2N.js";
25
25
  import "./chunk-APDLWWFG.js";
26
- import "./chunk-PJ3HDUCY.js";
26
+ import "./chunk-VAS6HQX3.js";
27
27
  import "./chunk-3RM2ETQT.js";
28
28
  import "./chunk-BSQ7XANM.js";
29
29
  import "./chunk-SDYDNHEE.js";
30
30
  import "./chunk-2PSPARWP.js";
31
- import "./chunk-T42U2W2R.js";
31
+ import "./chunk-IXLUTE6N.js";
32
32
  import "./chunk-KNU5COPB.js";
33
33
  import "./chunk-M2WBOQ2Q.js";
34
34
 
@@ -11,16 +11,16 @@ import {
11
11
  resolveItemWithDependencies,
12
12
  resolveItemsByTag,
13
13
  unreachableRegistryMessage
14
- } from "./chunk-AUBOF2PN.js";
15
- import "./chunk-I5KY7EZP.js";
14
+ } from "./chunk-DDNS2674.js";
15
+ import "./chunk-XVIYZU3D.js";
16
16
  import "./chunk-AWDFDFI3.js";
17
17
  import "./chunk-P6LJ4Y32.js";
18
18
  import "./chunk-GMECXFAN.js";
19
- import "./chunk-3VYNNWVA.js";
20
- import "./chunk-WJB7WI4J.js";
19
+ import "./chunk-BAKPN2D2.js";
20
+ import "./chunk-Z6FLHIDV.js";
21
21
  import "./chunk-VC76R6W2.js";
22
22
  import "./chunk-YA62XGXS.js";
23
- import "./chunk-MQZVBHEY.js";
23
+ import "./chunk-LFNQDTSH.js";
24
24
  import "./chunk-OFQWTKPW.js";
25
25
  import "./chunk-DPVXBVLL.js";
26
26
  import "./chunk-T76PLPD6.js";
@@ -30,7 +30,7 @@ import "./chunk-3RM2ETQT.js";
30
30
  import "./chunk-BSQ7XANM.js";
31
31
  import "./chunk-SDYDNHEE.js";
32
32
  import "./chunk-2PSPARWP.js";
33
- import "./chunk-T42U2W2R.js";
33
+ import "./chunk-IXLUTE6N.js";
34
34
  import "./chunk-M2WBOQ2Q.js";
35
35
  export {
36
36
  listRegistryItems,
@@ -16,27 +16,27 @@ import {
16
16
  sherpaRuntimeLoadError,
17
17
  sherpaUnsupportedReason,
18
18
  transcribeWithSherpa
19
- } from "./chunk-L5TUCXWR.js";
19
+ } from "./chunk-HBGJYBGE.js";
20
20
  import "./chunk-BXCMXMJQ.js";
21
21
  import "./chunk-3DKN5WKL.js";
22
22
  import "./chunk-EOVYQ3IG.js";
23
- import "./chunk-3XTEXWNN.js";
23
+ import "./chunk-CVPWZ5LY.js";
24
24
  import "./chunk-6IHWCZ3W.js";
25
- import "./chunk-MXNDKDFT.js";
25
+ import "./chunk-54UXJKFF.js";
26
26
  import "./chunk-6BEFEWFB.js";
27
- import "./chunk-MAYCCGMQ.js";
27
+ import "./chunk-KVGDFUVO.js";
28
28
  import "./chunk-BHVFTYSI.js";
29
- import "./chunk-ZEUONDQG.js";
29
+ import "./chunk-SYUGVPYH.js";
30
30
  import "./chunk-AMKC3AXA.js";
31
- import "./chunk-5VMR4WBS.js";
32
- import "./chunk-OUSLVRO4.js";
31
+ import "./chunk-WU2B74TL.js";
32
+ import "./chunk-JBQJKC23.js";
33
33
  import "./chunk-NE55C6S5.js";
34
- import "./chunk-USDEMXXL.js";
35
- import "./chunk-3VYNNWVA.js";
36
- import "./chunk-WJB7WI4J.js";
34
+ import "./chunk-JYVGYKXG.js";
35
+ import "./chunk-BAKPN2D2.js";
36
+ import "./chunk-Z6FLHIDV.js";
37
37
  import "./chunk-VC76R6W2.js";
38
38
  import "./chunk-YA62XGXS.js";
39
- import "./chunk-MQZVBHEY.js";
39
+ import "./chunk-LFNQDTSH.js";
40
40
  import "./chunk-OFQWTKPW.js";
41
41
  import "./chunk-DPVXBVLL.js";
42
42
  import "./chunk-T76PLPD6.js";
@@ -45,15 +45,15 @@ import "./chunk-RQVDTPGD.js";
45
45
  import "./chunk-A4Q7W4LV.js";
46
46
  import "./chunk-BYSBRF24.js";
47
47
  import "./chunk-TWWSYAKJ.js";
48
- import "./chunk-IEIJRMLZ.js";
48
+ import "./chunk-JDB65PPT.js";
49
49
  import "./chunk-IWFLMU2N.js";
50
50
  import "./chunk-APDLWWFG.js";
51
- import "./chunk-PJ3HDUCY.js";
51
+ import "./chunk-VAS6HQX3.js";
52
52
  import "./chunk-3RM2ETQT.js";
53
53
  import "./chunk-BSQ7XANM.js";
54
54
  import "./chunk-SDYDNHEE.js";
55
55
  import "./chunk-2PSPARWP.js";
56
- import "./chunk-T42U2W2R.js";
56
+ import "./chunk-IXLUTE6N.js";
57
57
  import "./chunk-KNU5COPB.js";
58
58
  import "./chunk-KBB4RG6F.js";
59
59
  import "./chunk-UOFAE5RF.js";
@@ -2,16 +2,8 @@
2
2
  // Workflow wrappers supply resource paths and workflow-specific sections.
3
3
  // The role combines the shared worker contract with the workflow delta.
4
4
 
5
- import {
6
- existsSync,
7
- mkdirSync,
8
- readFileSync,
9
- readdirSync,
10
- realpathSync,
11
- writeFileSync,
12
- } from "node:fs";
5
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
13
6
  import { basename, join, resolve } from "node:path";
14
- import { pathToFileURL } from "node:url";
15
7
 
16
8
  export function field(block, name) {
17
9
  const match = block.match(new RegExp(`^-\\s+${name}:\\s*(.+)$`, "im"));
@@ -160,17 +152,7 @@ export function flag(argv, name, fallback) {
160
152
  return index >= 0 && argv[index + 1] ? argv[index + 1] : fallback;
161
153
  }
162
154
 
163
- // realpath both sides: on macOS /tmp → /private/tmp, and node resolves the main
164
- // module's symlinks in import.meta.url while argv[1] keeps the invoked spelling —
165
- // a raw compare silently skips main() when invoked through any symlinked path.
166
- export function isMainModule(importMetaUrl) {
167
- if (!process.argv[1]) return false;
168
- try {
169
- return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
170
- } catch {
171
- return false;
172
- }
173
- }
155
+ export { isMainModule } from "./main-module.mjs";
174
156
 
175
157
  export function runCli({ buildFramePackets: build, buildRolePayload: buildRole }) {
176
158
  const argv = process.argv.slice(2);
@@ -0,0 +1,13 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { pathToFileURL } from "node:url";
3
+
4
+ // Node resolves symlinks in the main module's import.meta.url but argv[1] keeps the invoked
5
+ // spelling (a symlinked skills dir, or /tmp vs /private/tmp on macOS), so compare real paths.
6
+ export function isMainModule(importMetaUrl) {
7
+ if (!process.argv[1]) return false;
8
+ try {
9
+ return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
@@ -0,0 +1,51 @@
1
+ import { strict as assert } from "node:assert";
2
+ import { test } from "node:test";
3
+ import { mkdtempSync, readFileSync, readdirSync, rmSync, symlinkSync } from "node:fs";
4
+ import { spawnSync } from "node:child_process";
5
+ import { dirname, join, relative, resolve } from "node:path";
6
+ import { tmpdir } from "node:os";
7
+ import { fileURLToPath } from "node:url";
8
+
9
+ const SKILLS = resolve(dirname(fileURLToPath(import.meta.url)), "../../..");
10
+ const CLI_MEDIA_USE = resolve(SKILLS, "../packages/cli/src/media-use");
11
+
12
+ // Agents install skills by symlinking the skills dir, so each script must still run its CLI.
13
+ test("skill CLIs run when invoked through a symlinked skills dir", () => {
14
+ const dir = mkdtempSync(join(tmpdir(), "skills-link-"));
15
+ try {
16
+ symlinkSync(SKILLS, join(dir, "skills"), "dir");
17
+ for (const script of [
18
+ "faceless-explainer/scripts/captions.mjs",
19
+ "pr-to-video/scripts/captions.mjs",
20
+ "product-launch-video/scripts/captions.mjs",
21
+ "media-use/audio/scripts/heygen-voice.mjs",
22
+ ]) {
23
+ const run = spawnSync(process.execPath, [join(dir, "skills", script), "not-a-command"], {
24
+ encoding: "utf8",
25
+ });
26
+ assert.notEqual(run.status, 0, `${script} exited ${run.status} without running its CLI`);
27
+ assert.match(run.stderr, /usage/, script);
28
+ }
29
+ } finally {
30
+ rmSync(dir, { recursive: true, force: true });
31
+ }
32
+ });
33
+
34
+ function skillScripts(dir) {
35
+ return readdirSync(dir, { withFileTypes: true }).flatMap((entry) => {
36
+ const path = join(dir, entry.name);
37
+ if (entry.isDirectory()) return entry.name === "node_modules" ? [] : skillScripts(path);
38
+ return /\.(mjs|js)$/.test(entry.name) && !/\.test\.mjs$/.test(entry.name) ? [path] : [];
39
+ });
40
+ }
41
+
42
+ test("skill scripts detect their CLI entry through lib/main-module.mjs only", () => {
43
+ const handRolled = [...skillScripts(SKILLS), ...skillScripts(CLI_MEDIA_USE)].filter(
44
+ (path) =>
45
+ !path.endsWith("main-module.mjs") && readFileSync(path, "utf8").includes("process.argv[1]"),
46
+ );
47
+ assert.deepEqual(
48
+ handRolled.map((path) => relative(SKILLS, path)),
49
+ [],
50
+ );
51
+ });
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  // Run from the user's project; locate the release from this installed file.
3
3
  import { spawnSync } from "node:child_process";
4
- import { existsSync, readFileSync, realpathSync } from "node:fs";
4
+ import { existsSync, readFileSync } from "node:fs";
5
5
  import { join, win32 } from "node:path";
6
- import { fileURLToPath, pathToFileURL } from "node:url";
6
+ import { fileURLToPath } from "node:url";
7
+ import { isMainModule } from "./lib/main-module.mjs";
7
8
 
8
9
  const root = fileURLToPath(new URL("../../../", import.meta.url));
9
10
  const manifests = [
@@ -71,7 +72,7 @@ export function invocation(
71
72
  return { command: node, args: [npx, ...cliArgs], env: childEnv };
72
73
  }
73
74
 
74
- if (process.argv[1] && pathToFileURL(realpathSync(process.argv[1])).href === import.meta.url) {
75
+ if (isMainModule(import.meta.url)) {
75
76
  try {
76
77
  const command = invocation(process.argv.slice(2));
77
78
  const result = spawnSync(command.command, command.args, {
@@ -17,11 +17,15 @@ import { invocation, pluginVersion } from "./plugin-cli.mjs";
17
17
  function fixture(t, manifest = "plugin.json", version = "1.2.3") {
18
18
  const root = mkdtempSync(join(tmpdir(), "hf-plugin-"));
19
19
  t.after(() => rmSync(root, { recursive: true, force: true }));
20
- mkdirSync(join(root, "skills/hyperframes/scripts"), { recursive: true });
20
+ mkdirSync(join(root, "skills/hyperframes/scripts/lib"), { recursive: true });
21
21
  mkdirSync(join(root, manifest, ".."), { recursive: true });
22
22
  writeFileSync(join(root, manifest), JSON.stringify({ name: "hyperframes", version }));
23
23
  const launcher = join(root, "skills/hyperframes/scripts/plugin-cli.mjs");
24
24
  copyFileSync(new URL("./plugin-cli.mjs", import.meta.url), launcher);
25
+ copyFileSync(
26
+ new URL("./lib/main-module.mjs", import.meta.url),
27
+ join(root, "skills/hyperframes/scripts/lib/main-module.mjs"),
28
+ );
25
29
  return { root, launcher };
26
30
  }
27
31
 
@@ -130,6 +130,8 @@ Use `selection.target.hfId` when available, otherwise its selector and source fi
130
130
  | Self-managed distributed AWS render | `npx hyperframes lambda render <project> --width 1920 --height 1080 --wait` |
131
131
  | Self-managed distributed GCP render | `npx hyperframes cloudrun render <project> --width 1920 --height 1080 --wait` |
132
132
 
133
+ A render stops when whatever started it stops, so a Ctrl-C or a closed terminal never leaves Chrome running. If your tool kills its whole process group when a command times out or ends, a long render dies with it. Start such a render in its own process group with `HYPERFRAMES_RENDER_DETACHED=1`, for example `bash -c 'set -m; HYPERFRAMES_RENDER_DETACHED=1 npx hyperframes render --output out.mp4 < /dev/null > render.log 2>&1 &'` (works on macOS and Linux), then check the log and the output file instead of waiting on the command.
134
+
133
135
  Skill attribution is automatic — the examples above need no `--skill`. A project scaffolded by a workflow (`hyperframes init --skill=<workflow>`) records its owning skill in `hyperframes.json`, and every later render inherits it on anonymous telemetry: re-renders, `npm run render`, and `--batch` alike. Pass `--skill=<slug>` explicitly only to stamp a project that was not created through a workflow (its first render then persists it).
134
136
 
135
137
  Use cloud rendering when the user wants hosted rendering without local Chrome, FFmpeg, or AWS. Use Lambda only when AWS ownership is a requirement. Use Cloud Run only when GCP ownership is a requirement. Read the matching reference before running any cloud path.
@@ -5,9 +5,9 @@
5
5
 
6
6
  import { readFileSync } from "node:fs";
7
7
  import { extname } from "node:path";
8
- import { fileURLToPath } from "node:url";
9
8
  import { parseArgs } from "node:util";
10
9
  import { heygenAuthHeaders, heygenJSON, heygenMessage, loadEnvFromDir } from "./lib/heygen.mjs";
10
+ import { isMainModule } from "./lib/main-module.mjs";
11
11
 
12
12
  const MEDIA_TYPES = { ".mp3": "audio/mpeg", ".wav": "audio/wav" };
13
13
  const POLL_MS = 2_000;
@@ -92,7 +92,7 @@ export async function main(
92
92
  }
93
93
  }
94
94
 
95
- if (process.argv[1] === fileURLToPath(import.meta.url)) {
95
+ if (isMainModule(import.meta.url)) {
96
96
  loadEnvFromDir(process.cwd());
97
97
  process.exitCode = await main(process.argv.slice(2));
98
98
  }
@@ -0,0 +1,13 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { pathToFileURL } from "node:url";
3
+
4
+ // Node resolves symlinks in the main module's import.meta.url but argv[1] keeps the invoked
5
+ // spelling (a symlinked skills dir, or /tmp vs /private/tmp on macOS), so compare real paths.
6
+ export function isMainModule(importMetaUrl) {
7
+ if (!process.argv[1]) return false;
8
+ try {
9
+ return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
@@ -159,9 +159,13 @@ drops frames. Do not impose or claim a universal hard cap from one machine.
159
159
  GSAP only for supported animated values and Registry overlay blocks only
160
160
  for authored dressing.
161
161
  ```bash
162
- hyperframes media-treatment --selector "<unique selector>" \
162
+ hyperframes media-treatment --selector "<selector>" \
163
163
  --grading '<nested JSON patch>' --apply --json
164
164
  ```
165
+ A selector that matches several images or videos patches every match, each
166
+ merged into its own current grading (the JSON reports `count` and each
167
+ target); run `--clear` first for an identical look, or add
168
+ `--selector-index` to patch only one.
165
169
  For a temporal reveal, use the focused capability result's `animation`
166
170
  contract. If it is `null`, the capability is static. Author the starting CSS
167
171
  property inline on the real media element and return temporary treatment
@@ -5,8 +5,7 @@
5
5
  // parser cases to catch drift in accepted .cube files before freezing them.
6
6
 
7
7
  import { readFileSync } from "node:fs";
8
- import { resolve as resolvePath } from "node:path";
9
- import { fileURLToPath } from "node:url";
8
+ import { isMainModule } from "./main-module.mjs";
10
9
 
11
10
  export const DEFAULT_MAX_CUBE_LUT_SIZE = 64;
12
11
 
@@ -193,6 +192,6 @@ function main(argv) {
193
192
  console.log(`ok: LUT_3D_SIZE ${result.size}`);
194
193
  }
195
194
 
196
- if (process.argv[1] && resolvePath(process.argv[1]) === fileURLToPath(import.meta.url)) {
195
+ if (isMainModule(import.meta.url)) {
197
196
  main(process.argv);
198
197
  }
@@ -0,0 +1,13 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { pathToFileURL } from "node:url";
3
+
4
+ // Node resolves symlinks in the main module's import.meta.url but argv[1] keeps the invoked
5
+ // spelling (a symlinked skills dir, or /tmp vs /private/tmp on macOS), so compare real paths.
6
+ export function isMainModule(importMetaUrl) {
7
+ if (!process.argv[1]) return false;
8
+ try {
9
+ return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
@@ -9,12 +9,12 @@ import {
9
9
  } from "./chunk-6BEFEWFB.js";
10
10
  import {
11
11
  trackSkillsInstallSkipped
12
- } from "./chunk-RG3QWWIE.js";
13
- import "./chunk-XU5GGV6R.js";
12
+ } from "./chunk-QSSPIATO.js";
13
+ import "./chunk-2NAUEDA6.js";
14
14
  import {
15
15
  diag
16
16
  } from "./chunk-VWG7OQKU.js";
17
- import "./chunk-GQJZORQP.js";
17
+ import "./chunk-XBSPQ52S.js";
18
18
  import "./chunk-AMKC3AXA.js";
19
19
  import {
20
20
  R
@@ -27,7 +27,7 @@ import {
27
27
  CliResultSignal,
28
28
  setCommandExitCode
29
29
  } from "./chunk-PBN6GBJE.js";
30
- import "./chunk-USDEMXXL.js";
30
+ import "./chunk-JYVGYKXG.js";
31
31
  import "./chunk-T76PLPD6.js";
32
32
  import "./chunk-FXMKHHPO.js";
33
33
  import {
@@ -39,15 +39,15 @@ import {
39
39
  isCoreSkill,
40
40
  presentSkills,
41
41
  pruneOrphanedLockEntries
42
- } from "./chunk-5HJ343GH.js";
42
+ } from "./chunk-WUZ6TMAO.js";
43
43
  import {
44
44
  withMeta
45
- } from "./chunk-P6WH6QTV.js";
45
+ } from "./chunk-K7ES5RSK.js";
46
46
  import "./chunk-K4WIOZFP.js";
47
47
  import "./chunk-XUXGIA7H.js";
48
48
  import "./chunk-WERLJGIC.js";
49
49
  import "./chunk-ISN5GRYI.js";
50
- import "./chunk-4OC7MQNB.js";
50
+ import "./chunk-TBOMPYG6.js";
51
51
  import "./chunk-KNU5COPB.js";
52
52
  import {
53
53
  c
@@ -9,13 +9,13 @@ import {
9
9
  printSkillsUpdateNotice,
10
10
  refreshSkillsCache,
11
11
  skillsCheckDue
12
- } from "./chunk-5HJ343GH.js";
13
- import "./chunk-P6WH6QTV.js";
12
+ } from "./chunk-WUZ6TMAO.js";
13
+ import "./chunk-K7ES5RSK.js";
14
14
  import "./chunk-K4WIOZFP.js";
15
15
  import "./chunk-XUXGIA7H.js";
16
16
  import "./chunk-WERLJGIC.js";
17
17
  import "./chunk-ISN5GRYI.js";
18
- import "./chunk-4OC7MQNB.js";
18
+ import "./chunk-TBOMPYG6.js";
19
19
  import "./chunk-KNU5COPB.js";
20
20
  import "./chunk-M2WBOQ2Q.js";
21
21
  export {
@@ -12,7 +12,7 @@ import {
12
12
  parseSlideshowManifest,
13
13
  resolveSlideshow,
14
14
  slideshowIslandRegex
15
- } from "./chunk-T42U2W2R.js";
15
+ } from "./chunk-IXLUTE6N.js";
16
16
  import "./chunk-M2WBOQ2Q.js";
17
17
  export {
18
18
  SLIDESHOW_ISLAND_TYPE,