hyperframes 0.8.139 → 0.8.141
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.
- package/dist/{add-VYJQ4S3P.js → add-KH2CF4FD.js} +20 -22
- package/dist/{animatedGifPrep-IBMW6FZB.js → animatedGifPrep-QO4BSKR7.js} +15 -8
- package/dist/{asset-FLSUS73X.js → asset-4RDZILVJ.js} +3 -3
- package/dist/{assetCataloger-TGD7TRCR.js → assetCataloger-WGR4LYYN.js} +6 -3
- package/dist/{auth-EZXIN4M4.js → auth-WYQCOYE5.js} +7 -7
- package/dist/{autoUpdate-ZPMY5T3X.js → autoUpdate-PC5TN3NL.js} +2 -2
- package/dist/{backgroundChecks-JIDTAUFE.js → backgroundChecks-7M3T44EP.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-FNZ6TJYY.js → batchRender-GOLLOE4V.js} +11 -8
- package/dist/beat-analyzer.global.js +5 -2
- package/dist/{beats-EAA4U3YN.js → beats-XJ7WP6QS.js} +24 -17
- package/dist/{benchmark-KKZQVK2Y.js → benchmark-HCGFBEZJ.js} +20 -23
- package/dist/{browser-ZIVVJLJT.js → browser-VQKO2FKG.js} +14 -28
- package/dist/{bundleWithLocalizedFonts-2XWC3PEM.js → bundleWithLocalizedFonts-FH7PHTTX.js} +5 -5
- package/dist/{capture-EFYPXI42.js → capture-TFZZSF6F.js} +22 -15
- package/dist/{capture-MKJHABUL.js → capture-XD3P3YQR.js} +2 -2
- package/dist/{catalog-EWX4BBI2.js → catalog-4S33QWJJ.js} +28 -30
- package/dist/{catch-up-FJFH7T4W.js → catch-up-RW7YXXNT.js} +11 -25
- package/dist/{check-YJNVDCBP.js → check-XVTRRN4Y.js} +72 -54
- package/dist/{checkBrowser-I6SPPEGD.js → checkBrowser-HZXJ2EDU.js} +81 -36
- package/dist/chunk-24OWOBQH.js +3656 -0
- package/dist/{chunk-OENM2JVZ.js → chunk-34TXESM7.js} +3 -3
- package/dist/{chunk-GWV2Y36Q.js → chunk-35RSNI77.js} +5 -106
- package/dist/{chunk-BC3OY2ED.js → chunk-3A5AAPMP.js} +1 -1
- package/dist/{chunk-U3HX7WE6.js → chunk-3NBKW2QJ.js} +1 -1
- package/dist/{chunk-A4X2YWNQ.js → chunk-4BB7V6AI.js} +38 -301
- package/dist/{chunk-EJ7OWYF2.js → chunk-6E6CM7WS.js} +19 -163
- package/dist/{chunk-CDMB3PRC.js → chunk-6IFXWJDX.js} +7 -7
- package/dist/{chunk-Z67RZ4XO.js → chunk-6Q6FR4KH.js} +279 -1968
- package/dist/{chunk-R4QIE6UY.js → chunk-7M4KAPAA.js} +92 -31
- package/dist/{chunk-25DHUDOK.js → chunk-7XTZVLE6.js} +12 -3
- package/dist/chunk-A4KQZXZI.js +116 -0
- package/dist/{chunk-DUQJF7FK.js → chunk-A7YQNIQT.js} +8 -8
- package/dist/{chunk-XOZ3J3LB.js → chunk-AVWEIOEN.js} +1 -1
- package/dist/{chunk-UQXOHEQ7.js → chunk-BM5PX3DJ.js} +4 -4
- package/dist/{chunk-SHB5VDMH.js → chunk-BRITLL56.js} +1 -1
- package/dist/{chunk-JX7Y57YY.js → chunk-E4BSCXMU.js} +1 -1
- package/dist/{chunk-QXOFUKBF.js → chunk-E6SDW5FV.js} +168 -165
- package/dist/{chunk-JH556Q42.js → chunk-EDYBFSPE.js} +2 -2
- package/dist/{chunk-R7LWDIKB.js → chunk-EKA4ZZBI.js} +1 -1
- package/dist/chunk-FXMKHHPO.js +123 -0
- package/dist/chunk-G75ENCEZ.js +283 -0
- package/dist/{chunk-PLNWWGE7.js → chunk-GQJZORQP.js} +1 -1
- package/dist/{chunk-U3GEXWI5.js → chunk-GS6FE3IW.js} +1 -1
- package/dist/{chunk-Y6W4DVPS.js → chunk-HKCNZITN.js} +1 -1
- package/dist/{chunk-HOIHGPWO.js → chunk-IKVBTDLO.js} +1 -1
- package/dist/{chunk-YOL4QRSL.js → chunk-INI3TM6I.js} +2 -2
- package/dist/{chunk-SIKMUO45.js → chunk-IO7ZIDRP.js} +12 -12
- package/dist/{chunk-W7SAWBQC.js → chunk-IV7EI5E2.js} +1 -1
- package/dist/{chunk-TCWL4BKK.js → chunk-IYFKBFTW.js} +1 -1
- package/dist/{chunk-JIIIBTN2.js → chunk-J5IPIQU2.js} +1 -1
- package/dist/chunk-JFKL3WAE.js +161 -0
- package/dist/{chunk-IBRZUVTH.js → chunk-K2GOFLTX.js} +2 -2
- package/dist/{chunk-X3TMMIDP.js → chunk-KFH6UD26.js} +8 -8
- package/dist/{chunk-O6K5DWXM.js → chunk-KOEWEFHK.js} +1 -1
- package/dist/{chunk-VTVS4IIP.js → chunk-L3JSAB4L.js} +2 -2
- package/dist/{chunk-3RT6D4P6.js → chunk-N77KD7ZZ.js} +1 -1
- package/dist/{chunk-FLRCVYNE.js → chunk-NORZWWLK.js} +2 -2
- package/dist/{chunk-4VZBKOQJ.js → chunk-O3SKIXQK.js} +1 -1
- package/dist/{chunk-PFI3VD77.js → chunk-OLDDJS3S.js} +10 -10
- package/dist/{chunk-UGI77E35.js → chunk-P6E4HFFU.js} +167 -61
- package/dist/{chunk-GIDHR5OL.js → chunk-Q65ZQFF2.js} +1 -1
- package/dist/chunk-QZ3AZTXI.js +1740 -0
- package/dist/{chunk-NTIOLSFE.js → chunk-R7UDXKI3.js} +3 -3
- package/dist/{chunk-7SI7GCX6.js → chunk-RCFCZT5O.js} +6 -6
- package/dist/{chunk-DW32KBHN.js → chunk-RPYPW5NN.js} +13 -13
- package/dist/chunk-SYKKFAUW.js +3711 -0
- package/dist/chunk-T76PLPD6.js +57 -0
- package/dist/{chunk-JTAYFSLO.js → chunk-TC2FBZJZ.js} +1 -1
- package/dist/{chunk-Q73ISOVQ.js → chunk-U7E736AJ.js} +1 -1
- package/dist/chunk-USDEMXXL.js +110 -0
- package/dist/{chunk-UMWROSIP.js → chunk-W6HTOVHU.js} +2 -2
- package/dist/{chunk-STA43FMY.js → chunk-WY5OODN5.js} +71 -3855
- package/dist/{chunk-EZ2P7LAP.js → chunk-XDSOIJC3.js} +8 -8
- package/dist/{chunk-ZTZ7NCJT.js → chunk-XTFJOR3K.js} +1 -1
- package/dist/{chunk-CDJ7FPPJ.js → chunk-XWVGSEUT.js} +1 -1
- package/dist/chunk-YA62XGXS.js +45 -0
- package/dist/{chunk-EH4VUY27.js → chunk-YURXPGAM.js} +2 -2
- package/dist/{clean-P4KTCOUA.js → clean-L2E4VD57.js} +29 -20
- package/dist/cli.js +55 -55
- package/dist/{cloud-PDY7S4HU.js → cloud-IDUQRYLO.js} +7 -7
- package/dist/{cloudrun-54MA2W5H.js → cloudrun-R3JXWXGG.js} +11 -8
- package/dist/commands/layout-audit.browser.js +37 -8
- package/dist/commands/motion-signature.browser.js +51 -2
- package/dist/{compare-LDWVSPC5.js → compare-VYBWSP3Y.js} +40 -31
- package/dist/{compiler-CWSZ4W7J.js → compiler-ACHWOU5N.js} +7 -3
- package/dist/{component-FIEGC22U.js → component-PYYV2V3F.js} +4 -4
- package/dist/{compositions-JR7PX356.js → compositions-B5GQSXH7.js} +23 -16
- package/dist/{delete-FXA2IHOS.js → delete-EAX2U3WI.js} +8 -8
- package/dist/{deterministicFonts-GTITFRSJ.js → deterministicFonts-F6WIVL2W.js} +1 -1
- package/dist/{dist-OJTEVNJR.js → dist-NZSQCYOF.js} +3 -1
- package/dist/{dist-4JZWRWS6.js → dist-ROUDWGLO.js} +27 -15
- package/dist/{doctor-OTDHPM6K.js → doctor-PJX7MLFG.js} +20 -13
- package/dist/{events-UAFTI24U.js → events-SBC54MHO.js} +6 -22
- package/dist/{events-6T7M2VCO.js → events-YFFXKAQQ.js} +10 -23
- package/dist/{feedback-ZGZODHB6.js → feedback-UETLWREV.js} +67 -45
- package/dist/{figma-D26EJ7ZB.js → figma-QDSJPIRW.js} +6 -6
- package/dist/fontLocalizeCli.js +18 -11
- package/dist/{get-IAREU7IK.js → get-B5TS6C7H.js} +8 -8
- package/dist/{gpuPolicy-NS7WZRDJ.js → gpuPolicy-LYOVBAJP.js} +15 -8
- package/dist/{grade-compare-ZXHFHCD2.js → grade-compare-LBIHMAUN.js} +40 -31
- package/dist/{help-RVNYHW3N.js → help-XBP6A6LT.js} +4 -4
- package/dist/{history-THP4VNMF.js → history-2S42ZXKL.js} +12 -30
- package/dist/hyperframe-runtime.js +59 -59
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +59 -59
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-EOFRHN5A.js → info-I2VDAWT7.js} +17 -20
- package/dist/{init-YLIJE4CG.js → init-BGHSDODI.js} +48 -41
- package/dist/{inspect-3D56ONJD.js → inspect-MZK5B5RP.js} +39 -30
- package/dist/{installer-GRR2GDZK.js → installer-LL4QAKFW.js} +8 -5
- package/dist/{keyframes-NXNCTQPK.js → keyframes-2EBF7OSS.js} +14 -25
- package/dist/{lambda-VGRZD7TR.js → lambda-XKFPAOFE.js} +16 -13
- package/dist/{layout-Z5DOS6DU.js → layout-TP5ERKEF.js} +39 -30
- package/dist/{lint-YD6NJGR2.js → lint-FQ6CEI7E.js} +17 -23
- package/dist/{lintProject-ANMPLBIT.js → lintProject-LM3XZRPZ.js} +3 -1
- package/dist/{list-XGDKILYN.js → list-FRNUJXZ3.js} +8 -8
- package/dist/{login-GD5SA4RD.js → login-C25QU3BQ.js} +9 -9
- package/dist/{logout-Q654A3SI.js → logout-GJXZQKOA.js} +5 -5
- package/dist/{media-treatment-TY4X4GQQ.js → media-treatment-DCANGWSV.js} +21 -20
- package/dist/{models-MXRDH4WJ.js → models-GOD6ARB3.js} +19 -12
- package/dist/{motionShot-6LKR3C2E.js → motionShot-FSKETANX.js} +22 -15
- package/dist/{normalize-O76AC4HE.js → normalize-IGLHCWTF.js} +0 -4
- package/dist/{normalize-audio-5ADDZKPJ.js → normalize-audio-C2IM7OID.js} +13 -26
- package/dist/{open-JXAMO325.js → open-VVISXIII.js} +11 -25
- package/dist/{pipeline-Q5MOPIIX.js → pipeline-7YHZPYIS.js} +15 -8
- package/dist/{play-3SPH5GWZ.js → play-DSELK7G3.js} +38 -32
- package/dist/{preflight-2PWAPKWC.js → preflight-Y5DN5D37.js} +3 -18
- package/dist/{present-ZTJQDKXZ.js → present-N72YFDKP.js} +32 -26
- package/dist/{preview-4A3XZR6J.js → preview-XTYN4NJ2.js} +33 -26
- package/dist/{producer-5ZKKKQPB.js → producer-NDCU3MHK.js} +1 -1
- package/dist/{projectConfig-WA4CS4SN.js → projectConfig-MH4QU4AC.js} +10 -7
- package/dist/{publication-CLG2FRRI.js → publication-KUSHI5MG.js} +6 -3
- package/dist/{publish-YTT2WMXO.js → publish-3XEEFWMF.js} +27 -20
- package/dist/{refresh-K24ETHMA.js → refresh-MFITBIKV.js} +5 -5
- package/dist/{remove-background-W35INR3B.js → remove-background-2QKJ7XOD.js} +22 -15
- package/dist/{render-WUBFQMAH.js → render-2DVYTVLQ.js} +52 -32
- package/dist/{render-7A4P5WMU.js → render-75E342ZU.js} +10 -7
- package/dist/{render-KICXUPNR.js → render-S73DW4KK.js} +23 -26
- package/dist/{render-batch-N7EFGE6S.js → render-batch-YURBS54Q.js} +11 -8
- package/dist/{renderCancellation-LYQPPFAO.js → renderCancellation-373ASJTO.js} +15 -8
- package/dist/renderSetupWorker.js +4 -2
- package/dist/{resolver-YTT2NENF.js → resolver-FE3GBZ4T.js} +8 -5
- package/dist/{sherpa-353MW4UV.js → sherpa-B2D3AGP6.js} +16 -9
- package/dist/skills/hyperframes/references/capability-menu.md +1 -1
- package/dist/skills/hyperframes-cli/SKILL.md +5 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
- package/dist/skills/media-use/SKILL.md +9 -5
- package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +47 -4
- package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +125 -18
- package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +28 -0
- package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +106 -0
- package/dist/skills/media-use/references/setup-providers.md +16 -2
- package/dist/skills/media-use/scripts/lib/heygen-cli.mjs +21 -1
- package/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +14 -0
- package/dist/skills/media-use/scripts/resolve.mjs +11 -6
- package/dist/{skills-2XJIOEBT.js → skills-ICJ22CZZ.js} +15 -30
- package/dist/{skillsUpdateCheck-LMCCWGNO.js → skillsUpdateCheck-GXZN56I5.js} +3 -3
- package/dist/{snapshot-WBRSTLJ2.js → snapshot-XHKOAWF4.js} +41 -32
- package/dist/{src-ZS3BLTZ5.js → src-74PFDTDX.js} +17 -10
- package/dist/{src-YWFJILQF.js → src-I7UC3JTL.js} +19 -11
- package/dist/{staticProjectServer-4VKVHPNG.js → staticProjectServer-2DGKD6TF.js} +24 -16
- package/dist/{status-73MBN37B.js → status-JA6SKQVH.js} +7 -24
- package/dist/studio/assets/hyperframes-player-5Vx2AiUz.js +473 -0
- package/dist/studio/assets/{index-DsEkE5_G.js → index-BAnh7cSQ.js} +1 -1
- package/dist/studio/assets/{index-Br1Whc0f.js → index-C0thd4eM.js} +204 -204
- package/dist/studio/assets/{index-BmIPrb8I.js → index-P8fgj_Xa.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js → chunk-H2DUOXTF.js} +2 -1
- package/dist/studio/index.d.ts +19 -3
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +6518 -5813
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/player.js +1 -1
- package/dist/{studio-api-5V4TVSQV.js → studio-api-PROBO7JG.js} +40 -28
- package/dist/{studioServer-M5XY3HYC.js → studioServer-ID6UV2NE.js} +100 -69
- package/dist/{system-RCRNX5VF.js → system-OQLOGGPJ.js} +2 -19
- package/dist/{telemetry-LOBRQGUD.js → telemetry-65LFHIWH.js} +8 -23
- package/dist/{timeline-3JCP6PXU.js → timeline-6UV3JJXD.js} +32 -22
- package/dist/{tokens-MLMIJBVF.js → tokens-HIL4TZXI.js} +3 -3
- package/dist/{transcribe-KNFXDEAX.js → transcribe-TIO6W3EQ.js} +16 -9
- package/dist/{transcribe-POH25ZPX.js → transcribe-V7F6QDSN.js} +20 -44
- package/dist/{updateCheck-5ITBSBST.js → updateCheck-GZELANMA.js} +2 -2
- package/dist/{upgrade-K6OK4FKT.js → upgrade-BX3KDDZJ.js} +5 -5
- package/dist/{urlDownloader-TJJQKADT.js → urlDownloader-R76OHFIE.js} +14 -7
- package/dist/{validate-PPPOBJHB.js → validate-7UX4I443.js} +26 -19
- package/dist/{video-OB22HWXZ.js → video-RVGYEFQU.js} +18 -11
- package/package.json +1 -1
- package/dist/chunk-HYYSJI5D.js +0 -3742
- package/dist/studio/assets/hyperframes-player-CckOoCJ8.js +0 -473
- package/dist/{chunk-I465DBM6.js → chunk-246MOR5U.js} +3 -3
- package/dist/{deploy-MX76RZ36.js → deploy-5G4Z6LPA.js} +1 -1
- package/dist/{destroy-H2TZBYHH.js → destroy-GFQLTIY3.js} +1 -1
- package/dist/{docs-QAPJEGLS.js → docs-MPOM3PHH.js} +3 -3
- package/dist/{policies-FSDZVS2E.js → policies-4FEXMXPK.js} +3 -3
- package/dist/{progress-FBIEEB7Y.js → progress-5AM2MZ7V.js} +3 -3
- package/dist/{sites-TNVKZS73.js → sites-HZMADOA3.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js.map → chunk-H2DUOXTF.js.map} +0 -0
- package/dist/{telemetry-2YC4SGQU.js → telemetry-W5AKPI4R.js} +3 -3
- package/dist/{tts-FU35O6YB.js → tts-TOHSPWEG.js} +4 -4
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
// ../core/dist/telemetryRedaction.js
|
|
9
|
+
var MAX_TELEMETRY_STRING_LENGTH = 240;
|
|
10
|
+
function truncateTelemetryString(value, maxLength) {
|
|
11
|
+
if (value.length <= maxLength)
|
|
12
|
+
return value;
|
|
13
|
+
return `${value.slice(0, maxLength - 1)}\u2026`;
|
|
14
|
+
}
|
|
15
|
+
function redactUrlQueryStrings(value) {
|
|
16
|
+
return value.replace(/\b(https?:\/\/[^\s?]+)\?[^\s]*/g, "$1?\u2026");
|
|
17
|
+
}
|
|
18
|
+
var SEGMENT = String.raw`[^\s/\\'"]+`;
|
|
19
|
+
var SEGMENT_NODOT = String.raw`[^\s/\\'".]+`;
|
|
20
|
+
var TOKEN_TAIL = String.raw`[^\s'")]*`;
|
|
21
|
+
var ABSOLUTE_PATH = new RegExp(String.raw`(?<![:\w/\\])(?:[A-Za-z]:)?(?:[\\/]${SEGMENT}){2,}${TOKEN_TAIL}`, "g");
|
|
22
|
+
var RELATIVE_PATH = new RegExp(String.raw`(?<![\w/\\.])\.{1,2}(?:[\\/]${SEGMENT})+${TOKEN_TAIL}`, "g");
|
|
23
|
+
var ASSET_BASENAME = /(?<![\w/\\])[^\s/\\'"]+\.(?:mp4|mov|mkv|webm|avi|m4v|mpe?g|ts|mp3|wav|aac|m4a|flac|ogg|opus|png|jpe?g|gif|webp|svg|html?|json|srt|vtt|ass)\b/gi;
|
|
24
|
+
var BARE_RELATIVE_PATH = new RegExp([
|
|
25
|
+
// Two or more separators: `customer/acme/video.mp4`. No extension needed —
|
|
26
|
+
// that much structure is already a path.
|
|
27
|
+
String.raw`(?<![^\s'\"(=,\[])(?:${SEGMENT}[\\/]){2,}${SEGMENT}${TOKEN_TAIL}`,
|
|
28
|
+
// One separator, but the last segment carries a file extension:
|
|
29
|
+
// `assets/bgm.mp3`. That segment is dot-free on purpose — SEGMENT includes
|
|
30
|
+
// `.`, so a greedy one swallows the extension this rule needs.
|
|
31
|
+
String.raw`(?<![^\s'\"(=,\[])${SEGMENT}[\\/]${SEGMENT_NODOT}\.\w{1,8}\b${TOKEN_TAIL}`
|
|
32
|
+
].join("|"), "g");
|
|
33
|
+
function redactKnownPaths(value, paths) {
|
|
34
|
+
if (typeof value !== "string")
|
|
35
|
+
return "";
|
|
36
|
+
let out = value;
|
|
37
|
+
for (const path of paths) {
|
|
38
|
+
if (typeof path !== "string" || path.length === 0)
|
|
39
|
+
continue;
|
|
40
|
+
const basename = path.split(/[\\/]/).pop() ?? "";
|
|
41
|
+
for (const literal of [path, basename].filter((v) => v.length > 2)) {
|
|
42
|
+
out = out.split(literal).join("[path]");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
function redactFilePaths(value) {
|
|
48
|
+
return value.replace(/file:\/\/[^\s'")]+/g, "[file-url]").replace(RELATIVE_PATH, "[path]").replace(BARE_RELATIVE_PATH, "[path]").replace(ABSOLUTE_PATH, "[path]").replace(ASSET_BASENAME, "[file]");
|
|
49
|
+
}
|
|
50
|
+
function redactTelemetryString(value, maxLength = MAX_TELEMETRY_STRING_LENGTH) {
|
|
51
|
+
return truncateTelemetryString(redactFilePaths(redactUrlQueryStrings(value)), maxLength);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
redactKnownPaths,
|
|
56
|
+
redactTelemetryString
|
|
57
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
// ../engine/src/services/systemMemory.ts
|
|
9
|
+
import { readFileSync } from "fs";
|
|
10
|
+
import { totalmem } from "os";
|
|
11
|
+
var BYTES_PER_MIB = 1024 * 1024;
|
|
12
|
+
var BYTES_PER_MIB_BIGINT = BigInt(BYTES_PER_MIB);
|
|
13
|
+
var CGROUP_V2_MEMORY_MAX_PATH = "/sys/fs/cgroup/memory.max";
|
|
14
|
+
var CGROUP_V1_MEMORY_LIMIT_PATH = "/sys/fs/cgroup/memory/memory.limit_in_bytes";
|
|
15
|
+
var CGROUP_V1_NO_LIMIT_CUTOFF_BYTES = 2n ** 60n;
|
|
16
|
+
var _cachedCgroupLimitMb;
|
|
17
|
+
var _warnedCgroupReadFailure = false;
|
|
18
|
+
function parseCgroupLimitMb(v2Content, v1Content) {
|
|
19
|
+
if (v2Content !== null) {
|
|
20
|
+
return parseCgroupV2LimitMb(v2Content);
|
|
21
|
+
}
|
|
22
|
+
return parseCgroupV1LimitMb(v1Content);
|
|
23
|
+
}
|
|
24
|
+
function parseCgroupV2LimitMb(content) {
|
|
25
|
+
const trimmed = content.trim();
|
|
26
|
+
if (trimmed === "max") {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return parsePositiveByteLimitMb(trimmed);
|
|
30
|
+
}
|
|
31
|
+
function parseCgroupV1LimitMb(content) {
|
|
32
|
+
if (content === null) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return parsePositiveByteLimitMb(content.trim(), CGROUP_V1_NO_LIMIT_CUTOFF_BYTES);
|
|
36
|
+
}
|
|
37
|
+
function parsePositiveByteLimitMb(content, noLimitCutoffBytes) {
|
|
38
|
+
if (!/^\d+$/.test(content)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const bytes = BigInt(content);
|
|
42
|
+
if (bytes <= 0n) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if (noLimitCutoffBytes !== void 0 && bytes >= noLimitCutoffBytes) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return Number(bytes / BYTES_PER_MIB_BIGINT);
|
|
49
|
+
}
|
|
50
|
+
function getCgroupMemoryLimitMb() {
|
|
51
|
+
if (_cachedCgroupLimitMb !== void 0) return _cachedCgroupLimitMb;
|
|
52
|
+
if (process.platform !== "linux") {
|
|
53
|
+
_cachedCgroupLimitMb = null;
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const v2Content = readCgroupFile(CGROUP_V2_MEMORY_MAX_PATH);
|
|
57
|
+
const v1Content = v2Content === null ? readCgroupFile(CGROUP_V1_MEMORY_LIMIT_PATH) : null;
|
|
58
|
+
_cachedCgroupLimitMb = parseCgroupLimitMb(v2Content, v1Content);
|
|
59
|
+
if (_cachedCgroupLimitMb !== null) {
|
|
60
|
+
console.warn(
|
|
61
|
+
`[SystemMemory] cgroup memory limit detected: ${_cachedCgroupLimitMb} MiB \u2014 it governs memory-adaptive render behaviour instead of host RAM.`
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
return _cachedCgroupLimitMb;
|
|
65
|
+
}
|
|
66
|
+
function readCgroupFile(path) {
|
|
67
|
+
try {
|
|
68
|
+
return readFileSync(path, "utf8");
|
|
69
|
+
} catch (error) {
|
|
70
|
+
const code = getErrorCode(error);
|
|
71
|
+
if (code !== "ENOENT" && code !== "ENOTDIR") {
|
|
72
|
+
warnCgroupReadFailure(path, error);
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function getErrorCode(error) {
|
|
78
|
+
if (typeof error !== "object" || error === null || !("code" in error)) {
|
|
79
|
+
return void 0;
|
|
80
|
+
}
|
|
81
|
+
return typeof error.code === "string" ? error.code : void 0;
|
|
82
|
+
}
|
|
83
|
+
function formatCgroupReadError(error) {
|
|
84
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
85
|
+
const code = getErrorCode(error);
|
|
86
|
+
return code ? `${code}: ${message}` : message;
|
|
87
|
+
}
|
|
88
|
+
function warnCgroupReadFailure(path, error) {
|
|
89
|
+
if (_warnedCgroupReadFailure) return;
|
|
90
|
+
_warnedCgroupReadFailure = true;
|
|
91
|
+
console.warn(
|
|
92
|
+
`[SystemMemory] Unable to read cgroup memory limit at ${path} (${formatCgroupReadError(error)}); falling back to host RAM.`
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
function getSystemTotalMb() {
|
|
96
|
+
const hostTotalMb = Math.floor(totalmem() / BYTES_PER_MIB);
|
|
97
|
+
const cgroupLimitMb = getCgroupMemoryLimitMb();
|
|
98
|
+
return cgroupLimitMb === null ? hostTotalMb : Math.min(hostTotalMb, cgroupLimitMb);
|
|
99
|
+
}
|
|
100
|
+
var LOW_MEMORY_TOTAL_MB_THRESHOLD = 8192;
|
|
101
|
+
function isLowMemorySystem(totalMb = getSystemTotalMb()) {
|
|
102
|
+
return totalMb <= LOW_MEMORY_TOTAL_MB_THRESHOLD;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export {
|
|
106
|
+
getCgroupMemoryLimitMb,
|
|
107
|
+
getSystemTotalMb,
|
|
108
|
+
LOW_MEMORY_TOTAL_MB_THRESHOLD,
|
|
109
|
+
isLowMemorySystem
|
|
110
|
+
};
|
|
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
|
|
8
8
|
// src/version.ts
|
|
9
|
-
var VERSION = true ? "0.8.
|
|
10
|
-
var PRODUCER_VERSION = true ? "0.8.
|
|
9
|
+
var VERSION = true ? "0.8.141" : "0.0.0-dev";
|
|
10
|
+
var PRODUCER_VERSION = true ? "0.8.141" : "0.0.0-dev";
|
|
11
11
|
|
|
12
12
|
export {
|
|
13
13
|
VERSION,
|