@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,202 @@
1
+ # Media treatments
2
+
3
+ A media treatment is a source-aware plan that composes existing HyperFrames
4
+ color, effect, timeline, and Registry primitives. It is not a second runtime
5
+ schema. Use this file to choose a primary direction. A matching recipe is an
6
+ optional tested seed; bespoke requests may assemble a validated treatment from
7
+ the canonical capability catalog.
8
+
9
+ ## Permission and scope
10
+
11
+ - An explicit request such as "polish this", "make it look better", or "make it
12
+ fit the topic" delegates a conservative treatment. Apply it, verify it, and
13
+ report what changed.
14
+ - During an unsolicited opportunity scan, show or suggest the treatment first.
15
+ - Target meaningful photographic media. Skip text, SVG, logos, icons, UI
16
+ chrome, and intentionally stylized footage unless the user asks.
17
+ - Realtime grading and effects apply to the entire selected real `<img>` or
18
+ `<video>`. They do not isolate or track a face, plate, address, or other
19
+ region. For region-only work, first create a separate cropped/masked media
20
+ layer or use an external segmentation/tracking tool; never imply that a
21
+ whole-media Blur or Pixelate performed region isolation.
22
+ - The realtime treatment path is Rec.709/SDR. Do not silently process HDR, HLG,
23
+ PQ, or camera LOG sources through it.
24
+
25
+ ## Classify the request
26
+
27
+ Choose the smallest lane that satisfies the request before choosing a recipe
28
+ or assembling a custom treatment:
29
+
30
+ | User intent | Lane |
31
+ | --------------------------------------------------- | ------------------------------------------ |
32
+ | too dark, flat, too warm, too many shadows | correction |
33
+ | shape shadows/highlights or selected colors | wheels, curves, or HSL secondary |
34
+ | polished, premium, warm, cinematic, fit the topic | preset or custom treatment |
35
+ | retro, print, ASCII, glitch, camcorder | shader effect or effect-bearing preset |
36
+ | obscure the whole selected media | privacy Blur or Pixelate |
37
+ | hide one face, plate, address, or screen region | separate crop/mask/asset or external tool |
38
+ | draw attention to media without changing its pixels | framing, motion, or optional overlay |
39
+ | reveal, focus, depixelate, fade the treatment | finite seek-safe treatment keyframes |
40
+ | REC HUD, light leak, flash, freeze-frame cutout | Registry overlay plus any justified pixels |
41
+
42
+ The lane identifies the primary reason for the change; it is not a one-feature
43
+ limit. A final treatment may combine correction, a preset, finishing, multiple
44
+ compatible shader effects, finite keyframed values, and optional overlays when
45
+ the inspected media and user intent justify the complete combination. Keep one
46
+ primary intent as the creative anchor so the result remains coherent and
47
+ deterministic.
48
+
49
+ Do not add a stylized Effect when correction solves the complaint. Do not
50
+ change color when the request is only temporal, and do not install an overlay
51
+ when the selected media alone communicates the result.
52
+
53
+ Match strength to intent. When the user explicitly names a bold look such as
54
+ VHS, glitch, ASCII, halftone, camcorder, print, or engraving, apply its
55
+ signature effects strongly enough to read unmistakably. The guard against
56
+ unrequested additions does not mean under-delivering an effect the user asked
57
+ for. Correction and polish stay restrained; named stylization must be obvious
58
+ in the after-frame.
59
+
60
+ ### Translate vague feedback conservatively
61
+
62
+ | User feedback | First action | Add only when the frames justify it | Never infer |
63
+ | ------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------- |
64
+ | too many shadows and a bit boring | lift shadows/protect highlights, then compare one restrained source-appropriate preset | mild contrast or vibrance | retro texture, HUD, or palette effect |
65
+ | make the product footage feel premium | protect product color and labels, compare Product Polish | restrained vignette on lifestyle footage | a cinematic LUT or crushed blacks |
66
+ | make this reveal cooler | preserve color and animate one supported effect or treatment value | a short owned overlay block | unrelated whole-clip styling |
67
+ | make it feel like an old home video | compare 8mm and VHS language against the source | finite weave/flicker or justified HUD | that every old-video request means VHS |
68
+ | hide this face | explain that realtime effects are whole-media; isolate the region first or use an external tool | whole-media Blur/Pixelate only when the user accepts that scope | face tracking or masking that was not performed |
69
+ | keep the brand colors exact | leave UI/logo pixels unchanged; use framing and motion | demonstrated exposure-only correction | stylized preset, palette, or LUT |
70
+
71
+ When more than one lane could fit, generate at most two candidates and choose
72
+ from inspected before/after evidence. Ordinary correction or polish starts with
73
+ one candidate; a second candidate is an escalation, not the default. Do not
74
+ stack effects merely to make the answer look more sophisticated.
75
+
76
+ ## Seed or assemble
77
+
78
+ Use the table when a tested recipe directly fits. Read only that recipe
79
+ section. Recipes are optional macros, not a closed list of allowed results.
80
+
81
+ | Intent or source | Recipe heading to read |
82
+ | -------------------------------------------------------- | ------------------------------------------------- |
83
+ | Talking head, interview, presenter, people-focused photo | `Natural Portrait` |
84
+ | Product footage, lifestyle footage, clean social polish | `Product Polish` |
85
+ | Screen capture, dashboard, website, app UI | `UI Fidelity` |
86
+ | Warm memory, restrained nostalgia | `Film Memory` |
87
+ | Creator/UGC handheld camera character | `Creator Camcorder` |
88
+ | Analog tape playback | `VHS Playback` |
89
+ | Small-gauge home-movie character | `8mm Home Movie` |
90
+ | Editorial dots or ink print | `Editorial Halftone` or `Two-Ink Editorial Print` |
91
+ | Monochrome dot/line screen print | `Monochrome Screen Print` |
92
+ | Engraved or hand-hatched illustration | `Engraved Illustration` or `Crosshatched Sketch` |
93
+ | Curved scanlined display | `CRT Display` |
94
+ | Glyph-based art | `Procedural ASCII` |
95
+ | Realtime palette quantization | `Ordered Palette Dither` |
96
+ | Exact historical error diffusion | `Cached Error Diffusion` |
97
+ | Finite warm flare layer | `Organic Light Leak` |
98
+ | Held-frame graphic interruption | `Freeze-Frame Cutout` |
99
+ | Short exposure-flash transition | `Social Flash / Editorial Reveal` |
100
+
101
+ Use `rg -n '^## <heading>$' <SKILL_DIR>/references/media-treatment-recipes.md`,
102
+ then read only from that heading to the next `##`. Do not load the entire
103
+ cookbook for one request.
104
+
105
+ When source intent is unclear, inspect the concise capability overview:
106
+
107
+ ```bash
108
+ hyperframes media-treatment --capabilities --json
109
+ ```
110
+
111
+ It lists the complete surface by family with one-line descriptions. Then load
112
+ only the family, effect, preset, or palette relevant to the inspected source:
113
+
114
+ ```bash
115
+ hyperframes media-treatment --capability <id> --json
116
+ ```
117
+
118
+ The focused result provides legal controls, recommended apply values, render
119
+ cost, palette support, and the exact animation contract when supported. Use
120
+ `--all` only for tooling/tests or a genuinely exhaustive audit. Compose one
121
+ nested payload from these existing parts. Recipes and catalog-built payloads
122
+ use the same renderer and persistence contract.
123
+
124
+ Treat `renderLane: "multipass"` as a cost signal. Blur, Bloom, and Kuwahara are
125
+ bounded but more expensive than single-pass effects; avoid stacking several of
126
+ them across many simultaneous media elements unless the composition needs it,
127
+ then verify playback and a draft render.
128
+ Cost follows treated pixel area as well as element count. More than two
129
+ simultaneously visible full-frame multipass media layers requires a continuous
130
+ playback check on the target machine; simplify or pre-render the stack if it
131
+ drops frames. Do not impose or claim a universal hard cap from one machine.
132
+
133
+ ## Common workflow
134
+
135
+ 1. Confirm the target is a real `<img>` or `<video>` and inspect source color
136
+ metadata.
137
+ 2. For an image, read it once. For video, capture early/middle/late output as
138
+ one labeled sheet and read that one image:
139
+
140
+ ```bash
141
+ hyperframes snapshot <project> --frames 3 --no-end --describe false \
142
+ --output snapshots/treatment-before
143
+ ```
144
+
145
+ Read `snapshots/treatment-before/contact-sheet.jpg`; do not spend separate
146
+ model turns reading each frame unless the sheet exposes a specific problem.
147
+ Do not infer semantics from signal statistics alone.
148
+
149
+ 3. Choose one primary lane. Use one matching recipe as a tested seed, or read
150
+ the overview and one focused capability detail when the request is bespoke.
151
+ A seed may be changed or combined with compatible catalog controls when the
152
+ contact sheet justifies it. Do not invent keys, exceed reported ranges, or
153
+ stack effects without a visual reason. Do not run the generic grade/LUT
154
+ resolver first; it adds irrelevant candidates and may download an unused
155
+ LUT. Use `media-treatment --selector "#hero" --analyze --json` only when
156
+ correction needs measured signal evidence.
157
+ 4. Persist pixel settings with `hyperframes media-treatment`; it validates and
158
+ merges a patch into the existing nested `data-color-grading` contract. Use registered
159
+ GSAP only for supported animated values and Registry overlay blocks only
160
+ for authored dressing.
161
+ ```bash
162
+ hyperframes media-treatment --selector "<unique selector>" \
163
+ --grading '<nested JSON patch>' --apply --json
164
+ ```
165
+ For a temporal reveal, use the focused capability result's `animation`
166
+ contract. If it is `null`, the capability is static. Author the starting CSS
167
+ property inline on the real media element and return temporary treatment
168
+ values to neutral so the finished shot preserves its existing pixels.
169
+ Prefer that bounded media animation first; if an overlay is justified,
170
+ install the owned Registry block instead of recreating it with bespoke
171
+ overlay markup.
172
+ For correction and ordinary polish, keep those values as editable
173
+ preset/adjustment JSON; do not generate a LUT for controls the realtime shader
174
+ already owns.
175
+ Use the canonical `details`/`effects` fields for vignette, grain, blur,
176
+ pixelate, and related primitives. Do not duplicate them with CSS filters,
177
+ SVG turbulence, opacity, or decorative DOM overlays.
178
+ 5. When the treatment calls for an overlay, install that named block with
179
+ `hyperframes add <name> --dir <project> --no-clipboard --json`, inspect its
180
+ returned `data-composition-src` host, and place it once using the block's
181
+ timing contract. Check for the installed file and host element
182
+ ID before insertion; never duplicate an existing overlay block. This is one
183
+ treatment workflow: do not make the user discover Catalog or separately ask
184
+ for the recipe's justified overlay.
185
+ 6. For ordinary correction/polish, capture one after-sheet with the same three
186
+ timestamps under `snapshots/treatment-after`, compare it to the before-sheet,
187
+ and stop when the result is clearly better. Run the normal project check;
188
+ do not encode a draft solely to prove a static correction.
189
+ 7. Escalate only when evidence requires it. Read individual frames to diagnose a
190
+ specific visual problem. Preview and render moving evidence when judging
191
+ treatment keyframes, glitch/tape motion, overlays, playback smoothness, LUT
192
+ timing, or any other temporal behavior. HDR/LOG, privacy, and brand-sensitive
193
+ work also require the existing explicit caveats and stronger verification.
194
+ If the treatment is not clearly better, keep the source unchanged.
195
+ 8. Report the selected media, primary intent, recipe seed if used, final
196
+ composed controls, optional overlays, and the frames/render that were
197
+ actually checked. Do not report visual quality from command success alone.
198
+
199
+ `media-treatment --analyze` provides deterministic clipping and signal
200
+ evidence for local composition media, not subject recognition or automatic
201
+ taste. It reports HDR/metadata caveats and a bounded primary-correction patch;
202
+ it does not invent wheels, curves, or HSL selections from statistics.
@@ -0,0 +1,37 @@
1
+ # User memory — preferences and recipes
2
+
3
+ ## Preferences — remembered defaults
4
+
5
+ The lightweight tier of user memory: confirmed brief answers (destination, aspect, language, flow, storyboard, voice, style preset) persisted on the same two-tier split as assets — project `.media/preferences.json` (committed, the team inherits it) and personal `~/.media/preferences.json`. A value earns the personal tier by being confirmed in **two different projects**, so a one-off choice never pollutes the global defaults.
6
+
7
+ ```bash
8
+ node <SKILL_DIR>/scripts/prefs.mjs get --hyperframes . --json # merged view (project overrides user)
9
+ node <SKILL_DIR>/scripts/prefs.mjs record --hyperframes . --key destination --value x-feed
10
+ node <SKILL_DIR>/scripts/prefs.mjs record --hyperframes . --key style_preset --value pin-and-paper --workflow faceless-explainer
11
+ ```
12
+
13
+ Only what the user actually confirmed gets recorded — never an inferred or defaulted value. How workflows consume these (a remembered value becomes the recommended default with a receipt, and never skips a question) is the brief contract's rule: `hyperframes/references/brief-contract.md` § 2, Remembered defaults.
14
+
15
+ ## Recipes — frozen video bundles
16
+
17
+ The heavyweight tier of user memory: one approved run frozen as a named, versioned bundle — `frame.md`, the storyboard skeleton (structure kept, content blanked to per-frame fill-ins), the brief skeleton (from `BRIEF.md` when the project has one — reusable frontmatter kept, run-shape and prose blanked), and the confirmed brief values. Same two tiers: project `.media/recipes/<name>/` (committed) and `~/.media/recipes/<name>/` (a freeze is already a confirmed bundle, so it promotes immediately — no two-project rule). Re-freezing a name bumps `version` and archives the old folder as `<name>@v<N>`.
18
+
19
+ ```bash
20
+ node <SKILL_DIR>/scripts/recipe.mjs freeze --hyperframes . --name weekly-promo # workflow read from BRIEF.md (--workflow only for briefless projects)
21
+ node <SKILL_DIR>/scripts/recipe.mjs list --hyperframes . --workflow product-launch-video
22
+ node <SKILL_DIR>/scripts/recipe.mjs use --hyperframes . --name weekly-promo # also: resolve.mjs --type recipe --entity weekly-promo
23
+ ```
24
+
25
+ The freeze is offered once after the final approval (`hyperframes/references/review-loop.md` § 4), and the intent layer (`/hyperframes` → `references/intent-interview.md`, step 1) checks for a match before its first question. Adopting a recipe fills the brief, the design spec, and the storyboard skeleton — and unlike preferences it may skip the questions it answers: the bundle was approved as a whole, and adoption itself is the question.
26
+
27
+ ## Files
28
+
29
+ - `.media/manifest.jsonl`: machine SSOT, one JSON record per line. Records are keyed by path and only appended, so
30
+ the last record for a path is the file's record; a file moved or replaced by hand keeps (or loses) its record by path.
31
+ - `.media/index.md`: agent-readable table (id, type, dur, dims, path, description)
32
+ - `.media/preferences.json`: the project's remembered defaults (committed)
33
+ - `~/.media/`: global cross-project reuse cache (content-addressed, SHA-256)
34
+ - `~/.media/preferences.json`: personal remembered defaults (promoted after two projects)
35
+ - `.media/recipes/<name>/`: frozen video bundles — recipe.json + frame.md + storyboard skeleton (committed)
36
+ - `~/.media/recipes/<name>/`: personal recipe tier (promoted on freeze)
37
+ - `~/.media/misses.jsonl`: local-only resolve misses, including intent text for `--stats`
@@ -0,0 +1,61 @@
1
+ # Ownership matrix, usage stats, telemetry, privacy
2
+
3
+ Maintainer-facing reference. Nothing here changes how you resolve or operate on media.
4
+
5
+ ## What it owns (the gaps HyperFrames leaves)
6
+
7
+ HyperFrames owns media _playback_; media-use owns everything else. Each row is enforced by `scripts/lib/coverage.test.mjs` so the claim can't rot.
8
+
9
+ | HyperFrames gap | media-use owns it via |
10
+ | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | Audio-only, no image/icon | `resolve --type image\|icon` (heygen asset search) |
12
+ | No third-party brand logos | `resolve --type logo` (theSVG → GitHub org avatar → domain favicon) |
13
+ | No voice / audio generation | `resolve --type voice` (HeyGen TTS free-usage path; optional local Kokoro) + the audio engine (`audio/scripts/audio.mjs`) |
14
+ | Scattered/duplicated audio engine | one consolidated engine under `audio/` (hyperframes-media retired) |
15
+ | No agent media-ops (cut/reframe/transform) | `references/operations.md` + `resolve --from` to register outputs |
16
+ | No transcript-driven cutting | `scripts/transcript-cut.mjs` compiles word-timestamp edits into cut lists |
17
+ | No auto-duck / publish loudness | `scripts/audio-duck.mjs` + `references/operations.md` loudnorm/sidechain recipes |
18
+ | No cross-project memory | global content-addressed cache + auto-promote (`~/.media`) |
19
+ | Grade recipes and LUT freezing | `resolve --type grade` emits a paste-ready recipe and `resolve --type lut` freezes validated `.cube` files; direct element analysis/authoring lives in `hyperframes media-treatment` |
20
+ | No image generation | RAM-graded local mflux (FLUX) via `scripts/lib/mflux-provider.mjs`, codex `image_gen` upsell (`scripts/lib/codex-provider.mjs`) |
21
+ | No video generation | `resolve --type video` — HeyGen avatar video first (free-usage path, sign-in nudge on auth failure), local LTX fallback (`videogen` in `scripts/lib/local-models.mjs`); image-to-video, photo-avatar, dub/translate remain manual `heygen` CLI recipes (`references/operations.md`) |
22
+ | Weak local-model defaults | HeyGen free-usage path via the `heygen` CLI; local open-source tools only as opt-in alternatives (`scripts/lib/local-run.mjs`) |
23
+
24
+ ## Usage stats
25
+
26
+ Use `resolve --stats` for a local, shareable report over the current project's `.media/` manifest, the global `~/.media/` cache, and local resolve misses. Human output is compact; add `--json` for a single machine-readable object, and `--days N` to window timestamped records.
27
+
28
+ ```bash
29
+ npx hyperframes media-use resolve --stats --project . --days 7
30
+ # media-use stats
31
+ # total resolves: 12
32
+ # misses: 2
33
+ # hit rate: 86%
34
+ ```
35
+
36
+ ## Telemetry
37
+
38
+ `resolve` and the edit tools (transcribe / transcript-cut / audio-duck) send an
39
+ anonymous usage event to PostHog (`scripts/lib/telemetry.mjs`), so we can see
40
+ which capabilities are actually used. It records only the media TYPE, the
41
+ resolution SOURCE, and the winning PROVIDER: never the intent text, file names,
42
+ or paths, and `$ip:null` so no IP is stored. Best-effort and non-blocking (a
43
+ resolve never waits on or fails from telemetry).
44
+
45
+ Opt out with `DO_NOT_TRACK=1` or `HYPERFRAMES_NO_TELEMETRY=1` (also off in CI and
46
+ dev). Same public PostHog project key and opt-outs as the `hyperframes` CLI.
47
+
48
+ HeyGen request tagging: every generating `heygen` call (TTS, avatar video, catalog
49
+ search) carries the allowlisted `X-HeyGen-Client-Source: media-use` header, sourced
50
+ from one shared constant (`HEYGEN_CLIENT_SOURCE_ARGV` in `scripts/lib/heygen-cli.mjs`)
51
+ so a future call site can't silently ship untagged. Read-only discovery calls
52
+ (`voice list`, `avatar list`) are intentionally left untagged.
53
+
54
+ ## Privacy
55
+
56
+ media-use uses the same shared install id as the `hyperframes` CLI/studio
57
+ (`~/.hyperframes/config.json`). When you are signed in to HeyGen, usage is
58
+ linked to your account email, or username when email is unavailable, matching
59
+ the CLI behavior. The events stay coarse: media type, source, provider, and
60
+ small counts only; intent text and paths stay local. Disable telemetry with
61
+ `HYPERFRAMES_NO_TELEMETRY=1` or `DO_NOT_TRACK=1`.
@@ -0,0 +1,327 @@
1
+ # Media operations: agent guidance
2
+
3
+ media-use resolves and remembers assets. For **operating** on them: cutting,
4
+ reframing, stitching, transforming, it does not wrap every action as a bespoke
5
+ command. Instead it points you at the right local tool (decision OP1). Run the
6
+ tool, then register the output with `resolve --from <output> --type <type>` so the
7
+ result lands in the ledger and the global cache like any other asset.
8
+
9
+ All tools below are local and free. ffmpeg is assumed present (it backs the
10
+ engine already).
11
+
12
+ ## Cut / trim: keep a slice
13
+
14
+ ```bash
15
+ ffmpeg -i in.mp4 -ss 00:00:12 -to 00:00:20 -c copy out.mp4 # 0:12–0:20, no re-encode
16
+ ```
17
+
18
+ In-composition trimming usually needs **no new file**: a clip plays a sub-window
19
+ via `data-media-start` + `data-duration` (see hyperframes-core). Only cut a
20
+ physical file when exporting/assembling outside the composition.
21
+
22
+ ## Reframe / crop: change aspect ratio
23
+
24
+ ```bash
25
+ # 16:9 -> 9:16, crop centered
26
+ ffmpeg -i in.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" out.mp4
27
+ ```
28
+
29
+ For a non-destructive crop, set a `clip-path` on the element in the composition
30
+ itself (render-time, source file untouched) instead of re-encoding with ffmpeg.
31
+
32
+ ## Montage / stitch: join clips
33
+
34
+ ```bash
35
+ printf "file '%s'\n" a.mp4 b.mp4 c.mp4 > list.txt
36
+ ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4
37
+ ```
38
+
39
+ ## Silence-cut / highlight: trim dead air, grab the best moment
40
+
41
+ ```bash
42
+ auto-editor in.mp4 --edit audio:threshold=4% -o tight.mp4 # pip install auto-editor
43
+ scenedetect -i in.mp4 detect-adaptive list-scenes # pip install scenedetect
44
+ ```
45
+
46
+ ## Transforms with a quality choice (process)
47
+
48
+ These have a local option AND a higher-quality HeyGen-CLI option. Run the local
49
+ one for free/offline; use the HeyGen CLI when quality matters. Showing the user
50
+ a **side-by-side** (local vs HeyGen) is the honest way to let them choose.
51
+
52
+ | Op | Local (free) | HeyGen CLI (quality) |
53
+ | ------------------ | -------------------------------------------------- | --------------------------- |
54
+ | Background removal | `hyperframes remove-background in.png` (u2net) | `heygen background-removal` |
55
+ | Upscale | `realesrgan-ncnn-vulkan -i in.png -o out.png -s 4` | n/a |
56
+ | Lipsync (dub) | n/a | `heygen lipsync` |
57
+ | Translate | n/a | `heygen video-translate` |
58
+
59
+ After any op: `resolve --from out.ext --type <type>` to register the derived
60
+ asset (it records provenance and auto-promotes to the global cache).
61
+
62
+ > ponytail: media-use doesn't re-wrap ffmpeg/heygen here, that's deliberate
63
+ > (OP1). The value it adds is the ledger + global reuse on the _output_, via
64
+ > `--from`. Add a thin `process` verb only if agents repeatedly fumble these
65
+ > recipes.
66
+
67
+ ## Exact error-diffusion dither
68
+
69
+ Use the local processor when the requested look specifically calls for
70
+ Floyd-Steinberg, Atkinson/Macintosh, Jarvis-Judice-Ninke, Stucki, Burkes, or a
71
+ Sierra variant. These are sequential error-diffusion algorithms, not the
72
+ realtime Bayer `effects.dither` shader.
73
+
74
+ ```bash
75
+ node <SKILL_DIR>/scripts/dither.mjs \
76
+ --input source.mp4 \
77
+ --out source.atkinson.mp4 \
78
+ --algorithm atkinson \
79
+ --palette '#0f380f,#306230,#8bac0f,#9bbc0f' \
80
+ --point-size 3
81
+
82
+ npx hyperframes media-use resolve \
83
+ --from source.atkinson.mp4 --type video --project .
84
+ ```
85
+
86
+ Available algorithms: `floyd-steinberg`, `atkinson`,
87
+ `jarvis-judice-ninke`, `stucki`, `burkes`, `sierra`, `sierra-lite`, and
88
+ `two-row-sierra`. The default is balanced Floyd-Steinberg with a black/white
89
+ palette. Palettes contain 2-6 `#rrggbb` colors in authored dark-to-light order;
90
+ reversing the order intentionally inverts the mapping. `--point-size` controls
91
+ 1-20px blocks; `--brightness` and `--contrast` accept 0.5-2; `--detail` accepts
92
+ 0.1-1.
93
+
94
+ The processor supports ordinary SDR images and MP4 video, preserves video
95
+ audio, and emits BT.709 MP4. It rejects tagged PQ/HLG input rather than silently
96
+ tone-mapping it. To animate the transformation, keep the original and processed
97
+ files as two real media layers and use the seek-safe GSAP timeline to reveal or
98
+ crossfade between them. Use the realtime Bayer shader instead when the dither
99
+ amount itself must animate continuously.
100
+
101
+ ## Transcription (default: Parakeet, better than whisper.cpp)
102
+
103
+ `transcribe.mjs` is the default local transcription path. It runs **NVIDIA
104
+ Parakeet-TDT via parakeet-mlx**, which beats whisper.cpp on the Open ASR
105
+ Leaderboard (avg WER ~6.05% vs 7.44%; on NOISY audio 4.73% vs 5.96%, where
106
+ whisper-large-v3 hallucinated to 308% WER on meetings) and is 5-10x faster.
107
+ It emits `{ text, words:[{text,start,end}] }` with word timestamps (merged from
108
+ Parakeet's sub-word tokens), feeding transcript-cut, captions, and the audio
109
+ engine directly.
110
+
111
+ ```bash
112
+ # install once: uv venv ~/.venvs/parakeet && VIRTUAL_ENV=~/.venvs/parakeet uv pip install parakeet-mlx
113
+ node <SKILL_DIR>/scripts/transcribe.mjs --input talk.mp4 --out talk.transcribe.json
114
+
115
+ # the hyperframes CLI runs Parakeet on macOS, Linux and Windows once it is installed:
116
+ npx hyperframes models install parakeet # once, ~640 MB, ask the user first
117
+ npx hyperframes transcribe talk.mp4 --engine parakeet # or --engine auto (default)
118
+ ```
119
+
120
+ VERIFIED on 24GB: accurate, ~3s (cached) for 8s audio. Parakeet covers 25
121
+ European languages, English included. For other languages, or when parakeet-mlx is not
122
+ installed, transcribe.mjs falls back to `hyperframes transcribe`, which uses the
123
+ CLI's Parakeet when `models install parakeet` has run and whisper.cpp (99
124
+ languages) otherwise. `--engine parakeet|whisper` forces one. (Cohere
125
+ Transcribe tops the leaderboard on paper but its mlx-audio quants produced
126
+ garbage and ran 40-70x slower on a Mac in testing, so it is not wired in.)
127
+
128
+ ## Text-based editing (transcript cut)
129
+
130
+ `transcript-cut.mjs` is a compiler, not a wrapper: it turns word timestamps and
131
+ agent cut decisions into exact kept segments. It is provided even though the rest
132
+ of this file is guidance-only.
133
+
134
+ ```bash
135
+ node <SKILL_DIR>/scripts/transcript-cut.mjs \
136
+ --input talk.mp4 \
137
+ --transcript talk.transcribe.json \
138
+ --remove "12.41-15.02,88.3-91.7" \
139
+ --remove-fillers "um,uh,like" \
140
+ --cut-silence 0.8 \
141
+ --out talk.cut.mp4
142
+
143
+ resolve --from talk.cut.mp4 --type video
144
+ ```
145
+
146
+ Use `--plan` first when you want to inspect the kept segment JSON before encoding.
147
+
148
+ ## Ducking (declare in-composition / bake for export)
149
+
150
+ B1, declare ducking in the composition. `audio-duck.mjs` emits a volume lane
151
+ as a `data-automation` attribute. Add it to the background `<audio>` element;
152
+ the source file stays untouched. Lane times are clip-local, so pass
153
+ `--composition` to let the script subtract the element's `data-start`.
154
+
155
+ ```bash
156
+ node <SKILL_DIR>/scripts/audio-duck.mjs \
157
+ --meta audio_meta.json \
158
+ --target "#bgm" \
159
+ --composition index.html
160
+ ```
161
+
162
+ ```html
163
+ <!-- auto-duck: #bgm under narration; add to its <audio> element -->
164
+ data-automation='{"version":1,"lanes":[{"target":"volume","points":[{"t":0,"v":0.6},{"t":3.42,"v":0.6},{"t":3.57,"v":0.15},{"t":9.87,"v":0.15},{"t":10.27,"v":0.6}]}]}'
165
+ ```
166
+
167
+ B2, bake ducking only for exported or standalone files.
168
+
169
+ ```bash
170
+ ffmpeg -i bgm.mp3 -i voice.wav \
171
+ -filter_complex "[0][1]sidechaincompress=threshold=0.03:ratio=8:attack=200:release=400[ducked]" \
172
+ -map "[ducked]" bgm.ducked.wav
173
+ ```
174
+
175
+ Declare inside compositions. Bake only for assets leaving the hyperframes
176
+ pipeline.
177
+
178
+ ## Publish loudness
179
+
180
+ Two-pass `loudnorm` measures first, then applies the measured values with the
181
+ target LUFS baked in.
182
+
183
+ Socials target, -14 LUFS:
184
+
185
+ ```bash
186
+ ffmpeg -i mix.wav \
187
+ -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json \
188
+ -f null -
189
+
190
+ ffmpeg -i mix.wav \
191
+ -af loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:offset=<target_offset>:linear=true:print_format=summary \
192
+ mix.social.wav
193
+ ```
194
+
195
+ Podcast target, -16 LUFS:
196
+
197
+ ```bash
198
+ ffmpeg -i mix.wav \
199
+ -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json \
200
+ -f null -
201
+
202
+ ffmpeg -i mix.wav \
203
+ -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:offset=<target_offset>:linear=true:print_format=summary \
204
+ mix.podcast.wav
205
+ ```
206
+
207
+ ## Generate: images (local first, cloud upsell)
208
+
209
+ `resolve --type image` retrieves from the HeyGen catalog first; on a miss it
210
+ GENERATES. Two paths, best-for-the-machine picked automatically:
211
+
212
+ 1. **Local (default, free, private): mflux** (FLUX-on-MLX). `resolve` spec-checks
213
+ AVAILABLE RAM and runs the best FLUX-class model that fits, via
214
+ `scripts/lib/local-models.mjs` (`imagegen` ladder) + `mflux-provider.mjs`.
215
+ The RAM ladder (agent sees it via `describeModelLadder("imagegen", specs)`):
216
+
217
+ | Tier | Model | Needs (available RAM) | Notes |
218
+ | ------ | -------------------- | --------------------- | ----------------------------------- |
219
+ | medium | FLUX.1 schnell int4 | ~8GB (`--low-ram`) | ~20s/512px on 24GB. VERIFIED. Fast. |
220
+ | large | FLUX.2 Klein 4B int4 | ~32GB | higher quality, full-resident |
221
+ | xlarge | Qwen-Image | ~64GB | top quality, 64GB+ Macs only |
222
+
223
+ Gotchas baked into the table: the official FLUX repos are HF-gated, so it
224
+ points at non-gated community 4-bit re-uploads; and `--low-ram` is MANDATORY
225
+ at the medium tier (without it a 768x512 run swap-thrashed to 90 minutes on
226
+ 24GB; with it, 20 seconds).
227
+
228
+ 2. **Cloud upsell (better quality): the `codex` CLI** `image_gen` tool, on the
229
+ user's ChatGPT subscription (codex owns auth, no key here, no per-call
230
+ charge). It is the automatic fallback when no local model fits AND the
231
+ explicit "make it better" choice on any machine. Users who just want codex
232
+ can ask for it directly. Verified: prompt -> raster -> frozen + ledgered.
233
+
234
+ `--local-only` keeps mflux (once cached) and skips codex (network).
235
+
236
+ ## Generate: video (`resolve --type video`, HeyGen avatar first)
237
+
238
+ `resolve --type video "<intent>"` is the default path. It generates a
239
+ script-driven HeyGen avatar video first (the free-usage allowance — OAuth
240
+ sessions ride the web-plan free avatar-video quota where eligible, API keys
241
+ follow normal API billing), falling back to local generative LTX only when
242
+ HeyGen is unavailable, uncredentialed, or `--local-only` is passed. The two
243
+ are non-substitutable outputs (a real presenter vs. a generic generative
244
+ clip), so treat the fallback as "HeyGen wasn't reachable," not "upgrade the
245
+ quality":
246
+
247
+ - **HeyGen avatar video (default, free for new API users):**
248
+ `heygenVideoGenerate` (`scripts/lib/heygen-video-provider.mjs`) shells the
249
+ `heygen` CLI — never the raw API — auto-picking a public avatar and a
250
+ starfish voice (override with `--avatar-id`/`--voice-id`, threaded through
251
+ as `ctx.avatarId`/`ctx.voiceId`). If the CLI reports `not_authenticated`,
252
+ the provider prints an onboarding recommendation (avatar video is free for
253
+ new API users — sign in) to stderr and falls through to LTX instead of
254
+ hard-failing.
255
+ - **Local fallback: LTX 2.3 on MLX** via `dgrauet/ltx-2-mlx`, the `videogen`
256
+ ladder in `local-models.mjs` (`ltx-video-provider.mjs`). Generative clips
257
+ (t2v), spec-gated to RAM. Verified on 24GB: 512x320 x 33f with audio.
258
+
259
+ Every generating `heygen` call from media-use — TTS, avatar video, and
260
+ catalog search — sends the allowlisted `X-HeyGen-Client-Source: media-use`
261
+ header (persistent flag, works on every subcommand) via the shared
262
+ `HEYGEN_CLIENT_SOURCE_ARGV` constant (`scripts/lib/heygen-cli.mjs`), so usage
263
+ tags correctly in billing/resource meta and shows up in the API dashboards.
264
+ Read-only discovery (`avatar list`, `voice list`) doesn't need it.
265
+
266
+ For structured bodies `resolve --type video` doesn't expose yet (a specific
267
+ `avatar_id`/`voice_id` combination beyond the ctx overrides, or a
268
+ pre-recorded `audio_url` instead of a script), the raw `heygen video create`
269
+ recipe below remains the escape hatch:
270
+
271
+ ```bash
272
+ # discover an avatar + a starfish voice, then create + wait
273
+ heygen avatar list --ownership public --limit 5
274
+ heygen voice list --engine starfish --limit 5
275
+ heygen video create --headers "X-HeyGen-Client-Source: media-use" --wait -d '{
276
+ "type": "avatar",
277
+ "avatar_id": "<avatar-id>",
278
+ "script": "Your narration here.",
279
+ "voice_id": "<voice-id>"
280
+ }'
281
+ ```
282
+
283
+ Avatar videos are deterministic + script-driven (lip-sync from a script or a
284
+ pre-recorded `audio_url`), distinct from the generative LTX clips. After a
285
+ manual recipe renders, `resolve --from <downloaded.mp4> --type video` to
286
+ ledger it (not needed when generating via `resolve --type video` directly —
287
+ that already ledgers the result).
288
+
289
+ ### Image-to-video (animate any still into a talking clip)
290
+
291
+ Not wired into `resolve --type video` (deferred — the `avatar` type covers
292
+ the default script-driven case). `heygen video create` takes the raw
293
+ `POST /v3/videos` body, so switching `type`
294
+ from `avatar` to `image` animates **any image of a person** into a lip-synced
295
+ talking video, with no avatar/photo-avatar creation step first. Point `image` at a
296
+ public URL or an uploaded `asset_id`, and drive speech with a `script`+`voice_id`
297
+ or a pre-recorded `audio_url`:
298
+
299
+ ```bash
300
+ heygen video create --headers "X-HeyGen-Client-Source: media-use" --wait -d '{
301
+ "type": "image",
302
+ "image": { "type": "url", "url": "https://example.com/person.jpg" },
303
+ "script": "Your narration here.",
304
+ "voice_id": "<voice-id>"
305
+ }'
306
+ ```
307
+
308
+ Common optional fields: `title`, `resolution` (`4k`/`1080p`/`720p`),
309
+ `aspect_ratio`, `remove_background`, `background`, `voice_settings`,
310
+ `motion_prompt` + `expressiveness` (photo-avatar animation), and
311
+ `callback_url`/`callback_id` for webhooks. Don't hardcode these from memory: the
312
+ CLI self-documents the full, current body with
313
+ `heygen video create --request-schema` (a discriminated union keyed on `type`),
314
+ so read the schema rather than trusting a stale field list. For a still you'll
315
+ reuse across many scripts, create a reusable **Photo Avatar** once instead
316
+ (`heygen avatar create`). Ledger the result with
317
+ `resolve --from <downloaded.mp4> --type video`. Docs:
318
+ <https://developers.heygen.com/image-to-video>.
319
+
320
+ ## HEVC / H.265 sources
321
+
322
+ HEVC/H.265 sources need no conversion for **render** (FFmpeg pre-decodes all
323
+ input video) or for **preview** (auto-proxy transcodes and caches an H.264
324
+ copy on first use, disable with `--no-proxy` or `media.autoProxy: false` in
325
+ hyperframes.json). A manual H.264 proxy via `ffmpeg -i in.mp4 -c:v libx264
326
+ -crf 18 proxy.mp4`, registered with `resolve --from`, remains available for
327
+ edge cases (e.g. auto-proxy disabled, or ffmpeg unavailable at preview time).