hyperframes 0.8.139 → 0.8.140

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 (195) hide show
  1. package/dist/{add-VYJQ4S3P.js → add-7SPPQB64.js} +20 -22
  2. package/dist/{animatedGifPrep-IBMW6FZB.js → animatedGifPrep-HN3CJSFX.js} +15 -8
  3. package/dist/{asset-FLSUS73X.js → asset-AZMFUTRL.js} +3 -3
  4. package/dist/{assetCataloger-TGD7TRCR.js → assetCataloger-TQUWYLHE.js} +6 -3
  5. package/dist/{auth-EZXIN4M4.js → auth-XGY74R4A.js} +7 -7
  6. package/dist/{autoUpdate-ZPMY5T3X.js → autoUpdate-44NTJBQU.js} +2 -2
  7. package/dist/{backgroundChecks-JIDTAUFE.js → backgroundChecks-ET4DJEPG.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-FNZ6TJYY.js → batchRender-HTWWNF3P.js} +11 -8
  10. package/dist/beat-analyzer.global.js +5 -2
  11. package/dist/{beats-EAA4U3YN.js → beats-4GYTZUZG.js} +24 -17
  12. package/dist/{benchmark-KKZQVK2Y.js → benchmark-CJQHE3QN.js} +20 -23
  13. package/dist/{browser-ZIVVJLJT.js → browser-NXOVPGDG.js} +14 -28
  14. package/dist/{bundleWithLocalizedFonts-2XWC3PEM.js → bundleWithLocalizedFonts-6PJP54TC.js} +5 -5
  15. package/dist/{capture-MKJHABUL.js → capture-5EHGRJZM.js} +2 -2
  16. package/dist/{capture-EFYPXI42.js → capture-EHOMO4MP.js} +22 -15
  17. package/dist/{catalog-EWX4BBI2.js → catalog-PTX5Z52R.js} +28 -30
  18. package/dist/{catch-up-FJFH7T4W.js → catch-up-I45SPSCU.js} +11 -25
  19. package/dist/{check-YJNVDCBP.js → check-LJ7LG7OI.js} +72 -54
  20. package/dist/{checkBrowser-I6SPPEGD.js → checkBrowser-6EK5E4PG.js} +81 -36
  21. package/dist/chunk-24OWOBQH.js +3656 -0
  22. package/dist/{chunk-SIKMUO45.js → chunk-2GMKWYEH.js} +12 -12
  23. package/dist/{chunk-GIDHR5OL.js → chunk-5IKJONRY.js} +1 -1
  24. package/dist/{chunk-GWV2Y36Q.js → chunk-6U3MN4HW.js} +5 -106
  25. package/dist/chunk-A4KQZXZI.js +116 -0
  26. package/dist/{chunk-PFI3VD77.js → chunk-ABJNXQUA.js} +10 -10
  27. package/dist/{chunk-HOIHGPWO.js → chunk-ASW6NWON.js} +1 -1
  28. package/dist/chunk-B3I3XJ47.js +3711 -0
  29. package/dist/{chunk-3RT6D4P6.js → chunk-BJ5JWOES.js} +1 -1
  30. package/dist/{chunk-4VZBKOQJ.js → chunk-BQKEGPPL.js} +1 -1
  31. package/dist/{chunk-SHB5VDMH.js → chunk-BRITLL56.js} +1 -1
  32. package/dist/{chunk-7SI7GCX6.js → chunk-C2JUHIG5.js} +6 -6
  33. package/dist/{chunk-TCWL4BKK.js → chunk-DDQ4LOML.js} +1 -1
  34. package/dist/{chunk-CDJ7FPPJ.js → chunk-DQNOPYAG.js} +1 -1
  35. package/dist/{chunk-JH556Q42.js → chunk-EDYBFSPE.js} +2 -2
  36. package/dist/{chunk-W7SAWBQC.js → chunk-F3SPK6SO.js} +1 -1
  37. package/dist/chunk-FXMKHHPO.js +123 -0
  38. package/dist/chunk-G75ENCEZ.js +283 -0
  39. package/dist/{chunk-PLNWWGE7.js → chunk-GQJZORQP.js} +1 -1
  40. package/dist/{chunk-Y6W4DVPS.js → chunk-HKCNZITN.js} +1 -1
  41. package/dist/{chunk-U3GEXWI5.js → chunk-IFY57LUW.js} +1 -1
  42. package/dist/{chunk-UQXOHEQ7.js → chunk-IRBESGJ7.js} +4 -4
  43. package/dist/chunk-JFKL3WAE.js +161 -0
  44. package/dist/{chunk-25DHUDOK.js → chunk-JSGANFFH.js} +12 -3
  45. package/dist/{chunk-UGI77E35.js → chunk-KECV5G4V.js} +165 -59
  46. package/dist/{chunk-EZ2P7LAP.js → chunk-KFQNMY36.js} +8 -8
  47. package/dist/{chunk-FLRCVYNE.js → chunk-KJLY2SDJ.js} +2 -2
  48. package/dist/{chunk-XOZ3J3LB.js → chunk-KMKWRIMC.js} +1 -1
  49. package/dist/{chunk-O6K5DWXM.js → chunk-KOEWEFHK.js} +1 -1
  50. package/dist/{chunk-IBRZUVTH.js → chunk-L2H2L22P.js} +2 -2
  51. package/dist/{chunk-BC3OY2ED.js → chunk-LQG6GPVK.js} +1 -1
  52. package/dist/{chunk-Z67RZ4XO.js → chunk-MHK5DE2P.js} +263 -1960
  53. package/dist/{chunk-A4X2YWNQ.js → chunk-MTVDXB6S.js} +18 -289
  54. package/dist/{chunk-CDMB3PRC.js → chunk-MU6C2VP6.js} +7 -7
  55. package/dist/{chunk-UMWROSIP.js → chunk-MUINFURL.js} +2 -2
  56. package/dist/{chunk-JTAYFSLO.js → chunk-PB3P4MKP.js} +1 -1
  57. package/dist/{chunk-JIIIBTN2.js → chunk-PE2I3AFA.js} +1 -1
  58. package/dist/{chunk-OENM2JVZ.js → chunk-PFJFHNU3.js} +3 -3
  59. package/dist/{chunk-EH4VUY27.js → chunk-PPKFM5WE.js} +2 -2
  60. package/dist/{chunk-DW32KBHN.js → chunk-PUBKHEEA.js} +13 -13
  61. package/dist/{chunk-DUQJF7FK.js → chunk-QBK7WKHT.js} +8 -8
  62. package/dist/{chunk-U3HX7WE6.js → chunk-QG3PDRSO.js} +1 -1
  63. package/dist/{chunk-EJ7OWYF2.js → chunk-QP3BRKGF.js} +1 -163
  64. package/dist/chunk-QZ3AZTXI.js +1740 -0
  65. package/dist/{chunk-YOL4QRSL.js → chunk-SLEPCESN.js} +2 -2
  66. package/dist/chunk-T76PLPD6.js +57 -0
  67. package/dist/{chunk-QXOFUKBF.js → chunk-TPECLKPA.js} +168 -165
  68. package/dist/{chunk-R7LWDIKB.js → chunk-TYT2TLJR.js} +1 -1
  69. package/dist/{chunk-Q73ISOVQ.js → chunk-U7E736AJ.js} +1 -1
  70. package/dist/chunk-USDEMXXL.js +110 -0
  71. package/dist/{chunk-VTVS4IIP.js → chunk-VVJFZU6B.js} +2 -2
  72. package/dist/{chunk-JX7Y57YY.js → chunk-WKTHUC2R.js} +1 -1
  73. package/dist/{chunk-NTIOLSFE.js → chunk-WQBA3MH4.js} +3 -3
  74. package/dist/{chunk-STA43FMY.js → chunk-WY5OODN5.js} +71 -3855
  75. package/dist/{chunk-X3TMMIDP.js → chunk-X3X3VETN.js} +8 -8
  76. package/dist/{chunk-ZTZ7NCJT.js → chunk-XTFJOR3K.js} +1 -1
  77. package/dist/chunk-YA62XGXS.js +45 -0
  78. package/dist/{clean-P4KTCOUA.js → clean-Y3AQITOX.js} +29 -20
  79. package/dist/cli.js +55 -55
  80. package/dist/{cloud-PDY7S4HU.js → cloud-TDPOMBZF.js} +7 -7
  81. package/dist/{cloudrun-54MA2W5H.js → cloudrun-FPAVAVHP.js} +11 -8
  82. package/dist/commands/layout-audit.browser.js +37 -8
  83. package/dist/commands/motion-signature.browser.js +51 -2
  84. package/dist/{compare-LDWVSPC5.js → compare-LHL225ND.js} +40 -31
  85. package/dist/{compiler-CWSZ4W7J.js → compiler-RTU3KTLF.js} +7 -3
  86. package/dist/{component-FIEGC22U.js → component-L2YX7J56.js} +4 -4
  87. package/dist/{compositions-JR7PX356.js → compositions-V2UZKG7S.js} +23 -16
  88. package/dist/{delete-FXA2IHOS.js → delete-OXZEXUQY.js} +8 -8
  89. package/dist/{dist-4JZWRWS6.js → dist-N33CM63P.js} +21 -15
  90. package/dist/{dist-OJTEVNJR.js → dist-NZSQCYOF.js} +3 -1
  91. package/dist/{doctor-OTDHPM6K.js → doctor-MWTPSIVD.js} +20 -13
  92. package/dist/{events-UAFTI24U.js → events-4TZGQZWF.js} +6 -22
  93. package/dist/{events-6T7M2VCO.js → events-7VJJGC3D.js} +10 -23
  94. package/dist/{feedback-ZGZODHB6.js → feedback-HSGAPVN7.js} +67 -45
  95. package/dist/{figma-D26EJ7ZB.js → figma-AMC6FAK3.js} +6 -6
  96. package/dist/fontLocalizeCli.js +17 -10
  97. package/dist/{get-IAREU7IK.js → get-Y7DFEFYM.js} +8 -8
  98. package/dist/{gpuPolicy-NS7WZRDJ.js → gpuPolicy-A45VSUKR.js} +15 -8
  99. package/dist/{grade-compare-ZXHFHCD2.js → grade-compare-ERSA3OUI.js} +40 -31
  100. package/dist/{help-RVNYHW3N.js → help-TW2AADLZ.js} +4 -4
  101. package/dist/{history-THP4VNMF.js → history-DKGDSVWF.js} +12 -30
  102. package/dist/hyperframe-runtime.js +59 -59
  103. package/dist/hyperframe.manifest.json +1 -1
  104. package/dist/hyperframe.runtime.iife.js +59 -59
  105. package/dist/hyperframes-player.global.js +3 -3
  106. package/dist/{info-EOFRHN5A.js → info-I3NRRNX4.js} +17 -20
  107. package/dist/{init-YLIJE4CG.js → init-5Y3ZWZNF.js} +48 -41
  108. package/dist/{inspect-3D56ONJD.js → inspect-BJQKBB3X.js} +39 -30
  109. package/dist/{installer-GRR2GDZK.js → installer-27K4JS2I.js} +8 -5
  110. package/dist/{keyframes-NXNCTQPK.js → keyframes-6V2NZO22.js} +14 -25
  111. package/dist/{lambda-VGRZD7TR.js → lambda-AIMF3K4A.js} +16 -13
  112. package/dist/{layout-Z5DOS6DU.js → layout-YAPEBTU4.js} +39 -30
  113. package/dist/{lint-YD6NJGR2.js → lint-3LWWUIV7.js} +17 -23
  114. package/dist/{lintProject-ANMPLBIT.js → lintProject-LM3XZRPZ.js} +3 -1
  115. package/dist/{list-XGDKILYN.js → list-NTSGEZJ6.js} +8 -8
  116. package/dist/{login-GD5SA4RD.js → login-ZTDFGCCW.js} +9 -9
  117. package/dist/{logout-Q654A3SI.js → logout-GJXZQKOA.js} +5 -5
  118. package/dist/{media-treatment-TY4X4GQQ.js → media-treatment-ARHX446F.js} +21 -20
  119. package/dist/{models-MXRDH4WJ.js → models-VHNQVTHG.js} +19 -12
  120. package/dist/{motionShot-6LKR3C2E.js → motionShot-35HCSNCI.js} +22 -15
  121. package/dist/{normalize-O76AC4HE.js → normalize-IGLHCWTF.js} +0 -4
  122. package/dist/{normalize-audio-5ADDZKPJ.js → normalize-audio-AUC73JH3.js} +13 -26
  123. package/dist/{open-JXAMO325.js → open-C5LVNU3U.js} +11 -25
  124. package/dist/{pipeline-Q5MOPIIX.js → pipeline-4GDTK54T.js} +15 -8
  125. package/dist/{play-3SPH5GWZ.js → play-U7UANF7Z.js} +38 -32
  126. package/dist/{preflight-2PWAPKWC.js → preflight-Y5DN5D37.js} +3 -18
  127. package/dist/{present-ZTJQDKXZ.js → present-X6V6TX3E.js} +32 -26
  128. package/dist/{preview-4A3XZR6J.js → preview-K43RTRU2.js} +33 -26
  129. package/dist/{producer-5ZKKKQPB.js → producer-PVMFMW23.js} +1 -1
  130. package/dist/{projectConfig-WA4CS4SN.js → projectConfig-PI6MEN2T.js} +10 -7
  131. package/dist/{publication-CLG2FRRI.js → publication-67C7KVTL.js} +6 -3
  132. package/dist/{publish-YTT2WMXO.js → publish-RBV7EAMH.js} +27 -20
  133. package/dist/{refresh-K24ETHMA.js → refresh-MFITBIKV.js} +5 -5
  134. package/dist/{remove-background-W35INR3B.js → remove-background-Z2ECZX2Q.js} +22 -15
  135. package/dist/{render-7A4P5WMU.js → render-2GQMQBU3.js} +10 -7
  136. package/dist/{render-KICXUPNR.js → render-EFU4BZRZ.js} +23 -26
  137. package/dist/{render-WUBFQMAH.js → render-YBS3XGRJ.js} +52 -32
  138. package/dist/{render-batch-N7EFGE6S.js → render-batch-QC64OTB5.js} +11 -8
  139. package/dist/{renderCancellation-LYQPPFAO.js → renderCancellation-NTVU7IMB.js} +15 -8
  140. package/dist/renderSetupWorker.js +4 -2
  141. package/dist/{resolver-YTT2NENF.js → resolver-GBWYG3EI.js} +8 -5
  142. package/dist/{sherpa-353MW4UV.js → sherpa-ZW6PWJS4.js} +16 -9
  143. package/dist/skills/hyperframes/references/capability-menu.md +1 -1
  144. package/dist/skills/hyperframes-cli/SKILL.md +5 -0
  145. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
  146. package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
  147. package/dist/skills/media-use/SKILL.md +6 -4
  148. package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +28 -0
  149. package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +106 -0
  150. package/dist/skills/media-use/references/setup-providers.md +3 -2
  151. package/dist/skills/media-use/scripts/lib/heygen-cli.mjs +21 -1
  152. package/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +14 -0
  153. package/dist/skills/media-use/scripts/resolve.mjs +11 -6
  154. package/dist/{skills-2XJIOEBT.js → skills-VKZAX5AS.js} +15 -30
  155. package/dist/{skillsUpdateCheck-LMCCWGNO.js → skillsUpdateCheck-PAY2OPDE.js} +3 -3
  156. package/dist/{snapshot-WBRSTLJ2.js → snapshot-SD5R3NWX.js} +41 -32
  157. package/dist/{src-YWFJILQF.js → src-7SSERHNP.js} +19 -11
  158. package/dist/{src-ZS3BLTZ5.js → src-RXTXL3VL.js} +16 -9
  159. package/dist/{staticProjectServer-4VKVHPNG.js → staticProjectServer-XELJXX4J.js} +24 -16
  160. package/dist/{status-73MBN37B.js → status-JA6SKQVH.js} +7 -24
  161. package/dist/studio/assets/{hyperframes-player-CckOoCJ8.js → hyperframes-player-BLuyxnK7.js} +1 -1
  162. package/dist/studio/assets/{index-DsEkE5_G.js → index-CWfuDCoA.js} +1 -1
  163. package/dist/studio/assets/{index-BmIPrb8I.js → index-Dr3Bo9uH.js} +1 -1
  164. package/dist/studio/assets/{index-Br1Whc0f.js → index-VAHDM_zL.js} +204 -204
  165. package/dist/studio/{chunk-E422JDF5.js → chunk-H2DUOXTF.js} +2 -1
  166. package/dist/studio/index.d.ts +19 -3
  167. package/dist/studio/index.html +1 -1
  168. package/dist/studio/index.js +6498 -5813
  169. package/dist/studio/index.js.map +1 -1
  170. package/dist/studio/player.js +1 -1
  171. package/dist/{studio-api-5V4TVSQV.js → studio-api-4FNUZPJ4.js} +40 -28
  172. package/dist/{studioServer-M5XY3HYC.js → studioServer-GHLL3F2M.js} +99 -68
  173. package/dist/{system-RCRNX5VF.js → system-OQLOGGPJ.js} +2 -19
  174. package/dist/{telemetry-LOBRQGUD.js → telemetry-7AO77PMH.js} +8 -23
  175. package/dist/{timeline-3JCP6PXU.js → timeline-6LTHSRXM.js} +32 -22
  176. package/dist/{tokens-MLMIJBVF.js → tokens-K6B46KNL.js} +3 -3
  177. package/dist/{transcribe-KNFXDEAX.js → transcribe-CLLISRLZ.js} +16 -9
  178. package/dist/{transcribe-POH25ZPX.js → transcribe-K2OU6FZF.js} +20 -44
  179. package/dist/{updateCheck-5ITBSBST.js → updateCheck-X6UQBS6I.js} +2 -2
  180. package/dist/{upgrade-K6OK4FKT.js → upgrade-BZFKEADI.js} +5 -5
  181. package/dist/{urlDownloader-TJJQKADT.js → urlDownloader-VAVUXYEQ.js} +14 -7
  182. package/dist/{validate-PPPOBJHB.js → validate-VO5KEXWN.js} +26 -19
  183. package/dist/{video-OB22HWXZ.js → video-JV6Y4UJR.js} +18 -11
  184. package/package.json +1 -1
  185. package/dist/chunk-HYYSJI5D.js +0 -3742
  186. package/dist/{chunk-I465DBM6.js → chunk-246MOR5U.js} +3 -3
  187. package/dist/{deploy-MX76RZ36.js → deploy-5G4Z6LPA.js} +1 -1
  188. package/dist/{destroy-H2TZBYHH.js → destroy-GFQLTIY3.js} +1 -1
  189. package/dist/{docs-QAPJEGLS.js → docs-MPOM3PHH.js} +3 -3
  190. package/dist/{policies-FSDZVS2E.js → policies-4FEXMXPK.js} +3 -3
  191. package/dist/{progress-FBIEEB7Y.js → progress-5AM2MZ7V.js} +3 -3
  192. package/dist/{sites-TNVKZS73.js → sites-HZMADOA3.js} +1 -1
  193. package/dist/studio/{chunk-E422JDF5.js.map → chunk-H2DUOXTF.js.map} +0 -0
  194. package/dist/{telemetry-2YC4SGQU.js → telemetry-W5AKPI4R.js} +3 -3
  195. package/dist/{tts-FU35O6YB.js → tts-TOHSPWEG.js} +4 -4
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/utils/producer.ts
9
9
  async function loadProducer() {
10
- return await import("./src-ZS3BLTZ5.js");
10
+ return await import("./src-RXTXL3VL.js");
11
11
  }
12
12
 
13
13
  export {
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveCaptureBrowserGpuMode
9
- } from "./chunk-JIIIBTN2.js";
9
+ } from "./chunk-PE2I3AFA.js";
10
10
  import {
11
11
  requestCliExit
12
12
  } from "./chunk-PBN6GBJE.js";
@@ -9,7 +9,7 @@ import {
9
9
  buildAuthHeaders,
10
10
  refreshTokens,
11
11
  resolveCredential
12
- } from "./chunk-I465DBM6.js";
12
+ } from "./chunk-246MOR5U.js";
13
13
 
14
14
  // src/cloud/auth.ts
15
15
  async function resolveCloudAuthHeaders() {
@@ -7,12 +7,9 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  diag
9
9
  } from "./chunk-VWG7OQKU.js";
10
- import {
11
- c
12
- } from "./chunk-ZTZA4UWZ.js";
13
10
  import {
14
11
  getSystemMeta
15
- } from "./chunk-PLNWWGE7.js";
12
+ } from "./chunk-GQJZORQP.js";
16
13
  import {
17
14
  getInvocationId
18
15
  } from "./chunk-54HJ63Q2.js";
@@ -23,7 +20,7 @@ import {
23
20
  evaluateCanary,
24
21
  findCanary,
25
22
  parseCanaryOverride
26
- } from "./chunk-EJ7OWYF2.js";
23
+ } from "./chunk-FXMKHHPO.js";
27
24
  import {
28
25
  hostAnswers
29
26
  } from "./chunk-K4WIOZFP.js";
@@ -37,7 +34,10 @@ import {
37
34
  } from "./chunk-XUXGIA7H.js";
38
35
  import {
39
36
  VERSION
40
- } from "./chunk-UMWROSIP.js";
37
+ } from "./chunk-MUINFURL.js";
38
+ import {
39
+ c
40
+ } from "./chunk-ZTZA4UWZ.js";
41
41
 
42
42
  // src/telemetry/transport.ts
43
43
  import { spawn } from "child_process";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-UMWROSIP.js";
20
+ } from "./chunk-MUINFURL.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  VERSION
9
- } from "./chunk-UMWROSIP.js";
9
+ } from "./chunk-MUINFURL.js";
10
10
 
11
11
  // src/registry/compatibility.ts
12
12
  import { compareVersions } from "compare-versions";
@@ -6,13 +6,13 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  refreshIfNeeded
9
- } from "./chunk-SHB5VDMH.js";
9
+ } from "./chunk-BRITLL56.js";
10
10
  import {
11
11
  buildAuthHeaders,
12
12
  isAuthError,
13
13
  isTokenExpired,
14
14
  tryResolveCredential
15
- } from "./chunk-I465DBM6.js";
15
+ } from "./chunk-246MOR5U.js";
16
16
  import {
17
17
  CSS_URL_RE,
18
18
  isNonRelativeUrl,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-6IHWCZ3W.js";
10
10
  import {
11
11
  stoppedByCancelSignal
12
- } from "./chunk-BC3OY2ED.js";
12
+ } from "./chunk-LQG6GPVK.js";
13
13
  import {
14
14
  DEFAULT_MODEL,
15
15
  ensureModel,
@@ -0,0 +1,123 @@
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
+ // ../core/dist/canary.js
9
+ function fnv1a32(input) {
10
+ let hash = 2166136261;
11
+ for (let i = 0; i < input.length; i++) {
12
+ hash ^= input.charCodeAt(i);
13
+ hash = hash + ((hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24)) >>> 0;
14
+ }
15
+ return hash >>> 0;
16
+ }
17
+ function canaryBucket(feature, unitId) {
18
+ return fnv1a32(`${feature}:${unitId}`) % 100;
19
+ }
20
+ function evaluateCanary(input) {
21
+ if (input.override === true)
22
+ return { enabled: true, reason: "forced_on" };
23
+ if (input.override === false)
24
+ return { enabled: false, reason: "forced_off" };
25
+ const pct = Math.max(0, Math.min(100, Math.trunc(input.percentage)));
26
+ if (pct <= 0)
27
+ return { enabled: false, reason: "out_of_cohort" };
28
+ if (pct >= 100)
29
+ return { enabled: true, reason: "in_cohort" };
30
+ if (input.exclude)
31
+ return { enabled: false, reason: "excluded" };
32
+ const unitId = input.unitId?.trim();
33
+ if (!unitId)
34
+ return { enabled: false, reason: "no_unit_id" };
35
+ const bucket = canaryBucket(input.feature, unitId);
36
+ return bucket < pct ? { enabled: true, reason: "in_cohort", bucket } : { enabled: false, reason: "out_of_cohort", bucket };
37
+ }
38
+ function parseCanaryOverride(raw) {
39
+ const v = raw?.trim().toLowerCase();
40
+ if (v === void 0 || v === "")
41
+ return void 0;
42
+ if (v === "1" || v === "true" || v === "on" || v === "yes")
43
+ return true;
44
+ if (v === "0" || v === "false" || v === "off" || v === "no")
45
+ return false;
46
+ return void 0;
47
+ }
48
+ var CANARY_FEATURE_PREFIX = "$feature/canary-";
49
+ function canaryFeatureKey(name) {
50
+ return `${CANARY_FEATURE_PREFIX}${name}`;
51
+ }
52
+ function canaryReasonKey(name) {
53
+ return `canary_reason_${name.replace(/[^A-Za-z0-9]+/g, "_")}`;
54
+ }
55
+ function canaryFeatureProperties(entries) {
56
+ const props = {};
57
+ for (const entry of entries) {
58
+ props[canaryFeatureKey(entry.name)] = entry.enabled ? "true" : "false";
59
+ if (entry.reason !== void 0)
60
+ props[canaryReasonKey(entry.name)] = entry.reason;
61
+ }
62
+ return props;
63
+ }
64
+
65
+ // ../core/dist/canaryRegistry.js
66
+ var CANARIES = [
67
+ // ── Calibration ──────────────────────────────────────────────────────────
68
+ // Two INERT canaries that gate nothing. They exist to validate the rollout
69
+ // mechanism against real traffic before anything real depends on it, and
70
+ // they answer questions the synthetic tests cannot:
71
+ //
72
+ // 1. Does a requested percentage land on target in the wild? The unit
73
+ // tests use generated UUIDs and weight every install equally; real
74
+ // render volume is heavily skewed toward a few heavy installs, so the
75
+ // render-weighted share could differ from the install-weighted one.
76
+ // 2. How fast does CUMULATIVE exposure drift above the target? Install
77
+ // ids churn (measured: 24.7x more distinct ids over 30 days than in
78
+ // any single day), so the set of installs enrolled AT SOME POINT grows
79
+ // even though the instantaneous share stays flat. That drift is the
80
+ // real limit on a canary's blast-radius guarantee.
81
+ // 3. Are two canaries actually independent on real ids, not just on
82
+ // generated ones? Overlap should be ~p1*p2, not ~min(p1,p2).
83
+ //
84
+ // Two different percentages so the answer is a line, not a point.
85
+ // Delete both once the calibration window is read.
86
+ {
87
+ name: "calibration-10",
88
+ percentage: 10,
89
+ description: "Inert. Validates rollout accuracy and cumulative-exposure drift at 10%.",
90
+ owner: "vance",
91
+ sunsetAfter: "2026-09-15"
92
+ },
93
+ {
94
+ name: "calibration-50",
95
+ percentage: 50,
96
+ description: "Inert. Second calibration point, and an independence check against calibration-10.",
97
+ owner: "vance",
98
+ sunsetAfter: "2026-09-15"
99
+ }
100
+ ];
101
+ function findCanary(name) {
102
+ return CANARIES.find((c) => c.name === name);
103
+ }
104
+ function canaryEnvVar(name) {
105
+ return `HF_CANARY_${name.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}`;
106
+ }
107
+ function overdueCanaries(now = /* @__PURE__ */ new Date()) {
108
+ return CANARIES.filter((c) => {
109
+ const sunsetEnd = Date.parse(`${c.sunsetAfter}T23:59:59.999Z`);
110
+ return Number.isFinite(sunsetEnd) && now.getTime() > sunsetEnd;
111
+ }).map((c) => c.name);
112
+ }
113
+
114
+ export {
115
+ canaryBucket,
116
+ evaluateCanary,
117
+ parseCanaryOverride,
118
+ canaryFeatureProperties,
119
+ CANARIES,
120
+ findCanary,
121
+ canaryEnvVar,
122
+ overdueCanaries
123
+ };
@@ -0,0 +1,283 @@
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
+ import {
8
+ STUDIO_MANUAL_EDITS_PATH
9
+ } from "./chunk-KC5XXX3X.js";
10
+ import {
11
+ realpath,
12
+ resolveWithinProject
13
+ } from "./chunk-OFQWTKPW.js";
14
+
15
+ // ../studio-server/dist/chunk-4ETS2LXI.js
16
+ var STUDIO_MOTION_PATH = ".hyperframes/studio-motion.json";
17
+ function hasStudioMotionEntries(manifestContent) {
18
+ try {
19
+ const parsed = JSON.parse(manifestContent);
20
+ return Array.isArray(parsed.motions) && parsed.motions.length > 0;
21
+ } catch {
22
+ return false;
23
+ }
24
+ }
25
+ function createStudioMotionRenderBodyScript(manifestContent, options = {}) {
26
+ if (!manifestContent.trim() || !hasStudioMotionEntries(manifestContent)) return null;
27
+ return `(${studioMotionRenderRuntime.toString()})(${JSON.stringify(manifestContent)}, ${JSON.stringify(options.activeCompositionPath ?? null)});`;
28
+ }
29
+ function studioMotionRenderRuntime(manifestContent, activeCompositionPath) {
30
+ const STUDIO_MOTION_TIMELINE_ID = "studio-motion";
31
+ const STUDIO_MOTION_ATTR = "data-hf-studio-motion";
32
+ const ORIGINAL_TRANSFORM_ATTR = "data-hf-studio-motion-original-transform";
33
+ const ORIGINAL_OPACITY_ATTR = "data-hf-studio-motion-original-opacity";
34
+ const ORIGINAL_VISIBILITY_ATTR = "data-hf-studio-motion-original-visibility";
35
+ const objectRecord = (value) => value && typeof value === "object" ? value : null;
36
+ const finiteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
37
+ const runtimeWindow = window;
38
+ const parseMotionValues = (value) => {
39
+ const record = objectRecord(value);
40
+ if (!record) return null;
41
+ const parsed = {};
42
+ for (const key of ["x", "y", "scale", "rotation", "opacity", "autoAlpha"]) {
43
+ const next = finiteNumber(record[key]);
44
+ if (next != null) parsed[key] = next;
45
+ }
46
+ return Object.keys(parsed).length > 0 ? parsed : null;
47
+ };
48
+ const parseCustomEase = (value) => {
49
+ const record = objectRecord(value);
50
+ if (!record) return null;
51
+ const id = typeof record.id === "string" ? record.id.trim() : "";
52
+ const data = typeof record.data === "string" ? record.data.trim() : "";
53
+ if (!id || !data) return null;
54
+ return { id, data };
55
+ };
56
+ const parsedManifest = (() => {
57
+ try {
58
+ return objectRecord(JSON.parse(manifestContent));
59
+ } catch {
60
+ return null;
61
+ }
62
+ })();
63
+ const manifestMotions = Array.isArray(parsedManifest?.motions) ? parsedManifest.motions : [];
64
+ const sourceFileForElement = (element) => {
65
+ let current = element;
66
+ while (current) {
67
+ const sourceFile = current.getAttribute("data-composition-file") ?? current.getAttribute("data-composition-src");
68
+ if (sourceFile) return sourceFile;
69
+ current = current.parentElement;
70
+ }
71
+ return activeCompositionPath ?? "index.html";
72
+ };
73
+ const elementMatchesSourceFile = (element, sourceFile) => sourceFileForElement(element) === sourceFile;
74
+ const isHTMLElement = (element) => element instanceof HTMLElement;
75
+ const querySelectorCandidates = (selector) => {
76
+ const className = selector.match(/^\.([A-Za-z0-9_-]+)$/)?.[1];
77
+ if (className) {
78
+ return Array.from(document.getElementsByTagName("*")).filter(
79
+ (element) => isHTMLElement(element) && element.classList.contains(className)
80
+ );
81
+ }
82
+ if (/^[A-Za-z][A-Za-z0-9-]*$/.test(selector)) {
83
+ return Array.from(document.getElementsByTagName(selector)).filter(isHTMLElement);
84
+ }
85
+ return Array.from(document.querySelectorAll(selector)).filter(isHTMLElement);
86
+ };
87
+ const resolveTarget = (targetRecord) => {
88
+ const sourceFile = typeof targetRecord.sourceFile === "string" ? targetRecord.sourceFile : "";
89
+ if (!sourceFile) return null;
90
+ const id = typeof targetRecord.id === "string" ? targetRecord.id : "";
91
+ if (id) {
92
+ const byId = document.getElementById(id);
93
+ if (isHTMLElement(byId) && elementMatchesSourceFile(byId, sourceFile)) return byId;
94
+ }
95
+ const selector = typeof targetRecord.selector === "string" ? targetRecord.selector : "";
96
+ if (!selector) return null;
97
+ try {
98
+ const selectorIndex = Math.max(0, Math.floor(finiteNumber(targetRecord.selectorIndex) ?? 0));
99
+ return querySelectorCandidates(selector).filter(
100
+ (element) => elementMatchesSourceFile(element, sourceFile)
101
+ )[selectorIndex] ?? null;
102
+ } catch {
103
+ return null;
104
+ }
105
+ };
106
+ const restoreElement = (element) => {
107
+ runtimeWindow.gsap?.set?.(element, { clearProps: "transform,opacity,visibility" });
108
+ element.style.transform = element.getAttribute(ORIGINAL_TRANSFORM_ATTR) ?? "";
109
+ element.style.opacity = element.getAttribute(ORIGINAL_OPACITY_ATTR) ?? "";
110
+ element.style.visibility = element.getAttribute(ORIGINAL_VISIBILITY_ATTR) ?? "";
111
+ element.removeAttribute(STUDIO_MOTION_ATTR);
112
+ element.removeAttribute(ORIGINAL_TRANSFORM_ATTR);
113
+ element.removeAttribute(ORIGINAL_OPACITY_ATTR);
114
+ element.removeAttribute(ORIGINAL_VISIBILITY_ATTR);
115
+ };
116
+ const restoreStudioMotionElements = () => {
117
+ for (const element of Array.from(document.querySelectorAll(`[${STUDIO_MOTION_ATTR}]`))) {
118
+ if (isHTMLElement(element)) restoreElement(element);
119
+ }
120
+ };
121
+ const readCurrentTime = () => {
122
+ try {
123
+ const playerTime = runtimeWindow.__player?.getTime?.();
124
+ if (typeof playerTime === "number" && Number.isFinite(playerTime)) {
125
+ return Math.max(0, playerTime);
126
+ }
127
+ } catch {
128
+ }
129
+ try {
130
+ const timelineTime = runtimeWindow.__timeline?.time?.();
131
+ if (typeof timelineTime === "number" && Number.isFinite(timelineTime)) {
132
+ return Math.max(0, timelineTime);
133
+ }
134
+ } catch {
135
+ }
136
+ return 0;
137
+ };
138
+ const resolveEase = (motion) => {
139
+ const fallback = typeof motion.ease === "string" && motion.ease.trim() ? motion.ease.trim() : "none";
140
+ const customEase = parseCustomEase(motion.customEase);
141
+ const customEasePlugin = runtimeWindow.CustomEase;
142
+ if (!customEase || typeof customEasePlugin?.create !== "function") return fallback;
143
+ try {
144
+ runtimeWindow.gsap?.registerPlugin?.(customEasePlugin);
145
+ customEasePlugin.create(customEase.id, customEase.data);
146
+ return customEase.id;
147
+ } catch {
148
+ return fallback;
149
+ }
150
+ };
151
+ const applyManifest = () => {
152
+ runtimeWindow.__timelines = runtimeWindow.__timelines ?? {};
153
+ runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID]?.kill?.();
154
+ delete runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID];
155
+ restoreStudioMotionElements();
156
+ const gsap = runtimeWindow.gsap;
157
+ if (!gsap?.timeline || manifestMotions.length === 0) return 0;
158
+ const timeline = gsap.timeline({ paused: true, defaults: { overwrite: "auto" } });
159
+ let applied = 0;
160
+ for (const motionValue of manifestMotions) {
161
+ const motion = objectRecord(motionValue);
162
+ if (!motion || motion.kind !== "gsap-motion") continue;
163
+ const targetRecord = objectRecord(motion.target);
164
+ if (!targetRecord) continue;
165
+ const target = resolveTarget(targetRecord);
166
+ if (!target || typeof timeline.fromTo !== "function") continue;
167
+ const start = finiteNumber(motion.start);
168
+ const duration = finiteNumber(motion.duration);
169
+ if (start == null || duration == null || start < 0 || duration <= 0) continue;
170
+ const from = parseMotionValues(motion.from);
171
+ const to = parseMotionValues(motion.to);
172
+ if (!from || !to) continue;
173
+ if (!target.hasAttribute(STUDIO_MOTION_ATTR)) {
174
+ target.setAttribute(ORIGINAL_TRANSFORM_ATTR, target.style.transform);
175
+ target.setAttribute(ORIGINAL_OPACITY_ATTR, target.style.opacity);
176
+ target.setAttribute(ORIGINAL_VISIBILITY_ATTR, target.style.visibility);
177
+ }
178
+ target.setAttribute(STUDIO_MOTION_ATTR, "true");
179
+ timeline.fromTo(
180
+ target,
181
+ from,
182
+ { ...to, duration, ease: resolveEase(motion), overwrite: "auto", immediateRender: false },
183
+ start
184
+ );
185
+ applied += 1;
186
+ }
187
+ if (applied === 0) {
188
+ timeline.kill?.();
189
+ return 0;
190
+ }
191
+ runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID] = timeline;
192
+ timeline.pause?.();
193
+ const currentTime = readCurrentTime();
194
+ if (typeof timeline.totalTime === "function") timeline.totalTime(currentTime, false);
195
+ else timeline.time?.(currentTime);
196
+ return applied;
197
+ };
198
+ runtimeWindow.__hfStudioMotionApply = applyManifest;
199
+ applyManifest();
200
+ }
201
+
202
+ // ../studio-server/dist/chunk-DTKK7TKL.js
203
+ import { basename, dirname, isAbsolute, join, relative, sep } from "path";
204
+ import { readdirSync } from "fs";
205
+ function resolveWithinProject2(base, relativePath) {
206
+ const resolved = resolveWithinProject(base, relativePath);
207
+ return resolved && !isPrivateProjectFile(base, resolved) ? resolved : null;
208
+ }
209
+ function realFilePath(filePath) {
210
+ try {
211
+ return realpath(filePath);
212
+ } catch {
213
+ const dir = dirname(filePath);
214
+ return dir === filePath ? filePath : join(realFilePath(dir), basename(filePath));
215
+ }
216
+ }
217
+ var STUDIO_FILES = /* @__PURE__ */ new Set([STUDIO_MOTION_PATH, STUDIO_MANUAL_EDITS_PATH]);
218
+ var STUDIO_FOLDERS = [".hyperframes/prepared-assets", ".hyperframes/requests"];
219
+ function isPrivateProjectPath(relPath) {
220
+ const path = relPath.toLowerCase();
221
+ return (path === ".hyperframes" || path.startsWith(".hyperframes/")) && !STUDIO_FILES.has(path) && !STUDIO_FOLDERS.some((folder) => path === folder || path.startsWith(`${folder}/`));
222
+ }
223
+ function isPrivateProjectFile(projectDir, filePath) {
224
+ const rel = (from, to) => relative(from, to).split(sep).join("/");
225
+ return [rel(projectDir, filePath), rel(realFilePath(projectDir), realFilePath(filePath))].some(
226
+ isPrivateProjectPath
227
+ );
228
+ }
229
+ function pinWithinProject(base, relativePath) {
230
+ const checked = resolveWithinProject2(base, relativePath);
231
+ if (!checked) return null;
232
+ const inside = relative(realFilePath(base), realFilePath(checked));
233
+ const escapes = inside === ".." || inside.startsWith(`..${sep}`) || isAbsolute(inside);
234
+ return escapes ? null : join(base, inside);
235
+ }
236
+ var IGNORE_DIRS = /* @__PURE__ */ new Set([
237
+ ".thumbnails",
238
+ ".transcode-cache",
239
+ ".waveform-cache",
240
+ "node_modules",
241
+ ".git"
242
+ ]);
243
+ function shouldIgnoreDir(rel) {
244
+ return rel === ".hyperframes/backup";
245
+ }
246
+ function isInHiddenOrVendorDir(relPath) {
247
+ const segments = relPath.split("/");
248
+ return segments.slice(0, -1).some((seg) => seg.startsWith(".") || seg === "node_modules");
249
+ }
250
+ var UNREADABLE_DIR_CODES = /* @__PURE__ */ new Set(["EACCES", "EPERM", "ENOENT", "ENOTDIR"]);
251
+ function walkDir(dir, prefix = "") {
252
+ let entries;
253
+ try {
254
+ entries = readdirSync(dir, { withFileTypes: true });
255
+ } catch (err) {
256
+ const code = err.code;
257
+ if (!prefix || !code || !UNREADABLE_DIR_CODES.has(code)) throw err;
258
+ return [];
259
+ }
260
+ const files = [];
261
+ for (const entry of entries) {
262
+ const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
263
+ if (IGNORE_DIRS.has(entry.name) || shouldIgnoreDir(rel)) continue;
264
+ if (entry.isDirectory()) {
265
+ files.push(...walkDir(join(dir, entry.name), rel));
266
+ } else {
267
+ files.push(rel);
268
+ }
269
+ }
270
+ return files;
271
+ }
272
+
273
+ export {
274
+ STUDIO_MOTION_PATH,
275
+ createStudioMotionRenderBodyScript,
276
+ resolveWithinProject2 as resolveWithinProject,
277
+ realFilePath,
278
+ isPrivateProjectPath,
279
+ isPrivateProjectFile,
280
+ pinWithinProject,
281
+ isInHiddenOrVendorDir,
282
+ walkDir
283
+ };
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-AMKC3AXA.js";
10
10
  import {
11
11
  getSystemTotalMb
12
- } from "./chunk-QXOFUKBF.js";
12
+ } from "./chunk-USDEMXXL.js";
13
13
 
14
14
  // src/telemetry/system.ts
15
15
  import { cpus, freemem, platform as platform2, release as release2 } from "os";
@@ -8,7 +8,7 @@ import {
8
8
  forceRefreshCredentials,
9
9
  resolveCloudAuthHeaders,
10
10
  resolveCloudBaseUrl
11
- } from "./chunk-SHB5VDMH.js";
11
+ } from "./chunk-BRITLL56.js";
12
12
  import {
13
13
  errorBox
14
14
  } from "./chunk-IHFUKJOR.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-TCWL4BKK.js";
9
+ } from "./chunk-DDQ4LOML.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -10,19 +10,19 @@ import {
10
10
  import {
11
11
  ensureDOMParser
12
12
  } from "./chunk-PFCFR3KZ.js";
13
- import {
14
- c
15
- } from "./chunk-ZTZA4UWZ.js";
16
13
  import {
17
14
  failCommand
18
15
  } from "./chunk-PBN6GBJE.js";
19
16
  import {
20
17
  formatVariableValidationIssue,
21
18
  validateVariables
22
- } from "./chunk-EJ7OWYF2.js";
19
+ } from "./chunk-QP3BRKGF.js";
23
20
  import {
24
21
  extractCompositionMetadata
25
22
  } from "./chunk-OZUQF4NB.js";
23
+ import {
24
+ c
25
+ } from "./chunk-ZTZA4UWZ.js";
26
26
 
27
27
  // src/utils/variables.ts
28
28
  import { readFileSync } from "fs";