hyperframes 0.8.138 → 0.8.140

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/{add-IZQPSHT5.js → add-7SPPQB64.js} +20 -22
  2. package/dist/{animatedGifPrep-MQF3GRFW.js → animatedGifPrep-HN3CJSFX.js} +15 -8
  3. package/dist/{asset-RNZX4ISG.js → asset-AZMFUTRL.js} +3 -3
  4. package/dist/{assetCataloger-5YRUY3PJ.js → assetCataloger-TQUWYLHE.js} +6 -3
  5. package/dist/{auth-LUELYGJ4.js → auth-XGY74R4A.js} +7 -7
  6. package/dist/{autoUpdate-ECMQWUU5.js → autoUpdate-44NTJBQU.js} +2 -2
  7. package/dist/{backgroundChecks-PBEJMSA3.js → backgroundChecks-ET4DJEPG.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-2GXKBPFQ.js → batchRender-HTWWNF3P.js} +11 -8
  10. package/dist/beat-analyzer.global.js +5 -2
  11. package/dist/{beats-AAAZVDOY.js → beats-4GYTZUZG.js} +24 -17
  12. package/dist/{benchmark-EI767IB4.js → benchmark-CJQHE3QN.js} +20 -23
  13. package/dist/{browser-KAA2VXYH.js → browser-NXOVPGDG.js} +14 -28
  14. package/dist/{bundleWithLocalizedFonts-MWDYAPGB.js → bundleWithLocalizedFonts-6PJP54TC.js} +5 -5
  15. package/dist/{capture-IRRHK6BT.js → capture-5EHGRJZM.js} +2 -2
  16. package/dist/{capture-VYT5NQQI.js → capture-EHOMO4MP.js} +22 -15
  17. package/dist/{catalog-FYTZ2ET6.js → catalog-PTX5Z52R.js} +28 -30
  18. package/dist/{catch-up-XH3OAKQR.js → catch-up-I45SPSCU.js} +11 -25
  19. package/dist/{check-MUMIOK5K.js → check-LJ7LG7OI.js} +72 -54
  20. package/dist/{checkBrowser-LKSZFOU6.js → checkBrowser-6EK5E4PG.js} +81 -36
  21. package/dist/chunk-24OWOBQH.js +3656 -0
  22. package/dist/{chunk-3F6YLT72.js → chunk-2GMKWYEH.js} +12 -12
  23. package/dist/{chunk-KRLYIT22.js → chunk-5IKJONRY.js} +1 -1
  24. package/dist/chunk-6IHWCZ3W.js +54 -0
  25. package/dist/{chunk-P5WDMFBB.js → chunk-6U3MN4HW.js} +5 -106
  26. package/dist/chunk-A4KQZXZI.js +116 -0
  27. package/dist/{chunk-MKVKVMUH.js → chunk-ABJNXQUA.js} +10 -10
  28. package/dist/{chunk-YGXLBX3N.js → chunk-ASW6NWON.js} +1 -1
  29. package/dist/chunk-B3I3XJ47.js +3711 -0
  30. package/dist/{chunk-FSSMOTMS.js → chunk-BJ5JWOES.js} +1 -1
  31. package/dist/{chunk-OBC75KXL.js → chunk-BQKEGPPL.js} +1 -1
  32. package/dist/{chunk-SHB5VDMH.js → chunk-BRITLL56.js} +1 -1
  33. package/dist/{chunk-VR5UQWGV.js → chunk-C2JUHIG5.js} +6 -6
  34. package/dist/{chunk-YNBXJWSD.js → chunk-DDQ4LOML.js} +1 -1
  35. package/dist/{chunk-HUZYBV2Z.js → chunk-DQNOPYAG.js} +1 -1
  36. package/dist/{chunk-JH556Q42.js → chunk-EDYBFSPE.js} +2 -2
  37. package/dist/{chunk-SIMYRD5P.js → chunk-F3SPK6SO.js} +78 -20
  38. package/dist/chunk-FXMKHHPO.js +123 -0
  39. package/dist/chunk-G75ENCEZ.js +283 -0
  40. package/dist/{chunk-MIOBYUXT.js → chunk-GQJZORQP.js} +1 -1
  41. package/dist/{chunk-Y6W4DVPS.js → chunk-HKCNZITN.js} +1 -1
  42. package/dist/{chunk-APMG37MX.js → chunk-IFY57LUW.js} +1 -1
  43. package/dist/{chunk-JOUVZO7M.js → chunk-IRBESGJ7.js} +4 -4
  44. package/dist/chunk-JFKL3WAE.js +161 -0
  45. package/dist/{chunk-WH6PRFNX.js → chunk-JSGANFFH.js} +12 -3
  46. package/dist/{chunk-S3S2LSZX.js → chunk-KDPYVTEU.js} +2 -1
  47. package/dist/{chunk-PHXBLIKK.js → chunk-KECV5G4V.js} +165 -59
  48. package/dist/{chunk-SDRKEYZV.js → chunk-KFQNMY36.js} +8 -8
  49. package/dist/{chunk-QPOK6I32.js → chunk-KJLY2SDJ.js} +2 -2
  50. package/dist/{chunk-SZITAGRK.js → chunk-KMKWRIMC.js} +1 -1
  51. package/dist/{chunk-UUMK6VME.js → chunk-KOEWEFHK.js} +1 -1
  52. package/dist/{chunk-HXXX6N2G.js → chunk-L2H2L22P.js} +2 -2
  53. package/dist/{chunk-DJMXTKKK.js → chunk-LQG6GPVK.js} +1 -1
  54. package/dist/{chunk-GJGVYREG.js → chunk-MHK5DE2P.js} +268 -1964
  55. package/dist/{chunk-W3KQCJVP.js → chunk-MTVDXB6S.js} +18 -289
  56. package/dist/{chunk-IRYC5BRO.js → chunk-MU6C2VP6.js} +7 -7
  57. package/dist/{chunk-P75OFLZN.js → chunk-MUINFURL.js} +2 -2
  58. package/dist/{chunk-L5E5ZN6G.js → chunk-PB3P4MKP.js} +1 -1
  59. package/dist/{chunk-PHRWQQOJ.js → chunk-PE2I3AFA.js} +1 -1
  60. package/dist/{chunk-DXHYACUC.js → chunk-PFJFHNU3.js} +3 -3
  61. package/dist/{chunk-KBUUCAIZ.js → chunk-PPKFM5WE.js} +2 -2
  62. package/dist/{chunk-RH5VML6E.js → chunk-PUBKHEEA.js} +13 -13
  63. package/dist/{chunk-R6C6URKB.js → chunk-QBK7WKHT.js} +8 -8
  64. package/dist/{chunk-I3BRUEKD.js → chunk-QG3PDRSO.js} +1 -1
  65. package/dist/{chunk-RLNB3JCY.js → chunk-QP3BRKGF.js} +1 -163
  66. package/dist/chunk-QZ3AZTXI.js +1740 -0
  67. package/dist/{chunk-GNHJ4ONK.js → chunk-SLEPCESN.js} +2 -2
  68. package/dist/chunk-T76PLPD6.js +57 -0
  69. package/dist/{chunk-7Y5SMPRV.js → chunk-TPECLKPA.js} +168 -165
  70. package/dist/{chunk-IC5L6L7K.js → chunk-TYT2TLJR.js} +1 -1
  71. package/dist/{chunk-ASPTQ6DT.js → chunk-U7E736AJ.js} +1 -1
  72. package/dist/chunk-UOFAE5RF.js +42 -0
  73. package/dist/chunk-USDEMXXL.js +110 -0
  74. package/dist/{chunk-5K33TNUJ.js → chunk-VVJFZU6B.js} +2 -2
  75. package/dist/{chunk-XQODEVF3.js → chunk-WKTHUC2R.js} +1 -1
  76. package/dist/{chunk-7OLMGFDN.js → chunk-WQBA3MH4.js} +3 -3
  77. package/dist/{chunk-STA43FMY.js → chunk-WY5OODN5.js} +71 -3855
  78. package/dist/{chunk-JCRJBB4E.js → chunk-X3X3VETN.js} +8 -8
  79. package/dist/{chunk-ZTZ7NCJT.js → chunk-XTFJOR3K.js} +1 -1
  80. package/dist/chunk-YA62XGXS.js +45 -0
  81. package/dist/{clean-LZPDOAV4.js → clean-Y3AQITOX.js} +29 -20
  82. package/dist/cli.js +55 -55
  83. package/dist/{cloud-RVAH5NNL.js → cloud-TDPOMBZF.js} +7 -7
  84. package/dist/{cloudrun-NFGM6TRT.js → cloudrun-FPAVAVHP.js} +11 -8
  85. package/dist/commands/layout-audit.browser.js +37 -8
  86. package/dist/commands/motion-signature.browser.js +51 -2
  87. package/dist/{compare-S3M5OAL2.js → compare-LHL225ND.js} +40 -31
  88. package/dist/{compiler-SZ4GTYFB.js → compiler-RTU3KTLF.js} +7 -3
  89. package/dist/{component-PR2WZTQ4.js → component-L2YX7J56.js} +4 -4
  90. package/dist/{compositions-6RYXH2UA.js → compositions-V2UZKG7S.js} +23 -16
  91. package/dist/{delete-EO7C3LQ6.js → delete-OXZEXUQY.js} +8 -8
  92. package/dist/{dist-RVC3JTID.js → dist-N33CM63P.js} +21 -15
  93. package/dist/{dist-OJTEVNJR.js → dist-NZSQCYOF.js} +3 -1
  94. package/dist/{doctor-UTCCMN32.js → doctor-MWTPSIVD.js} +20 -13
  95. package/dist/{events-RE3OR6KY.js → events-4TZGQZWF.js} +6 -22
  96. package/dist/{events-RCGWL4LI.js → events-7VJJGC3D.js} +10 -23
  97. package/dist/{feedback-V7C64JIR.js → feedback-HSGAPVN7.js} +67 -45
  98. package/dist/{figma-26LOX5PV.js → figma-AMC6FAK3.js} +6 -6
  99. package/dist/fontLocalizeCli.js +17 -10
  100. package/dist/{get-E2K2JRTV.js → get-Y7DFEFYM.js} +8 -8
  101. package/dist/{gpuPolicy-Z3PQN6ZK.js → gpuPolicy-A45VSUKR.js} +15 -8
  102. package/dist/{grade-compare-OTZDU463.js → grade-compare-ERSA3OUI.js} +40 -31
  103. package/dist/{gsapParser-2OL54XZ5.js → gsapParser-UP3PNPC2.js} +3 -2
  104. package/dist/{help-IRSQLNI5.js → help-TW2AADLZ.js} +4 -4
  105. package/dist/{history-G44U6762.js → history-DKGDSVWF.js} +12 -30
  106. package/dist/hyperframe-runtime.js +59 -59
  107. package/dist/hyperframe.manifest.json +1 -1
  108. package/dist/hyperframe.runtime.iife.js +59 -59
  109. package/dist/hyperframes-player.global.js +3 -3
  110. package/dist/{info-KXQ2TAHX.js → info-I3NRRNX4.js} +17 -20
  111. package/dist/{init-7SXMLHJE.js → init-5Y3ZWZNF.js} +50 -41
  112. package/dist/{inspect-7JTINR25.js → inspect-BJQKBB3X.js} +39 -30
  113. package/dist/{installer-RH4E6WXT.js → installer-27K4JS2I.js} +8 -5
  114. package/dist/{keyframes-PIV573S6.js → keyframes-6V2NZO22.js} +14 -25
  115. package/dist/{lambda-GO5HAA4S.js → lambda-AIMF3K4A.js} +16 -13
  116. package/dist/{layout-N2736OO3.js → layout-YAPEBTU4.js} +39 -30
  117. package/dist/{lint-WUXZ5WWZ.js → lint-3LWWUIV7.js} +17 -23
  118. package/dist/{lintProject-ANMPLBIT.js → lintProject-LM3XZRPZ.js} +3 -1
  119. package/dist/{list-QF7AMX5F.js → list-NTSGEZJ6.js} +8 -8
  120. package/dist/{login-6RGSXHQJ.js → login-ZTDFGCCW.js} +9 -9
  121. package/dist/{logout-Q654A3SI.js → logout-GJXZQKOA.js} +5 -5
  122. package/dist/{media-treatment-T4KDEDYW.js → media-treatment-ARHX446F.js} +21 -20
  123. package/dist/{models-6JMNK3XI.js → models-VHNQVTHG.js} +20 -13
  124. package/dist/{motionShot-74WM7KF6.js → motionShot-35HCSNCI.js} +22 -15
  125. package/dist/{normalize-O76AC4HE.js → normalize-IGLHCWTF.js} +0 -4
  126. package/dist/{normalize-audio-ZZU36ZMD.js → normalize-audio-AUC73JH3.js} +13 -26
  127. package/dist/{open-G523K45B.js → open-C5LVNU3U.js} +11 -25
  128. package/dist/{pipeline-AKDGCWRE.js → pipeline-4GDTK54T.js} +15 -8
  129. package/dist/{play-SHIGXVON.js → play-U7UANF7Z.js} +38 -32
  130. package/dist/{preflight-6ERLORWK.js → preflight-Y5DN5D37.js} +3 -18
  131. package/dist/{present-QOYYNZCE.js → present-X6V6TX3E.js} +32 -26
  132. package/dist/{preview-KUXTDJL3.js → preview-K43RTRU2.js} +33 -26
  133. package/dist/{producer-CH33JXHK.js → producer-PVMFMW23.js} +1 -1
  134. package/dist/{projectConfig-NKIPRWAE.js → projectConfig-PI6MEN2T.js} +10 -7
  135. package/dist/{publication-4RBVVR5Z.js → publication-67C7KVTL.js} +6 -3
  136. package/dist/{publish-OLHR4Z4U.js → publish-RBV7EAMH.js} +27 -20
  137. package/dist/{refresh-K24ETHMA.js → refresh-MFITBIKV.js} +5 -5
  138. package/dist/{remove-background-NPKZSIPY.js → remove-background-Z2ECZX2Q.js} +22 -15
  139. package/dist/{render-UOKPAJNH.js → render-2GQMQBU3.js} +10 -7
  140. package/dist/{render-GYYGWYQC.js → render-EFU4BZRZ.js} +23 -26
  141. package/dist/{render-P4NWFUS7.js → render-YBS3XGRJ.js} +52 -32
  142. package/dist/{render-batch-ZDG3EXSD.js → render-batch-QC64OTB5.js} +11 -8
  143. package/dist/{renderCancellation-QYQLWHZY.js → renderCancellation-NTVU7IMB.js} +15 -8
  144. package/dist/renderSetupWorker.js +4 -2
  145. package/dist/{resolver-CWH3VVB7.js → resolver-GBWYG3EI.js} +8 -5
  146. package/dist/{sherpa-WEQE23S5.js → sherpa-ZW6PWJS4.js} +46 -14
  147. package/dist/sherpaWorker.js +11 -3
  148. package/dist/skills/hyperframes/references/capability-menu.md +1 -1
  149. package/dist/skills/hyperframes-cli/SKILL.md +5 -0
  150. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
  151. package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
  152. package/dist/skills/media-use/SKILL.md +6 -4
  153. package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +28 -0
  154. package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +106 -0
  155. package/dist/skills/media-use/references/setup-providers.md +3 -2
  156. package/dist/skills/media-use/scripts/lib/heygen-cli.mjs +21 -1
  157. package/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +14 -0
  158. package/dist/skills/media-use/scripts/resolve.mjs +11 -6
  159. package/dist/{skills-BVONI6TC.js → skills-VKZAX5AS.js} +15 -30
  160. package/dist/{skillsUpdateCheck-KKDPTFM7.js → skillsUpdateCheck-PAY2OPDE.js} +3 -3
  161. package/dist/{snapshot-PWZFJEDR.js → snapshot-SD5R3NWX.js} +41 -32
  162. package/dist/{src-YO7MAWGD.js → src-7SSERHNP.js} +19 -11
  163. package/dist/{src-HH4C5GZV.js → src-RXTXL3VL.js} +16 -9
  164. package/dist/{staticProjectServer-PR5INXSA.js → staticProjectServer-XELJXX4J.js} +24 -16
  165. package/dist/{status-AK67DTED.js → status-JA6SKQVH.js} +7 -24
  166. package/dist/studio/assets/{hyperframes-player-B30apksz.js → hyperframes-player-BLuyxnK7.js} +1 -1
  167. package/dist/studio/assets/{index-DXVvWfQG.js → index-CWfuDCoA.js} +1 -1
  168. package/dist/studio/assets/{index-DIJuIBwI.js → index-Dr3Bo9uH.js} +1 -1
  169. package/dist/studio/assets/{index-BdjA0CLD.js → index-VAHDM_zL.js} +210 -210
  170. package/dist/studio/{chunk-4S3AYCOG.js → chunk-H2DUOXTF.js} +3 -2
  171. package/dist/studio/{chunk-TDWGXBUT.js → chunk-TFLU2MGI.js} +1 -6
  172. package/dist/studio/chunk-TFLU2MGI.js.map +1 -0
  173. package/dist/studio/{chunk-7UQWVN52.js → chunk-UYWON5AX.js} +2 -2
  174. package/dist/studio/{domEditingLayers-IEVLO54Z.js → domEditingLayers-KBTPQKGA.js} +3 -3
  175. package/dist/studio/index.d.ts +20 -3
  176. package/dist/studio/index.html +1 -1
  177. package/dist/studio/index.js +7327 -6265
  178. package/dist/studio/index.js.map +1 -1
  179. package/dist/studio/player.js +2 -2
  180. package/dist/{studio-api-NFJMFAB7.js → studio-api-4FNUZPJ4.js} +40 -28
  181. package/dist/{studioServer-TQZVCIEL.js → studioServer-GHLL3F2M.js} +99 -68
  182. package/dist/{system-ZWIBWWE6.js → system-OQLOGGPJ.js} +2 -19
  183. package/dist/{telemetry-63L2ORO3.js → telemetry-7AO77PMH.js} +8 -23
  184. package/dist/{timeline-QKZQL5DJ.js → timeline-6LTHSRXM.js} +32 -22
  185. package/dist/{tokens-ELK62U4A.js → tokens-K6B46KNL.js} +3 -3
  186. package/dist/{transcribe-OSK7HEOJ.js → transcribe-CLLISRLZ.js} +18 -9
  187. package/dist/{transcribe-VKSXTM7K.js → transcribe-K2OU6FZF.js} +37 -78
  188. package/dist/{updateCheck-PM4FEI7P.js → updateCheck-X6UQBS6I.js} +2 -2
  189. package/dist/{upgrade-G635QCNO.js → upgrade-BZFKEADI.js} +5 -5
  190. package/dist/{urlDownloader-MVYQTP73.js → urlDownloader-VAVUXYEQ.js} +14 -7
  191. package/dist/{validate-AZTMI3HR.js → validate-VO5KEXWN.js} +26 -19
  192. package/dist/{video-H56FK33V.js → video-JV6Y4UJR.js} +18 -11
  193. package/package.json +1 -1
  194. package/dist/chunk-UINDCCO7.js +0 -3742
  195. package/dist/studio/chunk-TDWGXBUT.js.map +0 -1
  196. package/dist/{chunk-I465DBM6.js → chunk-246MOR5U.js} +3 -3
  197. package/dist/{deploy-MX76RZ36.js → deploy-5G4Z6LPA.js} +1 -1
  198. package/dist/{destroy-H2TZBYHH.js → destroy-GFQLTIY3.js} +1 -1
  199. package/dist/{docs-QAPJEGLS.js → docs-MPOM3PHH.js} +3 -3
  200. package/dist/{policies-FSDZVS2E.js → policies-4FEXMXPK.js} +3 -3
  201. package/dist/{progress-FBIEEB7Y.js → progress-5AM2MZ7V.js} +3 -3
  202. package/dist/{sites-TNVKZS73.js → sites-HZMADOA3.js} +1 -1
  203. package/dist/studio/{chunk-4S3AYCOG.js.map → chunk-H2DUOXTF.js.map} +0 -0
  204. package/dist/studio/{chunk-7UQWVN52.js.map → chunk-UYWON5AX.js.map} +0 -0
  205. package/dist/studio/{domEditingLayers-IEVLO54Z.js.map → domEditingLayers-KBTPQKGA.js.map} +0 -0
  206. package/dist/{telemetry-2YC4SGQU.js → telemetry-W5AKPI4R.js} +3 -3
  207. package/dist/{tts-FU35O6YB.js → tts-TOHSPWEG.js} +4 -4
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-YNBXJWSD.js";
9
+ } from "./chunk-DDQ4LOML.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -10,19 +10,19 @@ import {
10
10
  import {
11
11
  ensureDOMParser
12
12
  } from "./chunk-PFCFR3KZ.js";
13
- import {
14
- c
15
- } from "./chunk-ZTZA4UWZ.js";
16
13
  import {
17
14
  failCommand
18
15
  } from "./chunk-PBN6GBJE.js";
19
16
  import {
20
17
  formatVariableValidationIssue,
21
18
  validateVariables
22
- } from "./chunk-RLNB3JCY.js";
19
+ } from "./chunk-QP3BRKGF.js";
23
20
  import {
24
21
  extractCompositionMetadata
25
22
  } from "./chunk-OZUQF4NB.js";
23
+ import {
24
+ c
25
+ } from "./chunk-ZTZA4UWZ.js";
26
26
 
27
27
  // src/utils/variables.ts
28
28
  import { readFileSync } from "fs";
@@ -0,0 +1,161 @@
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
+ // ../parsers/dist/assetResolution.js
9
+ import { closeSync, constants, existsSync, fstatSync, openSync, readFileSync } from "fs";
10
+ import { isAbsolute, join, posix, relative, resolve, sep } from "path";
11
+ function decodeUrlPathVariants(path) {
12
+ const variants = [path];
13
+ try {
14
+ const decoded = decodeURIComponent(path);
15
+ if (decoded !== path) variants.unshift(decoded);
16
+ } catch {
17
+ }
18
+ return variants;
19
+ }
20
+ function isRemoteOrInlineUrl(url) {
21
+ return /^(https?:|data:|blob:|\/\/|#)/i.test(url);
22
+ }
23
+ function hasUnresolvedTemplatingToken(url) {
24
+ return /<<[^<>]+>>|\{\{[^{}]+\}\}|\$\{[^{}]+\}/.test(url);
25
+ }
26
+ function isUnresolvedAssetPlaceholder(rawSrc) {
27
+ return /^__[A-Z_]+__$/.test(rawSrc.trim()) || hasUnresolvedTemplatingToken(rawSrc);
28
+ }
29
+ var COMPOSITION_SRC_ATTR = /\bdata-composition-src\s*=\s*["']([^"']+)["']/i;
30
+ function collectSubCompositionSrcs(html) {
31
+ const scannable = maskNonScannableRanges(html);
32
+ const srcs = [];
33
+ const seen = /* @__PURE__ */ new Set();
34
+ let cursor = 0;
35
+ while (cursor < scannable.length) {
36
+ const open = scannable.indexOf("<", cursor);
37
+ if (open === -1) break;
38
+ const close = scannable.indexOf(">", open + 1);
39
+ if (close === -1) break;
40
+ cursor = close + 1;
41
+ const match = COMPOSITION_SRC_ATTR.exec(scannable.slice(open, cursor));
42
+ if (!match) continue;
43
+ const src = (match[1] ?? "").trim();
44
+ if (!src || seen.has(src)) continue;
45
+ if (isUnresolvedAssetPlaceholder(src)) continue;
46
+ if (isRemoteOrInlineUrl(src)) continue;
47
+ seen.add(src);
48
+ srcs.push(src);
49
+ }
50
+ return srcs;
51
+ }
52
+ function cleanAssetUrl(url) {
53
+ return url.trim().split(/[?#]/, 1)[0] ?? "";
54
+ }
55
+ function isWithinProjectRoot(projectDir, candidate, pathModule = { resolve, relative, isAbsolute }) {
56
+ const projectRoot = pathModule.resolve(projectDir);
57
+ const relativePath = pathModule.relative(projectRoot, candidate);
58
+ return relativePath === "" || !relativePath.startsWith("..") && !pathModule.isAbsolute(relativePath);
59
+ }
60
+ function addCandidate(candidates, candidate) {
61
+ if (!candidates.includes(candidate)) candidates.push(candidate);
62
+ }
63
+ function resolveLocalAssetCandidates(projectDir, url) {
64
+ const cleanUrl = cleanAssetUrl(url);
65
+ const projectRoot = resolve(projectDir);
66
+ const candidates = [];
67
+ for (const variant of decodeUrlPathVariants(cleanUrl)) {
68
+ const projectRelative = variant.startsWith("/") ? variant.slice(1) : variant;
69
+ const resolved = resolve(projectRoot, projectRelative);
70
+ if (isWithinProjectRoot(projectRoot, resolved)) {
71
+ addCandidate(candidates, resolved);
72
+ continue;
73
+ }
74
+ const normalized = posix.normalize(projectRelative.replace(/\\/g, "/"));
75
+ const clamped = normalized.replace(/^(\.\.\/)+/, "");
76
+ if (clamped && !clamped.startsWith("..")) {
77
+ addCandidate(candidates, resolve(projectRoot, clamped));
78
+ }
79
+ }
80
+ return candidates;
81
+ }
82
+ function resolveExistingLocalAsset(projectDir, url) {
83
+ const projectRoot = resolve(projectDir);
84
+ const resolved = resolveLocalAssetCandidates(projectRoot, url).find(existsSync);
85
+ if (!resolved) return null;
86
+ return { resolved, rootRelativePath: relative(projectRoot, resolved) };
87
+ }
88
+ function reanchoredCandidates(variant, baseDir, compiledDir) {
89
+ const baseAbs = resolve(baseDir);
90
+ const joinedAbs = resolve(join(baseDir, variant));
91
+ if (joinedAbs === baseAbs || joinedAbs.startsWith(baseAbs + sep)) return [];
92
+ const stripped = posix.normalize(variant.replace(/\\/g, "/")).replace(/^(\.\.\/)+/, "");
93
+ if (!stripped || stripped === variant || stripped.startsWith("..")) return [];
94
+ return compiledDir ? [join(compiledDir, stripped), join(baseDir, stripped)] : [join(baseDir, stripped)];
95
+ }
96
+ function resolveProjectRelativeSrc(src, baseDir, compiledDir) {
97
+ const cleanSrc = cleanAssetUrl(src);
98
+ if (isAbsolute(cleanSrc) && existsSync(cleanSrc)) return cleanSrc;
99
+ const candidates = /* @__PURE__ */ new Set();
100
+ for (const variant of decodeUrlPathVariants(cleanSrc)) {
101
+ for (const candidate of reanchoredCandidates(variant, baseDir, compiledDir)) {
102
+ candidates.add(candidate);
103
+ }
104
+ if (compiledDir) candidates.add(join(compiledDir, variant));
105
+ candidates.add(join(baseDir, variant));
106
+ }
107
+ return [...candidates].find(existsSync) ?? join(baseDir, cleanSrc);
108
+ }
109
+ function maskRange(src, pattern) {
110
+ return src.replace(pattern, (m) => " ".repeat(m.length));
111
+ }
112
+ function maskHtmlComments(src) {
113
+ const chunks = [];
114
+ let cursor = 0;
115
+ while (true) {
116
+ const start = src.indexOf("<!--", cursor);
117
+ if (start === -1) break;
118
+ const end = src.indexOf("-->", start + 4);
119
+ if (end === -1) break;
120
+ const afterComment = end + 3;
121
+ chunks.push(src.slice(cursor, start), " ".repeat(afterComment - start));
122
+ cursor = afterComment;
123
+ }
124
+ return chunks.length === 0 ? src : chunks.join("") + src.slice(cursor);
125
+ }
126
+ function maskNonScannableRanges(html) {
127
+ let out = maskHtmlComments(html);
128
+ out = maskRange(out, /<style\b[^>]*>[\s\S]*?<\/style\b[^>]*>/gi);
129
+ out = maskRange(out, /<script\b[^>]*>[\s\S]*?<\/script\b[^>]*>/gi);
130
+ return out;
131
+ }
132
+ function readProjectFile(path) {
133
+ let fd;
134
+ try {
135
+ fd = openSync(path, constants.O_RDONLY | (constants.O_NONBLOCK ?? 0), 384);
136
+ } catch (error) {
137
+ const code = error.code ?? "";
138
+ if (["EISDIR", "ENXIO"].includes(code)) return { kind: "folder" };
139
+ if (["ENOENT", "ENOTDIR", "ELOOP", "ENAMETOOLONG"].includes(code)) return { kind: "missing" };
140
+ throw error;
141
+ }
142
+ try {
143
+ if (!fstatSync(fd).isFile()) return { kind: "folder" };
144
+ return { kind: "file", text: readFileSync(fd, "utf-8") };
145
+ } finally {
146
+ closeSync(fd);
147
+ }
148
+ }
149
+
150
+ export {
151
+ isRemoteOrInlineUrl,
152
+ isUnresolvedAssetPlaceholder,
153
+ collectSubCompositionSrcs,
154
+ cleanAssetUrl,
155
+ isWithinProjectRoot,
156
+ resolveLocalAssetCandidates,
157
+ resolveExistingLocalAsset,
158
+ resolveProjectRelativeSrc,
159
+ maskNonScannableRanges,
160
+ readProjectFile
161
+ };
@@ -8,16 +8,16 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-VR5UQWGV.js";
11
+ } from "./chunk-C2JUHIG5.js";
12
12
  import {
13
13
  getPowerState
14
- } from "./chunk-MIOBYUXT.js";
14
+ } from "./chunk-GQJZORQP.js";
15
15
  import {
16
16
  CliRuntimeError
17
17
  } from "./chunk-PBN6GBJE.js";
18
18
  import {
19
19
  redactTelemetryString
20
- } from "./chunk-RLNB3JCY.js";
20
+ } from "./chunk-T76PLPD6.js";
21
21
  import {
22
22
  readConfig
23
23
  } from "./chunk-XUXGIA7H.js";
@@ -486,6 +486,14 @@ function trackHistoryAction(props) {
486
486
  function trackSkillsInstallSkipped(props) {
487
487
  trackEvent("cli skill install skipped", { reason: props.reason });
488
488
  }
489
+ function trackFeedbackComment(props) {
490
+ trackEvent("cli_feedback_comment", {
491
+ comment: props.comment,
492
+ ...props.doctorSummary ? { doctor_summary: props.doctorSummary } : {},
493
+ ...props.feedbackId ? { feedback_id: props.feedbackId } : {},
494
+ ...props.recentRenderIds?.length ? { recent_render_ids: props.recentRenderIds.join(",") } : {}
495
+ });
496
+ }
489
497
  function trackRenderFeedback(props) {
490
498
  trackEvent("cli_render_feedback", {
491
499
  rating: props.rating,
@@ -592,6 +600,7 @@ export {
592
600
  trackCompareSheet,
593
601
  trackHistoryAction,
594
602
  trackSkillsInstallSkipped,
603
+ trackFeedbackComment,
595
604
  trackRenderFeedback,
596
605
  trackCatalogSearchMiss,
597
606
  trackCommandResult,
@@ -13,6 +13,7 @@ import { basename, extname, join } from "path";
13
13
  var PARAKEET_MODEL_LABEL = "parakeet-tdt-0.6b-v3";
14
14
  var SHERPA_RESULT_PREFIX = "HYPERFRAMES_PARAKEET_RESULT:";
15
15
  var SHERPA_ERROR_PREFIX = "HYPERFRAMES_PARAKEET_ERROR:";
16
+ var SHERPA_WINDOW_PREFIX = "HYPERFRAMES_PARAKEET_WINDOW:";
16
17
  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
18
  function parakeetSpeaks(language) {
18
19
  const base = language?.trim().toLowerCase().split(/[-_]/, 1)[0];
@@ -177,7 +178,6 @@ function transcribeWithParakeet(inputPath, dir, options) {
177
178
  const workDir = mkdtempSync(join(tmpdir(), "hyperframes-parakeet-"));
178
179
  try {
179
180
  const argv = [inputPath, "--model", model, "--output-format", "json", "--output-dir", workDir];
180
- if (options?.language) argv.push("--language", options.language);
181
181
  options?.onEvent?.({
182
182
  type: "progress",
183
183
  phase: "transcription",
@@ -221,6 +221,7 @@ export {
221
221
  PARAKEET_MODEL_LABEL,
222
222
  SHERPA_RESULT_PREFIX,
223
223
  SHERPA_ERROR_PREFIX,
224
+ SHERPA_WINDOW_PREFIX,
224
225
  PARAKEET_LANGUAGES,
225
226
  parakeetSpeaks,
226
227
  findParakeet,