@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,929 @@
1
+ # Media treatment recipes
2
+
3
+ These are optional tested seeds, not the complete capability surface. Read the
4
+ shared policy and choose one relevant section through `media-treatments.md`.
5
+ Agents may modify or combine a seed with compatible canonical controls after
6
+ inspecting the media, or assemble a bespoke payload from
7
+ `hyperframes media-treatment --capabilities --json` when no seed fits.
8
+
9
+ ## Natural Portrait
10
+
11
+ Use for a talking head, interview, presenter, or people-focused photo whose
12
+ intended result is natural, polished, and restrained.
13
+
14
+ Do not use when the face is incidental or tiny, the source is intentionally
15
+ neon/monochrome/strongly stylized, or the requested result is beauty retouching.
16
+ This treatment changes the whole frame; it is not a face mask or skin-smoothing
17
+ effect.
18
+
19
+ Inspect face exposure, highlight retention, shadow detail, white balance, and
20
+ whether the existing look is intentional. Signalstats do not detect faces or
21
+ creative intent.
22
+
23
+ ### Base payload
24
+
25
+ Start here, then tune only when the sampled frames justify it:
26
+
27
+ ```json
28
+ { "preset": "skin-soft", "intensity": 0.6 }
29
+ ```
30
+
31
+ `skin-soft` is a global tonal/color preset whose vibrance math is reduced for
32
+ skin-like colors. It does not blur, retouch, segment, or track a face.
33
+
34
+ ### Bounded tuning
35
+
36
+ Adjustment values are absolute values in the final payload, not deltas added to
37
+ the preset. Keep changes inside these conservative ranges unless the user asks
38
+ for a stylized result:
39
+
40
+ | Property | Natural Portrait range |
41
+ | ----------- | ---------------------- |
42
+ | intensity | 0.45 to 0.75 |
43
+ | exposure | -0.06 to 0.14 |
44
+ | contrast | -0.05 to 0.08 |
45
+ | highlights | -0.18 to -0.04 |
46
+ | shadows | 0.04 to 0.18 |
47
+ | whites | -0.10 to 0.04 |
48
+ | blacks | -0.06 to 0.06 |
49
+ | temperature | -0.05 to 0.10 |
50
+ | tint | -0.03 to 0.05 |
51
+ | vibrance | 0 to 0.06 |
52
+ | saturation | -0.04 to 0.06 |
53
+
54
+ Leave grain, blur, and pixelate at zero. A vignette is optional at `0` to
55
+ `0.05` only when it improves subject focus without looking like an effect.
56
+
57
+ Manual controls must stay inside their schema section; they are never
58
+ top-level keys. A tuned Natural Portrait payload looks like this:
59
+
60
+ ```json
61
+ {
62
+ "preset": "skin-soft",
63
+ "intensity": 0.58,
64
+ "adjust": {
65
+ "highlights": -0.08,
66
+ "shadows": 0.08,
67
+ "temperature": 0.02,
68
+ "vibrance": 0.02
69
+ },
70
+ "details": { "vignette": 0.03 }
71
+ }
72
+ ```
73
+
74
+ Use the same nested shape in `grade-compare` candidate files. `adjust` owns
75
+ tonal/color controls, `details` owns vignette/grain, and `effects` owns blur,
76
+ pixelate, chroma bleed, and the advanced treatment primitives below.
77
+
78
+ During the common comparison, reject any result that makes skin implausible,
79
+ loses highlight detail, flattens or desaturates dark skin, or casts clothing and
80
+ background colors accidentally.
81
+
82
+ ## Product Polish
83
+
84
+ Use for photographed or filmed physical products when the goal is clean,
85
+ accurate, dimensional presentation. Protect product color, material texture,
86
+ label readability, specular highlights, and intentional lighting.
87
+
88
+ Do not use this treatment for literal app/site screenshots or screen captures;
89
+ follow UI Fidelity below. Do not neutralize a lifestyle scene's deliberate
90
+ ambient color, and do not infer exact brand-color correction without a neutral
91
+ reference or known product color.
92
+
93
+ Inspect the product separately from its background. Check white balance, label
94
+ legibility, surface texture, highlight clipping, shadow detail, white point,
95
+ and black point. Statistics cannot identify a white package, metallic
96
+ highlight, amber glass, or intentional warm light.
97
+
98
+ ### Base payload
99
+
100
+ Compare this restrained correction against the untouched source:
101
+
102
+ ```json
103
+ {
104
+ "intensity": 0.7,
105
+ "adjust": {
106
+ "exposure": 0.01,
107
+ "contrast": 0.06,
108
+ "highlights": -0.1,
109
+ "shadows": 0.04,
110
+ "whites": 0.02,
111
+ "blacks": -0.03,
112
+ "vibrance": 0.03,
113
+ "saturation": 0.02
114
+ }
115
+ }
116
+ ```
117
+
118
+ This is a comparison starting point, not an instruction to change an already
119
+ finished source. If the original has accurate color, clean endpoints, and good
120
+ texture, leave the pixels unchanged and polish through framing or motion.
121
+
122
+ ### Bounded tuning
123
+
124
+ | Property | Product Polish range |
125
+ | ----------- | -------------------- |
126
+ | intensity | 0.45 to 0.8 |
127
+ | exposure | -0.08 to 0.1 |
128
+ | contrast | 0 to 0.1 |
129
+ | highlights | -0.16 to 0 |
130
+ | shadows | 0 to 0.12 |
131
+ | whites | -0.08 to 0.05 |
132
+ | blacks | -0.06 to 0.04 |
133
+ | temperature | -0.05 to 0.05 |
134
+ | tint | -0.03 to 0.03 |
135
+ | vibrance | 0 to 0.06 |
136
+ | saturation | -0.04 to 0.05 |
137
+
138
+ Temperature and tint stay at zero unless the frames show a plausible cast.
139
+ Leave grain, vignette, blur, and pixelate at zero for catalog/e-commerce media.
140
+ For a lifestyle product shot, a vignette up to `0.04` is acceptable only when
141
+ it improves focus without changing the product itself.
142
+
143
+ During the common comparison, reject any result that clips white packaging,
144
+ muddies black products, shifts a known brand color, hides texture, or makes
145
+ labels harder to read. Report when preserving the original was the deliberate
146
+ decision.
147
+
148
+ ## UI Fidelity
149
+
150
+ Use for literal app, website, dashboard, terminal, slide, or screen-recording
151
+ pixels whose colors and readability are part of the product being shown.
152
+
153
+ The default payload is **none**: do not add `data-color-grading`. Global color
154
+ changes affect brand colors, status colors, charts, screenshots, and tiny text
155
+ together, so even a tasteful photographic look can make the demonstration less
156
+ truthful.
157
+
158
+ Polish UI footage with crop, scale, pacing, cursor emphasis, surrounding DOM
159
+ overlays, or seek-safe motion outside the captured pixels. If the user
160
+ explicitly asks for a stylized UI look, preview it against the original and
161
+ state that exact UI color is no longer preserved. If a camera filmed a screen,
162
+ correct only a demonstrated capture cast or exposure issue and still verify
163
+ text and brand colors across representative frames.
164
+
165
+ ## Film Memory
166
+
167
+ Use when the story explicitly calls for a warm memory, restrained flashback,
168
+ personal archive, or film-like recollection. This is not the default meaning of
169
+ "cinematic", and it is not scanned-film-stock emulation.
170
+
171
+ Do not use for literal UI, product catalog media, technical demonstrations, or
172
+ footage whose accurate current-day color is important. Use a separate camcorder
173
+ treatment for VHS/REC language. Do not add dust, scratches, light leaks, film
174
+ burns, or halation unless an owned component is available and the requested
175
+ story actually benefits from it.
176
+
177
+ Check that the source has enough highlight and shadow detail to tolerate a
178
+ faded treatment, and confirm nostalgia or temporal separation belongs in the
179
+ story. Compare the full moving treatment, not only a still preset card.
180
+
181
+ ### Static pixel base
182
+
183
+ Start with this owned shader recipe:
184
+
185
+ ```json
186
+ {
187
+ "preset": "vintage-wash",
188
+ "intensity": 0.6,
189
+ "details": {
190
+ "vignette": 0.12,
191
+ "grain": 0.12,
192
+ "grainSize": 0.2,
193
+ "grainRoughness": 0.6
194
+ }
195
+ }
196
+ ```
197
+
198
+ Keep the static values inside these ranges:
199
+
200
+ | Property | Film Memory range |
201
+ | -------------- | ----------------- |
202
+ | intensity | 0.5 to 0.75 |
203
+ | vignette | 0.08 to 0.16 |
204
+ | grain | 0.08 to 0.16 |
205
+ | grainSize | 0.16 to 0.24 |
206
+ | grainRoughness | 0.5 to 0.7 |
207
+
208
+ The stronger end can flatten dark skin, black clothing, or already-faded
209
+ footage. Compare against the source and lower strength when it does.
210
+
211
+ ### Temporal character
212
+
213
+ Use the existing registered paused GSAP timeline on the same media element:
214
+
215
+ - author `--hf-color-grading-exposure: 0` in the media element's inline
216
+ `style`;
217
+ - move it through a finite irregular sequence within `-0.03` to `0.03`, using
218
+ gentle `sine.inOut` segments around `0.45` to `0.8` seconds;
219
+ - for gate weave, keep `x`/`y` within `0.15%` of the shorter composition edge,
220
+ rotation within `0.03` degrees, and scale between `1.005` and `1.01` to
221
+ protect the frame edges;
222
+ - return close to the starting exposure and transform at the treatment end.
223
+
224
+ Do not use randomness, infinite CSS keyframes, timers, or `onUpdate`. Flicker
225
+ is a gentle exposure pulse, not a flash. Weave is slight mechanical drift, not
226
+ handheld shake.
227
+
228
+ Also run focused keyframe diagnostics and seek directly to the final-minus-frame
229
+ position. Reject brightness pumping, distracting drift, clipped edges, or
230
+ skin/detail loss. Report the motion ranges and describe this as an HF
231
+ film-memory treatment, not camera-stock emulation. If motion reads as an effect
232
+ before it reads as a memory, reduce or remove it.
233
+
234
+ ## Creator Camcorder
235
+
236
+ Use when the story explicitly calls for a creator-camera recording, consumer
237
+ camcorder memory, or restrained digital-video character. This treatment is a
238
+ modern camcorder language, not VHS restoration, CRT simulation, surveillance,
239
+ or a promise to reproduce a specific camera model.
240
+
241
+ Do not apply it to literal UI, product catalog media, tiny media tiles, or
242
+ already compressed footage that has distracting color bleed. Do not add a REC
243
+ HUD merely because the source contains a person talking; the camera-device
244
+ language must support the story or the user's requested style.
245
+
246
+ Check skin, saturated edges, fine text, source compression, and whether the
247
+ source already has a deliberate camera look. Reject softened chroma that
248
+ damages labels, graphics, or identifying product color. Judge chroma softness
249
+ and grain in motion, not one still.
250
+
251
+ ### Static pixel base
252
+
253
+ Start with the proven shader payload below, then tune only inside the bounded
254
+ ranges when representative frames justify it:
255
+
256
+ ```json
257
+ {
258
+ "intensity": 0.72,
259
+ "adjust": {
260
+ "contrast": 0.08,
261
+ "highlights": -0.05,
262
+ "shadows": 0.02,
263
+ "whites": 0.03,
264
+ "blacks": -0.04,
265
+ "temperature": -0.03,
266
+ "tint": -0.015,
267
+ "vibrance": -0.03,
268
+ "saturation": -0.06
269
+ },
270
+ "details": {
271
+ "vignette": 0.06,
272
+ "grain": 0.08,
273
+ "grainSize": 0.18,
274
+ "grainRoughness": 0.58
275
+ },
276
+ "effects": { "chromaBleed": 0.55 }
277
+ }
278
+ ```
279
+
280
+ | Property | Creator Camcorder range |
281
+ | -------------- | ----------------------- |
282
+ | intensity | 0.55 to 0.8 |
283
+ | contrast | 0.03 to 0.1 |
284
+ | highlights | -0.1 to 0 |
285
+ | shadows | 0 to 0.06 |
286
+ | whites | 0 to 0.05 |
287
+ | blacks | -0.08 to -0.01 |
288
+ | temperature | -0.06 to 0.04 |
289
+ | tint | -0.03 to 0.02 |
290
+ | vibrance | -0.06 to 0.02 |
291
+ | saturation | -0.12 to -0.02 |
292
+ | vignette | 0.03 to 0.1 |
293
+ | grain | 0.04 to 0.12 |
294
+ | grainSize | 0.14 to 0.24 |
295
+ | grainRoughness | 0.45 to 0.7 |
296
+ | chromaBleed | 0.35 to 0.7 |
297
+
298
+ Leave blur and pixelate at zero. Square pixels, scanlines, RGB splitting, and
299
+ tracking noise are different visual languages and are not defaults for this
300
+ treatment.
301
+
302
+ ### Optional camera HUD
303
+
304
+ When the narrative benefits from explicit recording-device language, install
305
+ the Registry overlay block:
306
+
307
+ ```bash
308
+ npx hyperframes add camcorder-hud --no-clipboard
309
+ ```
310
+
311
+ Insert the printed `data-composition-src` host over the intended media range.
312
+ Edit the displayed date/time/mode/counter in
313
+ `compositions/camcorder-hud.html`. The block's paused GSAP timeline derives
314
+ its counter and REC blink from composition time, so play, scrub, and render
315
+ agree. Keep the HUD finite and scoped to the shot.
316
+
317
+ The HUD is an optional authored overlay. The pixel payload remains useful
318
+ without it, and the HUD alone is not evidence that the footage was treated.
319
+
320
+ ### Optional source-to-camera reveal
321
+
322
+ Global grading intensity fades only primary correction and LUT output; it does
323
+ not fade the independent camcorder effects. For a visible source-to-camera
324
+ mode change, use two synchronized media layers and a finite opacity crossfade
325
+ from untreated to treated footage. Fade the HUD in on that same paused GSAP
326
+ timeline. Do not animate shader state with callbacks or an independent clock.
327
+
328
+ Also verify HUD placement and framing in each aspect ratio the project supports.
329
+ Report whether the HUD was used and describe this as an HF camcorder treatment,
330
+ not camera/VHS emulation. If an effect artifact is more noticeable than the
331
+ subject, reduce chroma bleed/grain or keep the source unchanged.
332
+
333
+ ## VHS Playback
334
+
335
+ Use when the story explicitly calls for analog home-video tape, a dated archive,
336
+ or a visibly degraded VHS playback. This treatment is not Creator Camcorder,
337
+ generic pixelation, CRT display simulation, or a default retro look.
338
+
339
+ Do not use for literal UI, product catalog media, small text, clean modern
340
+ creator footage, or any source whose identifying color/detail must remain exact.
341
+ Inspect high-contrast vertical edges, faces, saturated objects, and the bottom
342
+ of the frame in motion. Analog damage must support the story without making the
343
+ subject hard to read.
344
+
345
+ ### Pixel payload
346
+
347
+ Start with the complete proven combination, not `tapeDamage` alone:
348
+
349
+ ```json
350
+ {
351
+ "intensity": 1,
352
+ "adjust": { "contrast": -0.04, "saturation": -0.08 },
353
+ "details": {
354
+ "grain": 0.16,
355
+ "grainSize": 0.12,
356
+ "grainRoughness": 0.72
357
+ },
358
+ "effects": {
359
+ "tapeDamage": 0.82,
360
+ "tapeTracking": 0.85,
361
+ "tapeNoise": 0.3,
362
+ "tapeSpeed": 0.5,
363
+ "chromaBleed": 0.5,
364
+ "chromaticAberration": 0.18,
365
+ "chromaticAngle": 0,
366
+ "scanlines": 0.35,
367
+ "scanlineCount": 0.17,
368
+ "scanlineSoftness": 1,
369
+ "digitalGlitch": 0.32,
370
+ "digitalGlitchColorSplit": 0,
371
+ "digitalGlitchLineTear": 0.08,
372
+ "digitalGlitchPixelate": 0,
373
+ "digitalGlitchBlockAmount": 0,
374
+ "digitalGlitchBlockDisplacement": 0,
375
+ "digitalGlitchBlockOpacity": 0,
376
+ "digitalGlitchSpeed": 0.5
377
+ }
378
+ }
379
+ ```
380
+
381
+ | Property | VHS Playback range |
382
+ | --------------------- | ------------------ |
383
+ | intensity | 0.75 to 1 |
384
+ | contrast | -0.1 to 0 |
385
+ | saturation | -0.16 to 0 |
386
+ | grain | 0.08 to 0.18 |
387
+ | grainSize | 0.08 to 0.18 |
388
+ | grainRoughness | 0.55 to 0.8 |
389
+ | tapeDamage | 0.65 to 0.9 |
390
+ | tapeTracking | 0.5 to 0.9 |
391
+ | tapeNoise | 0.15 to 0.45 |
392
+ | tapeSpeed | 0.35 to 0.65 |
393
+ | chromaBleed | 0.35 to 0.65 |
394
+ | chromaticAberration | 0.08 to 0.22 |
395
+ | scanlines | 0.2 to 0.4 |
396
+ | scanlineCount | 0.14 to 0.2 |
397
+ | digitalGlitch | 0.2 to 0.4 |
398
+ | digitalGlitchLineTear | 0.04 to 0.1 |
399
+
400
+ `tapeDamage` owns deterministic horizontal line jitter, slow time-base wobble,
401
+ bottom-edge head switching, luma bandwidth loss, restrained ghosting, noise,
402
+ and sparse dropouts. Its subordinate tracking/noise/speed controls add bounded
403
+ moving tape tears and control their signal character without introducing a new
404
+ clock. `chromaBleed` separately reduces horizontal chroma detail. The restrained
405
+ scanline and chromatic settings supply the remaining tape-playback character.
406
+ The digital stage is used only for rare horizontal row tears: keep its color
407
+ split, pixelation, block displacement, block opacity, and corruption values at
408
+ zero. Leave blur, CRT curvature, generic pixelation, and a camera HUD off.
409
+
410
+ These values are an original HyperFrames recipe calibrated on the same public
411
+ Orange Cat source used for the external visual reference. They are not copied
412
+ shader code or a claim of pixel-identical output from the external reference. The scanline count is
413
+ mapped to the reference's approximately 127-cycle primary line pattern; the HF
414
+ tracking math stays bounded in media pixels and uses the composition clock.
415
+
416
+ The shader damage evolves from the existing deterministic media time, so it
417
+ needs no CSS loop or private timeline. Global grading intensity does not fade
418
+ tape damage or other independent effects. If the story requires a finite
419
+ source-to-tape reveal, crossfade synchronized untreated and treated media layers
420
+ on the host's paused GSAP timeline. During the common workflow, inspect dense
421
+ consecutive frames and reject hard edge tearing, face
422
+ smearing, frozen noise, square blocks, blank borders, or a bottom disturbance
423
+ that competes with the subject.
424
+
425
+ ## 8mm Home Movie
426
+
427
+ Use for personal archive, family-memory, childhood, travel-memory, or explicit
428
+ small-gauge home-movie language. This is stronger and more materially film-like
429
+ than Film Memory, but it is still an owned HyperFrames treatment rather than a
430
+ claim to reproduce a named film stock, camera, or laboratory process.
431
+
432
+ Do not use for literal UI, technical demonstrations, catalog products, clean
433
+ interviews, or footage where dust/scratches would imply false provenance. Check
434
+ skin, highlights, dark clothing, and frame edges before applying it.
435
+
436
+ ### Pixel payload
437
+
438
+ ```json
439
+ {
440
+ "preset": "vintage-wash",
441
+ "intensity": 0.72,
442
+ "details": {
443
+ "vignette": 0.28,
444
+ "vignetteMidpoint": 0.54,
445
+ "vignetteFeather": 0.72,
446
+ "grain": 0.34,
447
+ "grainSize": 0.18,
448
+ "grainRoughness": 0.72
449
+ },
450
+ "effects": { "filmArtifacts": 0.62 }
451
+ }
452
+ ```
453
+
454
+ | Property | 8mm Home Movie range |
455
+ | -------------- | -------------------- |
456
+ | intensity | 0.6 to 0.8 |
457
+ | vignette | 0.18 to 0.34 |
458
+ | grain | 0.22 to 0.42 |
459
+ | grainSize | 0.12 to 0.24 |
460
+ | grainRoughness | 0.6 to 0.8 |
461
+ | filmArtifacts | 0.35 to 0.7 |
462
+
463
+ `filmArtifacts` owns only deterministic sparse dust and short scratches. The
464
+ existing preset/details own color, vignette, and grain; the host's paused GSAP
465
+ timeline owns optional gate weave. Keep weave within `0.15%` of the shorter
466
+ composition edge, rotation within `0.03` degrees, and scale between `1.005` and
467
+ `1.015`. Use finite `sine.inOut` segments around `0.6` to `1` second, return
468
+ near the starting transform, and never use randomness, timers, `onUpdate`, or
469
+ an infinite CSS animation.
470
+
471
+ Reject a result when dust is constantly visible, scratches persist unnaturally,
472
+ the frame pumps, weave exposes an edge, highlights turn muddy, or the material
473
+ artifacts are more noticeable than the memory. For a subtler nostalgic result,
474
+ use Film Memory instead.
475
+
476
+ ## Editorial Halftone
477
+
478
+ Use for print/editorial transitions, poster frames, comic/newsprint language,
479
+ stylized product or portrait beats, and graphic sequences where visible ink
480
+ screening is the point. This is a real four-angle CMYK raster treatment, not a
481
+ dotted DOM overlay.
482
+
483
+ Do not use on literal UI, dense text, tiny labels, footage that must remain
484
+ photorealistic, or a long talking-head segment unless the user explicitly asks
485
+ for strong print stylization. Preserve text/captions as ungraded DOM above the
486
+ media whenever they must stay readable.
487
+
488
+ ### Pixel payload
489
+
490
+ ```json
491
+ {
492
+ "intensity": 1,
493
+ "adjust": { "contrast": 0.04, "saturation": 0.04 },
494
+ "effects": { "halftone": 0.94, "halftoneSize": 0.36 }
495
+ }
496
+ ```
497
+
498
+ | Property | Editorial Halftone range |
499
+ | ------------ | ------------------------ |
500
+ | intensity | 0.8 to 1 |
501
+ | contrast | -0.02 to 0.08 |
502
+ | saturation | -0.04 to 0.08 |
503
+ | halftone | 0.75 to 1 |
504
+ | halftoneSize | 0.15 to 0.55 |
505
+
506
+ The shader uses fixed C/M/Y/K screen angles of 15/75/0/45 degrees, separate ink
507
+ coverage, a warm paper base, and resolution-aware dot-cell sizing. Keep those
508
+ screen semantics fixed; tune only amount and size unless a future visual proof
509
+ justifies a broader schema. Judge the result at final output resolution because
510
+ browser zoom can misrepresent the screen. Reject unstable moire, unreadable
511
+ subjects, clipped ink detail, excessive dot size, or any treatment that looks
512
+ like a transparent dot texture laid over unchanged footage.
513
+
514
+ ## Two-Ink Editorial Print
515
+
516
+ Use for poster frames, editorial portraits, music/social cutaways, zine
517
+ graphics, and bold print-led transitions where two visible spot inks are more
518
+ appropriate than photographic color. This is a fixed original HyperFrames
519
+ vermilion/teal treatment, not a claim to emulate a named printer, ink set, or
520
+ commercial print process.
521
+
522
+ Do not use for literal UI, brand-color-critical products, small labels, natural
523
+ talking heads, or media that must remain photorealistic. Keep captions and
524
+ graphics as normal DOM above the treated media.
525
+
526
+ ### Pixel payload
527
+
528
+ ```json
529
+ {
530
+ "intensity": 1,
531
+ "adjust": { "contrast": 0.08, "highlights": -0.06, "shadows": 0.04 },
532
+ "effects": { "twoInkPrint": 1, "twoInkPrintSize": 0.42 }
533
+ }
534
+ ```
535
+
536
+ | Property | Two-Ink range |
537
+ | --------------- | ------------- |
538
+ | intensity | 0.8 to 1 |
539
+ | contrast | 0.02 to 0.1 |
540
+ | highlights | -0.1 to 0 |
541
+ | shadows | 0 to 0.08 |
542
+ | twoInkPrint | 0.8 to 1 |
543
+ | twoInkPrintSize | 0.18 to 0.55 |
544
+
545
+ The shader maps warm midtones to vermilion, deep/cool shadows to teal, and
546
+ shared dark coverage to a dark overprint on warm paper. It uses separate
547
+ 15/75-degree screens, a subtle fixed registration offset, deterministic paper
548
+ texture, and resolution-aware dot sizing. Do not combine it with `halftone` or
549
+ a duotone LUT: that re-separates the result and defeats the two-ink contract.
550
+
551
+ Judge it at output resolution and across multiple frames. Reject missing second
552
+ ink, crushed faces, unstable moire, illegible silhouettes, or a result that
553
+ reads as a red tint with dots rather than two screened inks.
554
+
555
+ ## Monochrome Screen Print
556
+
557
+ Use for graphic portrait beats, posterized social inserts, newspaper-like
558
+ screens, or a finite transition into visible monochrome cells. Keep captions
559
+ and typography as normal DOM above the treated media.
560
+
561
+ ```json
562
+ {
563
+ "intensity": 1,
564
+ "effects": {
565
+ "monoScreen": 1,
566
+ "monoScreenSize": 0.35,
567
+ "monoScreenAngle": 0.25,
568
+ "monoScreenSpread": 0.3,
569
+ "monoScreenShape": 0,
570
+ "monoScreenInvert": 0
571
+ },
572
+ "palette": ["#111319", "#f2ecdc"]
573
+ }
574
+ ```
575
+
576
+ Use `monoScreenShape` `0..4` for circle, square, diamond, triangle, or line.
577
+ Keep cell size within `0.15..0.55` and spread within `0.15..0.55`. Reject faces
578
+ that lose their silhouette, unstable moire, or cells too small to survive the
579
+ final encoded resolution.
580
+
581
+ ## Engraved Illustration
582
+
583
+ Use for editorial portraits, historical/technical illustration, title-card
584
+ cutaways, or a source-to-line-art reveal. It is not routine correction and
585
+ should not be applied to literal UI or brand-color-critical product footage.
586
+
587
+ ```json
588
+ {
589
+ "intensity": 1,
590
+ "effects": {
591
+ "engraving": 1,
592
+ "engravingSpacing": 0.4118,
593
+ "engravingMinThickness": 0.2,
594
+ "engravingMaxThickness": 0.4571,
595
+ "engravingAngle": 0.25,
596
+ "engravingContrast": 0.4667,
597
+ "engravingSharpness": 0.59,
598
+ "engravingWave": 0.2,
599
+ "engravingWaveFrequency": 0.2222
600
+ },
601
+ "palette": ["#101216", "#f3eddf"]
602
+ }
603
+ ```
604
+
605
+ Preserve the calibrated base first. Tune spacing within `0.25..0.6`, contrast
606
+ within `0.3..0.65`, and wave within `0..0.35`. Reject squeezed framing, broken
607
+ contours, noisy flat backgrounds, or lines that flicker across moving frames.
608
+
609
+ ## Crosshatched Sketch
610
+
611
+ Use for hand-rendered editorial beats, comic/documentary cutaways, and short
612
+ illustrative transformations where multiple line directions should preserve
613
+ the subject contour.
614
+
615
+ ```json
616
+ {
617
+ "intensity": 1,
618
+ "effects": {
619
+ "crosshatch": 1,
620
+ "crosshatchSpacing": 0.28,
621
+ "crosshatchThickness": 0.25,
622
+ "crosshatchAngle": 0.25,
623
+ "crosshatchContrast": 0.3333,
624
+ "crosshatchEdges": 0.5,
625
+ "crosshatchLineWeight": 0,
626
+ "crosshatchWave": 0.33,
627
+ "crosshatchWaveFrequency": 0.2222
628
+ },
629
+ "palette": ["#101216", "#f3eddf"]
630
+ }
631
+ ```
632
+
633
+ Tune spacing within `0.18..0.5`, edge detail within `0.3..0.7`, and wave within
634
+ `0.1..0.45`. Reject distorted aspect ratio, dense black fill that hides the
635
+ subject, or temporal shimmer stronger than the intended sketch language.
636
+
637
+ ## CRT Display
638
+
639
+ Use when the media is intentionally shown as an older monitor, terminal, game
640
+ screen, or broadcast display. Curvature alone is geometry, not a complete CRT
641
+ treatment, so pair it with restrained scanlines and only slight channel
642
+ separation.
643
+
644
+ ```json
645
+ {
646
+ "intensity": 1,
647
+ "effects": {
648
+ "crtCurvature": 0.2,
649
+ "scanlines": 0.35,
650
+ "scanlineCount": 0.17,
651
+ "scanlineSoftness": 1,
652
+ "chromaticAberration": 0.08,
653
+ "chromaticAngle": 0
654
+ }
655
+ }
656
+ ```
657
+
658
+ Keep curvature within `0.08..0.28`, scanlines within `0.18..0.45`, and channel
659
+ separation within `0..0.12`. Reject excessive black corners, unreadable UI,
660
+ large color fringes, or applying the display language to ordinary footage when
661
+ the user only asked for correction.
662
+
663
+ ## Procedural ASCII
664
+
665
+ Use for a deliberate terminal, code, data, surveillance, editorial, or
666
+ source-to-character reveal. This is a real shader-generated 5x7 glyph field,
667
+ not monospace text placed over unchanged footage.
668
+
669
+ Do not use as routine talking-head polish, on literal UI or dense text, or when
670
+ recognizing a face/product precisely matters. Keep captions and graphics as
671
+ normal DOM above the treated media.
672
+
673
+ Choose one of these proven starting points:
674
+
675
+ ```json
676
+ {
677
+ "effects": { "ascii": 1, "asciiSize": 0.08, "asciiInvert": 1 },
678
+ "palette": ["#020605", "#38ff78"]
679
+ }
680
+ ```
681
+
682
+ The first is **Terminal ASCII**: dark field, bright green glyphs, appropriate
683
+ for code/data/device language. For a warmer print-like **Editorial ASCII**, use:
684
+
685
+ ```json
686
+ {
687
+ "effects": { "ascii": 1, "asciiSize": 0.066, "asciiInvert": 0 },
688
+ "palette": ["#0b0d0d", "#eee9db"]
689
+ }
690
+ ```
691
+
692
+ Keep `ascii` between `0.75` and `1` for a fully readable treatment and
693
+ `asciiSize` between `0.04` and `0.15`. A finite reveal may author
694
+ `--hf-color-grading-ascii: 0` inline and tween it to `1` with the registered
695
+ paused GSAP timeline. Reject unstable cells, lost silhouette/face structure,
696
+ unreadable composition, or a palette that conflicts with the project.
697
+
698
+ ## Ordered Palette Dither
699
+
700
+ Use for posterized social beats, music/editorial cutaways, pixel-art language,
701
+ or a finite source-to-palette reveal. The shader uses a stable 4x4 Bayer
702
+ threshold matrix and an explicit dark-to-light palette. Do not describe it as
703
+ Floyd-Steinberg, Atkinson, or another sequential error-diffusion process.
704
+
705
+ Do not use on literal UI, brand-color-critical products, tiny labels, or long
706
+ photorealistic sections. Start with one of these original palettes:
707
+
708
+ ```json
709
+ {
710
+ "effects": { "dither": 1, "ditherSize": 0.25 },
711
+ "palette": ["#17121a", "#824c50", "#e09873", "#f7ddb1"]
712
+ }
713
+ ```
714
+
715
+ The four-color option is **Warm Print**. For a louder social/music beat, use
716
+ the six-color **Electric Ink** palette:
717
+
718
+ ```json
719
+ {
720
+ "effects": { "dither": 1, "ditherSize": 0.4 },
721
+ "palette": ["#080717", "#3c185f", "#7e2278", "#d9339f", "#ff6b66", "#aafae0"]
722
+ }
723
+ ```
724
+
725
+ HyperFrames also owns these named ramps. The name is an authoring shortcut;
726
+ persist the listed colors through the existing `palette` array:
727
+
728
+ | Group | Palette ID | Ordered colors |
729
+ | ----------- | ---------------- | ---------------------------------------------------------------- |
730
+ | Classic | `noir` | `#000000`, `#ffffff` |
731
+ | Classic | `ink-paper` | `#1a1a2e`, `#f5f5dc` |
732
+ | Classic | `terminal` | `#001100`, `#00ff00` |
733
+ | Classic | `amber-glow` | `#1a0f00`, `#ffcc00` |
734
+ | Classic | `handheld-green` | `#0f380f`, `#306230`, `#8bac0f`, `#9bbc0f` |
735
+ | Mood | `golden-hour` | `#1a1205`, `#4a3510`, `#8b6914`, `#d4a017`, `#fff8dc` |
736
+ | Mood | `deep-sea` | `#0a1628`, `#1a3a5c`, `#2d6187`, `#5ba4c9`, `#a8dce8` |
737
+ | Mood | `arctic-night` | `#0a0a14`, `#1a2a4a`, `#3a5a8a`, `#6a9aca`, `#cae8ff` |
738
+ | Mood | `synthwave` | `#120458`, `#7b2cbf`, `#e040fb`, `#ff6ec7`, `#fff59d` |
739
+ | Mood | `vaporwave` | `#1a0a2e`, `#3d1a5c`, `#ff71ce`, `#01cdfe`, `#fffb96` |
740
+ | Mood | `forest` | `#1a2e1a`, `#2d4a2d`, `#4a7c4a`, `#7ab37a`, `#c8e6c8` |
741
+ | Mono | `sepia` | `#1a1610`, `#3d3020`, `#6b5a40`, `#a89070`, `#e8dcc8` |
742
+ | Mono | `blueprint` | `#001830`, `#003060`, `#0050a0`, `#0080e0`, `#e0f0ff` |
743
+ | HyperFrames | `warm-print` | `#17121a`, `#824c50`, `#e09873`, `#f7ddb1` |
744
+ | HyperFrames | `electric-ink` | `#080717`, `#3c185f`, `#7e2278`, `#d9339f`, `#ff6b66`, `#aafae0` |
745
+
746
+ Choose by inspected source and project language, not by palette name alone.
747
+ For example, `terminal` fits device/code language, `warm-print` fits editorial
748
+ print, and `synthwave` is an intentional stylization rather than generic polish.
749
+
750
+ `palette` must contain two to six exact `#RRGGBB` colors in authored order. Use
751
+ dark-to-light order for this treatment; the runtime validates colors but does
752
+ not reorder them, so reversing the array intentionally inverts the mapping.
753
+ Keep `dither` between `0.7` and `1` and `ditherSize` between `0.1` and `0.5`.
754
+ A finite reveal may author `--hf-color-grading-dither: 0` inline and tween it
755
+ to the chosen amount with GSAP. Judge the moving result at output resolution;
756
+ reject shimmer, lost subject structure, accidental muddy intermediate colors,
757
+ or a palette chosen without regard to the project's design language.
758
+
759
+ ## Cached Error Diffusion
760
+
761
+ Use exact error diffusion for a deliberate 1-bit Macintosh, newspaper/print,
762
+ limited-palette game, or crunchy editorial treatment. It bakes a new image or
763
+ MP4 because every processed block depends on error from earlier blocks; it is
764
+ not a realtime shader setting.
765
+
766
+ Choose the algorithm by visible intent:
767
+
768
+ - `floyd-steinberg`: balanced default with organic fine texture.
769
+ - `atkinson`: higher-contrast, more open and distinctly early-Macintosh.
770
+ - `jarvis-judice-ninke`: smoother gradients with a wider 12-neighbor field.
771
+ - `stucki`: smooth, slightly sharper alternative to JJN.
772
+ - `burkes`: compact two-row texture.
773
+ - `sierra`, `sierra-lite`, `two-row-sierra`: progressively different
774
+ speed/texture tradeoffs; use only after comparing frames.
775
+
776
+ Run the exact processor and register its output through the existing media
777
+ ledger/cache:
778
+
779
+ ```bash
780
+ node <SKILL_DIR>/scripts/dither.mjs \
781
+ --input .media/videos/video_001.mp4 \
782
+ --out .media/generated/video_001.atkinson.mp4 \
783
+ --algorithm atkinson \
784
+ --palette '#17121a,#824c50,#e09873,#f7ddb1' \
785
+ --point-size 3
786
+
787
+ npx hyperframes media-use resolve \
788
+ --from .media/generated/video_001.atkinson.mp4 --type video --project .
789
+ ```
790
+
791
+ Use the registered output path on a real `<img>` or `<video>`. Keep text,
792
+ captions, logos, and interface graphics outside the processed media. For a
793
+ finite reveal, overlap the original and processed media with identical framing
794
+ and crossfade or wipe them using the registered paused GSAP timeline. Do not
795
+ label the realtime Bayer shader as Floyd-Steinberg/Atkinson, and do not process
796
+ PQ/HLG footage without an explicit SDR tone-map decision.
797
+
798
+ ## Organic Light Leak
799
+
800
+ Use for one motivated memory beat, time shift, warm scene handoff, or tactile
801
+ transition. It is a finite deterministic CSS/GSAP overlay, not a looping
802
+ texture, generic flash, or film-stock emulation.
803
+
804
+ Install the Registry overlay block:
805
+
806
+ ```bash
807
+ npx hyperframes add organic-light-leak-overlay --no-clipboard
808
+ ```
809
+
810
+ Insert the printed `data-composition-src` host at the intended beat and keep
811
+ its duration finite. Its paused timeline owns one rise, peak, and complete
812
+ recovery and scales those phases to the placed duration. Inspect the source
813
+ before, at the brightest frame, and after recovery. Reject clipped faces, an
814
+ unmotivated warm wash, visible black from incorrect blend mode, or a leak that
815
+ conceals the subject longer than the transition needs.
816
+
817
+ ## Freeze-Frame Cutout
818
+
819
+ Use for a social introduction, speaker emphasis, chapter punctuation, sports
820
+ or creator beat, or a scrapbook/editorial hold. This requires a real alpha
821
+ matte; decoration may not conceal a poor subject edge.
822
+
823
+ Extract the exact deterministic source frame first, then remove its background:
824
+
825
+ ```bash
826
+ ffmpeg -ss <seconds> -i <source-video> -frames:v 1 -y .media/generated/freeze-source.png
827
+ npx hyperframes remove-background .media/generated/freeze-source.png \
828
+ -o .media/generated/freeze-cutout.png --json
829
+ npx hyperframes add freeze-frame-dressing --no-clipboard
830
+ ```
831
+
832
+ Add the transparent result as a direct-root timed media layer and insert the
833
+ printed overlay block above the same time range. The block owns the paper,
834
+ tape, and flash; the host timeline only animates the real cutout:
835
+
836
+ ```html
837
+ <img
838
+ id="hf-freeze-cutout"
839
+ class="clip"
840
+ src="./.media/generated/freeze-cutout.png"
841
+ alt=""
842
+ data-start="6"
843
+ data-duration="3"
844
+ data-track-index="20"
845
+ />
846
+ ```
847
+
848
+ ```js
849
+ tl.fromTo(
850
+ "#hf-freeze-cutout",
851
+ { y: 42, scale: 0.86, rotation: -2 },
852
+ { y: 0, scale: 1, rotation: 0.4, duration: 0.5, ease: "back.out(1.35)" },
853
+ freezeAt,
854
+ );
855
+ ```
856
+
857
+ Inspect the matte over both light and dark temporary plates before styling it.
858
+ Reject missing hair/fingers, background halos, a cutout that changes identity,
859
+ overly thick outline, exposed frame edges, or a flash that obscures the reveal.
860
+ If the matte is not acceptable, choose another frame or keep the original media.
861
+
862
+ ## Social Flash / Editorial Reveal
863
+
864
+ Use this treatment for one meaningful high-energy cut, creator reveal, product
865
+ beat, or before/after handoff. It is not a default transition for every scene.
866
+ Avoid it for calm long-form footage, accessibility-sensitive contexts, already
867
+ clipped highlights, literal UI that must remain readable through the cut, or
868
+ any request for repeated strobing.
869
+
870
+ Inspect representative frames on both sides of the cut first. Grade each media
871
+ layer for its own subject using the appropriate contract above; the flash is
872
+ not a substitute for correction. For people, a restrained `skin-soft` payload
873
+ is a safe starting point. For literal UI, preserve the pixels and use only the
874
+ authored light/motion layers when they do not obscure required information.
875
+
876
+ Install the Registry overlay block:
877
+
878
+ ```bash
879
+ npx hyperframes add editorial-flash-overlay --no-clipboard
880
+ ```
881
+
882
+ Insert the printed `data-composition-src` host so the block's midpoint lands
883
+ on the cut. Its own paused timeline drives the finite flash. The host timeline
884
+ may coordinate outgoing and incoming media motion without reaching into the
885
+ block:
886
+
887
+ ```js
888
+ tl.to(
889
+ "#outgoing-media",
890
+ {
891
+ scale: 1.035,
892
+ "--hf-color-grading-exposure": 0.82,
893
+ duration: 0.12,
894
+ ease: "power3.in",
895
+ },
896
+ cutAt - 0.16,
897
+ );
898
+ tl.fromTo(
899
+ "#incoming-media",
900
+ { scale: 1.1 },
901
+ { scale: 1, duration: 0.42, ease: "power3.out" },
902
+ cutAt,
903
+ );
904
+ tl.to(
905
+ "#incoming-media",
906
+ {
907
+ "--hf-color-grading-exposure": 0,
908
+ "--hf-color-grading-intensity": 0.58,
909
+ duration: 0.24,
910
+ ease: "power2.out",
911
+ },
912
+ cutAt,
913
+ );
914
+ ```
915
+
916
+ When the shader steps are used, author
917
+ `--hf-color-grading-exposure: 0.72` and
918
+ `--hf-color-grading-intensity: 0` inline on the incoming media so a fresh seek
919
+ has the correct start state. Set the final intensity to the source-approved
920
+ value instead of copying `0.58` blindly. Skip the shader intensity step when
921
+ the incoming source should remain ungraded.
922
+
923
+ Keep the rise between roughly `0.035` and `0.055` seconds and the recovery
924
+ between `0.24` and `0.38` seconds. Default to one neutral/warm flash event,
925
+ never saturated red, never a looping strobe, and never more than one authored
926
+ flash inside a one-second treatment window. Verify frames immediately before,
927
+ at, and after the cut, then inspect moving playback and a rendered draft. The
928
+ peak must hide the cut; the recovery must reveal a correctly framed source with
929
+ no retained prior canvas, clipped face, or unexpected highlight damage.