hyperframes 0.8.191 → 0.8.193
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-S2ZQYG52.js → add-JC6DKZKC.js} +17 -17
- package/dist/{animatedGifPrep-3JA2CQ3U.js → animatedGifPrep-S6KXJGEL.js} +11 -10
- package/dist/api.js +24 -23
- package/dist/{appHistory-TH3TL6N6.js → appHistory-QVCSAOI4.js} +1 -1
- package/dist/{asset-2CNTAPOC.js → asset-XITFIFE6.js} +2 -2
- package/dist/{assetCataloger-5HXLXL7C.js → assetCataloger-K5FNKG35.js} +13 -12
- package/dist/{audio-DZTSYHXS.js → audio-364UHTY4.js} +22 -21
- package/dist/{auth-GX3M6TJ4.js → auth-5JEESRE6.js} +4 -4
- package/dist/{autoUpdate-EDIWE4Z5.js → autoUpdate-RVVYEHAA.js} +5 -5
- package/dist/{backgroundChecks-VPUPJ7UI.js → backgroundChecks-DCBIYWIQ.js} +5 -5
- package/dist/backgroundChecksWorker.js +5 -5
- package/dist/{batchRender-JHIIDBJR.js → batchRender-ZZ4QMBAA.js} +14 -7
- package/dist/{beats-PZRVTRYW.js → beats-YEL65M6G.js} +53 -15
- package/dist/{benchmark-22UFDW2N.js → benchmark-RBTRPA76.js} +18 -14
- package/dist/{browser-VRDWYIUM.js → browser-BVAYXT4R.js} +7 -7
- package/dist/{bundleWithLocalizedFonts-23QDKFSN.js → bundleWithLocalizedFonts-JLB2OYMT.js} +3 -3
- package/dist/{capture-TOCLXYMJ.js → capture-GBXTMYLZ.js} +76 -68
- package/dist/{capture-NFCBXHDE.js → capture-NIFX6IRS.js} +3 -3
- package/dist/{captureCompositionFrame-BEM6MF7F.js → captureCompositionFrame-ATNNKUL5.js} +17 -16
- package/dist/{catalog-NXS35KM7.js → catalog-AGIF5SM5.js} +18 -18
- package/dist/{catch-up-6WJBUI2C.js → catch-up-SZ3ULDTI.js} +7 -7
- package/dist/{check-WVEBMWN5.js → check-YLQS3TF4.js} +43 -42
- package/dist/{checkBrowser-RT45HJ36.js → checkBrowser-QH4FMCBO.js} +38 -37
- package/dist/{chunk-JOLZ3BSL.js → chunk-2LSCYS2H.js} +2 -2
- package/dist/{chunk-B2A56S5C.js → chunk-2MCXIY4B.js} +13 -10
- package/dist/{chunk-TADJOIFW.js → chunk-2NERNYCJ.js} +4 -4
- package/dist/{chunk-KGMHMYWI.js → chunk-2SFDWMSW.js} +2 -2
- package/dist/{chunk-DCAI5DBR.js → chunk-2ST4WAFY.js} +9 -1
- package/dist/{chunk-3NRB7YXW.js → chunk-2VXY3PEF.js} +96 -67
- package/dist/{chunk-IXLUTE6N.js → chunk-3422KMTD.js} +5 -1
- package/dist/{chunk-VYQYVYQ5.js → chunk-3W4B6G7Y.js} +83 -45
- package/dist/{chunk-JYSSPQDT.js → chunk-4LXZJIVY.js} +11 -11
- package/dist/{chunk-WHAEJX26.js → chunk-4PPWAQYV.js} +17 -12
- package/dist/{chunk-COWQITWP.js → chunk-4TKJWWPL.js} +1 -1
- package/dist/{chunk-NXMYHJAL.js → chunk-4VYPICIA.js} +29 -1
- package/dist/{chunk-RE3EEBWC.js → chunk-5J6TWLFG.js} +4 -4
- package/dist/{chunk-TFMZ4RKM.js → chunk-6DLCOQR4.js} +474 -429
- package/dist/{chunk-KV72BP7O.js → chunk-6LWUPIKD.js} +11 -11
- package/dist/{chunk-HRPWRZGF.js → chunk-6N65ZMC5.js} +1 -1
- package/dist/{chunk-XUXGIA7H.js → chunk-6NLPPKBO.js} +1 -2
- package/dist/{chunk-JJJCFKMF.js → chunk-6XUJVEY2.js} +17 -6
- package/dist/{chunk-GM3WIOO6.js → chunk-7HTH5PFK.js} +2 -2
- package/dist/{chunk-LBNEH6IQ.js → chunk-7QNIXBQD.js} +1 -1
- package/dist/{chunk-OV6KHXLX.js → chunk-7YKJF5JV.js} +1 -1
- package/dist/{chunk-COETAXRN.js → chunk-7YSFE4SZ.js} +2 -2
- package/dist/{chunk-3WJT2JCX.js → chunk-AR3DQYRR.js} +52 -23
- package/dist/{chunk-HYW6HTAK.js → chunk-BJAS2JLW.js} +2 -2
- package/dist/{chunk-RWYUK7LM.js → chunk-BP4EMEGH.js} +2 -2
- package/dist/{chunk-XGHHVYC7.js → chunk-BY6OQ6XP.js} +2 -2
- package/dist/{chunk-TMBUBLZB.js → chunk-C4Y3ZREE.js} +185 -46
- package/dist/{chunk-JQYJXUJW.js → chunk-C6KE4AFW.js} +1 -1
- package/dist/{chunk-TMK4Q7JA.js → chunk-CFUCHO4T.js} +20 -5
- package/dist/{chunk-JGTRVG32.js → chunk-CGTZOY53.js} +1 -1
- package/dist/chunk-CZGHFATT.js +31 -0
- package/dist/{chunk-NJGTNWQY.js → chunk-D625D4TV.js} +6 -6
- package/dist/{chunk-CYBXXSC4.js → chunk-DIKAPMMF.js} +2 -2
- package/dist/{chunk-CXMXJEVY.js → chunk-DSQ72G5I.js} +1 -1
- package/dist/{chunk-GLG5JWLI.js → chunk-DYNHVCBF.js} +2 -2
- package/dist/{chunk-7L37AB57.js → chunk-E3P3LJG6.js} +9 -9
- package/dist/{chunk-EFCKV7MY.js → chunk-E77ALFLW.js} +1 -1
- package/dist/{chunk-WQ3X5OH4.js → chunk-EFXMETRK.js} +2 -2
- package/dist/{chunk-7KVVNF7B.js → chunk-ELP5QZWL.js} +1 -1
- package/dist/{chunk-QH3T4WI2.js → chunk-EXAX37XR.js} +8 -2
- package/dist/{chunk-7A65UCMI.js → chunk-F5LLORBP.js} +2 -2
- package/dist/{chunk-EI7FP7F3.js → chunk-FBVUAH7N.js} +12 -2
- package/dist/{chunk-XWOCXIKR.js → chunk-GKHMSSGY.js} +1 -1
- package/dist/{chunk-DOOSC34Z.js → chunk-GR5DQKDR.js} +8 -8
- package/dist/{chunk-W64L7IFS.js → chunk-IW5G323T.js} +1 -1
- package/dist/{chunk-NAUKCKCJ.js → chunk-KU3UFQN7.js} +9 -12
- package/dist/{chunk-NMDUSCCE.js → chunk-L4JB7LI4.js} +478 -129
- package/dist/{chunk-ALEF2F5N.js → chunk-L5YLA54L.js} +2 -2
- package/dist/{chunk-MSM6VRQ4.js → chunk-LFUVTS6V.js} +2 -2
- package/dist/{chunk-7ZJEQY7Q.js → chunk-LMNZLZMJ.js} +23 -3
- package/dist/{chunk-AQB5M53R.js → chunk-M3KZBDPB.js} +3 -3
- package/dist/{chunk-BFFLKQVB.js → chunk-MFUNDJEV.js} +4 -4
- package/dist/{chunk-7NKJS5KM.js → chunk-OFV3WSOE.js} +1 -1
- package/dist/{chunk-CINKQY6M.js → chunk-OFYW4J7Y.js} +3 -3
- package/dist/{chunk-5C7R55BJ.js → chunk-P2I4RLJE.js} +1 -1
- package/dist/{chunk-RUOG4VB7.js → chunk-PKZ7RK5N.js} +5 -4
- package/dist/{chunk-LLFQA7XF.js → chunk-QFPBRZJD.js} +1 -1
- package/dist/{chunk-TRZVS6TL.js → chunk-QKX7ITER.js} +3 -3
- package/dist/{chunk-46HEFGXJ.js → chunk-REUL2KH2.js} +1 -1
- package/dist/{chunk-TFGO5YMI.js → chunk-RTLPWOO6.js} +2 -2
- package/dist/{chunk-DYAPHNV6.js → chunk-RWGASWT7.js} +1 -1
- package/dist/chunk-RXATE6FZ.js +385 -0
- package/dist/{chunk-U5GTDAQL.js → chunk-SOY2FPOR.js} +7 -7
- package/dist/{chunk-KNU5COPB.js → chunk-T2EUWCJE.js} +1 -1
- package/dist/{chunk-RQBB7PYT.js → chunk-TY3LDJA3.js} +5 -12
- package/dist/{chunk-KAC2WR7P.js → chunk-TZEKVLPV.js} +3 -3
- package/dist/{chunk-TJKE4EYX.js → chunk-UB7BIDBS.js} +3 -3
- package/dist/{chunk-WY3TQ2PT.js → chunk-UIC7B5KW.js} +2 -2
- package/dist/{chunk-2WNVHZHA.js → chunk-UNATIAOT.js} +13 -13
- package/dist/chunk-USWPZXEA.js +3897 -0
- package/dist/{chunk-FBDOHH3Q.js → chunk-V7ZA2BNW.js} +29 -59
- package/dist/{chunk-7LUJE3II.js → chunk-VLLFORE2.js} +1 -1
- package/dist/{chunk-T5YF32WV.js → chunk-VPC4XIVI.js} +6 -5
- package/dist/{chunk-7FF36MAD.js → chunk-VW63MHQU.js} +9 -6
- package/dist/{chunk-ZHKUIC7X.js → chunk-WFS6S65A.js} +21 -14
- package/dist/{chunk-UNR3P7IF.js → chunk-WIVOXGEP.js} +3 -3
- package/dist/{chunk-3XI7MIZB.js → chunk-X5CECNCK.js} +1 -1
- package/dist/{chunk-KHCTBZGJ.js → chunk-XQPA4W3M.js} +4 -4
- package/dist/{chunk-XMSQRDAK.js → chunk-YS4JUGNI.js} +2 -2
- package/dist/{chunk-SMEF3TRJ.js → chunk-ZH7J2ZUL.js} +15 -15
- package/dist/{chunk-WJEVUPVD.js → chunk-ZT45TCY3.js} +1 -1
- package/dist/{chunk-JTPHFYZI.js → chunk-ZTKFRXJB.js} +68 -7
- package/dist/{chunk-W3CS2KFV.js → chunk-ZZPBXRYQ.js} +2 -2
- package/dist/{clean-3VIU2BSK.js → clean-5HGESK5A.js} +40 -27
- package/dist/cli.js +70 -68
- package/dist/{cloud-NA3J4XW2.js → cloud-746PHS32.js} +4 -4
- package/dist/{cloudrun-4MHOF7UT.js → cloudrun-DO7WFLSM.js} +9 -9
- package/dist/commands/contrast-audit.browser.js +1 -1
- package/dist/{compare-ZR7XRPPT.js → compare-66YPRNG2.js} +76 -47
- package/dist/{compiler-MA2ELZPG.js → compiler-R4UYDWXO.js} +8 -7
- package/dist/{component-ZJSOPUAM.js → component-EQ3H6RFP.js} +3 -3
- package/dist/{compositions-WA5V2SHF.js → compositions-ZZ7P5HT2.js} +19 -17
- package/dist/{contactSheet-CAGMKI3E.js → contactSheet-SZBJDOMT.js} +2 -2
- package/dist/{delete-UC427UEA.js → delete-Z5MSLJSR.js} +7 -7
- package/dist/{deploy-B5UO4UIK.js → deploy-RGSAC2K5.js} +1 -1
- package/dist/{deterministicFonts-EGAAE7QL.js → deterministicFonts-RO2TCMLZ.js} +3 -3
- package/dist/{dist-XGPSPKKP.js → dist-QQ26RUDV.js} +5 -4
- package/dist/{dist-BPK37SAB.js → dist-RKK4YLAD.js} +5 -5
- package/dist/{doctor-ZERCTKEK.js → doctor-W4ZZDRTU.js} +20 -19
- package/dist/{events-DCOZQERS.js → events-BSSL4A4W.js} +4 -4
- package/dist/{events-CNIXB2QK.js → events-UACT7PX3.js} +5 -5
- package/dist/{feedback-YBD5ITTY.js → feedback-47ILDLQG.js} +16 -16
- package/dist/{ffmpeg-V4BBFDTG.js → ffmpeg-IEHSUNUT.js} +13 -12
- package/dist/{figma-Z45ZYVGE.js → figma-PLFIIYRU.js} +3 -3
- package/dist/fontLocalizeCli.js +14 -13
- package/dist/{get-23NXQWCD.js → get-PDWGJYNL.js} +7 -7
- package/dist/{gpuPolicy-H6ABHVEB.js → gpuPolicy-6UBXO6ME.js} +11 -10
- package/dist/{grade-compare-ZPX2G3UV.js → grade-compare-5VWLQGM7.js} +38 -37
- package/dist/{gsapParserAcorn-SKODXC2N.js → gsapParserAcorn-OOTY2MVN.js} +2 -2
- package/dist/{help-EP4CDPLO.js → help-DS3KMWYO.js} +1 -1
- package/dist/{history-E5OSXO74.js → history-OC326NVZ.js} +41 -17
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +62 -62
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/hyperframes-slideshow.global.js +1 -1
- package/dist/{info-2HHGSW5H.js → info-AUIFV6MX.js} +56 -22
- package/dist/{init-ENEG6RZT.js → init-MRTWWDFW.js} +38 -45
- package/dist/{inspect-PVQK4E2A.js → inspect-55NOAXI2.js} +36 -35
- package/dist/{installer-YGGLEOSF.js → installer-YSFFGBBV.js} +8 -8
- package/dist/{keyframes-UWSYS2SL.js → keyframes-OO2BX2IB.js} +13 -14
- package/dist/{lambda-L3LPXC2M.js → lambda-CXXY6QT3.js} +11 -11
- package/dist/{layout-JVL4QREC.js → layout-57GJXKDK.js} +36 -35
- package/dist/{lint-JXQ72DDB.js → lint-J4FK3Z6G.js} +23 -16
- package/dist/{lintProject-F7IC7WY4.js → lintProject-52SLJPRC.js} +5 -4
- package/dist/{list-UFMLM3VV.js → list-VDQUJ76B.js} +7 -7
- package/dist/{login-CKGMWQJN.js → login-TJSEALWW.js} +7 -7
- package/dist/{logout-DDC4QLVK.js → logout-JYFWWUGK.js} +3 -3
- package/dist/{manager-U6OP3EXB.js → manager-4PLYEEWP.js} +14 -13
- package/dist/{manager-UHWEKPXC.js → manager-MZIJY73J.js} +3 -3
- package/dist/{media-treatment-MFMEWCDY.js → media-treatment-GXP4PMJH.js} +20 -19
- package/dist/{models-QA3TJ75Y.js → models-HQQQKEEP.js} +18 -17
- package/dist/{motionShot-NV2OPJHD.js → motionShot-2BT5D7DC.js} +21 -20
- package/dist/{normalize-3AYFSN2F.js → normalize-FASIPBUM.js} +1 -1
- package/dist/{normalize-audio-JWJRUKK2.js → normalize-audio-SOLFMHNP.js} +12 -8
- package/dist/{open-PTJNDRER.js → open-KHEUODFQ.js} +18 -18
- package/dist/{parakeetRunner-B5FCWWOO.js → parakeetRunner-BHU5NCAX.js} +20 -19
- package/dist/{pipeline-N26NA6ZG.js → pipeline-WFV5HDTD.js} +15 -14
- package/dist/{play-45D6X6TV.js → play-GB34CANJ.js} +27 -26
- package/dist/{policies-MBWGLMWB.js → policies-GHVXA5PE.js} +1 -1
- package/dist/{preflight-MFOHPUOI.js → preflight-REF3VSJ7.js} +15 -14
- package/dist/{present-IFBUDI4D.js → present-SIUTA7TD.js} +24 -23
- package/dist/{preview-MQRLXQOV.js → preview-T2GE7Z4A.js} +27 -26
- package/dist/{producer-2QG7HLAW.js → producer-23KVQZAB.js} +1 -1
- package/dist/{projectConfig-I4FTZXHB.js → projectConfig-DBSNBPNP.js} +10 -10
- package/dist/{publication-3GOFXCGU.js → publication-IXPUKYWJ.js} +5 -5
- package/dist/{publish-3B2TZCFH.js → publish-3BA5VHXJ.js} +18 -17
- package/dist/{refresh-RXTOPRBB.js → refresh-USSFPJAU.js} +3 -3
- package/dist/{remove-background-RK4BJDBF.js → remove-background-RMSCJVVQ.js} +16 -15
- package/dist/{render-SJ4HFPFU.js → render-6RNE2MLU.js} +26 -25
- package/dist/{render-PW3XGS7B.js → render-XGOZMMWX.js} +42 -41
- package/dist/{render-BV6FWFX3.js → render-Y6CTQ3YW.js} +8 -8
- package/dist/{render-batch-GKX54O6N.js → render-batch-VUR6N6EY.js} +9 -9
- package/dist/renderSetupWorker.js +9 -8
- package/dist/{resolver-RQJ7CNXD.js → resolver-GJCUH57W.js} +7 -7
- package/dist/{screenshotCapture-UBY6TT75.js → screenshotCapture-I5EDCITF.js} +6 -3
- package/dist/{sherpa-XZPG7QFF.js → sherpa-VVAKRCPL.js} +19 -18
- package/dist/skills/hyperframes/references/format.md +1 -0
- package/dist/skills/hyperframes/references/skill-lifecycle.md +8 -4
- package/dist/skills/hyperframes-cli/references/init-and-scaffold.md +1 -1
- package/dist/{skills-EYLB2V6F.js → skills-ZHBURVQG.js} +13 -75
- package/dist/{skillsUpdateCheck-TE6K5ROM.js → skillsUpdateCheck-VMDAL2O2.js} +5 -5
- package/dist/{slideshow-YTWATJRT.js → slideshow-SJGK4RQS.js} +1 -1
- package/dist/{snapshot-FE4T3SCN.js → snapshot-KEOG56SL.js} +61 -53
- package/dist/{src-ZOXSEJCD.js → src-BH5NICGQ.js} +24 -9
- package/dist/{src-SEJ7LNNB.js → src-TZLGFRRX.js} +13 -12
- package/dist/{staticProjectServer-LSVIRDRO.js → staticProjectServer-BKXL5CXB.js} +22 -21
- package/dist/{status-CM7IQTU2.js → status-H5WLKQDS.js} +3 -3
- package/dist/studio/assets/{hyperframes-player-Bv9hQ3v7.js → hyperframes-player-BMcUdmDb.js} +3 -3
- package/dist/studio/assets/{index-CBO8uz7-.css → index-CYbvOVp-.css} +1 -1
- package/dist/studio/assets/{index-D_QqfWhx.js → index-Ca-mgTnS.js} +122 -122
- package/dist/studio/assets/{index-Df14bh-L.js → index-Ci6GuloR.js} +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/{studio-api-SL2Z76NU.js → studio-api-A5U6QAMC.js} +19 -14
- package/dist/{studioServer-BADWVIHU.js → studioServer-5EC5CP4W.js} +60 -59
- package/dist/{telemetry-QG5AANZ4.js → telemetry-4K6CPMNT.js} +2 -2
- package/dist/{telemetry-RN6VYEID.js → telemetry-BCKJXDSW.js} +5 -5
- package/dist/{timeline-JBTCIPLU.js → timeline-AZWAXTAY.js} +65 -43
- package/dist/{tokens-A7V7UHNK.js → tokens-X7NC3V7C.js} +2 -2
- package/dist/{transcribe-E4BOSNM4.js → transcribe-7NCY7QZ2.js} +17 -16
- package/dist/{transcribe-NTUCJGFI.js → transcribe-SH26H755.js} +26 -25
- package/dist/{tts-A2WILYGN.js → tts-5I2AJNLM.js} +1 -1
- package/dist/{updateCheck-M7UAYLUR.js → updateCheck-Y7FUWQM4.js} +4 -4
- package/dist/{upgrade-A2COSIMB.js → upgrade-ZHGEVL65.js} +4 -4
- package/dist/{urlDownloader-MBSQYART.js → urlDownloader-FPILIT7M.js} +10 -9
- package/dist/{validate-NODZYBHY.js → validate-KQOZR4F6.js} +30 -29
- package/dist/{video-LBCUUYK7.js → video-N2QAETFB.js} +12 -11
- package/dist/warmCheck.js +43 -42
- package/package.json +2 -1
- package/dist/chunk-I5JRXMCV.js +0 -6077
- package/dist/chunk-LM265QNK.js +0 -3896
|
@@ -5,8 +5,8 @@ var require = __hf_createRequire(import.meta.url);
|
|
|
5
5
|
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
updateCheckDisabled
|
|
9
|
+
} from "./chunk-TZEKVLPV.js";
|
|
10
10
|
import {
|
|
11
11
|
hostAnswers
|
|
12
12
|
} from "./chunk-K4WIOZFP.js";
|
|
@@ -14,19 +14,12 @@ import {
|
|
|
14
14
|
readConfig,
|
|
15
15
|
readConfigFresh,
|
|
16
16
|
writeConfig
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-6NLPPKBO.js";
|
|
18
18
|
|
|
19
19
|
// src/utils/skillsManifest.ts
|
|
20
20
|
import { execFile } from "child_process";
|
|
21
21
|
import { createHash } from "crypto";
|
|
22
|
-
import {
|
|
23
|
-
existsSync,
|
|
24
|
-
readdirSync,
|
|
25
|
-
readFileSync,
|
|
26
|
-
renameSync,
|
|
27
|
-
statSync,
|
|
28
|
-
writeFileSync
|
|
29
|
-
} from "fs";
|
|
22
|
+
import { existsSync, readdirSync, readFileSync, statSync } from "fs";
|
|
30
23
|
import { homedir } from "os";
|
|
31
24
|
import { isAbsolute, join, relative, resolve, sep } from "path";
|
|
32
25
|
import { promisify } from "util";
|
|
@@ -253,7 +246,10 @@ function skillsAttributedToSource(lock, source) {
|
|
|
253
246
|
if (!want || !lock?.skills) return [];
|
|
254
247
|
return Object.entries(lock.skills).filter(([, e]) => repoSlug(e.source) === want || repoSlug(e.sourceUrl) === want).map(([name]) => name);
|
|
255
248
|
}
|
|
256
|
-
|
|
249
|
+
function isFromOtherSource(entry, source) {
|
|
250
|
+
const recorded = [repoSlug(entry?.source), repoSlug(entry?.sourceUrl)].filter(Boolean);
|
|
251
|
+
return recorded.length > 0 && !recorded.includes(repoSlug(source));
|
|
252
|
+
}
|
|
257
253
|
function lockPathForScope(scope, opts) {
|
|
258
254
|
if (scope === "project") return join(opts.cwd ?? process.cwd(), "skills-lock.json");
|
|
259
255
|
const xdgStateHome = process.env.XDG_STATE_HOME;
|
|
@@ -271,34 +267,6 @@ function hyperframesSkillNames(opts) {
|
|
|
271
267
|
const lockPath = lockPathForScope(opts.scope, { cwd: opts.cwd, home: opts.home });
|
|
272
268
|
return skillsAttributedToSource(readSkillLock(lockPath), DEFAULT_REPO_SLUG);
|
|
273
269
|
}
|
|
274
|
-
var MANIFEST_COVERAGE_ROOT = "skills/";
|
|
275
|
-
function manifestCoversSkill(entry) {
|
|
276
|
-
const path = entry?.skillPath;
|
|
277
|
-
return typeof path === "string" && path.startsWith(MANIFEST_COVERAGE_ROOT);
|
|
278
|
-
}
|
|
279
|
-
function detectRemoved(root, latest, opts) {
|
|
280
|
-
const lock = readSkillLock(lockPathForScope(root.scope, opts));
|
|
281
|
-
const attributed = skillsAttributedToSource(lock, latest.source);
|
|
282
|
-
const dropped = attributed.filter((name) => manifestCoversSkill(lock?.skills?.[name]));
|
|
283
|
-
const retired = RETIRED_SKILLS.filter(
|
|
284
|
-
(name) => attributed.includes(name) || RETIRED_DOMAIN_SKILLS.includes(name) && existsSync(join(root.dir, name, "SKILL.md"))
|
|
285
|
-
);
|
|
286
|
-
const removed = [.../* @__PURE__ */ new Set([...dropped, ...retired])].filter((name) => !(name in latest.skills)).sort().map((name) => ({ name, status: "removed" }));
|
|
287
|
-
return { removed, lockMissing: lock === null };
|
|
288
|
-
}
|
|
289
|
-
function pruneOrphanedLockEntries(names, scope, opts = {}) {
|
|
290
|
-
const path = lockPathForScope(scope, opts);
|
|
291
|
-
const lock = readSkillLock(path);
|
|
292
|
-
if (!lock?.skills) return [];
|
|
293
|
-
const pruned = names.filter((name) => name in lock.skills);
|
|
294
|
-
if (pruned.length === 0) return [];
|
|
295
|
-
for (const name of pruned) delete lock.skills[name];
|
|
296
|
-
const mode = statSync(path).mode & 511;
|
|
297
|
-
const tmp = `${path}.tmp`;
|
|
298
|
-
writeFileSync(tmp, JSON.stringify(lock, null, 2), { mode });
|
|
299
|
-
renameSync(tmp, path);
|
|
300
|
-
return pruned;
|
|
301
|
-
}
|
|
302
270
|
function findRepoManifest(cwd = process.cwd()) {
|
|
303
271
|
let dir = cwd;
|
|
304
272
|
for (let i = 0; i < 16; i++) {
|
|
@@ -380,20 +348,24 @@ async function checkSkills(opts = {}) {
|
|
|
380
348
|
const latest = await resolveLatestManifest(opts.source, opts.cwd, { canonical: opts.canonical });
|
|
381
349
|
const skillNames = Object.keys(latest.skills);
|
|
382
350
|
const root = locateInstall(skillNames, { dir: opts.dir, cwd: opts.cwd, home: opts.home });
|
|
383
|
-
const
|
|
384
|
-
const
|
|
385
|
-
|
|
386
|
-
|
|
351
|
+
const lock = root ? readSkillLock(lockPathForScope(root.scope, opts)) : null;
|
|
352
|
+
const foreign = root ? skillNames.filter(
|
|
353
|
+
(name) => existsSync(join(root.dir, name, "SKILL.md")) && isFromOtherSource(lock?.skills?.[name], latest.source)
|
|
354
|
+
) : [];
|
|
355
|
+
const ours = skillNames.filter((name) => !foreign.includes(name));
|
|
356
|
+
const installed = root ? hashInstalled(root, ours) : {};
|
|
357
|
+
const diff = diffSkills(installed, {
|
|
358
|
+
...latest,
|
|
359
|
+
skills: Object.fromEntries(ours.map((name) => [name, latest.skills[name]]))
|
|
360
|
+
});
|
|
387
361
|
return {
|
|
388
362
|
location: root?.dir ?? null,
|
|
389
363
|
agent: root?.agent ?? null,
|
|
390
364
|
scope: root?.scope ?? null,
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
skills: [...diff.skills, ...removed],
|
|
396
|
-
lockMissing
|
|
365
|
+
updateAvailable: diff.updateAvailable,
|
|
366
|
+
summary: diff.summary,
|
|
367
|
+
skills: diff.skills,
|
|
368
|
+
foreign
|
|
397
369
|
};
|
|
398
370
|
}
|
|
399
371
|
|
|
@@ -404,8 +376,7 @@ function getSkillsUpdateMeta() {
|
|
|
404
376
|
return {
|
|
405
377
|
updateAvailable: config.skillsUpdateAvailable ?? false,
|
|
406
378
|
outdated: config.skillsOutdatedCount ?? 0,
|
|
407
|
-
missing: config.skillsMissingCount ?? 0
|
|
408
|
-
removed: config.skillsRemovedCount ?? 0
|
|
379
|
+
missing: config.skillsMissingCount ?? 0
|
|
409
380
|
};
|
|
410
381
|
}
|
|
411
382
|
function cacheFresh(lastSkillsCheck, now) {
|
|
@@ -421,7 +392,6 @@ async function refreshSkillsCache() {
|
|
|
421
392
|
config.skillsUpdateAvailable = result.updateAvailable;
|
|
422
393
|
config.skillsOutdatedCount = result.summary.outdated;
|
|
423
394
|
config.skillsMissingCount = result.summary.coreMissing;
|
|
424
|
-
config.skillsRemovedCount = result.summary.removed;
|
|
425
395
|
writeConfig(config);
|
|
426
396
|
}
|
|
427
397
|
}
|
|
@@ -432,17 +402,19 @@ function invalidateSkillsCache() {
|
|
|
432
402
|
delete config.skillsUpdateAvailable;
|
|
433
403
|
delete config.skillsOutdatedCount;
|
|
434
404
|
delete config.skillsMissingCount;
|
|
435
|
-
delete config.skillsRemovedCount;
|
|
436
405
|
writeConfig(config);
|
|
437
406
|
} catch {
|
|
438
407
|
}
|
|
439
408
|
}
|
|
409
|
+
function skillsNoticeOff() {
|
|
410
|
+
return process.env["HYPERFRAMES_SKIP_SKILLS"] === "1" || updateCheckDisabled();
|
|
411
|
+
}
|
|
440
412
|
function skillsCheckDue() {
|
|
441
|
-
if (
|
|
413
|
+
if (skillsNoticeOff()) return false;
|
|
442
414
|
return !cacheFresh(readConfig().lastSkillsCheck, Date.now());
|
|
443
415
|
}
|
|
444
416
|
function skillsNoticeText(meta) {
|
|
445
|
-
const total = meta.outdated + meta.missing
|
|
417
|
+
const total = meta.outdated + meta.missing;
|
|
446
418
|
if (total < 1) return null;
|
|
447
419
|
const noun = total === 1 ? "skill" : "skills";
|
|
448
420
|
return `
|
|
@@ -452,7 +424,7 @@ function skillsNoticeText(meta) {
|
|
|
452
424
|
`;
|
|
453
425
|
}
|
|
454
426
|
function printSkillsUpdateNotice() {
|
|
455
|
-
if (
|
|
427
|
+
if (skillsNoticeOff()) return;
|
|
456
428
|
const text = skillsNoticeText(getSkillsUpdateMeta());
|
|
457
429
|
if (text) process.stderr.write(text);
|
|
458
430
|
}
|
|
@@ -463,9 +435,7 @@ export {
|
|
|
463
435
|
RETIRED_SKILLS,
|
|
464
436
|
retiredSkillNotice,
|
|
465
437
|
presentSkills,
|
|
466
|
-
SKILLS_CLI_LOCK_PATHS_VERIFIED_AT,
|
|
467
438
|
hyperframesSkillNames,
|
|
468
|
-
pruneOrphanedLockEntries,
|
|
469
439
|
checkSkills,
|
|
470
440
|
refreshSkillsCache,
|
|
471
441
|
invalidateSkillsCache,
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getMimeType,
|
|
9
9
|
injectMediaCodecMapIntoHtml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UNATIAOT.js";
|
|
11
11
|
import {
|
|
12
12
|
PROXY_VARIANT_CONFIG,
|
|
13
13
|
ProxyCapacityError,
|
|
@@ -18,17 +18,17 @@ import {
|
|
|
18
18
|
recordProxyRequest,
|
|
19
19
|
resolveProxy,
|
|
20
20
|
resolveProxyVariantRequest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-7YSFE4SZ.js";
|
|
22
22
|
import {
|
|
23
23
|
findStageProxyBox
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-4TKJWWPL.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveAutoProxy
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-6XUJVEY2.js";
|
|
28
28
|
import {
|
|
29
29
|
PREVIEW_PROXY_BOX_PARAM,
|
|
30
30
|
parsePreviewProxyBox
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-7HTH5PFK.js";
|
|
32
32
|
import {
|
|
33
33
|
decodeWellFormedEscapes
|
|
34
34
|
} from "./chunk-BSQ7XANM.js";
|
|
@@ -124,6 +124,7 @@ function serveFileWithRange(filePath, rangeHeader, res, contentType = getMimeTyp
|
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
126
|
const stream = createReadStream(filePath, { start, end });
|
|
127
|
+
res.once("close", () => stream.destroy());
|
|
127
128
|
stream.on("open", () => {
|
|
128
129
|
res.writeHead(status, headers);
|
|
129
130
|
stream.pipe(res);
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
DISTRIBUTED_FPS,
|
|
12
12
|
isDistributedFps
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7HTH5PFK.js";
|
|
14
14
|
import {
|
|
15
15
|
parseHTML
|
|
16
16
|
} from "./chunk-SDYDNHEE.js";
|
|
@@ -18,6 +18,9 @@ import {
|
|
|
18
18
|
// src/utils/compositionFps.ts
|
|
19
19
|
import { readFileSync } from "fs";
|
|
20
20
|
import { join } from "path";
|
|
21
|
+
function getHtmlAttribute(element, name) {
|
|
22
|
+
return Array.from(element.attributes).find((attribute) => attribute.name.toLowerCase() === name)?.value ?? null;
|
|
23
|
+
}
|
|
21
24
|
function readCompositionFps(html) {
|
|
22
25
|
let doc;
|
|
23
26
|
try {
|
|
@@ -25,11 +28,11 @@ function readCompositionFps(html) {
|
|
|
25
28
|
} catch {
|
|
26
29
|
return null;
|
|
27
30
|
}
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
) ??
|
|
32
|
-
const raw = root
|
|
31
|
+
const compositions = Array.from(doc.querySelectorAll("*")).filter(
|
|
32
|
+
(element) => getHtmlAttribute(element, "data-composition-id") !== null
|
|
33
|
+
);
|
|
34
|
+
const root = compositions.find((element) => getHtmlAttribute(element, "data-root") === "true") ?? compositions[0];
|
|
35
|
+
const raw = root ? getHtmlAttribute(root, "data-fps")?.trim() : void 0;
|
|
33
36
|
return raw ? raw : null;
|
|
34
37
|
}
|
|
35
38
|
var DEFAULT_CLOUD_FPS = 30;
|
|
@@ -7,19 +7,19 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
ambiguousIssue,
|
|
9
9
|
loadBrowserScript
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6LWUPIKD.js";
|
|
11
11
|
import {
|
|
12
12
|
auditClipDurations,
|
|
13
13
|
shouldIgnoreHttpError,
|
|
14
14
|
shouldIgnoreRequestFailure
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZH7J2ZUL.js";
|
|
16
16
|
import {
|
|
17
17
|
serveStaticProjectHtml
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VPC4XIVI.js";
|
|
19
19
|
import {
|
|
20
20
|
artifactDirectory,
|
|
21
21
|
finishSnapshotRun
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-C4Y3ZREE.js";
|
|
23
23
|
import {
|
|
24
24
|
FfmpegUnavailableError,
|
|
25
25
|
decideMediaProxyEligibility,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
proxyVariantFor,
|
|
28
28
|
resolveProxies,
|
|
29
29
|
scanProjectMediaCodecMap
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7YSFE4SZ.js";
|
|
31
31
|
import {
|
|
32
32
|
AUDIT_SEEK_OPTIONS,
|
|
33
33
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -41,20 +41,20 @@ import {
|
|
|
41
41
|
seekCompositionTimeline,
|
|
42
42
|
seekInPage,
|
|
43
43
|
waitForPreferredSeekTarget
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-4LXZJIVY.js";
|
|
45
45
|
import {
|
|
46
46
|
BrowserCleanupError,
|
|
47
47
|
closeManagedBrowser
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-UIC7B5KW.js";
|
|
49
49
|
import {
|
|
50
50
|
findStageProxyBox
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-4TKJWWPL.js";
|
|
52
52
|
import {
|
|
53
53
|
resolveAutoProxy
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-6XUJVEY2.js";
|
|
55
55
|
import {
|
|
56
56
|
normalizeErrorMessage
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-T2EUWCJE.js";
|
|
58
58
|
|
|
59
59
|
// src/utils/checkProgress.ts
|
|
60
60
|
function logCheckProgress(stage, done, total) {
|
|
@@ -389,7 +389,7 @@ function proxyFailedDraft(message) {
|
|
|
389
389
|
return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
|
|
390
390
|
}
|
|
391
391
|
async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
|
|
392
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
392
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-JLB2OYMT.js");
|
|
393
393
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
394
394
|
deadline?.enter("copies");
|
|
395
395
|
const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
|
|
@@ -435,8 +435,14 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
435
435
|
const page = session.page;
|
|
436
436
|
await waitForPreferredSeekTarget(page);
|
|
437
437
|
const rootAnchor = await resolveRootAnchor(page);
|
|
438
|
+
deadline?.keepPartial(() => ({
|
|
439
|
+
runtimeFindings: dropFailedProxyEchoes(
|
|
440
|
+
keepBrokenImageAborts(drafts, /* @__PURE__ */ new Set()),
|
|
441
|
+
failedPaths
|
|
442
|
+
).map((draft) => runtimeFinding(draft, rootAnchor))
|
|
443
|
+
}));
|
|
438
444
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
439
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
445
|
+
const { analyzeClipMediaFit } = await import("./src-BH5NICGQ.js");
|
|
440
446
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
441
447
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
442
448
|
}
|
|
@@ -454,7 +460,8 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
454
460
|
motion,
|
|
455
461
|
helpers,
|
|
456
462
|
deadline?.enter,
|
|
457
|
-
logCheckProgress
|
|
463
|
+
logCheckProgress,
|
|
464
|
+
deadline?.keepPartial
|
|
458
465
|
);
|
|
459
466
|
helperSession?.stop();
|
|
460
467
|
const helper = await helperOpen?.catch(() => void 0);
|
|
@@ -552,7 +559,7 @@ function mergeHelperDrafts(primary, helper) {
|
|
|
552
559
|
}
|
|
553
560
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
554
561
|
if (requests.length === 0) return [];
|
|
555
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
562
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-JLB2OYMT.js");
|
|
556
563
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
557
564
|
const server = await serveStaticProjectHtml(
|
|
558
565
|
project.dir,
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
markSeen,
|
|
10
10
|
readSeen,
|
|
11
11
|
writeRecord
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2ST4WAFY.js";
|
|
13
13
|
import {
|
|
14
14
|
createProjectConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-6XUJVEY2.js";
|
|
16
16
|
import {
|
|
17
17
|
isHyperframesProject
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7HTH5PFK.js";
|
|
19
19
|
|
|
20
20
|
// src/utils/desktopApp.ts
|
|
21
21
|
import { spawn, spawnSync } from "child_process";
|
|
@@ -11,20 +11,20 @@ import {
|
|
|
11
11
|
isAllowedHtmlAttribute,
|
|
12
12
|
isSafeAttributeValue,
|
|
13
13
|
sanitizeRichTextChildren
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7HTH5PFK.js";
|
|
15
15
|
import {
|
|
16
16
|
EXCLUDED_TAGS,
|
|
17
17
|
ensureHfIds,
|
|
18
18
|
mintHfId,
|
|
19
19
|
walkCompositionDescendants
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-3W4B6G7Y.js";
|
|
21
21
|
import {
|
|
22
22
|
decodedUrlPath,
|
|
23
23
|
removeElementWithGsapCascade
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-2MCXIY4B.js";
|
|
25
25
|
import {
|
|
26
26
|
require_dist
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-2VXY3PEF.js";
|
|
28
28
|
import {
|
|
29
29
|
readClipTiming,
|
|
30
30
|
writeClipTiming
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
resolveConfig,
|
|
9
9
|
usesSoftwareWebGpu
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-L4JB7LI4.js";
|
|
11
11
|
|
|
12
12
|
// src/browser/gpuPolicy.ts
|
|
13
13
|
function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCER_BROWSER_GPU_MODE) {
|
|
@@ -17,7 +17,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
|
|
|
17
17
|
return "auto";
|
|
18
18
|
}
|
|
19
19
|
async function resolveCaptureBrowserGpuMode(requestedMode, chromePath, probeLifecycle) {
|
|
20
|
-
const { resolveBrowserGpuMode } = await import("./src-
|
|
20
|
+
const { resolveBrowserGpuMode } = await import("./src-BH5NICGQ.js");
|
|
21
21
|
return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
|
|
22
22
|
}
|
|
23
23
|
function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
|
|
@@ -6,23 +6,23 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
resolveProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LMNZLZMJ.js";
|
|
10
10
|
import {
|
|
11
11
|
installPageFunctionGuard,
|
|
12
12
|
resolveCliChromeGpuMode,
|
|
13
13
|
seekCompositionTimeline,
|
|
14
14
|
waitForRuntimeReady
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-4LXZJIVY.js";
|
|
16
16
|
import {
|
|
17
17
|
launchManagedBrowser,
|
|
18
18
|
resolveManagedGpuMode
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UIC7B5KW.js";
|
|
20
20
|
import {
|
|
21
21
|
pageNavigationTimeoutMs
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-UB7BIDBS.js";
|
|
23
23
|
import {
|
|
24
24
|
resolveCompositionViewportFromHtml
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-4TKJWWPL.js";
|
|
26
26
|
import {
|
|
27
27
|
defineCommand
|
|
28
28
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -35,17 +35,17 @@ import {
|
|
|
35
35
|
} from "./chunk-ZTZA4UWZ.js";
|
|
36
36
|
import {
|
|
37
37
|
resolveNaturalMediaTimelineDuration
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-USWPZXEA.js";
|
|
39
39
|
import {
|
|
40
40
|
decodeWellFormedEscapes
|
|
41
41
|
} from "./chunk-BSQ7XANM.js";
|
|
42
42
|
import {
|
|
43
43
|
printDeprecationNotice,
|
|
44
44
|
withMeta
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-TZEKVLPV.js";
|
|
46
46
|
import {
|
|
47
47
|
normalizeErrorMessage
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-T2EUWCJE.js";
|
|
49
49
|
|
|
50
50
|
// src/commands/validate.ts
|
|
51
51
|
import { existsSync, mkdtempSync, readFileSync, rmSync } from "fs";
|
|
@@ -239,7 +239,7 @@ function extractCompositionErrorsFromLint(lintResult) {
|
|
|
239
239
|
async function localizeRemoteAssets(html) {
|
|
240
240
|
let dir;
|
|
241
241
|
try {
|
|
242
|
-
const { loadProducer } = await import("./producer-
|
|
242
|
+
const { loadProducer } = await import("./producer-23KVQZAB.js");
|
|
243
243
|
const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
|
|
244
244
|
dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
|
|
245
245
|
const assetDir = dir;
|
|
@@ -260,10 +260,10 @@ async function localizeRemoteAssets(html) {
|
|
|
260
260
|
}
|
|
261
261
|
async function validateInBrowser(project, opts) {
|
|
262
262
|
const projectDir = project.dir;
|
|
263
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
264
|
-
const { ensureBrowser } = await import("./manager-
|
|
265
|
-
const { serveStaticProjectHtml } = await import("./staticProjectServer-
|
|
266
|
-
const { lintProject } = await import("./lintProject-
|
|
263
|
+
const { bundleToSingleHtml } = await import("./compiler-R4UYDWXO.js");
|
|
264
|
+
const { ensureBrowser } = await import("./manager-MZIJY73J.js");
|
|
265
|
+
const { serveStaticProjectHtml } = await import("./staticProjectServer-BKXL5CXB.js");
|
|
266
|
+
const { lintProject } = await import("./lintProject-52SLJPRC.js");
|
|
267
267
|
const lintResult = await lintProject(projectDir);
|
|
268
268
|
const compositionErrors = extractCompositionErrorsFromLint(lintResult);
|
|
269
269
|
const html = await bundleToSingleHtml(projectDir);
|
|
@@ -284,9 +284,9 @@ async function validateInBrowser(project, opts) {
|
|
|
284
284
|
try {
|
|
285
285
|
const browser = await ensureBrowser();
|
|
286
286
|
const puppeteer = await import("puppeteer-core");
|
|
287
|
-
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-
|
|
287
|
+
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-BH5NICGQ.js");
|
|
288
288
|
const requestedGpuMode = resolveCliChromeGpuMode();
|
|
289
|
-
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-
|
|
289
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-6UBXO6ME.js");
|
|
290
290
|
const resolvedGpuMode = await resolveManagedGpuMode(requestedGpuMode, browser.executablePath);
|
|
291
291
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
292
292
|
const { gpuConfig, softwareWebGpu } = resolveLocalWebGpu(resolvedGpuMode, requiresWebGpu);
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
VERSION
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LFUVTS6V.js";
|
|
10
10
|
|
|
11
11
|
// src/registry/compatibility.ts
|
|
12
12
|
import { compareVersions } from "compare-versions";
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
loadOptionalPackage,
|
|
9
9
|
loadSharp
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EXAX37XR.js";
|
|
11
11
|
import {
|
|
12
12
|
downloadFile
|
|
13
13
|
} from "./chunk-WQ6ZXHFQ.js";
|
|
@@ -15,13 +15,16 @@ import {
|
|
|
15
15
|
findFFmpeg,
|
|
16
16
|
findFFprobe,
|
|
17
17
|
getFFmpegInstallHint
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DYNHVCBF.js";
|
|
19
19
|
import {
|
|
20
20
|
DEFAULT_VP9_CPU_USED,
|
|
21
21
|
SDR_RGB_TO_BT709_FILTER,
|
|
22
22
|
SDR_RGB_TO_TAGGED_BT709_FILTER,
|
|
23
23
|
renderProvenanceArgs
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-L4JB7LI4.js";
|
|
25
|
+
import {
|
|
26
|
+
runCancellableProcess
|
|
27
|
+
} from "./chunk-RWGASWT7.js";
|
|
25
28
|
|
|
26
29
|
// src/background-removal/pipeline.ts
|
|
27
30
|
import { spawn } from "child_process";
|
|
@@ -135,11 +138,29 @@ async function createSession(options = {}) {
|
|
|
135
138
|
const maskBuf = Buffer.allocUnsafe(INPUT_PLANE);
|
|
136
139
|
let rgbaBuf = null;
|
|
137
140
|
let rgbaBgBuf = null;
|
|
141
|
+
let retried = false;
|
|
142
|
+
const run = async (tensor) => {
|
|
143
|
+
try {
|
|
144
|
+
return await session.run({ [inputName]: tensor });
|
|
145
|
+
} catch (err) {
|
|
146
|
+
if (providerUsed === "CPU" || retried) throw err;
|
|
147
|
+
retried = true;
|
|
148
|
+
options.onProgress?.(
|
|
149
|
+
`${providerUsed} failed while running a frame (${err.message}); continuing on CPU.`
|
|
150
|
+
);
|
|
151
|
+
await session.release().catch(() => void 0);
|
|
152
|
+
session = await tryCreate(["cpu"]);
|
|
153
|
+
providerUsed = "CPU";
|
|
154
|
+
return await session.run({ [inputName]: tensor });
|
|
155
|
+
}
|
|
156
|
+
};
|
|
138
157
|
return {
|
|
139
|
-
provider
|
|
158
|
+
get provider() {
|
|
159
|
+
return providerUsed;
|
|
160
|
+
},
|
|
140
161
|
async process(rgb, width, height, withBackground = false) {
|
|
141
162
|
const tensor = await preprocess(sharp, ort, rgb, width, height, inputData);
|
|
142
|
-
const outputs = await
|
|
163
|
+
const outputs = await run(tensor);
|
|
143
164
|
const output = outputs[outputName];
|
|
144
165
|
if (!output) throw new Error(`Model did not return output '${outputName}'`);
|
|
145
166
|
const expectedBytes = width * height * 4;
|
|
@@ -260,16 +281,56 @@ function inferInputKind(inputPath) {
|
|
|
260
281
|
`Unsupported input: ${ext}. Use a video (mp4/mov/webm/mkv/avi) or image (jpg/png/webp).`
|
|
261
282
|
);
|
|
262
283
|
}
|
|
284
|
+
async function decoderTransposesDimensions(inputPath) {
|
|
285
|
+
const ffprobePath = findFFprobe();
|
|
286
|
+
if (!ffprobePath) throw new Error(`ffprobe is required. Install: ${getFFmpegInstallHint()}`);
|
|
287
|
+
const { stdout } = await runCancellableProcess(
|
|
288
|
+
ffprobePath,
|
|
289
|
+
[
|
|
290
|
+
"-v",
|
|
291
|
+
"error",
|
|
292
|
+
"-select_streams",
|
|
293
|
+
"v:0",
|
|
294
|
+
"-show_streams",
|
|
295
|
+
"-print_format",
|
|
296
|
+
"json",
|
|
297
|
+
"--",
|
|
298
|
+
inputPath
|
|
299
|
+
],
|
|
300
|
+
{ timeoutMs: 3e4, maxBufferBytes: 256 * 1024 }
|
|
301
|
+
);
|
|
302
|
+
const probe = JSON.parse(stdout);
|
|
303
|
+
if (typeof probe !== "object" || probe === null || !("streams" in probe) || !Array.isArray(probe.streams))
|
|
304
|
+
return false;
|
|
305
|
+
const stream = probe.streams[0];
|
|
306
|
+
if (typeof stream !== "object" || stream === null) return false;
|
|
307
|
+
const sideData = "side_data_list" in stream && Array.isArray(stream.side_data_list) ? stream.side_data_list : [];
|
|
308
|
+
const matrix = sideData.find(
|
|
309
|
+
(entry) => typeof entry === "object" && entry !== null && "side_data_type" in entry && entry.side_data_type === "Display Matrix"
|
|
310
|
+
);
|
|
311
|
+
let rotation = typeof matrix === "object" && matrix !== null && "rotation" in matrix ? matrix.rotation : void 0;
|
|
312
|
+
if (rotation === void 0 && "tags" in stream && typeof stream.tags === "object" && stream.tags !== null && "rotate" in stream.tags)
|
|
313
|
+
rotation = Number(stream.tags.rotate);
|
|
314
|
+
if (typeof rotation !== "number" || !Number.isFinite(rotation)) return false;
|
|
315
|
+
const angle = (rotation % 360 + 360) % 360;
|
|
316
|
+
return Math.abs(angle - 90) < 1 || Math.abs(angle - 270) < 1;
|
|
317
|
+
}
|
|
263
318
|
async function probeMedia(inputPath) {
|
|
264
319
|
const isImage = inferInputKind(inputPath) === "image";
|
|
265
|
-
const engine = await import("./src-
|
|
320
|
+
const engine = await import("./src-BH5NICGQ.js");
|
|
266
321
|
const meta = await engine.extractMediaMetadata(inputPath);
|
|
267
322
|
if (isImage) {
|
|
268
323
|
return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
|
|
269
324
|
}
|
|
270
325
|
const fps = meta.fps || 30;
|
|
271
326
|
const frameCount = meta.durationSeconds ? Math.round(meta.durationSeconds * fps) : 0;
|
|
272
|
-
|
|
327
|
+
const transposed = await decoderTransposesDimensions(inputPath);
|
|
328
|
+
return {
|
|
329
|
+
width: transposed ? meta.height : meta.width,
|
|
330
|
+
height: transposed ? meta.width : meta.height,
|
|
331
|
+
fps,
|
|
332
|
+
frameCount
|
|
333
|
+
};
|
|
273
334
|
}
|
|
274
335
|
function buildEncoderArgs(format, width, height, fps, outputPath, quality = DEFAULT_QUALITY) {
|
|
275
336
|
const base = [
|
|
@@ -34,10 +34,10 @@ import {
|
|
|
34
34
|
readConfig,
|
|
35
35
|
telemetryRuntimeOverride,
|
|
36
36
|
writeConfig
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-6NLPPKBO.js";
|
|
38
38
|
import {
|
|
39
39
|
VERSION
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-LFUVTS6V.js";
|
|
41
41
|
|
|
42
42
|
// src/telemetry/transport.ts
|
|
43
43
|
import { spawn } from "child_process";
|