@ignix-social/editor 0.1.0

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 (586) hide show
  1. package/LICENSE +190 -0
  2. package/NOTICE +54 -0
  3. package/README.md +23 -0
  4. package/bin/ignix-editor.mjs +8 -0
  5. package/package.json +53 -0
  6. package/patches/index.mjs +53 -0
  7. package/scripts/build-ffmpeg-macos.sh +35 -0
  8. package/scripts/build-whisper-macos.sh +21 -0
  9. package/scripts/vendor.mjs +41 -0
  10. package/skills/ignix-editor/SKILL.md +132 -0
  11. package/src/audio.mjs +31 -0
  12. package/src/binaries.json +46 -0
  13. package/src/binaries.mjs +83 -0
  14. package/src/cli.mjs +254 -0
  15. package/src/prepare.mjs +74 -0
  16. package/src/runtime/ignix-frame.js +92 -0
  17. package/src/transcribe.mjs +71 -0
  18. package/src/validate.mjs +71 -0
  19. package/templates/blank/index.html +41 -0
  20. package/vendor/hyperframes/README.md +181 -0
  21. package/vendor/hyperframes/UPSTREAM.json +12 -0
  22. package/vendor/hyperframes/bin/hyperframes-localize-fonts.mjs +12 -0
  23. package/vendor/hyperframes/bin/hyperframes.mjs +11 -0
  24. package/vendor/hyperframes/dist/add-LR3ZR2A5.js +79 -0
  25. package/vendor/hyperframes/dist/agentPromptGenerator-VIIPZCJ3.js +143 -0
  26. package/vendor/hyperframes/dist/animatedGifPrep-P2T6YM7Z.js +34 -0
  27. package/vendor/hyperframes/dist/asset-BE2DOV72.js +26 -0
  28. package/vendor/hyperframes/dist/assetCataloger-VBLPHX24.js +340 -0
  29. package/vendor/hyperframes/dist/auth-RCQB2ZT7.js +60 -0
  30. package/vendor/hyperframes/dist/autoUpdate-RJAX3DAZ.js +268 -0
  31. package/vendor/hyperframes/dist/backgroundChecks-H2LCUIMJ.js +61 -0
  32. package/vendor/hyperframes/dist/backgroundChecksWorker.js +26 -0
  33. package/vendor/hyperframes/dist/batchRender-FT7AP7XH.js +355 -0
  34. package/vendor/hyperframes/dist/beat-analyzer.global.js +338 -0
  35. package/vendor/hyperframes/dist/beats-Y2EOP72P.js +309 -0
  36. package/vendor/hyperframes/dist/benchmark-MZ7GY3JW.js +231 -0
  37. package/vendor/hyperframes/dist/browser-HUTAMRQE.js +237 -0
  38. package/vendor/hyperframes/dist/bundleWithLocalizedFonts-5QOPOB5D.js +52 -0
  39. package/vendor/hyperframes/dist/capture-RLZA6EMR.js +4079 -0
  40. package/vendor/hyperframes/dist/capture-SZZ4IYJK.js +290 -0
  41. package/vendor/hyperframes/dist/captureFile-LYOJOUIE.js +15 -0
  42. package/vendor/hyperframes/dist/captureTimeout-PA4FYWT5.js +27 -0
  43. package/vendor/hyperframes/dist/catalog-KYU55EWR.js +1001 -0
  44. package/vendor/hyperframes/dist/check-TCG4PXLR.js +1697 -0
  45. package/vendor/hyperframes/dist/checkBrowser-RPMO4OW5.js +1032 -0
  46. package/vendor/hyperframes/dist/chunk-2EAXUCCE.js +88 -0
  47. package/vendor/hyperframes/dist/chunk-2EGFTPWD.js +1077 -0
  48. package/vendor/hyperframes/dist/chunk-2PSPARWP.js +6058 -0
  49. package/vendor/hyperframes/dist/chunk-2YN64IN5.js +5747 -0
  50. package/vendor/hyperframes/dist/chunk-3GXQPCJC.js +682 -0
  51. package/vendor/hyperframes/dist/chunk-3ZP5DXE7.js +15 -0
  52. package/vendor/hyperframes/dist/chunk-4NWOGZZS.js +1990 -0
  53. package/vendor/hyperframes/dist/chunk-4PFZPP2N.js +587 -0
  54. package/vendor/hyperframes/dist/chunk-4THIAPBL.js +128 -0
  55. package/vendor/hyperframes/dist/chunk-4YYJOFKS.js +28 -0
  56. package/vendor/hyperframes/dist/chunk-54HJ63Q2.js +29 -0
  57. package/vendor/hyperframes/dist/chunk-5ETJX6WM.js +89 -0
  58. package/vendor/hyperframes/dist/chunk-5IAKAQA7.js +389 -0
  59. package/vendor/hyperframes/dist/chunk-5Z63TBTX.js +37 -0
  60. package/vendor/hyperframes/dist/chunk-6BEFEWFB.js +25 -0
  61. package/vendor/hyperframes/dist/chunk-6CSYCFQV.js +68 -0
  62. package/vendor/hyperframes/dist/chunk-6CTIGJY7.js +154 -0
  63. package/vendor/hyperframes/dist/chunk-7HG4BFIN.js +93 -0
  64. package/vendor/hyperframes/dist/chunk-7JZ4FXP2.js +118 -0
  65. package/vendor/hyperframes/dist/chunk-A2Z4Z4VL.js +2961 -0
  66. package/vendor/hyperframes/dist/chunk-AMKC3AXA.js +25 -0
  67. package/vendor/hyperframes/dist/chunk-AVUUN2XD.js +4847 -0
  68. package/vendor/hyperframes/dist/chunk-AWDFDFI3.js +46 -0
  69. package/vendor/hyperframes/dist/chunk-AWNBM3MZ.js +94 -0
  70. package/vendor/hyperframes/dist/chunk-BXCMXMJQ.js +73 -0
  71. package/vendor/hyperframes/dist/chunk-BZ56MTDX.js +6 -0
  72. package/vendor/hyperframes/dist/chunk-CFKU7HTK.js +171 -0
  73. package/vendor/hyperframes/dist/chunk-CWPVM2QV.js +308 -0
  74. package/vendor/hyperframes/dist/chunk-DPVXBVLL.js +31292 -0
  75. package/vendor/hyperframes/dist/chunk-DQBY7FRR.js +397 -0
  76. package/vendor/hyperframes/dist/chunk-E6RPWJVC.js +213 -0
  77. package/vendor/hyperframes/dist/chunk-EISRN4E6.js +294 -0
  78. package/vendor/hyperframes/dist/chunk-EOVYQ3IG.js +143 -0
  79. package/vendor/hyperframes/dist/chunk-F3WZGU7C.js +479 -0
  80. package/vendor/hyperframes/dist/chunk-FCSIGXXP.js +366 -0
  81. package/vendor/hyperframes/dist/chunk-FI4I7CME.js +56 -0
  82. package/vendor/hyperframes/dist/chunk-FLWXXDNS.js +15 -0
  83. package/vendor/hyperframes/dist/chunk-GK4AIFIH.js +11171 -0
  84. package/vendor/hyperframes/dist/chunk-GMECXFAN.js +57 -0
  85. package/vendor/hyperframes/dist/chunk-GULOKZLI.js +155 -0
  86. package/vendor/hyperframes/dist/chunk-H4YZZ2VQ.js +68 -0
  87. package/vendor/hyperframes/dist/chunk-H6QMKUYA.js +477 -0
  88. package/vendor/hyperframes/dist/chunk-HBBJFK6I.js +273 -0
  89. package/vendor/hyperframes/dist/chunk-HRUGC23L.js +212 -0
  90. package/vendor/hyperframes/dist/chunk-HVW7ABXD.js +19 -0
  91. package/vendor/hyperframes/dist/chunk-HW6OYASV.js +344 -0
  92. package/vendor/hyperframes/dist/chunk-HWKCIWQT.js +3578 -0
  93. package/vendor/hyperframes/dist/chunk-I465DBM6.js +1214 -0
  94. package/vendor/hyperframes/dist/chunk-IGLEPPTN.js +24 -0
  95. package/vendor/hyperframes/dist/chunk-IGNAAHS3.js +433 -0
  96. package/vendor/hyperframes/dist/chunk-IHFUKJOR.js +85 -0
  97. package/vendor/hyperframes/dist/chunk-IQ3OUQ5Z.js +213 -0
  98. package/vendor/hyperframes/dist/chunk-ISN5GRYI.js +20 -0
  99. package/vendor/hyperframes/dist/chunk-IUZFXWSV.js +446 -0
  100. package/vendor/hyperframes/dist/chunk-JH556Q42.js +647 -0
  101. package/vendor/hyperframes/dist/chunk-JTHMTOMQ.js +601 -0
  102. package/vendor/hyperframes/dist/chunk-K2EQN4VU.js +405 -0
  103. package/vendor/hyperframes/dist/chunk-K2FTXJYH.js +16044 -0
  104. package/vendor/hyperframes/dist/chunk-K4WIOZFP.js +32 -0
  105. package/vendor/hyperframes/dist/chunk-K4WKGXRC.js +18 -0
  106. package/vendor/hyperframes/dist/chunk-KBJUXVOJ.js +172 -0
  107. package/vendor/hyperframes/dist/chunk-KC5XXX3X.js +590 -0
  108. package/vendor/hyperframes/dist/chunk-KNU5COPB.js +29 -0
  109. package/vendor/hyperframes/dist/chunk-KZI44OPA.js +185 -0
  110. package/vendor/hyperframes/dist/chunk-L3YOGIPG.js +48 -0
  111. package/vendor/hyperframes/dist/chunk-LAOCA3MQ.js +189 -0
  112. package/vendor/hyperframes/dist/chunk-LCSMOLGX.js +312 -0
  113. package/vendor/hyperframes/dist/chunk-LFGJWOVA.js +61 -0
  114. package/vendor/hyperframes/dist/chunk-LHSR3M4M.js +498 -0
  115. package/vendor/hyperframes/dist/chunk-LYNI3FOL.js +123 -0
  116. package/vendor/hyperframes/dist/chunk-M2WBOQ2Q.js +54 -0
  117. package/vendor/hyperframes/dist/chunk-MRF4AMKD.js +104 -0
  118. package/vendor/hyperframes/dist/chunk-MWB3ZIFM.js +852 -0
  119. package/vendor/hyperframes/dist/chunk-NGKM64BP.js +39 -0
  120. package/vendor/hyperframes/dist/chunk-NXMYHJAL.js +43 -0
  121. package/vendor/hyperframes/dist/chunk-OAF4XJOW.js +192 -0
  122. package/vendor/hyperframes/dist/chunk-OFQWTKPW.js +117 -0
  123. package/vendor/hyperframes/dist/chunk-P6LJ4Y32.js +4662 -0
  124. package/vendor/hyperframes/dist/chunk-PBN6GBJE.js +108 -0
  125. package/vendor/hyperframes/dist/chunk-PDAMK4Q5.js +28 -0
  126. package/vendor/hyperframes/dist/chunk-PFCFR3KZ.js +20 -0
  127. package/vendor/hyperframes/dist/chunk-PJ3HDUCY.js +108 -0
  128. package/vendor/hyperframes/dist/chunk-PMRBLBUP.js +152 -0
  129. package/vendor/hyperframes/dist/chunk-PPQUYWTW.js +240 -0
  130. package/vendor/hyperframes/dist/chunk-Q5X2B5WT.js +29 -0
  131. package/vendor/hyperframes/dist/chunk-Q7IU7MOR.js +351 -0
  132. package/vendor/hyperframes/dist/chunk-QC4FJVLM.js +371 -0
  133. package/vendor/hyperframes/dist/chunk-QNYYOUU3.js +1318 -0
  134. package/vendor/hyperframes/dist/chunk-RDNNAKEP.js +161 -0
  135. package/vendor/hyperframes/dist/chunk-RMHUQGRK.js +657 -0
  136. package/vendor/hyperframes/dist/chunk-RQVDTPGD.js +6 -0
  137. package/vendor/hyperframes/dist/chunk-RVCWIIZ7.js +68 -0
  138. package/vendor/hyperframes/dist/chunk-S3D6GE5W.js +72 -0
  139. package/vendor/hyperframes/dist/chunk-S3S4TGEH.js +424 -0
  140. package/vendor/hyperframes/dist/chunk-S7NPLFWV.js +11395 -0
  141. package/vendor/hyperframes/dist/chunk-SHB5VDMH.js +51 -0
  142. package/vendor/hyperframes/dist/chunk-TCLGPL65.js +860 -0
  143. package/vendor/hyperframes/dist/chunk-THXFSPLV.js +40 -0
  144. package/vendor/hyperframes/dist/chunk-TJSTGSAW.js +354 -0
  145. package/vendor/hyperframes/dist/chunk-TQFG7HTI.js +1024 -0
  146. package/vendor/hyperframes/dist/chunk-TVCRUG2S.js +265 -0
  147. package/vendor/hyperframes/dist/chunk-TWWSYAKJ.js +24 -0
  148. package/vendor/hyperframes/dist/chunk-U7CZBDMV.js +27 -0
  149. package/vendor/hyperframes/dist/chunk-UEZXMWG3.js +139 -0
  150. package/vendor/hyperframes/dist/chunk-UYEZTK4U.js +61 -0
  151. package/vendor/hyperframes/dist/chunk-VC76R6W2.js +27 -0
  152. package/vendor/hyperframes/dist/chunk-VFCKXTBB.js +159 -0
  153. package/vendor/hyperframes/dist/chunk-VWG7OQKU.js +22 -0
  154. package/vendor/hyperframes/dist/chunk-VXVRPIJA.js +105 -0
  155. package/vendor/hyperframes/dist/chunk-WBLXWOYK.js +15 -0
  156. package/vendor/hyperframes/dist/chunk-WERLJGIC.js +20 -0
  157. package/vendor/hyperframes/dist/chunk-WMQNIQDJ.js +2057 -0
  158. package/vendor/hyperframes/dist/chunk-WPHMNO44.js +4528 -0
  159. package/vendor/hyperframes/dist/chunk-X5HWXQPU.js +113 -0
  160. package/vendor/hyperframes/dist/chunk-X7MTZ4T2.js +6 -0
  161. package/vendor/hyperframes/dist/chunk-XH4DSOS5.js +59 -0
  162. package/vendor/hyperframes/dist/chunk-XS4EJSKU.js +23 -0
  163. package/vendor/hyperframes/dist/chunk-XT5P4QMO.js +181 -0
  164. package/vendor/hyperframes/dist/chunk-XT7X6QCP.js +6 -0
  165. package/vendor/hyperframes/dist/chunk-XUHOIDKG.js +6 -0
  166. package/vendor/hyperframes/dist/chunk-XUXGIA7H.js +485 -0
  167. package/vendor/hyperframes/dist/chunk-XZABUQTX.js +113 -0
  168. package/vendor/hyperframes/dist/chunk-Y6W4DVPS.js +356 -0
  169. package/vendor/hyperframes/dist/chunk-YEIFI443.js +44 -0
  170. package/vendor/hyperframes/dist/chunk-YQZNILVH.js +375 -0
  171. package/vendor/hyperframes/dist/chunk-Z27A7NUB.js +65 -0
  172. package/vendor/hyperframes/dist/chunk-Z6B37SNM.js +3081 -0
  173. package/vendor/hyperframes/dist/chunk-ZJUKFZ2P.js +10954 -0
  174. package/vendor/hyperframes/dist/chunk-ZKDMAOFU.js +32 -0
  175. package/vendor/hyperframes/dist/chunk-ZMXUQLI2.js +17219 -0
  176. package/vendor/hyperframes/dist/chunk-ZTZ7NCJT.js +58 -0
  177. package/vendor/hyperframes/dist/chunk-ZTZA4UWZ.js +108 -0
  178. package/vendor/hyperframes/dist/clean-W57E5YQ3.js +293 -0
  179. package/vendor/hyperframes/dist/cli.js +495 -0
  180. package/vendor/hyperframes/dist/cloud-FFTJGZ24.js +70 -0
  181. package/vendor/hyperframes/dist/cloudrun-AJUTHUEA.js +763 -0
  182. package/vendor/hyperframes/dist/colors-HKWSZCGK.js +15 -0
  183. package/vendor/hyperframes/dist/commands/contrast-audit.browser.js +459 -0
  184. package/vendor/hyperframes/dist/commands/layout-audit.browser.js +2102 -0
  185. package/vendor/hyperframes/dist/commands/motion-sample.browser.js +74 -0
  186. package/vendor/hyperframes/dist/commands/motion-signature.browser.js +374 -0
  187. package/vendor/hyperframes/dist/compare-AYCTT55F.js +421 -0
  188. package/vendor/hyperframes/dist/compiler-QO36EXLS.js +121 -0
  189. package/vendor/hyperframes/dist/component-VFFR2O7T.js +176 -0
  190. package/vendor/hyperframes/dist/compositions-QTVN3U2A.js +228 -0
  191. package/vendor/hyperframes/dist/contactSheet-27SRU7A4.js +22 -0
  192. package/vendor/hyperframes/dist/delete-ZAKYCB7I.js +114 -0
  193. package/vendor/hyperframes/dist/deploy-MX76RZ36.js +101 -0
  194. package/vendor/hyperframes/dist/destroy-H2TZBYHH.js +42 -0
  195. package/vendor/hyperframes/dist/deterministicFonts-HAEMV4TM.js +50 -0
  196. package/vendor/hyperframes/dist/dist-EWXJGN63.js +129 -0
  197. package/vendor/hyperframes/dist/dist-FNNGCKFS.js +29 -0
  198. package/vendor/hyperframes/dist/dist-S3PJNPXQ.js +392 -0
  199. package/vendor/hyperframes/dist/docker/Dockerfile.render +65 -0
  200. package/vendor/hyperframes/dist/docs/compositions.md +67 -0
  201. package/vendor/hyperframes/dist/docs/data-attributes.md +27 -0
  202. package/vendor/hyperframes/dist/docs/examples.md +19 -0
  203. package/vendor/hyperframes/dist/docs/gsap.md +26 -0
  204. package/vendor/hyperframes/dist/docs/rendering.md +35 -0
  205. package/vendor/hyperframes/dist/docs/troubleshooting.md +29 -0
  206. package/vendor/hyperframes/dist/docs-QAPJEGLS.js +131 -0
  207. package/vendor/hyperframes/dist/doctor-AI7C3FON.js +67 -0
  208. package/vendor/hyperframes/dist/dom-IROKGVJI.js +14 -0
  209. package/vendor/hyperframes/dist/dotEnv-AECLXQSO.js +14 -0
  210. package/vendor/hyperframes/dist/events-7LALYNKZ.js +92 -0
  211. package/vendor/hyperframes/dist/events-FQY3HGKZ.js +88 -0
  212. package/vendor/hyperframes/dist/feedback-WCMDMSTK.js +472 -0
  213. package/vendor/hyperframes/dist/ffmpeg-QIUFEFTY.js +35 -0
  214. package/vendor/hyperframes/dist/figma-64WY462P.js +63 -0
  215. package/vendor/hyperframes/dist/fontData.generated-NXAOI4GH.js +13 -0
  216. package/vendor/hyperframes/dist/fontLocalizeCli.js +132 -0
  217. package/vendor/hyperframes/dist/get-FPOMJMZB.js +103 -0
  218. package/vendor/hyperframes/dist/gpuPolicy-2ZUZE5D6.js +38 -0
  219. package/vendor/hyperframes/dist/grade-compare-E2CKPST4.js +647 -0
  220. package/vendor/hyperframes/dist/gsapParser-DIYYX6JT.js +2846 -0
  221. package/vendor/hyperframes/dist/gsapParserAcorn-E3GEIRZB.js +28 -0
  222. package/vendor/hyperframes/dist/help-YRQIDDML.js +197 -0
  223. package/vendor/hyperframes/dist/history-PP5NDRV3.js +571 -0
  224. package/vendor/hyperframes/dist/hyperframe-runtime.js +1081 -0
  225. package/vendor/hyperframes/dist/hyperframe.manifest.json +22 -0
  226. package/vendor/hyperframes/dist/hyperframe.runtime.iife.js +1081 -0
  227. package/vendor/hyperframes/dist/hyperframes-player.global.js +474 -0
  228. package/vendor/hyperframes/dist/hyperframes-slideshow.global.js +149 -0
  229. package/vendor/hyperframes/dist/info-SEX3B7JL.js +153 -0
  230. package/vendor/hyperframes/dist/init-U3AKHO5B.js +1147 -0
  231. package/vendor/hyperframes/dist/inspect-Q3K6EDEK.js +97 -0
  232. package/vendor/hyperframes/dist/installer-K6O5WF44.js +37 -0
  233. package/vendor/hyperframes/dist/keyframes-DC64JCI3.js +2602 -0
  234. package/vendor/hyperframes/dist/lambda-D7UMN4DJ.js +451 -0
  235. package/vendor/hyperframes/dist/layout-XSPPDHOO.js +86 -0
  236. package/vendor/hyperframes/dist/lib-TPG2ZMAX.js +128 -0
  237. package/vendor/hyperframes/dist/lint-7DQZE7L3.js +164 -0
  238. package/vendor/hyperframes/dist/lintProject-OHBBM3DJ.js +27 -0
  239. package/vendor/hyperframes/dist/list-4K5MVDQX.js +162 -0
  240. package/vendor/hyperframes/dist/login-NTX4OWXL.js +377 -0
  241. package/vendor/hyperframes/dist/logout-Q654A3SI.js +100 -0
  242. package/vendor/hyperframes/dist/manager-67P2XFXQ.js +34 -0
  243. package/vendor/hyperframes/dist/manager-CT3D67CG.js +38 -0
  244. package/vendor/hyperframes/dist/manager-GFN75DM4.js +30 -0
  245. package/vendor/hyperframes/dist/media-treatment-5FYAOPNL.js +972 -0
  246. package/vendor/hyperframes/dist/media-use-4XXGABIL.js +113 -0
  247. package/vendor/hyperframes/dist/models-C4E4IWJD.js +137 -0
  248. package/vendor/hyperframes/dist/motionShot-S4MIGMT5.js +614 -0
  249. package/vendor/hyperframes/dist/normalize-O76AC4HE.js +333 -0
  250. package/vendor/hyperframes/dist/normalize-audio-CSFTXLXD.js +276 -0
  251. package/vendor/hyperframes/dist/open-2ZD6BHZG.js +115 -0
  252. package/vendor/hyperframes/dist/pipeline-TNGWUZQC.js +54 -0
  253. package/vendor/hyperframes/dist/play-CTMUXX6E.js +349 -0
  254. package/vendor/hyperframes/dist/policies-FSDZVS2E.js +292 -0
  255. package/vendor/hyperframes/dist/preflight-SMNV6RW2.js +45 -0
  256. package/vendor/hyperframes/dist/present-WQVHV5CR.js +350 -0
  257. package/vendor/hyperframes/dist/preview-JOJXTH75.js +1820 -0
  258. package/vendor/hyperframes/dist/producer-ECLEN5RP.js +13 -0
  259. package/vendor/hyperframes/dist/progress-FBIEEB7Y.js +73 -0
  260. package/vendor/hyperframes/dist/projectConfig-HYJMJ5BY.js +56 -0
  261. package/vendor/hyperframes/dist/publication-HQ5Y3KBM.js +29 -0
  262. package/vendor/hyperframes/dist/publish-VHDYQASC.js +430 -0
  263. package/vendor/hyperframes/dist/refresh-K24ETHMA.js +53 -0
  264. package/vendor/hyperframes/dist/remove-background-W2YX2NVH.js +253 -0
  265. package/vendor/hyperframes/dist/render-AO5VX3YI.js +177 -0
  266. package/vendor/hyperframes/dist/render-LNO62LEL.js +2367 -0
  267. package/vendor/hyperframes/dist/render-TTQI7TGN.js +796 -0
  268. package/vendor/hyperframes/dist/render-batch-YH7CTWNY.js +284 -0
  269. package/vendor/hyperframes/dist/renderCancellation-JPIHE47X.js +35 -0
  270. package/vendor/hyperframes/dist/renderSetupWorker.js +79 -0
  271. package/vendor/hyperframes/dist/resolver-IZ647GBZ.js +38 -0
  272. package/vendor/hyperframes/dist/runtimeVersion.js +18 -0
  273. package/vendor/hyperframes/dist/screenshotCapture-ECBTLCU6.js +179 -0
  274. package/vendor/hyperframes/dist/shaderTransitionWorker.js +44 -0
  275. package/vendor/hyperframes/dist/sherpa-KKLNW6U2.js +314 -0
  276. package/vendor/hyperframes/dist/sherpaWorker.js +77 -0
  277. package/vendor/hyperframes/dist/sites-TNVKZS73.js +52 -0
  278. package/vendor/hyperframes/dist/skill-ZHVLH7KX.js +15 -0
  279. package/vendor/hyperframes/dist/skills/hyperframes/SKILL.md +152 -0
  280. package/vendor/hyperframes/dist/skills/hyperframes/references/brief-contract.md +108 -0
  281. package/vendor/hyperframes/dist/skills/hyperframes/references/brief-format.md +72 -0
  282. package/vendor/hyperframes/dist/skills/hyperframes/references/capability-menu.md +47 -0
  283. package/vendor/hyperframes/dist/skills/hyperframes/references/frame-worker-core.md +80 -0
  284. package/vendor/hyperframes/dist/skills/hyperframes/references/intent-interview.md +73 -0
  285. package/vendor/hyperframes/dist/skills/hyperframes/references/pitch-round.md +40 -0
  286. package/vendor/hyperframes/dist/skills/hyperframes/references/plugin-installation.md +43 -0
  287. package/vendor/hyperframes/dist/skills/hyperframes/references/production-loop.md +26 -0
  288. package/vendor/hyperframes/dist/skills/hyperframes/references/review-loop.md +37 -0
  289. package/vendor/hyperframes/dist/skills/hyperframes/references/route-briefs.md +11 -0
  290. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/embedded-captions.md +11 -0
  291. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
  292. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/general-video.md +12 -0
  293. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/motion-graphics.md +11 -0
  294. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/music-to-video.md +12 -0
  295. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/pr-to-video.md +28 -0
  296. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/product-launch-video.md +13 -0
  297. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
  298. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/slideshow.md +11 -0
  299. package/vendor/hyperframes/dist/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
  300. package/vendor/hyperframes/dist/skills/hyperframes/references/script-format.md +52 -0
  301. package/vendor/hyperframes/dist/skills/hyperframes/references/skill-lifecycle.md +35 -0
  302. package/vendor/hyperframes/dist/skills/hyperframes/references/storyboard-format.md +99 -0
  303. package/vendor/hyperframes/dist/skills/hyperframes/references/subagent-dispatch.md +35 -0
  304. package/vendor/hyperframes/dist/skills/hyperframes/references/workflow-catalog.md +10 -0
  305. package/vendor/hyperframes/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +194 -0
  306. package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.mjs +88 -0
  307. package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +117 -0
  308. package/vendor/hyperframes/dist/skills/hyperframes-cli/SKILL.md +189 -0
  309. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/beats.md +19 -0
  310. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloud.md +163 -0
  311. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloudrun.md +62 -0
  312. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/compare-and-batch.md +105 -0
  313. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/doctor-browser.md +57 -0
  314. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/init-and-scaffold.md +74 -0
  315. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lambda.md +185 -0
  316. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +132 -0
  317. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/preview-render.md +193 -0
  318. package/vendor/hyperframes/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +134 -0
  319. package/vendor/hyperframes/dist/skills/media-use/SKILL.md +100 -0
  320. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/CREDITS.md +35 -0
  321. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/chime.mp3 +0 -0
  322. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click-soft.mp3 +0 -0
  323. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click.mp3 +0 -0
  324. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/error.mp3 +0 -0
  325. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-1.mp3 +0 -0
  326. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-2.mp3 +0 -0
  327. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-3.mp3 +0 -0
  328. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-1.mp3 +0 -0
  329. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-2.mp3 +0 -0
  330. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/key-press.mp3 +0 -0
  331. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/manifest.json +97 -0
  332. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/notification.mp3 +0 -0
  333. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/ping.mp3 +0 -0
  334. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/pop.mp3 +0 -0
  335. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/riser.mp3 +0 -0
  336. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/sparkle.mp3 +0 -0
  337. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/typing.mp3 +0 -0
  338. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-cinematic.mp3 +0 -0
  339. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-short.mp3 +0 -0
  340. package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh.mp3 +0 -0
  341. package/vendor/hyperframes/dist/skills/media-use/audio/references/bgm.md +76 -0
  342. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/authoring.md +163 -0
  343. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/motion.md +87 -0
  344. package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/transcript-handling.md +97 -0
  345. package/vendor/hyperframes/dist/skills/media-use/audio/references/remove-background.md +143 -0
  346. package/vendor/hyperframes/dist/skills/media-use/audio/references/requirements.md +29 -0
  347. package/vendor/hyperframes/dist/skills/media-use/audio/references/sfx.md +42 -0
  348. package/vendor/hyperframes/dist/skills/media-use/audio/references/transcribe.md +52 -0
  349. package/vendor/hyperframes/dist/skills/media-use/audio/references/tts-to-captions.md +35 -0
  350. package/vendor/hyperframes/dist/skills/media-use/audio/references/tts.md +260 -0
  351. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.mjs +311 -0
  352. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.test.mjs +159 -0
  353. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/gemini-pipeline.test.mjs +131 -0
  354. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.mjs +122 -0
  355. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
  356. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
  357. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
  358. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.mjs +39 -0
  359. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.test.mjs +136 -0
  360. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm-volume.mjs +4 -0
  361. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.mjs +257 -0
  362. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.test.mjs +74 -0
  363. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.mjs +14 -0
  364. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.test.mjs +41 -0
  365. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.mjs +43 -0
  366. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.py +52 -0
  367. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.test.mjs +86 -0
  368. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth_test.py +90 -0
  369. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.mjs +122 -0
  370. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.test.mjs +243 -0
  371. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.mjs +197 -0
  372. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +185 -0
  373. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.mjs +114 -0
  374. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.test.mjs +205 -0
  375. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.mjs +77 -0
  376. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.test.mjs +136 -0
  377. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.mjs +165 -0
  378. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.test.mjs +121 -0
  379. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.mjs +389 -0
  380. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.spawn.test.mjs +158 -0
  381. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.test.mjs +230 -0
  382. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lyria-recipe.py +136 -0
  383. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.mjs +175 -0
  384. package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.test.mjs +108 -0
  385. package/vendor/hyperframes/dist/skills/media-use/luts/README.md +28 -0
  386. package/vendor/hyperframes/dist/skills/media-use/luts/index.json +57 -0
  387. package/vendor/hyperframes/dist/skills/media-use/references/audio.md +20 -0
  388. package/vendor/hyperframes/dist/skills/media-use/references/grading.md +160 -0
  389. package/vendor/hyperframes/dist/skills/media-use/references/media-treatment-recipes.md +929 -0
  390. package/vendor/hyperframes/dist/skills/media-use/references/media-treatments.md +202 -0
  391. package/vendor/hyperframes/dist/skills/media-use/references/memory.md +37 -0
  392. package/vendor/hyperframes/dist/skills/media-use/references/meta.md +61 -0
  393. package/vendor/hyperframes/dist/skills/media-use/references/operations.md +327 -0
  394. package/vendor/hyperframes/dist/skills/media-use/references/resolve.md +150 -0
  395. package/vendor/hyperframes/dist/skills/media-use/references/setup-providers.md +80 -0
  396. package/vendor/hyperframes/dist/skills/media-use/references/telemetry-dashboard.md +49 -0
  397. package/vendor/hyperframes/dist/skills/media-use/scripts/audio-duck.mjs +113 -0
  398. package/vendor/hyperframes/dist/skills/media-use/scripts/compatibility.test.mjs +96 -0
  399. package/vendor/hyperframes/dist/skills/media-use/scripts/dither.mjs +328 -0
  400. package/vendor/hyperframes/dist/skills/media-use/scripts/dither.test.mjs +176 -0
  401. package/vendor/hyperframes/dist/skills/media-use/scripts/eval.mjs +369 -0
  402. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.mjs +128 -0
  403. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.test.mjs +95 -0
  404. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bgm-provider.mjs +20 -0
  405. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/brand-provider.mjs +59 -0
  406. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.mjs +119 -0
  407. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.test.mjs +139 -0
  408. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cache.mjs +148 -0
  409. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.mjs +91 -0
  410. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.test.mjs +155 -0
  411. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.mjs +161 -0
  412. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.test.mjs +34 -0
  413. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.d.mts +3 -0
  414. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.mjs +45 -0
  415. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.test.mjs +79 -0
  416. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/coverage.test.mjs +136 -0
  417. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.mjs +181 -0
  418. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.test.mjs +80 -0
  419. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.mjs +198 -0
  420. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.test.mjs +125 -0
  421. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.mjs +184 -0
  422. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.test.mjs +162 -0
  423. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.mjs +95 -0
  424. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.test.mjs +153 -0
  425. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.mjs +230 -0
  426. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.test.mjs +102 -0
  427. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ff-binaries.mjs +37 -0
  428. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.mjs +72 -0
  429. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.test.mjs +138 -0
  430. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.mjs +265 -0
  431. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.test.mjs +285 -0
  432. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.mjs +191 -0
  433. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +301 -0
  434. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.mjs +45 -0
  435. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.test.mjs +49 -0
  436. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.mjs +138 -0
  437. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.test.mjs +435 -0
  438. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/image-provider.mjs +44 -0
  439. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/index-gen.mjs +63 -0
  440. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-media-search.mjs +32 -0
  441. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.mjs +318 -0
  442. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.test.mjs +220 -0
  443. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.mjs +78 -0
  444. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.test.mjs +121 -0
  445. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.mjs +244 -0
  446. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.test.mjs +298 -0
  447. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.mjs +94 -0
  448. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.test.mjs +316 -0
  449. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.mjs +271 -0
  450. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.test.mjs +199 -0
  451. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.d.mts +19 -0
  452. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.mjs +279 -0
  453. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.test.mjs +397 -0
  454. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/match.mjs +47 -0
  455. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.mjs +85 -0
  456. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.test.mjs +197 -0
  457. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.mjs +20 -0
  458. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.test.mjs +61 -0
  459. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.d.mts +9 -0
  460. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.mjs +107 -0
  461. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.mjs +128 -0
  462. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.test.mjs +174 -0
  463. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.mjs +49 -0
  464. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.test.mjs +89 -0
  465. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.mjs +31 -0
  466. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.test.mjs +50 -0
  467. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.mjs +27 -0
  468. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.test.mjs +44 -0
  469. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.mjs +180 -0
  470. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.test.mjs +189 -0
  471. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.mjs +41 -0
  472. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.test.mjs +148 -0
  473. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/providers.mjs +5 -0
  474. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.mjs +367 -0
  475. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.test.mjs +367 -0
  476. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.mjs +212 -0
  477. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.test.mjs +262 -0
  478. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.mjs +24 -0
  479. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.test.mjs +32 -0
  480. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/sfx-provider.mjs +23 -0
  481. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.mjs +132 -0
  482. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.test.mjs +157 -0
  483. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.mjs +117 -0
  484. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.test.mjs +165 -0
  485. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/svg-sanitize.mjs +21 -0
  486. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.mjs +210 -0
  487. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.test.mjs +437 -0
  488. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/test-home.test.mjs +10 -0
  489. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.mjs +21 -0
  490. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.test.mjs +33 -0
  491. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.mjs +94 -0
  492. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.test.mjs +72 -0
  493. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.mjs +57 -0
  494. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.test.mjs +54 -0
  495. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.mjs +57 -0
  496. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.test.mjs +46 -0
  497. package/vendor/hyperframes/dist/skills/media-use/scripts/lib/words.mjs +18 -0
  498. package/vendor/hyperframes/dist/skills/media-use/scripts/prefs.mjs +70 -0
  499. package/vendor/hyperframes/dist/skills/media-use/scripts/recipe.mjs +103 -0
  500. package/vendor/hyperframes/dist/skills/media-use/scripts/resolve-plugin.test.mjs +62 -0
  501. package/vendor/hyperframes/dist/skills/media-use/scripts/resolve.mjs +1369 -0
  502. package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.mjs +194 -0
  503. package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.test.mjs +112 -0
  504. package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.mjs +270 -0
  505. package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.test.mjs +117 -0
  506. package/vendor/hyperframes/dist/skills-MJ2J4GEM.js +808 -0
  507. package/vendor/hyperframes/dist/skillsUpdateCheck-TKTYQN5R.js +26 -0
  508. package/vendor/hyperframes/dist/slideshow-EJ4IMY6P.js +24 -0
  509. package/vendor/hyperframes/dist/snapshot-KIVDUUMN.js +875 -0
  510. package/vendor/hyperframes/dist/src-6YQBJGWR.js +202 -0
  511. package/vendor/hyperframes/dist/src-PVYUYV3M.js +471 -0
  512. package/vendor/hyperframes/dist/state-KAXGHF77.js +26 -0
  513. package/vendor/hyperframes/dist/staticProjectServer-7EU666GS.js +49 -0
  514. package/vendor/hyperframes/dist/status-YM52BQ6S.js +311 -0
  515. package/vendor/hyperframes/dist/studio/assets/hyperframes-player-Cp8e_Zst.js +473 -0
  516. package/vendor/hyperframes/dist/studio/assets/index-BX3KHhGX.js +71 -0
  517. package/vendor/hyperframes/dist/studio/assets/index-CASEBNy2.js +1 -0
  518. package/vendor/hyperframes/dist/studio/assets/index-D11atkBt.css +1 -0
  519. package/vendor/hyperframes/dist/studio/assets/index-DMTt9nTf.js +531 -0
  520. package/vendor/hyperframes/dist/studio/assets/index-oE1pOdAy.js +399 -0
  521. package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js +948 -0
  522. package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js.map +1 -0
  523. package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js +938 -0
  524. package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js.map +1 -0
  525. package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js +190 -0
  526. package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js.map +1 -0
  527. package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js +1441 -0
  528. package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js.map +1 -0
  529. package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js +10 -0
  530. package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js.map +1 -0
  531. package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js +1103 -0
  532. package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js.map +1 -0
  533. package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js +47 -0
  534. package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js.map +1 -0
  535. package/vendor/hyperframes/dist/studio/favicon.svg +14 -0
  536. package/vendor/hyperframes/dist/studio/icons/timeline/audio.svg +7 -0
  537. package/vendor/hyperframes/dist/studio/icons/timeline/captions.svg +5 -0
  538. package/vendor/hyperframes/dist/studio/icons/timeline/composition.svg +12 -0
  539. package/vendor/hyperframes/dist/studio/icons/timeline/image.svg +18 -0
  540. package/vendor/hyperframes/dist/studio/icons/timeline/music.svg +10 -0
  541. package/vendor/hyperframes/dist/studio/icons/timeline/text.svg +3 -0
  542. package/vendor/hyperframes/dist/studio/index.css +165 -0
  543. package/vendor/hyperframes/dist/studio/index.css.map +1 -0
  544. package/vendor/hyperframes/dist/studio/index.d.ts +4296 -0
  545. package/vendor/hyperframes/dist/studio/index.html +23 -0
  546. package/vendor/hyperframes/dist/studio/index.js +99693 -0
  547. package/vendor/hyperframes/dist/studio/index.js.map +1 -0
  548. package/vendor/hyperframes/dist/studio/player.d.ts +30 -0
  549. package/vendor/hyperframes/dist/studio/player.js +10 -0
  550. package/vendor/hyperframes/dist/studio/player.js.map +1 -0
  551. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.d.ts +39 -0
  552. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js +50 -0
  553. package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js.map +1 -0
  554. package/vendor/hyperframes/dist/studio/styles.css +1 -0
  555. package/vendor/hyperframes/dist/studio/ui.d.ts +296 -0
  556. package/vendor/hyperframes/dist/studio/ui.js +66 -0
  557. package/vendor/hyperframes/dist/studio/ui.js.map +1 -0
  558. package/vendor/hyperframes/dist/studio-api-PNQZRPX5.js +136 -0
  559. package/vendor/hyperframes/dist/studioSelectionClient-IUUPKUHZ.js +25 -0
  560. package/vendor/hyperframes/dist/studioServer-UWRBPIOJ.js +1457 -0
  561. package/vendor/hyperframes/dist/synthesize-K62TIZWI.js +182 -0
  562. package/vendor/hyperframes/dist/system-EZYZNUFD.js +44 -0
  563. package/vendor/hyperframes/dist/telemetry-2YC4SGQU.js +144 -0
  564. package/vendor/hyperframes/dist/telemetry-QMYM4WME.js +95 -0
  565. package/vendor/hyperframes/dist/templates/_shared/AGENTS.md +107 -0
  566. package/vendor/hyperframes/dist/templates/_shared/CLAUDE.md +107 -0
  567. package/vendor/hyperframes/dist/templates/blank/index.html +55 -0
  568. package/vendor/hyperframes/dist/templates/from-file/index.html +75 -0
  569. package/vendor/hyperframes/dist/templates/warm-grain/compositions/captions.html +154 -0
  570. package/vendor/hyperframes/dist/templates/warm-grain/compositions/graphics.html +162 -0
  571. package/vendor/hyperframes/dist/templates/warm-grain/compositions/intro.html +87 -0
  572. package/vendor/hyperframes/dist/templates/warm-grain/index.html +264 -0
  573. package/vendor/hyperframes/dist/templates/warm-grain/registry-item.json +34 -0
  574. package/vendor/hyperframes/dist/timeline-77Z3BBQM.js +1377 -0
  575. package/vendor/hyperframes/dist/tokens-OBGTYE4Z.js +92 -0
  576. package/vendor/hyperframes/dist/transcribe-7NVFHCGA.js +387 -0
  577. package/vendor/hyperframes/dist/transcribe-BNSJRR4M.js +62 -0
  578. package/vendor/hyperframes/dist/tts-P3LIPIL5.js +234 -0
  579. package/vendor/hyperframes/dist/updateCheck-UDWIJ4ZQ.js +39 -0
  580. package/vendor/hyperframes/dist/upgrade-CT3CPO3E.js +231 -0
  581. package/vendor/hyperframes/dist/urlDownloader-H6WRI2UE.js +39 -0
  582. package/vendor/hyperframes/dist/usage-EC3KFUIJ.js +2139 -0
  583. package/vendor/hyperframes/dist/validate-65QDZJWZ.js +70 -0
  584. package/vendor/hyperframes/dist/video-FGSGKRSV.js +261 -0
  585. package/vendor/hyperframes/dist/workspaceBuildCheck-TOLGAI4T.js +133 -0
  586. package/vendor/hyperframes/package.json +80 -0
@@ -0,0 +1,763 @@
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
+ parseOutputResolutionFlag
9
+ } from "./chunk-PDAMK4Q5.js";
10
+ import {
11
+ reportVariableIssues,
12
+ resolveVariablesArg,
13
+ validateVariablesAgainstProject
14
+ } from "./chunk-6CTIGJY7.js";
15
+ import {
16
+ readAllowedCompositionFpsFromDir
17
+ } from "./chunk-YEIFI443.js";
18
+ import "./chunk-IHFUKJOR.js";
19
+ import "./chunk-PFCFR3KZ.js";
20
+ import {
21
+ c
22
+ } from "./chunk-ZTZA4UWZ.js";
23
+ import {
24
+ defineCommand
25
+ } from "./chunk-S3S4TGEH.js";
26
+ import {
27
+ failCommand
28
+ } from "./chunk-PBN6GBJE.js";
29
+ import "./chunk-2YN64IN5.js";
30
+ import "./chunk-AVUUN2XD.js";
31
+ import "./chunk-DPVXBVLL.js";
32
+ import "./chunk-HWKCIWQT.js";
33
+ import "./chunk-VC76R6W2.js";
34
+ import "./chunk-OFQWTKPW.js";
35
+ import "./chunk-TQFG7HTI.js";
36
+ import "./chunk-GK4AIFIH.js";
37
+ import "./chunk-2PSPARWP.js";
38
+ import {
39
+ normalizeErrorMessage
40
+ } from "./chunk-KNU5COPB.js";
41
+ import "./chunk-RQVDTPGD.js";
42
+ import "./chunk-PMRBLBUP.js";
43
+ import "./chunk-M2WBOQ2Q.js";
44
+
45
+ // src/commands/cloudrun.ts
46
+ import { spawnSync } from "child_process";
47
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
48
+ import { homedir } from "os";
49
+ import { join, resolve } from "path";
50
+ var examples = [
51
+ ["Deploy the Cloud Run render stack", "hyperframes cloudrun deploy --project my-gcp-project"],
52
+ [
53
+ "Render a composition on the deployed stack",
54
+ "hyperframes cloudrun render ./my-project --width 1920 --height 1080 --wait"
55
+ ],
56
+ [
57
+ "Render a personalised template with variables",
58
+ `hyperframes cloudrun render ./my-template --width 1920 --height 1080 --variables '{"title":"Hello Alice"}'`
59
+ ],
60
+ [
61
+ "Supersample a 1080p composition to 4K",
62
+ "hyperframes cloudrun render ./my-project --width 1920 --height 1080 --output-resolution 4k --wait"
63
+ ],
64
+ [
65
+ "Batch-render N personalised videos from a JSONL file",
66
+ "hyperframes cloudrun render-batch ./my-template --batch ./users.jsonl --width 1920 --height 1080 --max-concurrent 10"
67
+ ],
68
+ ["Check progress for a started render", "hyperframes cloudrun progress <executionName>"],
69
+ [
70
+ "Pre-upload a project so renders share the upload",
71
+ "hyperframes cloudrun sites create ./my-project"
72
+ ],
73
+ ["Tear the stack down", "hyperframes cloudrun destroy --project my-gcp-project"]
74
+ ];
75
+ var HELP = `
76
+ ${c.bold("hyperframes cloudrun")} ${c.dim("<subcommand> [args]")}
77
+
78
+ Deploy + drive distributed video renders on Google Cloud Run + Workflows.
79
+
80
+ ${c.bold("SUBCOMMANDS:")}
81
+ ${c.accent("deploy")} ${c.dim("Build the image + apply the Terraform module (Cloud Run + Workflows + GCS)")}
82
+ ${c.accent("sites create")} ${c.dim("Tar + upload a project to GCS (reusable across renders)")}
83
+ ${c.accent("render")} ${c.dim("Start a distributed render (returns an execution name)")}
84
+ ${c.accent("render-batch")} ${c.dim("Fan out N personalised renders from a JSONL batch file")}
85
+ ${c.accent("progress")} ${c.dim("Print progress + cost for an in-flight or finished render")}
86
+ ${c.accent("destroy")} ${c.dim("Tear the stack down")}
87
+
88
+ ${c.bold("FIRST RUN:")}
89
+ ${c.accent("hyperframes cloudrun deploy --project my-gcp-project")}
90
+ ${c.accent("hyperframes cloudrun render ./my-project --width 1920 --height 1080 --wait")}
91
+
92
+ ${c.bold("REQUIREMENTS:")}
93
+ \u2022 gcloud authenticated; the target project must have billing enabled
94
+ \u2022 terraform (>= 1.5) and docker / Cloud Build access on PATH
95
+ `;
96
+ var cloudRunAdapterPromise;
97
+ function loadCloudRunAdapter() {
98
+ cloudRunAdapterPromise ??= Promise.all([
99
+ import("@hyperframes/gcp-cloud-run/sdk"),
100
+ import("@hyperframes/gcp-cloud-run/terraform")
101
+ ]).then(([sdk, terraform]) => ({ ...sdk, ...terraform }));
102
+ return cloudRunAdapterPromise;
103
+ }
104
+ function isMissingCloudRunAdapterError(error) {
105
+ return error?.code === "ERR_MODULE_NOT_FOUND" && normalizeErrorMessage(error).includes("@hyperframes/gcp-cloud-run");
106
+ }
107
+ function missingCloudRunAdapterMessage(subcommand) {
108
+ return `${c.error("@hyperframes/gcp-cloud-run is not installed.")} The ${c.accent(`hyperframes cloudrun ${subcommand}`)} command needs it at runtime.
109
+ Install it alongside the CLI:
110
+ ${c.accent("npm install -g @hyperframes/gcp-cloud-run")}
111
+ Or, for an opt-in project setup:
112
+ ${c.accent("npm install @hyperframes/gcp-cloud-run")}`;
113
+ }
114
+ var cloudrun_default = defineCommand({
115
+ meta: { name: "cloudrun", description: "Deploy and drive renders on Google Cloud Run" },
116
+ args: {
117
+ subcommand: {
118
+ type: "positional",
119
+ required: false,
120
+ description: "deploy | sites | render | render-batch | progress | destroy"
121
+ },
122
+ target: {
123
+ type: "positional",
124
+ required: false,
125
+ description: "Subcommand positional (project dir, execution name, sites verb)"
126
+ },
127
+ extra: {
128
+ type: "positional",
129
+ required: false,
130
+ description: "Extra positional (e.g. `sites create <projectDir>`)"
131
+ },
132
+ // Stack identity
133
+ project: {
134
+ type: "string",
135
+ description: "GCP project id (required for deploy/destroy; cached after deploy)"
136
+ },
137
+ region: { type: "string", description: "GCP region (default: us-central1)" },
138
+ image: {
139
+ type: "string",
140
+ description: "Container image for the render service (deploy). If unset, deploy builds it via Cloud Build."
141
+ },
142
+ repo: {
143
+ type: "string",
144
+ description: "Artifact Registry repo for the built image (default: hyperframes)"
145
+ },
146
+ // Machine sizing / scaling (deploy). Omitted flags keep the Terraform
147
+ // module defaults (4 vCPU / 16Gi / 100 instances / 3600s).
148
+ cpu: { type: "string", description: "vCPU per Cloud Run instance: 1 | 2 | 4 | 8 (deploy)" },
149
+ memory: { type: "string", description: "Memory per instance, e.g. 16Gi | 32Gi (deploy)" },
150
+ "max-instances": {
151
+ type: "string",
152
+ description: "Max Cloud Run instances = render fan-out ceiling (deploy)"
153
+ },
154
+ timeout: {
155
+ type: "string",
156
+ description: "Per-request timeout in seconds, max 3600 (deploy)"
157
+ },
158
+ // sites / render
159
+ "site-id": { type: "string", description: "Explicit site id (overrides content hash)" },
160
+ width: { type: "string", description: "Render width in pixels" },
161
+ height: { type: "string", description: "Render height in pixels" },
162
+ fps: { type: "string", description: "Render fps (24 | 30 | 60)" },
163
+ format: { type: "string", description: "mp4 | mov | png-sequence | webm (default: mp4)" },
164
+ codec: { type: "string", description: "h264 | h265 (mp4 only)" },
165
+ quality: { type: "string", description: "draft | standard | high" },
166
+ "chunk-size": { type: "string", description: "Frames per chunk" },
167
+ "max-parallel-chunks": { type: "string", description: "Max concurrent chunks" },
168
+ "target-chunk-frames": {
169
+ type: "string",
170
+ description: "Cap per-chunk frames; auto-adds chunks (up to --max-parallel-chunks) to keep each under this. Ignored if --chunk-size is set."
171
+ },
172
+ "output-resolution": {
173
+ type: "string",
174
+ description: "Output resolution preset that engages Chrome deviceScaleFactor supersampling (e.g. 4k, 1080p, landscape-4k). The composition's authored data-width/data-height is supersampled to the target without changing layout."
175
+ },
176
+ variables: {
177
+ type: "string",
178
+ description: `JSON object of composition variable values, e.g. --variables '{"title":"Hi"}'`
179
+ },
180
+ "variables-file": { type: "string", description: "Path to a JSON file of variable values" },
181
+ "strict-variables": {
182
+ type: "boolean",
183
+ description: "Fail the render if any --variables key is undeclared or mistyped vs the composition's data-composition-variables. Without it, mismatches are warnings.",
184
+ default: false
185
+ },
186
+ batch: {
187
+ type: "string",
188
+ description: 'Path to a JSONL batch file for `render-batch`. Each line: {"outputKey":"...","variables":{...}}'
189
+ },
190
+ "max-concurrent": {
191
+ type: "string",
192
+ description: "Max in-flight executions for `render-batch` (default: 50)."
193
+ },
194
+ "dry-run": {
195
+ type: "boolean",
196
+ description: "For `render-batch`: parse the batch file and print the manifest without starting any execution.",
197
+ default: false
198
+ },
199
+ "render-id": {
200
+ type: "string",
201
+ description: "Client render id / GCS prefix (default: hf-render-<uuid>)"
202
+ },
203
+ "output-key": {
204
+ type: "string",
205
+ description: "Final output GCS key (default: renders/<renderId>/output.<ext>)"
206
+ },
207
+ wait: { type: "boolean", description: "Block until the render finishes" },
208
+ "wait-interval-ms": {
209
+ type: "string",
210
+ description: "Poll cadence in ms when --wait is set (default: 5000)"
211
+ },
212
+ json: { type: "boolean", description: "Emit machine-readable JSON" }
213
+ },
214
+ // fallow-ignore-next-line complexity
215
+ async run({ args }) {
216
+ const subcommand = args.subcommand;
217
+ if (!subcommand) {
218
+ console.log(HELP);
219
+ return;
220
+ }
221
+ const verbsNeedingAdapter = /* @__PURE__ */ new Set([
222
+ "deploy",
223
+ "sites",
224
+ "render",
225
+ "render-batch",
226
+ "progress",
227
+ "destroy"
228
+ ]);
229
+ if (verbsNeedingAdapter.has(subcommand)) {
230
+ try {
231
+ await loadCloudRunAdapter();
232
+ } catch (error) {
233
+ if (isMissingCloudRunAdapterError(error)) {
234
+ console.error(missingCloudRunAdapterMessage(subcommand));
235
+ failCommand();
236
+ }
237
+ throw error;
238
+ }
239
+ }
240
+ switch (subcommand) {
241
+ case "deploy":
242
+ return runDeploy(args);
243
+ case "sites":
244
+ return runSites(args);
245
+ case "render":
246
+ return runRender(args);
247
+ case "render-batch":
248
+ return runRenderBatch(args);
249
+ case "progress":
250
+ return runProgress(args);
251
+ case "destroy":
252
+ return runDestroy(args);
253
+ default:
254
+ console.error(`${c.error("Unknown subcommand:")} ${subcommand}
255
+ ${HELP}`);
256
+ failCommand();
257
+ }
258
+ }
259
+ });
260
+ function stateDir() {
261
+ return join(homedir(), ".hyperframes");
262
+ }
263
+ function statePath() {
264
+ return join(stateDir(), "cloudrun-state.json");
265
+ }
266
+ function writeState(state) {
267
+ mkdirSync(stateDir(), { recursive: true });
268
+ writeFileSync(statePath(), JSON.stringify(state, null, 2));
269
+ }
270
+ function readState(args) {
271
+ const overrides = {
272
+ projectId: args.project,
273
+ region: args.region
274
+ };
275
+ let base = {};
276
+ if (existsSync(statePath())) {
277
+ try {
278
+ base = JSON.parse(readFileSync(statePath(), "utf8"));
279
+ } catch {
280
+ }
281
+ }
282
+ const merged = { ...base, ...stripUndefined(overrides) };
283
+ const missing = ["projectId", "region", "bucketName", "serviceUrl", "workflowId"].filter((k) => !merged[k]);
284
+ if (missing.length > 0) {
285
+ console.error(
286
+ `[cloudrun] missing stack coordinates: ${missing.join(", ")}. Run \`hyperframes cloudrun deploy --project <id>\` first, or pass them as flags.`
287
+ );
288
+ failCommand();
289
+ }
290
+ return merged;
291
+ }
292
+ function stripUndefined(o) {
293
+ return Object.fromEntries(Object.entries(o).filter(([, v]) => v != null));
294
+ }
295
+ function run(cmd, cmdArgs, opts = {}) {
296
+ const res = spawnSync(cmd, cmdArgs, { stdio: "inherit", cwd: opts.cwd });
297
+ if (res.status !== 0) {
298
+ throw new Error(`[cloudrun] \`${cmd} ${cmdArgs.join(" ")}\` exited with ${res.status}`);
299
+ }
300
+ }
301
+ function capture(cmd, cmdArgs, opts = {}) {
302
+ const res = spawnSync(cmd, cmdArgs, { encoding: "utf8", cwd: opts.cwd });
303
+ if (res.status !== 0) {
304
+ throw new Error(`[cloudrun] \`${cmd} ${cmdArgs.join(" ")}\` failed: ${res.stderr}`);
305
+ }
306
+ return res.stdout.trim();
307
+ }
308
+ async function runDeploy(args) {
309
+ const project = args.project;
310
+ if (!project) {
311
+ console.error("[cloudrun deploy] --project <gcp-project-id> is required.");
312
+ failCommand();
313
+ }
314
+ const region = args.region ?? "us-central1";
315
+ const repo = args.repo ?? "hyperframes";
316
+ const { getTerraformModuleDir } = await loadCloudRunAdapter();
317
+ const tfDir = getTerraformModuleDir();
318
+ const repoRoot = findRepoRoot(tfDir);
319
+ console.log(`\u2192 Enabling required APIs on ${project}`);
320
+ run("gcloud", [
321
+ "services",
322
+ "enable",
323
+ "run.googleapis.com",
324
+ "workflows.googleapis.com",
325
+ "workflowexecutions.googleapis.com",
326
+ "artifactregistry.googleapis.com",
327
+ "cloudbuild.googleapis.com",
328
+ "monitoring.googleapis.com",
329
+ "--project",
330
+ project
331
+ ]);
332
+ let image = args.image;
333
+ if (!image) {
334
+ if (!repoRoot) {
335
+ console.error(
336
+ "[cloudrun deploy] --image is required when not running from a hyperframes checkout (no Dockerfile context found)."
337
+ );
338
+ failCommand();
339
+ }
340
+ const exists = spawnSync("gcloud", [
341
+ "artifacts",
342
+ "repositories",
343
+ "describe",
344
+ repo,
345
+ "--location",
346
+ region,
347
+ "--project",
348
+ project
349
+ ]).status === 0;
350
+ if (!exists) {
351
+ run("gcloud", [
352
+ "artifacts",
353
+ "repositories",
354
+ "create",
355
+ repo,
356
+ "--repository-format",
357
+ "docker",
358
+ "--location",
359
+ region,
360
+ "--project",
361
+ project
362
+ ]);
363
+ }
364
+ const tag = (/* @__PURE__ */ new Date()).toISOString().replace(/[^0-9]/g, "").slice(0, 14);
365
+ image = `${region}-docker.pkg.dev/${project}/${repo}/hyperframes-render:${tag}`;
366
+ console.log(`\u2192 Building + pushing ${image} via Cloud Build`);
367
+ run("gcloud", [
368
+ "builds",
369
+ "submit",
370
+ repoRoot,
371
+ "--project",
372
+ project,
373
+ "--timeout",
374
+ "3600s",
375
+ "--config",
376
+ writeCloudBuildConfig(image)
377
+ ]);
378
+ }
379
+ console.log("\u2192 terraform apply");
380
+ run("terraform", ["init", "-input=false"], { cwd: tfDir });
381
+ run(
382
+ "terraform",
383
+ ["apply", "-input=false", "-auto-approve", ...machineVars(args, project, region, image)],
384
+ { cwd: tfDir }
385
+ );
386
+ const state = {
387
+ projectId: project,
388
+ region,
389
+ bucketName: capture("terraform", ["output", "-raw", "render_bucket_name"], { cwd: tfDir }),
390
+ serviceUrl: capture("terraform", ["output", "-raw", "service_url"], { cwd: tfDir }),
391
+ workflowId: capture("terraform", ["output", "-raw", "workflow_name"], { cwd: tfDir })
392
+ };
393
+ writeState(state);
394
+ console.log(`${c.accent("\u2713 deployed.")} bucket=${state.bucketName} workflow=${state.workflowId}`);
395
+ console.log(` service=${state.serviceUrl}`);
396
+ console.log(
397
+ ` Next: ${c.accent("hyperframes cloudrun render ./my-project --width 1920 --height 1080 --wait")}`
398
+ );
399
+ }
400
+ function machineVars(args, project, region, image) {
401
+ const vars = [
402
+ "-var",
403
+ `project_id=${project}`,
404
+ "-var",
405
+ `region=${region}`,
406
+ "-var",
407
+ `image=${image}`
408
+ ];
409
+ const cpu = args.cpu;
410
+ const memory = args.memory;
411
+ const maxInstances = parsePositiveInt(args["max-instances"], "--max-instances");
412
+ const timeout = parsePositiveInt(args.timeout, "--timeout");
413
+ if (cpu) vars.push("-var", `cpu=${cpu}`);
414
+ if (memory) vars.push("-var", `memory=${memory}`);
415
+ if (maxInstances !== void 0) vars.push("-var", `max_instances=${maxInstances}`);
416
+ if (timeout !== void 0) vars.push("-var", `request_timeout_seconds=${timeout}`);
417
+ return vars;
418
+ }
419
+ function findRepoRoot(tfDir) {
420
+ const candidate = resolve(tfDir, "..", "..", "..");
421
+ if (existsSync(join(candidate, "packages", "gcp-cloud-run", "Dockerfile"))) return candidate;
422
+ return null;
423
+ }
424
+ function writeCloudBuildConfig(image) {
425
+ const cfgPath = join(stateDir(), "cloudrun-cloudbuild.yaml");
426
+ mkdirSync(stateDir(), { recursive: true });
427
+ writeFileSync(
428
+ cfgPath,
429
+ [
430
+ "steps:",
431
+ "- name: gcr.io/cloud-builders/docker",
432
+ ` args: ["build","-f","packages/gcp-cloud-run/Dockerfile","-t","${image}","."]`,
433
+ `images: ["${image}"]`,
434
+ "timeout: 3600s",
435
+ ""
436
+ ].join("\n")
437
+ );
438
+ return cfgPath;
439
+ }
440
+ async function runSites(args) {
441
+ if (args.target !== "create") {
442
+ console.error(
443
+ `[cloudrun sites] unknown verb "${String(args.target)}". Only "create" is supported.`
444
+ );
445
+ failCommand();
446
+ }
447
+ const projectDir = args.extra;
448
+ if (!projectDir) {
449
+ console.error("[cloudrun sites create] usage: hyperframes cloudrun sites create <projectDir>");
450
+ failCommand();
451
+ }
452
+ const state = readState(args);
453
+ const { deploySite } = await loadCloudRunAdapter();
454
+ const handle = await deploySite({
455
+ projectDir: resolve(projectDir),
456
+ bucketName: state.bucketName,
457
+ siteId: args["site-id"]
458
+ });
459
+ if (args.json) {
460
+ console.log(JSON.stringify(handle, null, 2));
461
+ } else {
462
+ console.log(
463
+ `${handle.uploaded ? c.accent("\u2713 uploaded") : c.dim("\u2022 already present")} site=${handle.siteId} (${handle.bytes} bytes)
464
+ ${handle.projectGcsUri}`
465
+ );
466
+ }
467
+ }
468
+ function resolveCloudRunFps(args, projectDir, command) {
469
+ const fps = parseIntFlag(args.fps) ?? readAllowedCompositionFpsFromDir(projectDir, [24, 30, 60]) ?? 30;
470
+ if (fps === 24 || fps === 30 || fps === 60) return fps;
471
+ console.error(`[cloudrun ${command}] --fps must be 24, 30, or 60; got ${fps}.`);
472
+ failCommand();
473
+ }
474
+ async function runRender(args) {
475
+ const projectDir = args.target;
476
+ if (!projectDir) {
477
+ console.error(
478
+ "[cloudrun render] usage: hyperframes cloudrun render <projectDir> --width <px> --height <px>"
479
+ );
480
+ failCommand();
481
+ }
482
+ const width = parsePositiveInt(args.width, "--width");
483
+ const height = parsePositiveInt(args.height, "--height");
484
+ if (width === void 0 || height === void 0) {
485
+ console.error("[cloudrun render] --width and --height are required.");
486
+ failCommand();
487
+ }
488
+ const fps = resolveCloudRunFps(args, projectDir, "render");
489
+ const state = readState(args);
490
+ const variables = resolveAndValidateVariables(args, resolve(projectDir));
491
+ const config = buildRenderConfig(args, fps, width, height, variables);
492
+ const { renderToCloudRun, getRenderProgress } = await loadCloudRunAdapter();
493
+ const handle = await renderToCloudRun({
494
+ projectDir: resolve(projectDir),
495
+ config,
496
+ bucketName: state.bucketName,
497
+ projectId: state.projectId,
498
+ location: state.region,
499
+ workflowId: state.workflowId,
500
+ serviceUrl: state.serviceUrl,
501
+ renderId: args["render-id"],
502
+ outputKey: args["output-key"]
503
+ });
504
+ if (!args.wait) {
505
+ if (args.json) console.log(JSON.stringify(handle, null, 2));
506
+ else {
507
+ console.log(`${c.accent("\u2713 render started")} renderId=${handle.renderId}`);
508
+ console.log(` output \u2192 ${handle.outputGcsUri}`);
509
+ console.log(
510
+ ` progress: ${c.accent(`hyperframes cloudrun progress ${handle.executionName}`)}`
511
+ );
512
+ }
513
+ return;
514
+ }
515
+ const intervalMs = parsePositiveInt(args["wait-interval-ms"], "--wait-interval-ms") ?? 5e3;
516
+ let progress = await getRenderProgress({ executionName: handle.executionName });
517
+ while (progress.status === "running") {
518
+ await new Promise((r) => setTimeout(r, intervalMs));
519
+ progress = await getRenderProgress({ executionName: handle.executionName });
520
+ if (!args.json) process.stdout.write(`\r status=${progress.status} `);
521
+ }
522
+ if (!args.json) process.stdout.write("\n");
523
+ if (args.json) {
524
+ console.log(JSON.stringify(progress, null, 2));
525
+ } else if (progress.status === "succeeded") {
526
+ console.log(
527
+ `${c.accent("\u2713 done.")} ${progress.outputFile?.gcsUri} (${progress.costs.displayCost})`
528
+ );
529
+ } else {
530
+ console.error(`${c.error("\u2717 render " + progress.status)}`);
531
+ for (const e of progress.errors) console.error(` ${e.state}: ${e.cause}`);
532
+ failCommand();
533
+ }
534
+ }
535
+ async function runProgress(args) {
536
+ const executionName = args.target;
537
+ if (!executionName) {
538
+ console.error("[cloudrun progress] usage: hyperframes cloudrun progress <executionName>");
539
+ failCommand();
540
+ }
541
+ const { getRenderProgress } = await loadCloudRunAdapter();
542
+ const progress = await getRenderProgress({ executionName });
543
+ if (args.json) {
544
+ console.log(JSON.stringify(progress, null, 2));
545
+ return;
546
+ }
547
+ console.log(`status=${progress.status} progress=${(progress.overallProgress * 100).toFixed(0)}%`);
548
+ if (progress.totalFrames)
549
+ console.log(`frames=${progress.framesRendered}/${progress.totalFrames}`);
550
+ if (progress.outputFile) console.log(`output=${progress.outputFile.gcsUri}`);
551
+ console.log(`cost=${progress.costs.displayCost}`);
552
+ for (const e of progress.errors) console.error(` error ${e.state}: ${e.cause}`);
553
+ }
554
+ var DEFAULT_BATCH_MAX_CONCURRENT = 50;
555
+ async function runRenderBatch(args) {
556
+ const projectDir = args.target;
557
+ const batchPath = args.batch;
558
+ if (!projectDir || !batchPath) {
559
+ console.error(
560
+ "[cloudrun render-batch] usage: hyperframes cloudrun render-batch <projectDir> --batch <file.jsonl> --width <px> --height <px>"
561
+ );
562
+ failCommand();
563
+ }
564
+ const width = parsePositiveInt(args.width, "--width");
565
+ const height = parsePositiveInt(args.height, "--height");
566
+ if (width === void 0 || height === void 0) {
567
+ console.error("[cloudrun render-batch] --width and --height are required.");
568
+ failCommand();
569
+ }
570
+ const fps = resolveCloudRunFps(args, projectDir, "render-batch");
571
+ if (!existsSync(resolve(batchPath))) {
572
+ console.error(`[cloudrun render-batch] batch file not found: ${batchPath}`);
573
+ failCommand();
574
+ }
575
+ const entries = parseBatchFile(resolve(batchPath));
576
+ if (entries.length === 0) {
577
+ console.error("[cloudrun render-batch] batch file has no entries.");
578
+ failCommand();
579
+ }
580
+ const dryRun = Boolean(args["dry-run"]);
581
+ if (dryRun) {
582
+ const manifest = entries.map((e, i) => ({
583
+ line: i + 1,
584
+ outputKey: e.outputKey,
585
+ status: "would-start"
586
+ }));
587
+ console.log(JSON.stringify(manifest, null, 2));
588
+ return;
589
+ }
590
+ const state = readState(args);
591
+ const maxConcurrent = parsePositiveInt(args["max-concurrent"], "--max-concurrent") ?? DEFAULT_BATCH_MAX_CONCURRENT;
592
+ const { deploySite, renderToCloudRun } = await loadCloudRunAdapter();
593
+ const siteHandle = await deploySite({
594
+ projectDir: resolve(projectDir),
595
+ bucketName: state.bucketName,
596
+ siteId: args["site-id"]
597
+ });
598
+ const results = [];
599
+ for (let i = 0; i < entries.length; i += maxConcurrent) {
600
+ const wave = entries.slice(i, i + maxConcurrent);
601
+ const settled = await Promise.all(
602
+ wave.map(async (entry) => {
603
+ try {
604
+ const config = buildRenderConfig(args, fps, width, height, entry.variables);
605
+ const handle = await renderToCloudRun({
606
+ siteHandle,
607
+ config,
608
+ bucketName: state.bucketName,
609
+ projectId: state.projectId,
610
+ location: state.region,
611
+ workflowId: state.workflowId,
612
+ serviceUrl: state.serviceUrl,
613
+ outputKey: entry.outputKey
614
+ });
615
+ return { outputKey: entry.outputKey, executionName: handle.executionName };
616
+ } catch (err) {
617
+ return {
618
+ outputKey: entry.outputKey,
619
+ error: normalizeErrorMessage(err)
620
+ };
621
+ }
622
+ })
623
+ );
624
+ results.push(...settled);
625
+ }
626
+ const failed = results.filter((r) => r.error);
627
+ if (args.json) {
628
+ console.log(JSON.stringify(results, null, 2));
629
+ } else {
630
+ console.log(
631
+ `${c.accent("\u2713 started")} ${results.length - failed.length}/${results.length} renders`
632
+ );
633
+ for (const r of failed) console.error(` \u2717 ${r.outputKey}: ${r.error}`);
634
+ }
635
+ if (failed.length > 0) failCommand();
636
+ }
637
+ function parseBatchFile(path) {
638
+ const lines = readFileSync(path, "utf8").split(/\r?\n/);
639
+ const entries = [];
640
+ lines.forEach((line, idx) => {
641
+ const trimmed = line.trim();
642
+ if (!trimmed) return;
643
+ let parsed;
644
+ try {
645
+ parsed = JSON.parse(trimmed);
646
+ } catch {
647
+ console.error(`[cloudrun render-batch] line ${idx + 1}: not valid JSON`);
648
+ failCommand();
649
+ }
650
+ if (!parsed || typeof parsed !== "object" || typeof parsed.outputKey !== "string") {
651
+ console.error(
652
+ `[cloudrun render-batch] line ${idx + 1}: must be an object with a string "outputKey"`
653
+ );
654
+ failCommand();
655
+ }
656
+ entries.push(parsed);
657
+ });
658
+ return entries;
659
+ }
660
+ async function runDestroy(args) {
661
+ const { getTerraformModuleDir } = await loadCloudRunAdapter();
662
+ const tfDir = getTerraformModuleDir();
663
+ const state = existsSync(statePath()) ? JSON.parse(readFileSync(statePath(), "utf8")) : {};
664
+ const project = args.project ?? state.projectId;
665
+ const region = args.region ?? state.region ?? "us-central1";
666
+ const image = args.image ?? "unused:latest";
667
+ if (!project) {
668
+ console.error("[cloudrun destroy] --project is required (or deploy first to cache it).");
669
+ failCommand();
670
+ }
671
+ const vars = [
672
+ "-var",
673
+ `project_id=${project}`,
674
+ "-var",
675
+ `region=${region}`,
676
+ "-var",
677
+ `image=${image}`,
678
+ "-var",
679
+ "bucket_force_destroy=true"
680
+ ];
681
+ console.log("\u2192 terraform destroy");
682
+ run("terraform", ["init", "-input=false"], { cwd: tfDir });
683
+ try {
684
+ run("terraform", ["apply", "-input=false", "-auto-approve", ...vars], { cwd: tfDir });
685
+ } catch {
686
+ }
687
+ run("terraform", ["destroy", "-input=false", "-auto-approve", ...vars], { cwd: tfDir });
688
+ console.log(`${c.accent("\u2713 destroyed.")}`);
689
+ }
690
+ function buildRenderConfig(args, fps, width, height, variables) {
691
+ const { outputResolution, outputResolutionAspectAgnostic } = parseOutputResolution(
692
+ args["output-resolution"]
693
+ );
694
+ return stripUndefined({
695
+ fps,
696
+ width,
697
+ height,
698
+ format: parseFormat(args.format),
699
+ codec: parseCodec(args.codec),
700
+ quality: parseQuality(args.quality),
701
+ chunkSize: parsePositiveInt(args["chunk-size"], "--chunk-size"),
702
+ maxParallelChunks: parsePositiveInt(args["max-parallel-chunks"], "--max-parallel-chunks"),
703
+ targetChunkFrames: parsePositiveInt(args["target-chunk-frames"], "--target-chunk-frames"),
704
+ outputResolution,
705
+ // Set only when true so the wire shape stays sparse for the common
706
+ // canonical-preset path (matches how the flag flows through
707
+ // `SerializableDistributedRenderConfig` from every other emitter).
708
+ outputResolutionAspectAgnostic: outputResolutionAspectAgnostic ? true : void 0,
709
+ variables
710
+ });
711
+ }
712
+ function resolveAndValidateVariables(args, projectDir) {
713
+ const variables = resolveVariablesArg(
714
+ args.variables,
715
+ args["variables-file"]
716
+ );
717
+ if (variables && Object.keys(variables).length > 0) {
718
+ const indexPath = join(projectDir, "index.html");
719
+ if (existsSync(indexPath)) {
720
+ const issues = validateVariablesAgainstProject(indexPath, variables);
721
+ reportVariableIssues(issues, {
722
+ strict: Boolean(args["strict-variables"]),
723
+ quiet: Boolean(args.json)
724
+ });
725
+ }
726
+ }
727
+ return variables;
728
+ }
729
+ function parseOutputResolution(raw) {
730
+ return parseOutputResolutionFlag(raw, { surfaceLabel: "[cloudrun render]" });
731
+ }
732
+ function parseIntFlag(raw) {
733
+ if (raw === void 0 || raw === null || raw === "") return void 0;
734
+ const n = Number.parseInt(String(raw), 10);
735
+ return Number.isFinite(n) ? n : void 0;
736
+ }
737
+ function parsePositiveInt(raw, flagName) {
738
+ const n = parseIntFlag(raw);
739
+ if (n === void 0) return void 0;
740
+ if (!Number.isInteger(n) || n < 1) {
741
+ throw new Error(`[cloudrun] ${flagName} must be a positive integer; got ${n}`);
742
+ }
743
+ return n;
744
+ }
745
+ function parseEnum(raw, allowed, errorPrefix, defaultValue) {
746
+ if (raw === void 0 || raw === null || raw === "") return defaultValue;
747
+ const s = String(raw);
748
+ if (allowed.includes(s)) return s;
749
+ throw new Error(`${errorPrefix} must be ${allowed.join("|")}; got ${s}`);
750
+ }
751
+ var FORMATS = ["mp4", "mov", "png-sequence", "webm"];
752
+ var CODECS = ["h264", "h265"];
753
+ var QUALITIES = ["draft", "standard", "high"];
754
+ var parseFormat = (raw) => parseEnum(raw, FORMATS, "[cloudrun render] --format", "mp4");
755
+ var parseCodec = (raw) => parseEnum(raw, CODECS, "[cloudrun render] --codec", void 0);
756
+ var parseQuality = (raw) => parseEnum(raw, QUALITIES, "[cloudrun render] --quality", void 0);
757
+ export {
758
+ buildRenderConfig,
759
+ cloudrun_default as default,
760
+ examples,
761
+ isMissingCloudRunAdapterError,
762
+ missingCloudRunAdapterMessage
763
+ };