hyperframes 0.8.143 → 0.8.145
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/README.md +3 -2
- package/dist/{add-Q5EYDUAY.js → add-B6OUH46W.js} +12 -12
- package/dist/{animatedGifPrep-H2DUQEZ3.js → animatedGifPrep-MIWRDJIO.js} +7 -7
- package/dist/{asset-C7JBYYX4.js → asset-XJ2B2PU3.js} +2 -2
- package/dist/{assetCataloger-FRO4G6OU.js → assetCataloger-A5ZLSCMZ.js} +3 -3
- package/dist/{auth-FRWLCO36.js → auth-5HOVCZMV.js} +1 -1
- package/dist/{autoUpdate-E4OZXQK6.js → autoUpdate-WVNL5K3D.js} +2 -2
- package/dist/{backgroundChecks-FSUVHN5L.js → backgroundChecks-IGF54SFH.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-4U73BYTU.js → batchRender-T6JEGCQV.js} +4 -4
- package/dist/{beats-U6KJWF35.js → beats-37T6Y6QP.js} +13 -13
- package/dist/{benchmark-5ONT7V7B.js → benchmark-ZVVLOWPP.js} +9 -9
- package/dist/{browser-R4DU46IE.js → browser-4SSJOLH4.js} +39 -55
- package/dist/{bundleWithLocalizedFonts-VH55VOAL.js → bundleWithLocalizedFonts-XWK423QP.js} +2 -2
- package/dist/{capture-OGQAEYKO.js → capture-2SF7YP57.js} +2 -2
- package/dist/{capture-26G2DPSI.js → capture-KZXOPBMO.js} +18 -18
- package/dist/{catalog-RKORTIUE.js → catalog-NLD4A2C6.js} +12 -12
- package/dist/{catch-up-4OBERRQO.js → catch-up-4BSRN6IR.js} +4 -4
- package/dist/{check-P2XDN57S.js → check-IA44QQWM.js} +66 -55
- package/dist/{checkBrowser-NTGJGAEA.js → checkBrowser-VM35KZMW.js} +81 -30
- package/dist/{chunk-LVX6NK36.js → chunk-3IBMBNYY.js} +1 -1
- package/dist/{chunk-6XMFEICO.js → chunk-3KU3PFDW.js} +77 -92
- package/dist/{chunk-PJU63L6W.js → chunk-4ORLNTET.js} +1 -1
- package/dist/{chunk-DF2BHILQ.js → chunk-4QWD6JYN.js} +3 -3
- package/dist/{chunk-BT27OYYX.js → chunk-5NRXZGKK.js} +18 -12
- package/dist/{chunk-UM2GRYM3.js → chunk-5WVW7P23.js} +3 -3
- package/dist/{chunk-I7QGQAZM.js → chunk-6LGNTUZN.js} +7 -7
- package/dist/{chunk-LAOCA3MQ.js → chunk-A4Q7W4LV.js} +13 -8
- package/dist/{chunk-4PFZPP2N.js → chunk-A6S35NYA.js} +54 -16
- package/dist/{chunk-QRKLPWEX.js → chunk-ADF3X6GM.js} +11 -2
- package/dist/chunk-AUWHD7RA.js +3753 -0
- package/dist/{chunk-W35EKBS6.js → chunk-BFACGEII.js} +2 -2
- package/dist/{chunk-HW4AKJ5F.js → chunk-BIAC7IJT.js} +1 -1
- package/dist/{chunk-ZLW2V65P.js → chunk-BSQ7XANM.js} +3 -2
- package/dist/{chunk-LCSMOLGX.js → chunk-BYSBRF24.js} +69 -8
- package/dist/{chunk-2LBBHMKT.js → chunk-CFUXNBWH.js} +1 -1
- package/dist/{chunk-BFDJ63J5.js → chunk-DDIVWXN7.js} +1 -1
- package/dist/{chunk-KOEWEFHK.js → chunk-DIRJ322I.js} +10 -5
- package/dist/{chunk-FVYXDXEV.js → chunk-DWUKJQTO.js} +2 -2
- package/dist/{chunk-POLR33RB.js → chunk-EPE2HRJK.js} +15 -17
- package/dist/{chunk-UICWP23D.js → chunk-FBCULCAL.js} +3 -3
- package/dist/{chunk-F26LCYRY.js → chunk-FDT6KQV4.js} +142 -81
- package/dist/{chunk-P7THMINS.js → chunk-FXJJCPPB.js} +1 -1
- package/dist/{chunk-BYK73CR7.js → chunk-GBGJ7A3D.js} +5 -5
- package/dist/{sherpa-LVIUEAGF.js → chunk-GEMJYBRU.js} +11 -45
- package/dist/{chunk-KO5QBV73.js → chunk-GMAJB2P6.js} +1 -1
- package/dist/{chunk-KQLGTGE5.js → chunk-GRY3PN3K.js} +2 -2
- package/dist/{chunk-7UYBQ6NF.js → chunk-GXJEGZL2.js} +30 -20
- package/dist/{chunk-KJJLA674.js → chunk-GZVP4TWN.js} +1 -46
- package/dist/{chunk-QVYVUCWD.js → chunk-HB7FJOY4.js} +1 -1
- package/dist/{chunk-QFN7NVWM.js → chunk-ICKDMTLA.js} +1 -1
- package/dist/{chunk-XONFUK3M.js → chunk-IEIJRMLZ.js} +47 -35
- package/dist/{chunk-PAGIICKN.js → chunk-IHTRYDFN.js} +1 -1
- package/dist/chunk-IR35BCLK.js +13 -0
- package/dist/{chunk-KDPYVTEU.js → chunk-KBB4RG6F.js} +6 -1
- package/dist/{chunk-ZQQ3SEIE.js → chunk-KIFHYXPB.js} +99 -31
- package/dist/{chunk-TAMQYQGJ.js → chunk-LAFJSYDL.js} +1 -1
- package/dist/{chunk-U3X3TPBW.js → chunk-MAYCCGMQ.js} +11 -2
- package/dist/{chunk-HC7EVDEL.js → chunk-OB5MJR4W.js} +1 -1
- package/dist/{chunk-N3DQEVSI.js → chunk-OTHDVXOJ.js} +8 -5
- package/dist/{chunk-Y6QL2LGO.js → chunk-PLR7Z6TC.js} +1 -1
- package/dist/{chunk-OBXQRJWQ.js → chunk-QATWIE4K.js} +1 -1
- package/dist/{chunk-HLYOEIWM.js → chunk-QLSM7K5S.js} +2 -2
- package/dist/{chunk-LW6HO6U3.js → chunk-R42WWQVB.js} +1 -1
- package/dist/{chunk-HMT2RPZU.js → chunk-U5QY7KTN.js} +13 -9
- package/dist/chunk-UPFUC4DB.js +136 -0
- package/dist/{chunk-33RZPZ4K.js → chunk-UXO2L7HJ.js} +366 -156
- package/dist/{chunk-GNBGPUJ7.js → chunk-VHFEMFYL.js} +3 -3
- package/dist/{chunk-4M4EC7JX.js → chunk-VRW6EBHV.js} +12 -1
- package/dist/{chunk-VIVBA6E6.js → chunk-XBX4QJP7.js} +1 -1
- package/dist/{chunk-CLOH4LIB.js → chunk-XIHCMVMG.js} +2 -2
- package/dist/{chunk-TVCRUG2S.js → chunk-ZEUONDQG.js} +1 -1
- package/dist/{chunk-OSSHSIMD.js → chunk-ZF7SXQJ7.js} +1 -1
- package/dist/{chunk-5FISWJ37.js → chunk-ZIYZ77MR.js} +4 -4
- package/dist/{chunk-3NE7ZYU2.js → chunk-ZSVUAVMT.js} +3 -3
- package/dist/{clean-YHGPY33K.js → clean-RDKJB5FK.js} +18 -18
- package/dist/cli.js +68 -56
- package/dist/{cloud-DOFI5ISR.js → cloud-QVPVVNCW.js} +4 -4
- package/dist/{cloudrun-KTZ4XDHL.js → cloudrun-3RE2UCQG.js} +4 -4
- package/dist/{compare-SMMIZN2C.js → compare-LEDOY7MO.js} +25 -25
- package/dist/{compiler-TEXQWW6N.js → compiler-F54OZZPM.js} +10 -4
- package/dist/{component-B3GCNGSS.js → component-N42M67WY.js} +3 -3
- package/dist/{compositions-OQNZZTKF.js → compositions-VB2J2LZI.js} +11 -11
- package/dist/{delete-EL5LVSEP.js → delete-Q6RWMJ4Z.js} +2 -2
- package/dist/{dist-5UVIRMSM.js → dist-KDJTFJHA.js} +2 -2
- package/dist/{dist-XN234YFQ.js → dist-Q4BI5A73.js} +4 -4
- package/dist/{doctor-UOL3OI2A.js → doctor-JMMUHDRV.js} +13 -13
- package/dist/{events-K2DB2PBC.js → events-6ZBSIBE5.js} +2 -2
- package/dist/{events-NIZBS6S7.js → events-RGUAHIBW.js} +3 -3
- package/dist/{feedback-QMP4E6L7.js → feedback-FIID6MZW.js} +9 -9
- package/dist/{ffmpeg-QIUFEFTY.js → ffmpeg-T5SH2EFJ.js} +3 -2
- package/dist/{figma-2AUJRNVC.js → figma-BL3JJC36.js} +3 -3
- package/dist/fontLocalizeCli.js +9 -9
- package/dist/{get-P5NC7SRM.js → get-P46GS7S6.js} +2 -2
- package/dist/{gpuPolicy-7N5MCE2G.js → gpuPolicy-AQ2BPLBK.js} +11 -9
- package/dist/{grade-compare-HV5AFZ6P.js → grade-compare-GDCWU7ZZ.js} +27 -27
- package/dist/{help-3TSTXBLN.js → help-HJR3RWFG.js} +2 -2
- package/dist/{history-D65XFJ6D.js → history-GGO5AWJB.js} +5 -5
- 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-TXV7MLFO.js → info-3GFWUBJC.js} +8 -8
- package/dist/{init-OSDMJZJV.js → init-36OPU2ZG.js} +35 -36
- package/dist/{inspect-RQQSAYIJ.js → inspect-F2HEL5ON.js} +26 -26
- package/dist/{installer-CDOB32HE.js → installer-NI6P6GC4.js} +5 -5
- package/dist/{keyframes-V75Q6GRM.js → keyframes-7OY3LMAZ.js} +6 -6
- package/dist/{lambda-RODV4RCX.js → lambda-6GJIWNJ3.js} +5 -5
- package/dist/{layout-IZAI5SFC.js → layout-FTMLNL5A.js} +26 -26
- package/dist/{lint-PLXOXY5R.js → lint-U6POHUON.js} +8 -8
- package/dist/{lintProject-OQ6H6XBR.js → lintProject-UBZ3TDHU.js} +2 -2
- package/dist/{list-BQBPNKDZ.js → list-IP5KI5Q2.js} +2 -2
- package/dist/{login-NP6F4FHC.js → login-4VWTVPHG.js} +4 -4
- package/dist/{manager-CT3D67CG.js → manager-BPSR6D3V.js} +2 -2
- package/dist/{manager-GXYF4AVO.js → manager-YKMHR6LN.js} +8 -5
- package/dist/{media-treatment-PXGMZ4A4.js → media-treatment-XGV44AGV.js} +16 -13
- package/dist/{models-CEZM6XZ7.js → models-UCXB6UR5.js} +59 -19
- package/dist/{motionShot-R4GHYWYM.js → motionShot-WPVNBXKA.js} +21 -22
- package/dist/{normalize-H6KUHHEI.js → normalize-U3SL5VG3.js} +2 -2
- package/dist/{normalize-audio-MQ7NFCOV.js → normalize-audio-TYJ3UEHO.js} +6 -6
- package/dist/{open-AKQTGNXF.js → open-HENOLVB2.js} +4 -4
- package/dist/parakeetRunner-VFQ6WFTD.js +67 -0
- package/dist/{pipeline-SYJYP2RM.js → pipeline-6WPSC3H4.js} +10 -9
- package/dist/{play-NBH4B7PL.js → play-OI53WNUM.js} +19 -19
- package/dist/{preflight-Y5DN5D37.js → preflight-B4AFK3RG.js} +4 -4
- package/dist/{present-XAX55CFS.js → present-NGMEQ4NO.js} +15 -15
- package/dist/{preview-OLANKNFA.js → preview-VT2HWRWZ.js} +19 -19
- package/dist/{producer-Q6YNZZUJ.js → producer-7TYEAUF7.js} +1 -1
- package/dist/{projectConfig-EM26P45P.js → projectConfig-B2AF5DXY.js} +7 -7
- package/dist/{publication-OXWJZKSX.js → publication-2PANQVC6.js} +3 -3
- package/dist/{publish-4VBWP2UB.js → publish-O5OL42BG.js} +11 -11
- package/dist/{remove-background-REB7427G.js → remove-background-T2JM6UVP.js} +11 -10
- package/dist/{render-K25YOG3M.js → render-OLPKOJRU.js} +11 -11
- package/dist/{render-3CVZ2SZG.js → render-W7OFXDOJ.js} +4 -4
- package/dist/{render-TSE75QUL.js → render-Z253WHBK.js} +26 -26
- package/dist/{render-batch-GGUOK3DS.js → render-batch-46IIBFKL.js} +4 -4
- package/dist/{renderCancellation-PZRWB53I.js → renderCancellation-QTZOCDJ2.js} +10 -9
- package/dist/renderSetupWorker.js +32 -44
- package/dist/{resolver-S5VK6UCB.js → resolver-J2PL5FVJ.js} +5 -5
- package/dist/sherpa-ZF42V3RN.js +75 -0
- package/dist/sherpaWorker.js +2 -1
- package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +2 -20
- package/dist/skills/hyperframes/scripts/lib/main-module.mjs +13 -0
- package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +51 -0
- package/dist/skills/hyperframes/scripts/plugin-cli.mjs +4 -3
- package/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +5 -1
- package/dist/skills/hyperframes-cli/SKILL.md +2 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +2 -2
- package/dist/skills/media-use/audio/scripts/lib/main-module.mjs +13 -0
- package/dist/skills/media-use/scripts/lib/cube-validate.mjs +2 -3
- package/dist/skills/media-use/scripts/lib/main-module.mjs +13 -0
- package/dist/{skills-I65FU5HD.js → skills-ACDOO3PX.js} +7 -7
- package/dist/{skillsUpdateCheck-J57RNNIV.js → skillsUpdateCheck-L5OXVVPU.js} +3 -3
- package/dist/{snapshot-YROOGY22.js → snapshot-UUVNZOW5.js} +28 -28
- package/dist/{src-JO5JOV7Y.js → src-BSLKXEGX.js} +10 -6
- package/dist/{src-X426BZAG.js → src-KS3AWFGT.js} +8 -8
- package/dist/{staticProjectServer-5VMBS262.js → staticProjectServer-2TTVGPQH.js} +15 -15
- package/dist/studio/assets/{hyperframes-player-BXSuksFh.js → hyperframes-player-DZ5JrMDg.js} +3 -3
- package/dist/studio/assets/{index-FgyO_5Kv.js → index-BOs6C0aZ.js} +1 -1
- package/dist/studio/assets/{index-BgOVCqjo.js → index-BqFRhNZa.js} +1 -1
- package/dist/studio/assets/{index-J7jpL4pj.js → index-D8W0a0Z9.js} +149 -149
- package/dist/studio/{chunk-TFLU2MGI.js → chunk-6JY3MTIX.js} +108 -2
- package/dist/studio/{chunk-H2DUOXTF.js → chunk-NZPJUZKT.js} +100 -4
- package/dist/studio/{chunk-UYWON5AX.js → chunk-TP6D3U37.js} +7 -100
- package/dist/studio/{chunk-LOVBLSMR.js → chunk-Y2OHHNM2.js} +35 -19
- package/dist/studio/{domEditingLayers-KBTPQKGA.js → domEditingLayers-PTP2ICGM.js} +3 -3
- package/dist/studio/index.d.ts +8 -5
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +545 -495
- package/dist/studio/player.js +3 -3
- package/dist/studio/ui.d.ts +4 -5
- package/dist/studio/ui.js +1 -1
- package/dist/{studio-api-VRBZUGAE.js → studio-api-WYWF7XRC.js} +9 -9
- package/dist/{studioServer-DBNKZ6I6.js → studioServer-3FG4YTP7.js} +72 -54
- package/dist/{telemetry-CXAX3TO3.js → telemetry-PAOOB4T4.js} +3 -3
- package/dist/{timeline-VQ34WH7J.js → timeline-JIIJKKPC.js} +69 -47
- package/dist/{tokens-62R7VFAZ.js → tokens-3QRAM75Z.js} +2 -2
- package/dist/{transcribe-XOHPPL2O.js → transcribe-QSBP5MUG.js} +115 -51
- package/dist/{transcribe-7KR7IPJA.js → transcribe-SZB6UMXE.js} +14 -12
- package/dist/{tts-MUV42JXT.js → tts-B6AHFQEO.js} +1 -1
- package/dist/{updateCheck-POYNH3B5.js → updateCheck-V3DSB26K.js} +2 -2
- package/dist/{upgrade-NBNOT7J2.js → upgrade-L5GISOEV.js} +2 -2
- package/dist/{urlDownloader-3NS63A7B.js → urlDownloader-52FERT4X.js} +6 -6
- package/dist/{validate-Y2QDHAEP.js → validate-HVVLX7KO.js} +20 -20
- package/dist/{video-SJDMTSTL.js → video-MEOWRMFG.js} +7 -7
- package/package.json +1 -1
- package/dist/chunk-6TPZSTCL.js +0 -3681
- package/dist/studio/chunk-EEXSYY5F.js.map +0 -1
- package/dist/studio/chunk-H2DUOXTF.js.map +0 -1
- package/dist/studio/chunk-LOVBLSMR.js.map +0 -1
- package/dist/studio/chunk-PZ5AY32C.js.map +0 -1
- package/dist/studio/chunk-TFLU2MGI.js.map +0 -1
- package/dist/studio/chunk-UYWON5AX.js.map +0 -1
- package/dist/studio/domEditingLayers-KBTPQKGA.js.map +0 -1
- package/dist/studio/index.css.map +0 -1
- package/dist/studio/index.js.map +0 -1
- package/dist/studio/player.js.map +0 -1
- package/dist/studio/styles/tailwind-preset.js.map +0 -1
- package/dist/studio/ui.js.map +0 -1
- package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
- package/dist/{synthesize-C3IWDAXF.js → synthesize-UCI4X5O7.js} +4 -4
|
@@ -6,21 +6,21 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
maybePromptRenderFeedback
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZSVUAVMT.js";
|
|
10
10
|
import {
|
|
11
11
|
reportVariableIssues,
|
|
12
12
|
resolveVariablesArg,
|
|
13
13
|
validateVariablesAgainstProject
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-R42WWQVB.js";
|
|
15
15
|
import {
|
|
16
16
|
loadProducer
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-HB7FJOY4.js";
|
|
18
18
|
import {
|
|
19
19
|
formatLintStartupMessage
|
|
20
20
|
} from "./chunk-6CSYCFQV.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveProject
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-XBX4QJP7.js";
|
|
24
24
|
import {
|
|
25
25
|
renderJobObservabilityTelemetryPayload
|
|
26
26
|
} from "./chunk-VXVRPIJA.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
resolveCompositionEntryArg,
|
|
33
33
|
resolveDefaultFpsArg,
|
|
34
34
|
windowsChromeCrashRemediation
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-FXJJCPPB.js";
|
|
36
36
|
import "./chunk-WPNE5NEP.js";
|
|
37
37
|
import {
|
|
38
38
|
desktopHint
|
|
@@ -49,24 +49,24 @@ import "./chunk-DCAI5DBR.js";
|
|
|
49
49
|
import "./chunk-EOVYQ3IG.js";
|
|
50
50
|
import {
|
|
51
51
|
runEnvironmentChecks
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-DIRJ322I.js";
|
|
53
53
|
import "./chunk-442JNXRM.js";
|
|
54
54
|
import {
|
|
55
55
|
createRenderCancellationScope
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-FBCULCAL.js";
|
|
57
57
|
import {
|
|
58
58
|
loadProjectConfig,
|
|
59
59
|
readProjectConfigWithStatus,
|
|
60
60
|
seedProjectAuthoringSkill
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-CFUXNBWH.js";
|
|
62
62
|
import "./chunk-XT7X6QCP.js";
|
|
63
63
|
import "./chunk-4YYJOFKS.js";
|
|
64
64
|
import {
|
|
65
65
|
normalizeSkillSlug
|
|
66
66
|
} from "./chunk-HVW7ABXD.js";
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-BIAC7IJT.js";
|
|
68
|
+
import "./chunk-XIHCMVMG.js";
|
|
69
|
+
import "./chunk-LAFJSYDL.js";
|
|
70
70
|
import "./chunk-AWDFDFI3.js";
|
|
71
71
|
import "./chunk-P6LJ4Y32.js";
|
|
72
72
|
import {
|
|
@@ -76,14 +76,14 @@ import {
|
|
|
76
76
|
findFFmpeg,
|
|
77
77
|
findFFprobe,
|
|
78
78
|
getFFmpegInstallHint
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-ZEUONDQG.js";
|
|
80
80
|
import {
|
|
81
81
|
trackRenderComplete,
|
|
82
82
|
trackRenderError,
|
|
83
83
|
trackRenderObservation,
|
|
84
84
|
trackRenderPreflightRejected
|
|
85
|
-
} from "./chunk-
|
|
86
|
-
import "./chunk-
|
|
85
|
+
} from "./chunk-ICKDMTLA.js";
|
|
86
|
+
import "./chunk-ZF7SXQJ7.js";
|
|
87
87
|
import "./chunk-VWG7OQKU.js";
|
|
88
88
|
import {
|
|
89
89
|
bytesToMb
|
|
@@ -110,8 +110,8 @@ import {
|
|
|
110
110
|
MAX_VP9_CPU_USED,
|
|
111
111
|
MIN_VP9_CPU_USED,
|
|
112
112
|
isVideoFrameFormat
|
|
113
|
-
} from "./chunk-
|
|
114
|
-
import "./chunk-
|
|
113
|
+
} from "./chunk-UXO2L7HJ.js";
|
|
114
|
+
import "./chunk-FDT6KQV4.js";
|
|
115
115
|
import "./chunk-NE55C6S5.js";
|
|
116
116
|
import "./chunk-USDEMXXL.js";
|
|
117
117
|
import {
|
|
@@ -119,8 +119,8 @@ import {
|
|
|
119
119
|
fpsToFfmpegArg,
|
|
120
120
|
fpsToNumber,
|
|
121
121
|
parseFps
|
|
122
|
-
} from "./chunk-
|
|
123
|
-
import "./chunk-
|
|
122
|
+
} from "./chunk-VRW6EBHV.js";
|
|
123
|
+
import "./chunk-AUWHD7RA.js";
|
|
124
124
|
import "./chunk-VC76R6W2.js";
|
|
125
125
|
import "./chunk-YA62XGXS.js";
|
|
126
126
|
import {
|
|
@@ -137,25 +137,25 @@ import "./chunk-RQVDTPGD.js";
|
|
|
137
137
|
import {
|
|
138
138
|
hasDefinitiveEntryMismatch
|
|
139
139
|
} from "./chunk-Q5X2B5WT.js";
|
|
140
|
-
import "./chunk-
|
|
140
|
+
import "./chunk-A6S35NYA.js";
|
|
141
141
|
import {
|
|
142
142
|
killOrphanedProcessesForRender
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-A4Q7W4LV.js";
|
|
144
144
|
import {
|
|
145
145
|
runRenderSetupWorker
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-BYSBRF24.js";
|
|
147
147
|
import "./chunk-TWWSYAKJ.js";
|
|
148
148
|
import {
|
|
149
149
|
lintProject,
|
|
150
150
|
shouldBlockRender
|
|
151
|
-
} from "./chunk-
|
|
151
|
+
} from "./chunk-IEIJRMLZ.js";
|
|
152
152
|
import {
|
|
153
153
|
collectSubCompositionSrcs
|
|
154
154
|
} from "./chunk-IWFLMU2N.js";
|
|
155
155
|
import "./chunk-APDLWWFG.js";
|
|
156
156
|
import "./chunk-PJ3HDUCY.js";
|
|
157
157
|
import "./chunk-3RM2ETQT.js";
|
|
158
|
-
import "./chunk-
|
|
158
|
+
import "./chunk-BSQ7XANM.js";
|
|
159
159
|
import "./chunk-SDYDNHEE.js";
|
|
160
160
|
import "./chunk-2PSPARWP.js";
|
|
161
161
|
import "./chunk-T42U2W2R.js";
|
|
@@ -172,7 +172,7 @@ import {
|
|
|
172
172
|
} from "./chunk-ISN5GRYI.js";
|
|
173
173
|
import {
|
|
174
174
|
VERSION
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-BFACGEII.js";
|
|
176
176
|
import {
|
|
177
177
|
normalizeErrorMessage
|
|
178
178
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -671,7 +671,7 @@ async function executeRenderPlan(plan, dependencies, cancellation) {
|
|
|
671
671
|
let batchModule;
|
|
672
672
|
let preparedBatch;
|
|
673
673
|
if (plan.batchPath) {
|
|
674
|
-
batchModule = await import("./batchRender-
|
|
674
|
+
batchModule = await import("./batchRender-T6JEGCQV.js");
|
|
675
675
|
try {
|
|
676
676
|
preparedBatch = batchModule.prepareBatchRender({
|
|
677
677
|
batchPath: plan.batchPath,
|
|
@@ -760,7 +760,7 @@ function assertRenderActive(cancellation) {
|
|
|
760
760
|
cancellation?.signal.throwIfAborted();
|
|
761
761
|
}
|
|
762
762
|
async function ensureRenderBrowser(plan, signal) {
|
|
763
|
-
const { ensureBrowser } = await import("./manager-
|
|
763
|
+
const { ensureBrowser } = await import("./manager-BPSR6D3V.js");
|
|
764
764
|
let browserSpinner;
|
|
765
765
|
try {
|
|
766
766
|
if (plan.effectiveQuiet) {
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
loadProjectVariableSchema,
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
validateVariablesAgainstSchema
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-R42WWQVB.js";
|
|
18
18
|
import "./chunk-FH7WODJH.js";
|
|
19
19
|
import {
|
|
20
20
|
errorBox
|
|
@@ -24,8 +24,8 @@ import {
|
|
|
24
24
|
failCommand,
|
|
25
25
|
setCommandExitCode
|
|
26
26
|
} from "./chunk-PBN6GBJE.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-VRW6EBHV.js";
|
|
28
|
+
import "./chunk-AUWHD7RA.js";
|
|
29
29
|
import "./chunk-VC76R6W2.js";
|
|
30
30
|
import "./chunk-YA62XGXS.js";
|
|
31
31
|
import "./chunk-MQZVBHEY.js";
|
|
@@ -35,7 +35,7 @@ import "./chunk-T76PLPD6.js";
|
|
|
35
35
|
import "./chunk-FXMKHHPO.js";
|
|
36
36
|
import "./chunk-RQVDTPGD.js";
|
|
37
37
|
import "./chunk-3RM2ETQT.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-BSQ7XANM.js";
|
|
39
39
|
import "./chunk-SDYDNHEE.js";
|
|
40
40
|
import "./chunk-2PSPARWP.js";
|
|
41
41
|
import "./chunk-T42U2W2R.js";
|
|
@@ -7,13 +7,13 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
createRenderCancellationScope,
|
|
9
9
|
stoppedByCancelSignal
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-FBCULCAL.js";
|
|
11
|
+
import "./chunk-UXO2L7HJ.js";
|
|
12
|
+
import "./chunk-FDT6KQV4.js";
|
|
13
13
|
import "./chunk-NE55C6S5.js";
|
|
14
14
|
import "./chunk-USDEMXXL.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-VRW6EBHV.js";
|
|
16
|
+
import "./chunk-AUWHD7RA.js";
|
|
17
17
|
import "./chunk-VC76R6W2.js";
|
|
18
18
|
import "./chunk-YA62XGXS.js";
|
|
19
19
|
import "./chunk-MQZVBHEY.js";
|
|
@@ -22,18 +22,19 @@ import "./chunk-DPVXBVLL.js";
|
|
|
22
22
|
import "./chunk-T76PLPD6.js";
|
|
23
23
|
import "./chunk-FXMKHHPO.js";
|
|
24
24
|
import "./chunk-RQVDTPGD.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-A4Q7W4LV.js";
|
|
26
|
+
import "./chunk-BYSBRF24.js";
|
|
27
27
|
import "./chunk-TWWSYAKJ.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-IEIJRMLZ.js";
|
|
29
29
|
import "./chunk-IWFLMU2N.js";
|
|
30
30
|
import "./chunk-APDLWWFG.js";
|
|
31
31
|
import "./chunk-PJ3HDUCY.js";
|
|
32
32
|
import "./chunk-3RM2ETQT.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-BSQ7XANM.js";
|
|
34
34
|
import "./chunk-SDYDNHEE.js";
|
|
35
35
|
import "./chunk-2PSPARWP.js";
|
|
36
36
|
import "./chunk-T42U2W2R.js";
|
|
37
|
+
import "./chunk-KNU5COPB.js";
|
|
37
38
|
import "./chunk-3GXQPCJC.js";
|
|
38
39
|
import "./chunk-M2WBOQ2Q.js";
|
|
39
40
|
export {
|
|
@@ -8,20 +8,24 @@ import "./chunk-Q5X2B5WT.js";
|
|
|
8
8
|
import {
|
|
9
9
|
ensureBrowser,
|
|
10
10
|
releaseOwnedBrowserInstallLock
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-A6S35NYA.js";
|
|
12
12
|
import {
|
|
13
13
|
killOrphanedProcesses
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import
|
|
14
|
+
} from "./chunk-A4Q7W4LV.js";
|
|
15
|
+
import {
|
|
16
|
+
installRenderSetupSignalHandlers,
|
|
17
|
+
renderSetupErrorLine,
|
|
18
|
+
renderSetupResultLine
|
|
19
|
+
} from "./chunk-BYSBRF24.js";
|
|
16
20
|
import "./chunk-TWWSYAKJ.js";
|
|
17
21
|
import {
|
|
18
22
|
lintProject
|
|
19
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-IEIJRMLZ.js";
|
|
20
24
|
import "./chunk-IWFLMU2N.js";
|
|
21
25
|
import "./chunk-APDLWWFG.js";
|
|
22
26
|
import "./chunk-PJ3HDUCY.js";
|
|
23
27
|
import "./chunk-3RM2ETQT.js";
|
|
24
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-BSQ7XANM.js";
|
|
25
29
|
import "./chunk-SDYDNHEE.js";
|
|
26
30
|
import "./chunk-2PSPARWP.js";
|
|
27
31
|
import "./chunk-T42U2W2R.js";
|
|
@@ -30,28 +34,6 @@ import "./chunk-M2WBOQ2Q.js";
|
|
|
30
34
|
|
|
31
35
|
// src/renderSetupWorker.ts
|
|
32
36
|
import { constants, setPriority } from "os";
|
|
33
|
-
|
|
34
|
-
// src/renderSetupWorkerLifecycle.ts
|
|
35
|
-
var RENDER_SETUP_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
36
|
-
function installRenderSetupSignalHandlers(signalTarget, releaseLock, resendSignal, handleHangup = true) {
|
|
37
|
-
const handlers = /* @__PURE__ */ new Map();
|
|
38
|
-
const handledSignals = handleHangup ? RENDER_SETUP_SIGNALS : RENDER_SETUP_SIGNALS.filter((signal) => signal !== "SIGHUP");
|
|
39
|
-
for (const signal of handledSignals) {
|
|
40
|
-
const handler = () => {
|
|
41
|
-
releaseLock();
|
|
42
|
-
signalTarget.off(signal, handler);
|
|
43
|
-
resendSignal(signal);
|
|
44
|
-
};
|
|
45
|
-
handlers.set(signal, handler);
|
|
46
|
-
signalTarget.on(signal, handler);
|
|
47
|
-
}
|
|
48
|
-
return () => {
|
|
49
|
-
for (const [signal, handler] of handlers) signalTarget.off(signal, handler);
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// src/renderSetupWorker.ts
|
|
54
|
-
var RESULT_PREFIX = "HYPERFRAMES_RENDER_SETUP_RESULT:";
|
|
55
37
|
var mode = process.argv[2];
|
|
56
38
|
var input = JSON.parse(process.env.HYPERFRAMES_RENDER_SETUP_INPUT ?? "{}");
|
|
57
39
|
var disposeSignalHandlers = installRenderSetupSignalHandlers(
|
|
@@ -60,22 +42,28 @@ var disposeSignalHandlers = installRenderSetupSignalHandlers(
|
|
|
60
42
|
(signal) => process.kill(process.pid, signal),
|
|
61
43
|
process.env.HYPERFRAMES_RENDER_DETACHED !== "1"
|
|
62
44
|
);
|
|
63
|
-
|
|
64
|
-
if (mode === "browser")
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
45
|
+
async function runMode() {
|
|
46
|
+
if (mode === "browser") return ensureBrowser(input);
|
|
47
|
+
if (mode === "lint") {
|
|
48
|
+
setPriority(constants.priority.PRIORITY_LOW);
|
|
49
|
+
return lintProject(
|
|
50
|
+
input.projectDir,
|
|
51
|
+
input.entryFile,
|
|
52
|
+
input.host ? { host: input.host } : void 0
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
if (mode === "orphan-cleanup") {
|
|
56
|
+
const killed = killOrphanedProcesses();
|
|
57
|
+
if (killed > 0) await new Promise((resolve) => setTimeout(resolve, 600));
|
|
58
|
+
return killed;
|
|
59
|
+
}
|
|
78
60
|
throw new Error(`Unknown render setup mode: ${mode}`);
|
|
79
61
|
}
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
try {
|
|
63
|
+
const result = await runMode().finally(disposeSignalHandlers);
|
|
64
|
+
process.stdout.write(renderSetupResultLine(result));
|
|
65
|
+
} catch (error) {
|
|
66
|
+
process.stderr.write(renderSetupErrorLine(error), () => {
|
|
67
|
+
throw error;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
resolveItemWithDependencies,
|
|
12
12
|
resolveItemsByTag,
|
|
13
13
|
unreachableRegistryMessage
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-BIAC7IJT.js";
|
|
15
|
+
import "./chunk-LAFJSYDL.js";
|
|
16
16
|
import "./chunk-AWDFDFI3.js";
|
|
17
17
|
import "./chunk-P6LJ4Y32.js";
|
|
18
18
|
import "./chunk-GMECXFAN.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-VRW6EBHV.js";
|
|
20
|
+
import "./chunk-AUWHD7RA.js";
|
|
21
21
|
import "./chunk-VC76R6W2.js";
|
|
22
22
|
import "./chunk-YA62XGXS.js";
|
|
23
23
|
import "./chunk-MQZVBHEY.js";
|
|
@@ -27,7 +27,7 @@ import "./chunk-T76PLPD6.js";
|
|
|
27
27
|
import "./chunk-FXMKHHPO.js";
|
|
28
28
|
import "./chunk-RQVDTPGD.js";
|
|
29
29
|
import "./chunk-3RM2ETQT.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-BSQ7XANM.js";
|
|
31
31
|
import "./chunk-SDYDNHEE.js";
|
|
32
32
|
import "./chunk-2PSPARWP.js";
|
|
33
33
|
import "./chunk-T42U2W2R.js";
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
DecodeCancelled,
|
|
9
|
+
PARAKEET_MODEL_DIR,
|
|
10
|
+
SHERPA_RUNTIME_DIR,
|
|
11
|
+
ensureParakeetModel,
|
|
12
|
+
installSherpaRuntime,
|
|
13
|
+
prepareSherpaWav,
|
|
14
|
+
sherpaParakeetInstalled,
|
|
15
|
+
sherpaPlatformPackage,
|
|
16
|
+
sherpaRuntimeLoadError,
|
|
17
|
+
sherpaUnsupportedReason,
|
|
18
|
+
transcribeWithSherpa
|
|
19
|
+
} from "./chunk-GEMJYBRU.js";
|
|
20
|
+
import "./chunk-BXCMXMJQ.js";
|
|
21
|
+
import "./chunk-3DKN5WKL.js";
|
|
22
|
+
import "./chunk-EOVYQ3IG.js";
|
|
23
|
+
import "./chunk-OTHDVXOJ.js";
|
|
24
|
+
import "./chunk-6IHWCZ3W.js";
|
|
25
|
+
import "./chunk-FBCULCAL.js";
|
|
26
|
+
import "./chunk-6BEFEWFB.js";
|
|
27
|
+
import "./chunk-MAYCCGMQ.js";
|
|
28
|
+
import "./chunk-BHVFTYSI.js";
|
|
29
|
+
import "./chunk-ZEUONDQG.js";
|
|
30
|
+
import "./chunk-AMKC3AXA.js";
|
|
31
|
+
import "./chunk-UXO2L7HJ.js";
|
|
32
|
+
import "./chunk-FDT6KQV4.js";
|
|
33
|
+
import "./chunk-NE55C6S5.js";
|
|
34
|
+
import "./chunk-USDEMXXL.js";
|
|
35
|
+
import "./chunk-VRW6EBHV.js";
|
|
36
|
+
import "./chunk-AUWHD7RA.js";
|
|
37
|
+
import "./chunk-VC76R6W2.js";
|
|
38
|
+
import "./chunk-YA62XGXS.js";
|
|
39
|
+
import "./chunk-MQZVBHEY.js";
|
|
40
|
+
import "./chunk-OFQWTKPW.js";
|
|
41
|
+
import "./chunk-DPVXBVLL.js";
|
|
42
|
+
import "./chunk-T76PLPD6.js";
|
|
43
|
+
import "./chunk-FXMKHHPO.js";
|
|
44
|
+
import "./chunk-RQVDTPGD.js";
|
|
45
|
+
import "./chunk-A4Q7W4LV.js";
|
|
46
|
+
import "./chunk-BYSBRF24.js";
|
|
47
|
+
import "./chunk-TWWSYAKJ.js";
|
|
48
|
+
import "./chunk-IEIJRMLZ.js";
|
|
49
|
+
import "./chunk-IWFLMU2N.js";
|
|
50
|
+
import "./chunk-APDLWWFG.js";
|
|
51
|
+
import "./chunk-PJ3HDUCY.js";
|
|
52
|
+
import "./chunk-3RM2ETQT.js";
|
|
53
|
+
import "./chunk-BSQ7XANM.js";
|
|
54
|
+
import "./chunk-SDYDNHEE.js";
|
|
55
|
+
import "./chunk-2PSPARWP.js";
|
|
56
|
+
import "./chunk-T42U2W2R.js";
|
|
57
|
+
import "./chunk-KNU5COPB.js";
|
|
58
|
+
import "./chunk-KBB4RG6F.js";
|
|
59
|
+
import "./chunk-UOFAE5RF.js";
|
|
60
|
+
import "./chunk-IR35BCLK.js";
|
|
61
|
+
import "./chunk-3GXQPCJC.js";
|
|
62
|
+
import "./chunk-M2WBOQ2Q.js";
|
|
63
|
+
export {
|
|
64
|
+
DecodeCancelled,
|
|
65
|
+
PARAKEET_MODEL_DIR,
|
|
66
|
+
SHERPA_RUNTIME_DIR,
|
|
67
|
+
ensureParakeetModel,
|
|
68
|
+
installSherpaRuntime,
|
|
69
|
+
prepareSherpaWav,
|
|
70
|
+
sherpaParakeetInstalled,
|
|
71
|
+
sherpaPlatformPackage,
|
|
72
|
+
sherpaRuntimeLoadError,
|
|
73
|
+
sherpaUnsupportedReason,
|
|
74
|
+
transcribeWithSherpa
|
|
75
|
+
};
|
package/dist/sherpaWorker.js
CHANGED
|
@@ -11,10 +11,11 @@ import {
|
|
|
11
11
|
droppedSpeechGaps,
|
|
12
12
|
silenceCuts,
|
|
13
13
|
spliceGap
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KBB4RG6F.js";
|
|
15
15
|
import {
|
|
16
16
|
readWav
|
|
17
17
|
} from "./chunk-UOFAE5RF.js";
|
|
18
|
+
import "./chunk-IR35BCLK.js";
|
|
18
19
|
import "./chunk-M2WBOQ2Q.js";
|
|
19
20
|
|
|
20
21
|
// src/whisper/sherpaWorker.ts
|
|
@@ -2,16 +2,8 @@
|
|
|
2
2
|
// Workflow wrappers supply resource paths and workflow-specific sections.
|
|
3
3
|
// The role combines the shared worker contract with the workflow delta.
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
existsSync,
|
|
7
|
-
mkdirSync,
|
|
8
|
-
readFileSync,
|
|
9
|
-
readdirSync,
|
|
10
|
-
realpathSync,
|
|
11
|
-
writeFileSync,
|
|
12
|
-
} from "node:fs";
|
|
5
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
13
6
|
import { basename, join, resolve } from "node:path";
|
|
14
|
-
import { pathToFileURL } from "node:url";
|
|
15
7
|
|
|
16
8
|
export function field(block, name) {
|
|
17
9
|
const match = block.match(new RegExp(`^-\\s+${name}:\\s*(.+)$`, "im"));
|
|
@@ -160,17 +152,7 @@ export function flag(argv, name, fallback) {
|
|
|
160
152
|
return index >= 0 && argv[index + 1] ? argv[index + 1] : fallback;
|
|
161
153
|
}
|
|
162
154
|
|
|
163
|
-
|
|
164
|
-
// module's symlinks in import.meta.url while argv[1] keeps the invoked spelling —
|
|
165
|
-
// a raw compare silently skips main() when invoked through any symlinked path.
|
|
166
|
-
export function isMainModule(importMetaUrl) {
|
|
167
|
-
if (!process.argv[1]) return false;
|
|
168
|
-
try {
|
|
169
|
-
return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
|
|
170
|
-
} catch {
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
155
|
+
export { isMainModule } from "./main-module.mjs";
|
|
174
156
|
|
|
175
157
|
export function runCli({ buildFramePackets: build, buildRolePayload: buildRole }) {
|
|
176
158
|
const argv = process.argv.slice(2);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
|
|
4
|
+
// Node resolves symlinks in the main module's import.meta.url but argv[1] keeps the invoked
|
|
5
|
+
// spelling (a symlinked skills dir, or /tmp vs /private/tmp on macOS), so compare real paths.
|
|
6
|
+
export function isMainModule(importMetaUrl) {
|
|
7
|
+
if (!process.argv[1]) return false;
|
|
8
|
+
try {
|
|
9
|
+
return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { strict as assert } from "node:assert";
|
|
2
|
+
import { test } from "node:test";
|
|
3
|
+
import { mkdtempSync, readFileSync, readdirSync, rmSync, symlinkSync } from "node:fs";
|
|
4
|
+
import { spawnSync } from "node:child_process";
|
|
5
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
6
|
+
import { tmpdir } from "node:os";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
|
|
9
|
+
const SKILLS = resolve(dirname(fileURLToPath(import.meta.url)), "../../..");
|
|
10
|
+
const CLI_MEDIA_USE = resolve(SKILLS, "../packages/cli/src/media-use");
|
|
11
|
+
|
|
12
|
+
// Agents install skills by symlinking the skills dir, so each script must still run its CLI.
|
|
13
|
+
test("skill CLIs run when invoked through a symlinked skills dir", () => {
|
|
14
|
+
const dir = mkdtempSync(join(tmpdir(), "skills-link-"));
|
|
15
|
+
try {
|
|
16
|
+
symlinkSync(SKILLS, join(dir, "skills"), "dir");
|
|
17
|
+
for (const script of [
|
|
18
|
+
"faceless-explainer/scripts/captions.mjs",
|
|
19
|
+
"pr-to-video/scripts/captions.mjs",
|
|
20
|
+
"product-launch-video/scripts/captions.mjs",
|
|
21
|
+
"media-use/audio/scripts/heygen-voice.mjs",
|
|
22
|
+
]) {
|
|
23
|
+
const run = spawnSync(process.execPath, [join(dir, "skills", script), "not-a-command"], {
|
|
24
|
+
encoding: "utf8",
|
|
25
|
+
});
|
|
26
|
+
assert.notEqual(run.status, 0, `${script} exited ${run.status} without running its CLI`);
|
|
27
|
+
assert.match(run.stderr, /usage/, script);
|
|
28
|
+
}
|
|
29
|
+
} finally {
|
|
30
|
+
rmSync(dir, { recursive: true, force: true });
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function skillScripts(dir) {
|
|
35
|
+
return readdirSync(dir, { withFileTypes: true }).flatMap((entry) => {
|
|
36
|
+
const path = join(dir, entry.name);
|
|
37
|
+
if (entry.isDirectory()) return entry.name === "node_modules" ? [] : skillScripts(path);
|
|
38
|
+
return /\.(mjs|js)$/.test(entry.name) && !/\.test\.mjs$/.test(entry.name) ? [path] : [];
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
test("skill scripts detect their CLI entry through lib/main-module.mjs only", () => {
|
|
43
|
+
const handRolled = [...skillScripts(SKILLS), ...skillScripts(CLI_MEDIA_USE)].filter(
|
|
44
|
+
(path) =>
|
|
45
|
+
!path.endsWith("main-module.mjs") && readFileSync(path, "utf8").includes("process.argv[1]"),
|
|
46
|
+
);
|
|
47
|
+
assert.deepEqual(
|
|
48
|
+
handRolled.map((path) => relative(SKILLS, path)),
|
|
49
|
+
[],
|
|
50
|
+
);
|
|
51
|
+
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Run from the user's project; locate the release from this installed file.
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
|
-
import { existsSync, readFileSync
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
import { join, win32 } from "node:path";
|
|
6
|
-
import { fileURLToPath
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { isMainModule } from "./lib/main-module.mjs";
|
|
7
8
|
|
|
8
9
|
const root = fileURLToPath(new URL("../../../", import.meta.url));
|
|
9
10
|
const manifests = [
|
|
@@ -71,7 +72,7 @@ export function invocation(
|
|
|
71
72
|
return { command: node, args: [npx, ...cliArgs], env: childEnv };
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
if (
|
|
75
|
+
if (isMainModule(import.meta.url)) {
|
|
75
76
|
try {
|
|
76
77
|
const command = invocation(process.argv.slice(2));
|
|
77
78
|
const result = spawnSync(command.command, command.args, {
|
|
@@ -17,11 +17,15 @@ import { invocation, pluginVersion } from "./plugin-cli.mjs";
|
|
|
17
17
|
function fixture(t, manifest = "plugin.json", version = "1.2.3") {
|
|
18
18
|
const root = mkdtempSync(join(tmpdir(), "hf-plugin-"));
|
|
19
19
|
t.after(() => rmSync(root, { recursive: true, force: true }));
|
|
20
|
-
mkdirSync(join(root, "skills/hyperframes/scripts"), { recursive: true });
|
|
20
|
+
mkdirSync(join(root, "skills/hyperframes/scripts/lib"), { recursive: true });
|
|
21
21
|
mkdirSync(join(root, manifest, ".."), { recursive: true });
|
|
22
22
|
writeFileSync(join(root, manifest), JSON.stringify({ name: "hyperframes", version }));
|
|
23
23
|
const launcher = join(root, "skills/hyperframes/scripts/plugin-cli.mjs");
|
|
24
24
|
copyFileSync(new URL("./plugin-cli.mjs", import.meta.url), launcher);
|
|
25
|
+
copyFileSync(
|
|
26
|
+
new URL("./lib/main-module.mjs", import.meta.url),
|
|
27
|
+
join(root, "skills/hyperframes/scripts/lib/main-module.mjs"),
|
|
28
|
+
);
|
|
25
29
|
return { root, launcher };
|
|
26
30
|
}
|
|
27
31
|
|
|
@@ -130,6 +130,8 @@ Use `selection.target.hfId` when available, otherwise its selector and source fi
|
|
|
130
130
|
| Self-managed distributed AWS render | `npx hyperframes lambda render <project> --width 1920 --height 1080 --wait` |
|
|
131
131
|
| Self-managed distributed GCP render | `npx hyperframes cloudrun render <project> --width 1920 --height 1080 --wait` |
|
|
132
132
|
|
|
133
|
+
A render stops when whatever started it stops, so a Ctrl-C or a closed terminal never leaves Chrome running. If your tool kills its whole process group when a command times out or ends, a long render dies with it. Start such a render in its own process group with `HYPERFRAMES_RENDER_DETACHED=1`, for example `bash -c 'set -m; HYPERFRAMES_RENDER_DETACHED=1 npx hyperframes render --output out.mp4 < /dev/null > render.log 2>&1 &'` (works on macOS and Linux), then check the log and the output file instead of waiting on the command.
|
|
134
|
+
|
|
133
135
|
Skill attribution is automatic — the examples above need no `--skill`. A project scaffolded by a workflow (`hyperframes init --skill=<workflow>`) records its owning skill in `hyperframes.json`, and every later render inherits it on anonymous telemetry: re-renders, `npm run render`, and `--batch` alike. Pass `--skill=<slug>` explicitly only to stamp a project that was not created through a workflow (its first render then persists it).
|
|
134
136
|
|
|
135
137
|
Use cloud rendering when the user wants hosted rendering without local Chrome, FFmpeg, or AWS. Use Lambda only when AWS ownership is a requirement. Use Cloud Run only when GCP ownership is a requirement. Read the matching reference before running any cloud path.
|
|
@@ -50,7 +50,7 @@ One command, one Chrome boot. `check` runs the linter first and skips the browse
|
|
|
50
50
|
|
|
51
51
|
Every finding carries a selector, the element's `data-*` identity, the composition source file, a bbox, and the sample time: jump straight from the JSON to the HTML you must edit and re-run.
|
|
52
52
|
|
|
53
|
-
**Severity is persistence-aware.** A dynamic issue observed at a single grid sample (an entrance/exit transient) demotes to info and never gates. Issues held across samples gate the exit code, a held `content_overlap` is an error, and a held, partially-visible `canvas_overflow` breaching ≥5% of the canvas promotes to warning. Coordinate-frame findings (`escaped_container`, `panel_out_of_canvas`, `connector_detached`) flag geometry computed in one frame but rendered in another — an element far outside its offset parent, a painted panel stuck across the canvas edge, a connector line detached from every node. Text drawn into a `<canvas>` has no DOM box, so `canvas_overflow` cannot see it; `canvas_content_at_edge` warns when a canvas's pixels show sharp content (drawn text, hard shapes) along the frame edge — mark intentional full-bleed art (particles, photos) with `data-layout-allow-overflow`. If a 3s+ composition shows no visible change across every sample, `check` fails with `sweep_static`: a
|
|
53
|
+
**Severity is persistence-aware.** A dynamic issue observed at a single grid sample (an entrance/exit transient) demotes to info and never gates. Issues held across samples gate the exit code, a held `content_overlap` is an error, and a held, partially-visible `canvas_overflow` breaching ≥5% of the canvas promotes to warning. Coordinate-frame findings (`escaped_container`, `panel_out_of_canvas`, `connector_detached`) flag geometry computed in one frame but rendered in another — an element far outside its offset parent, a painted panel stuck across the canvas edge, a connector line detached from every node. Text drawn into a `<canvas>` has no DOM box, so `canvas_overflow` cannot see it; `canvas_content_at_edge` warns when a canvas's pixels show sharp content (drawn text, hard shapes) along the frame edge — mark intentional full-bleed art (particles, photos) with `data-layout-allow-overflow`. If a 3s+ composition shows no visible change across every sample, `check` fails with `sweep_static`: a frame that never changes while a GSAP timeline or tween, or a CSS or Web animation, holds the same time without ever finishing means the seek is not driving the page, so it refuses to pass. Any other frame that never changes (a still title card, an audio-only advance) is a warning that `--strict` fails; a composition meant to be still can take `data-no-timeline` on its root to skip it. The fingerprint includes per-element opacity, so opacity-only reveals (code typing, staggered fades) count as motion — but only while they're still in flight at the sampled times. The classic trap is a reveal that completes early and then holds a static frame for the rest of the duration: every sample lands on the settled state and check warns that nothing on screen moved (`--strict` fails it). Spread the reveal across the timeline or keep one continuously animated element alive (a blinking caret is idiomatic for code typing) — don't bolt on a slow position drift just to appease the check.
|
|
54
54
|
|
|
55
55
|
**Escape hatches** (mark intent in the HTML, then re-run):
|
|
56
56
|
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
import { readFileSync } from "node:fs";
|
|
7
7
|
import { extname } from "node:path";
|
|
8
|
-
import { fileURLToPath } from "node:url";
|
|
9
8
|
import { parseArgs } from "node:util";
|
|
10
9
|
import { heygenAuthHeaders, heygenJSON, heygenMessage, loadEnvFromDir } from "./lib/heygen.mjs";
|
|
10
|
+
import { isMainModule } from "./lib/main-module.mjs";
|
|
11
11
|
|
|
12
12
|
const MEDIA_TYPES = { ".mp3": "audio/mpeg", ".wav": "audio/wav" };
|
|
13
13
|
const POLL_MS = 2_000;
|
|
@@ -92,7 +92,7 @@ export async function main(
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
if (
|
|
95
|
+
if (isMainModule(import.meta.url)) {
|
|
96
96
|
loadEnvFromDir(process.cwd());
|
|
97
97
|
process.exitCode = await main(process.argv.slice(2));
|
|
98
98
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
|
|
4
|
+
// Node resolves symlinks in the main module's import.meta.url but argv[1] keeps the invoked
|
|
5
|
+
// spelling (a symlinked skills dir, or /tmp vs /private/tmp on macOS), so compare real paths.
|
|
6
|
+
export function isMainModule(importMetaUrl) {
|
|
7
|
+
if (!process.argv[1]) return false;
|
|
8
|
+
try {
|
|
9
|
+
return pathToFileURL(realpathSync(process.argv[1])).href === importMetaUrl;
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|