@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,213 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+
8
+ // src/whisper/parakeet.ts
9
+ import { execFileSync } from "child_process";
10
+ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "fs";
11
+ import { homedir, tmpdir } from "os";
12
+ import { basename, extname, join } from "path";
13
+ var PARAKEET_MODEL_LABEL = "parakeet-tdt-0.6b-v3";
14
+ var SHERPA_RESULT_PREFIX = "HYPERFRAMES_PARAKEET_RESULT:";
15
+ var SHERPA_ERROR_PREFIX = "HYPERFRAMES_PARAKEET_ERROR:";
16
+ var PARAKEET_LANGUAGES = "en es fr de bg hr cs da nl et fi el hu it lv lt mt pl pt ro sk sl sv ru uk";
17
+ function parakeetSpeaks(language) {
18
+ const base = language?.trim().toLowerCase().split(/[-_]/, 1)[0];
19
+ return !base || PARAKEET_LANGUAGES.split(" ").includes(base);
20
+ }
21
+ var DEFAULT_MODEL = "mlx-community/parakeet-tdt-0.6b-v3";
22
+ var PARAKEET_INSTALL = "uv venv ~/.venvs/parakeet && VIRTUAL_ENV=~/.venvs/parakeet uv pip install parakeet-mlx";
23
+ function isRunnable(bin) {
24
+ try {
25
+ execFileSync(bin, ["--help"], { stdio: ["ignore", "ignore", "ignore"], timeout: 1e4 });
26
+ return true;
27
+ } catch {
28
+ return false;
29
+ }
30
+ }
31
+ function findParakeet() {
32
+ const candidates = [
33
+ process.env.HYPERFRAMES_PARAKEET,
34
+ join(homedir(), ".venvs", "parakeet", "bin", "parakeet-mlx")
35
+ ].filter((p) => Boolean(p));
36
+ for (const path of candidates) {
37
+ if (existsSync(path) && isRunnable(path)) return path;
38
+ }
39
+ try {
40
+ const which = process.platform === "win32" ? "where" : "which";
41
+ const out = execFileSync(which, ["parakeet-mlx"], {
42
+ encoding: "utf-8",
43
+ stdio: ["ignore", "pipe", "ignore"],
44
+ timeout: 5e3
45
+ });
46
+ const first = out.split(/\r?\n/).map((s) => s.trim()).find(Boolean);
47
+ if (first && existsSync(first)) return first;
48
+ } catch {
49
+ }
50
+ return void 0;
51
+ }
52
+ function tokenBounds(token) {
53
+ const text = typeof token.text === "string" ? token.text : "";
54
+ const start = typeof token.start === "number" ? token.start : 0;
55
+ const end = typeof token.end === "number" ? token.end : start;
56
+ return { text, start, end };
57
+ }
58
+ function mergeTokensToWords(parakeet) {
59
+ const words = [];
60
+ for (const sentence of parakeet.sentences ?? []) {
61
+ for (const token of sentence.tokens ?? []) {
62
+ const { text, start, end } = tokenBounds(token);
63
+ if (text.startsWith(" ") || words.length === 0) {
64
+ words.push({ text: text.trim(), start, end });
65
+ } else {
66
+ const w = words[words.length - 1];
67
+ w.text += text;
68
+ w.end = end;
69
+ }
70
+ }
71
+ }
72
+ return words.filter((w) => w.text.length > 0);
73
+ }
74
+ var roundToMs = (seconds) => Math.round(seconds * 1e3) / 1e3;
75
+ function mergeWindowsToWords(windows) {
76
+ return mergeTokensToWords({
77
+ sentences: windows.map((w) => ({
78
+ tokens: w.tokens.map((text, i) => {
79
+ const start = w.offset + (w.timestamps[i] ?? 0);
80
+ return { text, start: roundToMs(start), end: roundToMs(start + (w.durations?.[i] ?? 0)) };
81
+ })
82
+ }))
83
+ });
84
+ }
85
+ function meanEnergy(samples, from, to) {
86
+ let energy = 0;
87
+ for (let i = from; i < to; i++) energy += samples[i] * samples[i];
88
+ return energy / Math.max(1, to - from);
89
+ }
90
+ function droppedSpeechGaps(samples, sampleRate, decoded) {
91
+ if (decoded.tokens.length === 0) return [];
92
+ const loud = 0.3 * meanEnergy(samples, 0, samples.length);
93
+ const { timestamps, durations } = decoded;
94
+ const gapStarts = [0, ...timestamps.map((t, i) => t + (durations?.[i] ?? 0))];
95
+ const gapEnds = [...timestamps, samples.length / sampleRate];
96
+ const at = (seconds) => Math.round(seconds * sampleRate);
97
+ return gapStarts.map((from, i) => [from, gapEnds[i]]).filter(([from, to]) => to - from >= 1 && meanEnergy(samples, at(from), at(to)) > loud);
98
+ }
99
+ function overlap(a, b) {
100
+ for (let n = Math.min(a.length, b.length); n > 0; n--) {
101
+ if (a.slice(-n).every((text, i) => text === b[i])) return n;
102
+ }
103
+ return 0;
104
+ }
105
+ function wordsOf(tokens) {
106
+ const words = [];
107
+ for (const t of tokens) {
108
+ if (t.text.startsWith(" ") || words.length === 0) words.push([t]);
109
+ else words.at(-1).push(t);
110
+ }
111
+ return words;
112
+ }
113
+ var letters = (word) => word.map((t) => t.text).join("").toLowerCase().replace(/[^\p{L}\p{N}]/gu, "");
114
+ var EDGE_SECONDS = 0.3;
115
+ function spliceGap(decoded, patch, offset, [from, to]) {
116
+ const tokens = (w, shift) => w.tokens.map((text, i) => ({
117
+ text,
118
+ start: shift + w.timestamps[i],
119
+ duration: w.durations?.[i] ?? 0
120
+ }));
121
+ const kept = wordsOf(tokens(decoded, 0));
122
+ const added = wordsOf(tokens(patch, offset)).filter(
123
+ ([first]) => first.start >= from && first.start < to
124
+ );
125
+ const before = kept.filter(([first]) => first.start < from).map(letters);
126
+ const after = kept.filter(([first]) => first.start >= to).map(letters);
127
+ const head = added.filter(([first]) => first.start < from + EDGE_SECONDS).map(letters);
128
+ const tail = added.filter(([first]) => first.start >= to - EDGE_SECONDS).map(letters);
129
+ const fresh = added.slice(overlap(before, head), added.length - overlap(tail, after)).map(([first, ...rest]) => [{ ...first, text: ` ${first.text.trimStart()}` }, ...rest]);
130
+ const merged = [...kept, ...fresh].sort((a, b) => a[0].start - b[0].start).flat();
131
+ return {
132
+ tokens: merged.map((t) => t.text),
133
+ timestamps: merged.map((t) => t.start),
134
+ durations: merged.map((t) => t.duration)
135
+ };
136
+ }
137
+ function quietestBlockCenter(samples, lo, hi, block) {
138
+ let best = hi;
139
+ let bestEnergy = Infinity;
140
+ for (let s = lo; s + block <= hi; s += block) {
141
+ const energy = meanEnergy(samples, s, s + block);
142
+ if (energy < bestEnergy) {
143
+ bestEnergy = energy;
144
+ best = s + block / 2;
145
+ }
146
+ }
147
+ return best;
148
+ }
149
+ function silenceCuts(samples, sampleRate, windowSeconds = 60) {
150
+ const window = windowSeconds * sampleRate;
151
+ const slack = 5 * sampleRate;
152
+ const cuts = [0];
153
+ while (cuts.at(-1) + window < samples.length) {
154
+ const target = cuts.at(-1) + window;
155
+ const hi = Math.min(target + slack, samples.length);
156
+ cuts.push(quietestBlockCenter(samples, target - slack, hi, sampleRate / 10));
157
+ }
158
+ if (samples.length > 0) cuts.push(samples.length);
159
+ return cuts;
160
+ }
161
+ function transcribeWithParakeet(inputPath, dir, options) {
162
+ const runner = findParakeet();
163
+ if (!runner) {
164
+ throw new Error(
165
+ `parakeet-mlx not found. Enable the Parakeet engine with:
166
+ ${PARAKEET_INSTALL}
167
+ (or use --engine whisper)`
168
+ );
169
+ }
170
+ const model = options?.model ?? DEFAULT_MODEL;
171
+ const cached = existsSync(
172
+ join(homedir(), ".cache", "huggingface", "hub", `models--${model.replace(/\//g, "--")}`)
173
+ );
174
+ options?.onProgress?.(
175
+ cached ? "Transcribing with Parakeet..." : "Downloading Parakeet model (first run, ~600MB)..."
176
+ );
177
+ const workDir = mkdtempSync(join(tmpdir(), "hyperframes-parakeet-"));
178
+ try {
179
+ const argv = [inputPath, "--model", model, "--output-format", "json", "--output-dir", workDir];
180
+ if (options?.language) argv.push("--language", options.language);
181
+ execFileSync(runner, argv, { stdio: ["ignore", "pipe", "pipe"], timeout: 18e5 });
182
+ const produced = join(workDir, `${basename(inputPath, extname(inputPath))}.json`);
183
+ if (!existsSync(produced)) throw new Error("Parakeet did not produce output.");
184
+ return writeParakeetTranscript(
185
+ dir,
186
+ mergeTokensToWords(JSON.parse(readFileSync(produced, "utf-8")))
187
+ );
188
+ } finally {
189
+ rmSync(workDir, { recursive: true, force: true });
190
+ }
191
+ }
192
+ function writeParakeetTranscript(dir, words) {
193
+ mkdirSync(dir, { recursive: true });
194
+ const transcriptPath = join(dir, "transcript.json");
195
+ writeFileSync(transcriptPath, JSON.stringify(words, null, 2));
196
+ const durationSeconds = words.length > 0 ? words[words.length - 1].end : 0;
197
+ return { transcriptPath, wordCount: words.length, durationSeconds, speechOnsetSeconds: null };
198
+ }
199
+
200
+ export {
201
+ PARAKEET_MODEL_LABEL,
202
+ SHERPA_RESULT_PREFIX,
203
+ SHERPA_ERROR_PREFIX,
204
+ PARAKEET_LANGUAGES,
205
+ parakeetSpeaks,
206
+ findParakeet,
207
+ mergeWindowsToWords,
208
+ droppedSpeechGaps,
209
+ spliceGap,
210
+ silenceCuts,
211
+ transcribeWithParakeet,
212
+ writeParakeetTranscript
213
+ };
@@ -0,0 +1,20 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+
8
+ // src/utils/env.ts
9
+ function isDevMode() {
10
+ try {
11
+ const url = new URL(import.meta.url);
12
+ return url.pathname.endsWith(".ts");
13
+ } catch {
14
+ return false;
15
+ }
16
+ }
17
+
18
+ export {
19
+ isDevMode
20
+ };
@@ -0,0 +1,446 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ detectWSL
9
+ } from "./chunk-AMKC3AXA.js";
10
+ import {
11
+ getSystemTotalMb
12
+ } from "./chunk-K2FTXJYH.js";
13
+
14
+ // src/telemetry/system.ts
15
+ import { cpus, freemem, platform as platform2, release as release2 } from "os";
16
+ import { existsSync as existsSync2, readFileSync as readFileSync2, statfsSync } from "fs";
17
+ import { execSync } from "child_process";
18
+
19
+ // src/telemetry/agent_runtime.ts
20
+ import { existsSync, readFileSync, statSync } from "fs";
21
+ import { platform, release } from "os";
22
+ var VENDOR_RULES = [
23
+ // IBM Bob Shell — both shell execution paths stamp BOBSHELL_CLI=1 onto the
24
+ // child environment: childProcessFallback's spawn env and executeWithPty's
25
+ // PTY env. Keep this ahead of other agents because Bob inherits the parent
26
+ // environment, so a Bob session launched from Codex or Claude can carry both
27
+ // vendors' markers; BOBSHELL_CLI identifies the immediate executor.
28
+ // BOBSHELL_API_KEY is deliberately ignored: it is an authentication setting,
29
+ // not proof that Bob launched the current process.
30
+ // Source: IBM Bob Shell 1.0.6 bundle (lb.childProcessFallback / executeWithPty).
31
+ {
32
+ name: "bob",
33
+ check: (env) => typeof env["BOBSHELL_CLI"] === "string"
34
+ },
35
+ // Anthropic Claude Code — sets CLAUDECODE=1 on every Bash/PowerShell tool
36
+ // spawn (Shell.ts:321) and CLAUDE_CODE_ENTRYPOINT at startup, inherited by
37
+ // every child (main.tsx:527). Both propagate to spawned subprocesses.
38
+ // Source: confirmed by @magi from Claude Code internal source.
39
+ {
40
+ name: "claude_code",
41
+ check: (env) => typeof env["CLAUDECODE"] === "string" || typeof env["CLAUDE_CODE_ENTRYPOINT"] === "string"
42
+ },
43
+ // OpenAI Codex (https://github.com/openai/codex).
44
+ // - CODEX_THREAD_ID — set unconditionally on every spawned shell command
45
+ // (codex-rs/protocol/src/shell_environment.rs:6 constant, set by
46
+ // codex-rs/core/src/unified_exec/process_manager.rs:1010 and
47
+ // codex-rs/core/src/tools/runtimes/mod.rs:164).
48
+ // - CODEX_CI — hardcoded in the UNIFIED_EXEC_ENV array, always set on
49
+ // every unified-exec child (process_manager.rs:70).
50
+ // - CODEX_SANDBOX_NETWORK_DISABLED — set when network sandbox is active
51
+ // (codex-rs/core/src/sandboxing/mod.rs:135-138, default-on).
52
+ // CODEX_HOME is deliberately NOT used — it's a config override read at
53
+ // Codex startup, not propagated to spawned subprocesses.
54
+ {
55
+ name: "codex",
56
+ check: (env) => typeof env["CODEX_THREAD_ID"] === "string" || typeof env["CODEX_CI"] === "string" || typeof env["CODEX_SANDBOX_NETWORK_DISABLED"] === "string"
57
+ },
58
+ // Cursor Agent marks its shell with CURSOR_AGENT; TERM_PROGRAM identifies
59
+ // the IDE terminal only. Keep this after Claude/Codex for nested agents.
60
+ // Source: https://docs.cursor.com/en/agent/terminal
61
+ {
62
+ name: "cursor",
63
+ check: (env) => Boolean(env["CURSOR_AGENT"]) || env["TERM_PROGRAM"] === "cursor"
64
+ },
65
+ // Windsurf (Codeium) integrated terminal — exports TERM_PROGRAM=windsurf.
66
+ // Attested across many independent detectors (nx
67
+ // packages/nx/src/native/ide/detection.rs, adonisjs/application, ag-grid
68
+ // git-hooks). Compared case-INsensitively (unlike the exact Cursor rule
69
+ // above) because Windsurf sources disagree on casing ("windsurf" vs
70
+ // "Windsurf"); Cursor's do not, so it stays exact. Like Cursor this marks the
71
+ // editor's integrated terminal, not specifically that the Cascade agent is
72
+ // driving; under WSL/remote it can also fall back to TERM_PROGRAM=vscode.
73
+ {
74
+ name: "windsurf",
75
+ check: (env) => env["TERM_PROGRAM"]?.toLowerCase() === "windsurf"
76
+ },
77
+ // GitHub Copilot Coding Agent — runs inside GitHub Actions and the
78
+ // workflow injects an additional marker to distinguish from generic CI.
79
+ // Not yet verified from a public-source citation in this audit; the var
80
+ // names below match GitHub Copilot Coding Agent documentation but
81
+ // should be confirmed before relying on attribution.
82
+ {
83
+ name: "copilot_agent",
84
+ check: (env) => env["GITHUB_ACTIONS"] === "true" && (typeof env["COPILOT_AGENT_ID"] === "string" || env["RUNNER_NAME"] === "Copilot")
85
+ },
86
+ // Replit — REPL_ID and REPLIT_USER are long-documented environment
87
+ // variables exposed inside every Replit workspace.
88
+ // Source: https://docs.replit.com/replit-workspace/configuring-the-environment
89
+ {
90
+ name: "replit",
91
+ check: (env) => typeof env["REPL_ID"] === "string" || typeof env["REPLIT_USER"] === "string"
92
+ },
93
+ // Nous Research Hermes Agent — cli.py:50 unconditionally executes
94
+ // os.environ["HERMES_QUIET"] = "1"
95
+ // at module load, so the marker propagates via os.environ to every
96
+ // subprocess spawned by Hermes. Keying on existence (not the literal
97
+ // "1") so we still match if Hermes ever changes the value.
98
+ // Source: https://github.com/NousResearch/hermes-agent (cli.py:50)
99
+ {
100
+ name: "hermes",
101
+ check: (env) => typeof env["HERMES_QUIET"] === "string"
102
+ },
103
+ // openclaw — multi-channel AI gateway. When openclaw spawns a CLI
104
+ // subprocess it builds the child env with OPENCLAW_STATE_DIR /
105
+ // OPENCLAW_CONFIG_PATH / OPENCLAW_DISABLE_AUTO_UPDATE set explicitly
106
+ // (extensions/qa-matrix/src/runners/contract/scenario-runtime-cli.ts:344-351).
107
+ // We key on OPENCLAW_STATE_DIR since it's a path scope-bound to openclaw.
108
+ // Source: https://github.com/openclaw/openclaw
109
+ {
110
+ name: "openclaw",
111
+ check: (env) => typeof env["OPENCLAW_STATE_DIR"] === "string" || typeof env["OPENCLAW_CONFIG_PATH"] === "string"
112
+ },
113
+ // Pi coding agent (https://pi.dev, https://github.com/earendil-works/pi).
114
+ // packages/coding-agent/src/cli.ts:13 unconditionally executes
115
+ // process.env.PI_CODING_AGENT = "true";
116
+ // at module entry, so every subprocess Pi spawns sees this marker.
117
+ {
118
+ name: "pi",
119
+ check: (env) => typeof env["PI_CODING_AGENT"] === "string"
120
+ },
121
+ // Cline (cline/cline) VS Code extension — injects CLINE_ACTIVE=true into the
122
+ // integrated terminal via vscode.TerminalOptions.env, which the terminal
123
+ // exports to every shell command run in it
124
+ // (apps/vscode/src/hosts/vscode/terminal/VscodeTerminalRegistry.ts:29).
125
+ // Caveat: present only on the default "vscodeTerminal" exec path — the opt-in
126
+ // backgroundExec/YOLO path spawns via child_process without the marker. Same
127
+ // integrated-terminal-only scope as the Cursor/Windsurf rules above.
128
+ // Source: https://github.com/cline/cline (VscodeTerminalRegistry.ts:29)
129
+ {
130
+ name: "cline",
131
+ check: (env) => typeof env["CLINE_ACTIVE"] === "string"
132
+ },
133
+ // Google Gemini CLI (open-source @google/gemini-cli) — DISTINCT from the
134
+ // Gemini managed-agent sandbox. (If a /.agents/ filesystem detector is
135
+ // present in detectAgentRuntime() it runs ahead of this loop and wins for a
136
+ // managed-agent sandbox, leaving this rule to match only the local CLI.)
137
+ // The shell-execution service
138
+ // sets GEMINI_CLI=1 on the child env of every shell command it spawns, so
139
+ // downstream executables can tell they were launched by Gemini CLI
140
+ // (packages/core/src/services/shellExecutionService.ts:56,486-487 — spread
141
+ // onto baseEnv after sanitizeEnvironment, passed as env: to both the
142
+ // child_process and node-pty spawn paths).
143
+ // Caveat: under STRICT sanitization (when GITHUB_SHA is set / the GitHub
144
+ // Action surface) GEMINI_CLI is not allow-listed and gets stripped — reliable
145
+ // for the local CLI, not inside Gemini's GitHub Action runner.
146
+ // Source: https://github.com/google-gemini/gemini-cli (shellExecutionService.ts:56,486-487)
147
+ {
148
+ name: "gemini_cli",
149
+ check: (env) => typeof env["GEMINI_CLI"] === "string"
150
+ },
151
+ // Crush (charmbracelet/crush) — internal/shell/shell.go:43-48,98
152
+ // unconditionally appends CRUSH=1 (plus generic AGENT=crush / AI_AGENT=crush)
153
+ // to the env of every shell it spawns: both the interactive bash tool and the
154
+ // hook runner. We key on CRUSH since AGENT/AI_AGENT are generic and collide.
155
+ // Source: https://github.com/charmbracelet/crush (internal/shell/shell.go:43-48,98)
156
+ {
157
+ name: "crush",
158
+ check: (env) => typeof env["CRUSH"] === "string"
159
+ }
160
+ ];
161
+ function detectSandboxRuntime() {
162
+ if (platform() === "win32") return null;
163
+ if (detectWSL()) return "wsl";
164
+ if (isGVisor()) return "gvisor";
165
+ if (isDocker()) return "docker";
166
+ if (isFirecracker()) return "firecracker";
167
+ if (isKVM()) return "kvm";
168
+ return null;
169
+ }
170
+ function detectAgentRuntime() {
171
+ if (isGeminiManagedAgent()) return "gemini_managed_agent";
172
+ for (const rule of VENDOR_RULES) {
173
+ if (rule.check(process.env)) return rule.name;
174
+ }
175
+ return null;
176
+ }
177
+ function detectExecutionHarnessHint() {
178
+ return typeof process.env["HARBOR_AGENT"] === "string" ? "harbor" : null;
179
+ }
180
+ var SAFE_HINT = /^[a-z0-9_.-]{1,32}$/;
181
+ var CREDENTIAL_PREFIXES = [
182
+ "sk-",
183
+ "sk_",
184
+ "pk-",
185
+ "pplx-",
186
+ "ghp_",
187
+ "gho_",
188
+ "ghu_",
189
+ "ghs_",
190
+ "ghr_",
191
+ "github_pat_",
192
+ "glpat-",
193
+ "gsk_",
194
+ "xox",
195
+ "akia",
196
+ "asia",
197
+ "aiza",
198
+ "ya29",
199
+ "hf_",
200
+ "r8_"
201
+ ];
202
+ var LONG_ALNUM_RUN = /[a-z0-9]{16,}/;
203
+ function looksLikeCredential(v) {
204
+ if (CREDENTIAL_PREFIXES.some((p) => v.startsWith(p))) return true;
205
+ return LONG_ALNUM_RUN.test(v);
206
+ }
207
+ function sanitizeHint(value) {
208
+ if (typeof value !== "string") return null;
209
+ const v = value.trim().toLowerCase();
210
+ if (!SAFE_HINT.test(v)) return null;
211
+ if (looksLikeCredential(v)) return null;
212
+ return v;
213
+ }
214
+ var HINT_KEY_PATTERN = /AGENT|ASSISTANT|COPILOT|CODEX|CLAUDE|LLM|_THREAD_ID$|_SESSION_ID$/;
215
+ function isDiscoveryHintKey(upperKey) {
216
+ if (upperKey === "AGENT" || upperKey === "AI_AGENT") return false;
217
+ if (upperKey.startsWith("SSH_") || upperKey.startsWith("GPG_")) return false;
218
+ if (["NPM_CONFIG_USER_AGENT", "TERM_SESSION_ID", "XDG_SESSION_ID"].includes(upperKey))
219
+ return false;
220
+ return HINT_KEY_PATTERN.test(upperKey);
221
+ }
222
+ function discoveryHintPriority(key) {
223
+ if (/_SERVICE_(HOST|PORT)(_|$)|_PORT(_\d+_(TCP|UDP)(_(ADDR|PORT|PROTO))?)?$/.test(key)) return 2;
224
+ if (/^(HARBOR_AGENT|CURSOR_AGENT|ANTIGRAVITY_AGENT)$|_(SESSION_ID|THREAD_ID)$/.test(key))
225
+ return 0;
226
+ return 1;
227
+ }
228
+ function detectAgentHints() {
229
+ const env = process.env;
230
+ const agent_hint = sanitizeHint(env["AGENT"]) ?? sanitizeHint(env["AI_AGENT"]);
231
+ const term_program = sanitizeHint(env["TERM_PROGRAM"]);
232
+ const keys = /* @__PURE__ */ new Set();
233
+ for (const key of Object.keys(env)) {
234
+ if (key.length > 64) continue;
235
+ const upper = key.toUpperCase();
236
+ if (isDiscoveryHintKey(upper)) keys.add(upper);
237
+ }
238
+ const selected = [...keys].sort((a, b) => discoveryHintPriority(a) - discoveryHintPriority(b) || a.localeCompare(b)).slice(0, 16).sort();
239
+ const agent_env_hints = selected.length ? selected.join(",") : null;
240
+ return { agent_hint, term_program, agent_env_hints };
241
+ }
242
+ function isGVisor() {
243
+ const kernel = release();
244
+ if (kernel.includes("gvisor")) return true;
245
+ if (platform() !== "linux") return false;
246
+ try {
247
+ const procVersion = readFileSync("/proc/version", "utf-8");
248
+ return procVersion.includes("gVisor");
249
+ } catch {
250
+ return false;
251
+ }
252
+ }
253
+ function isDocker() {
254
+ if (existsSync("/.dockerenv")) return true;
255
+ if (platform() !== "linux") return false;
256
+ try {
257
+ const cgroup = readFileSync("/proc/1/cgroup", "utf-8");
258
+ return cgroup.includes("docker") || cgroup.includes("containerd");
259
+ } catch {
260
+ return false;
261
+ }
262
+ }
263
+ function isFirecracker() {
264
+ if (platform() !== "linux") return false;
265
+ if (!existsSync("/dev/vsock")) return false;
266
+ try {
267
+ const sysVendor = readFileSync("/sys/class/dmi/id/sys_vendor", "utf-8").trim();
268
+ if (sysVendor !== "Amazon EC2") return false;
269
+ const productName = readFileSync("/sys/class/dmi/id/product_name", "utf-8").trim();
270
+ return productName.toLowerCase().includes("firecracker");
271
+ } catch {
272
+ return false;
273
+ }
274
+ }
275
+ function isKVM() {
276
+ if (platform() !== "linux") return false;
277
+ try {
278
+ const sysVendor = readFileSync("/sys/class/dmi/id/sys_vendor", "utf-8").trim();
279
+ return sysVendor === "QEMU" || sysVendor.includes("KVM");
280
+ } catch {
281
+ return false;
282
+ }
283
+ }
284
+ function isGeminiManagedAgent() {
285
+ if (platform() !== "linux") return false;
286
+ try {
287
+ if (!statSync("/.agents").isDirectory()) return false;
288
+ } catch {
289
+ return false;
290
+ }
291
+ return isGVisor();
292
+ }
293
+
294
+ // src/telemetry/system.ts
295
+ function bytesToMb(bytes) {
296
+ return Math.trunc(bytes / (1024 * 1024));
297
+ }
298
+ var cached = null;
299
+ var CLIENT_TAG = /^[a-z0-9][a-z0-9._+-]{0,31}(\/[a-z0-9._+-]{1,32}){0,3}$/i;
300
+ function readClientTag() {
301
+ const tag = process.env["HYPERFRAMES_CLIENT"]?.trim() ?? "";
302
+ return CLIENT_TAG.test(tag) ? tag : null;
303
+ }
304
+ function getSystemMeta() {
305
+ if (cached) return cached;
306
+ const cpuInfo = cpus();
307
+ const firstCpu = cpuInfo[0] ?? null;
308
+ const agent_runtime = detectAgentRuntime();
309
+ const hints = agent_runtime === null ? detectAgentHints() : { agent_hint: null, term_program: null, agent_env_hints: null };
310
+ cached = {
311
+ os_release: release2(),
312
+ cpu_count: cpuInfo.length,
313
+ cpu_model: firstCpu?.model?.trim() ?? null,
314
+ cpu_speed: firstCpu?.speed ?? null,
315
+ memory_total_mb: getSystemTotalMb(),
316
+ is_docker: detectDocker(),
317
+ is_ci: detectCI(),
318
+ ci_name: getCIName(),
319
+ is_wsl: detectWSL(),
320
+ is_tty: Boolean(process.stdout?.isTTY),
321
+ sandbox_runtime: detectSandboxRuntime(),
322
+ agent_runtime,
323
+ execution_harness_hint: detectExecutionHarnessHint(),
324
+ agent_hint: hints.agent_hint,
325
+ term_program: hints.term_program,
326
+ agent_env_hints: hints.agent_env_hints,
327
+ client: readClientTag()
328
+ };
329
+ return cached;
330
+ }
331
+ function detectDocker() {
332
+ try {
333
+ if (existsSync2("/.dockerenv")) return true;
334
+ if (platform2() === "linux") {
335
+ const cgroup = readFileSync2("/proc/1/cgroup", "utf-8");
336
+ if (cgroup.includes("docker") || cgroup.includes("containerd")) return true;
337
+ }
338
+ } catch {
339
+ }
340
+ return false;
341
+ }
342
+ var CI_PROVIDERS = [
343
+ { name: "github_actions", envVar: "GITHUB_ACTIONS", mode: "truthy" },
344
+ { name: "gitlab_ci", envVar: "GITLAB_CI", mode: "truthy" },
345
+ { name: "circleci", envVar: "CIRCLECI", mode: "truthy" },
346
+ { name: "jenkins", envVar: "JENKINS_URL", mode: "presence" },
347
+ { name: "buildkite", envVar: "BUILDKITE", mode: "truthy" },
348
+ { name: "travis", envVar: "TRAVIS", mode: "truthy" },
349
+ { name: null, envVar: "CONTINUOUS_INTEGRATION", mode: "truthy" },
350
+ { name: null, envVar: "CI", mode: "truthy" }
351
+ ];
352
+ function matchesProvider(p) {
353
+ const v = process.env[p.envVar];
354
+ if (p.mode === "presence") return v != null;
355
+ return v === "true" || v === "1";
356
+ }
357
+ function detectCI() {
358
+ return CI_PROVIDERS.some(matchesProvider);
359
+ }
360
+ function getCIName() {
361
+ for (const provider of CI_PROVIDERS) {
362
+ if (provider.name && matchesProvider(provider)) return provider.name;
363
+ }
364
+ return detectCI() ? "unknown" : null;
365
+ }
366
+ function getShmSizeMb() {
367
+ if (platform2() !== "linux") return null;
368
+ try {
369
+ const stats = statfsSync("/dev/shm");
370
+ return bytesToMb(stats.bsize * stats.blocks);
371
+ } catch {
372
+ return null;
373
+ }
374
+ }
375
+ function getFreeDiskMb(path = ".") {
376
+ try {
377
+ const stats = statfsSync(path);
378
+ return bytesToMb(stats.bsize * stats.bavail);
379
+ } catch {
380
+ return null;
381
+ }
382
+ }
383
+ function parsePmsetPowerSource(raw) {
384
+ const m = raw.match(/Now drawing from '([^']+)'/);
385
+ if (!m) return null;
386
+ return m[1] === "Battery Power";
387
+ }
388
+ function getPowerState() {
389
+ if (platform2() !== "darwin") {
390
+ return { on_battery: null, low_power_mode: null };
391
+ }
392
+ let on_battery = null;
393
+ let low_power_mode = null;
394
+ try {
395
+ on_battery = parsePmsetPowerSource(
396
+ execSync("pmset -g batt", { encoding: "utf-8", timeout: 2e3 })
397
+ );
398
+ } catch {
399
+ }
400
+ try {
401
+ const raw = execSync("pmset -g", { encoding: "utf-8", timeout: 2e3 });
402
+ const m = raw.match(/lowpowermode\s+(\d)/);
403
+ if (m) low_power_mode = m[1] === "1";
404
+ } catch {
405
+ }
406
+ return { on_battery, low_power_mode };
407
+ }
408
+ function getAvailableMemoryMb() {
409
+ const fallback = bytesToMb(freemem());
410
+ if (platform2() === "darwin") {
411
+ try {
412
+ const raw = execSync("vm_stat", { encoding: "utf-8", timeout: 5e3 });
413
+ const pageSize = parseInt(raw.match(/page size of (\d+)/)?.[1] ?? "0", 10);
414
+ if (!pageSize) return fallback;
415
+ const pages = (key) => parseInt(raw.match(new RegExp(`${key}:\\s+(\\d+)`))?.[1] ?? "0", 10);
416
+ const available = (pages("Pages free") + pages("Pages inactive") + pages("Pages purgeable") + pages("Pages speculative")) * pageSize;
417
+ return available > 0 ? bytesToMb(available) : fallback;
418
+ } catch {
419
+ return fallback;
420
+ }
421
+ }
422
+ if (platform2() === "linux") {
423
+ try {
424
+ const meminfo = readFileSync2("/proc/meminfo", "utf-8");
425
+ const match = meminfo.match(/MemAvailable:\s+(\d+)\s+kB/);
426
+ if (match) {
427
+ return Math.trunc(parseInt(match[1], 10) / 1024);
428
+ }
429
+ return fallback;
430
+ } catch {
431
+ return fallback;
432
+ }
433
+ }
434
+ return fallback;
435
+ }
436
+
437
+ export {
438
+ detectAgentRuntime,
439
+ bytesToMb,
440
+ getSystemMeta,
441
+ getShmSizeMb,
442
+ getFreeDiskMb,
443
+ parsePmsetPowerSource,
444
+ getPowerState,
445
+ getAvailableMemoryMb
446
+ };