hyperframes 0.8.183 → 0.8.185
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-HW3ZGR36.js → add-ODTNPRGG.js} +14 -14
- package/dist/{agentPromptGenerator-VIIPZCJ3.js → agentPromptGenerator-KYO5MKTW.js} +1 -1
- package/dist/{animatedGifPrep-EPLN37ZN.js → animatedGifPrep-PEP5GWOJ.js} +10 -9
- package/dist/api.js +18 -17
- package/dist/{asset-TOASKL3Z.js → asset-EZG42XPA.js} +2 -2
- package/dist/{assetCataloger-PZN5HYG2.js → assetCataloger-OHAJFCA7.js} +10 -9
- package/dist/{audio-F5OIQVJO.js → audio-65R4T74I.js} +18 -16
- package/dist/{auth-YVQLRS3T.js → auth-VP2SIZFN.js} +1 -1
- package/dist/{autoUpdate-EG4ZFW4D.js → autoUpdate-RVSUX4SS.js} +2 -2
- package/dist/{backgroundChecks-WINNQVR2.js → backgroundChecks-LEHK74NS.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-PASZTMEE.js → batchRender-3X6CL7PK.js} +5 -5
- package/dist/{beats-KGIOEBLW.js → beats-66VPQLSC.js} +6 -6
- package/dist/{benchmark-ZNY2L7HN.js → benchmark-PBJVTOJP.js} +10 -10
- package/dist/{browser-REAO7RU4.js → browser-TPL5MWGC.js} +3 -3
- package/dist/{bundleWithLocalizedFonts-OAYLYC4W.js → bundleWithLocalizedFonts-67MLTHKM.js} +2 -2
- package/dist/{capture-WOSF276U.js → capture-F3GNMRZM.js} +14 -13
- package/dist/{capture-IK6GWQDD.js → capture-YYRE7EV3.js} +2 -2
- package/dist/{captureCompositionFrame-DDZNKYRE.js → captureCompositionFrame-PXV2ISHD.js} +14 -13
- package/dist/{catalog-AKTXS7OJ.js → catalog-6SDD3OHF.js} +14 -14
- package/dist/{catch-up-O3VZMPVE.js → catch-up-CWIVA5VG.js} +4 -4
- package/dist/{check-6E46NIWI.js → check-YQ6REK2S.js} +35 -34
- package/dist/{checkBrowser-UNZHQFNH.js → checkBrowser-5XZCBRXM.js} +32 -31
- package/dist/{chunk-TOHA5NAU.js → chunk-2TAS5O4P.js} +56 -11
- package/dist/{chunk-3Q47QC46.js → chunk-37CNYTQQ.js} +2 -2
- package/dist/chunk-3NPOFC43.js +3805 -0
- package/dist/{chunk-EEP5Y5IE.js → chunk-46HEFGXJ.js} +1 -1
- package/dist/{chunk-GAGMLVCV.js → chunk-4CTNDBE3.js} +2 -2
- package/dist/{chunk-CGK4XZ2J.js → chunk-55YELV7B.js} +1 -1
- package/dist/{chunk-TJB4GAV6.js → chunk-5GUKZRQN.js} +1 -1
- package/dist/{chunk-J4L5TPLS.js → chunk-5UDRPPN2.js} +48 -6
- package/dist/{chunk-SAQYJLI6.js → chunk-6ASIXMFP.js} +1 -1
- package/dist/{chunk-GPE3WWTO.js → chunk-6GPR3G3C.js} +14 -11
- package/dist/{chunk-MIZDJVPZ.js → chunk-6RIZY7OP.js} +1 -1
- package/dist/{chunk-5CS4T6C6.js → chunk-7L37AB57.js} +1 -1
- package/dist/{chunk-VH5KESLX.js → chunk-7PS6RVWD.js} +1 -1
- package/dist/{chunk-U5YVWG5W.js → chunk-7RAY4WZP.js} +3 -3
- package/dist/{chunk-COTLNID2.js → chunk-A6QCO474.js} +5 -5
- package/dist/{chunk-YMS5FOMC.js → chunk-B2A56S5C.js} +1 -1
- package/dist/{chunk-4FQKS7BJ.js → chunk-BH7TTIPN.js} +11 -13
- package/dist/{chunk-LBWRQ4XA.js → chunk-BRAPBUPQ.js} +1 -1
- package/dist/{chunk-IC2WYONA.js → chunk-CX3USX23.js} +3 -3
- package/dist/{chunk-ITSLKUQM.js → chunk-D42NU3DZ.js} +1 -1
- package/dist/{chunk-Q6UYKWBG.js → chunk-EMAWIZ54.js} +481 -36
- package/dist/{chunk-ZFO3A3QL.js → chunk-EMSDWBG3.js} +2 -2
- package/dist/{chunk-KRFAX5JK.js → chunk-ESBMUZXZ.js} +1 -1
- package/dist/{chunk-CAHTO62O.js → chunk-F3OPUWQX.js} +7 -7
- package/dist/{chunk-R6OV4J4K.js → chunk-FX6RUJUY.js} +3 -3
- package/dist/{chunk-F6WHPHLF.js → chunk-G2UANIDX.js} +1 -1
- package/dist/{chunk-DEORFAWP.js → chunk-H5SM5PJI.js} +1 -1
- package/dist/{chunk-5OGDBU4G.js → chunk-H6UY725W.js} +2 -2
- package/dist/{chunk-K2Z5DZBS.js → chunk-HDIRZGK4.js} +1 -1
- package/dist/{chunk-TXGZZKDF.js → chunk-HHSJJFVM.js} +2 -2
- package/dist/{chunk-VDJO4DJ7.js → chunk-HXUTX5GR.js} +3 -3
- package/dist/{chunk-73LTCCZI.js → chunk-I3IH5MV5.js} +19 -23
- package/dist/{chunk-3OLIGYWN.js → chunk-I45HL3VP.js} +3 -3
- package/dist/{chunk-TYXH3EKP.js → chunk-I5JRXMCV.js} +16 -1
- package/dist/{chunk-RZXUQR42.js → chunk-I7QMXZSB.js} +2 -2
- package/dist/{chunk-XOVHO3TT.js → chunk-IDFNKFPL.js} +7 -7
- package/dist/{chunk-QX4GGPMY.js → chunk-IDGLGXPA.js} +1 -1
- package/dist/{chunk-5MBLWFLM.js → chunk-IPDKZ5IN.js} +33 -6
- package/dist/{chunk-ANR6WOC3.js → chunk-ISTRDGIX.js} +1 -1
- package/dist/{chunk-4UFJWRHG.js → chunk-IVEFOUZI.js} +211 -83
- package/dist/chunk-IZCW2NKT.js +29 -0
- package/dist/{chunk-X3IA5RYH.js → chunk-J36JVBLR.js} +9 -2
- package/dist/{chunk-Z4R35NJS.js → chunk-J5XEZ24I.js} +3 -3
- package/dist/{chunk-OH56PXFH.js → chunk-K2ZKXTVL.js} +1 -1
- package/dist/{chunk-ATMDOUNN.js → chunk-K73RJB23.js} +2 -2
- package/dist/{chunk-NZ3BE2QE.js → chunk-KQ4JEJLF.js} +10 -10
- package/dist/{chunk-VFBAKPRC.js → chunk-KROXPHXX.js} +9 -3
- package/dist/{chunk-QGOYNPQT.js → chunk-LLFQA7XF.js} +48 -5
- package/dist/chunk-LLMSX6V6.js +17 -0
- package/dist/{chunk-XR5BSEUF.js → chunk-LYKSTRAY.js} +3 -3
- package/dist/{chunk-UNOSCGBG.js → chunk-OAG47RE6.js} +1 -1
- package/dist/{chunk-O7N3A7PE.js → chunk-PHMBMOXF.js} +1 -1
- package/dist/{chunk-BP4VNTZL.js → chunk-PMMQRJDE.js} +1 -1
- package/dist/{chunk-ADDHW2FS.js → chunk-Q447CX26.js} +82 -12
- package/dist/{chunk-WT4PYV2J.js → chunk-Q47FAYYK.js} +202 -55
- package/dist/{chunk-AKFADCMS.js → chunk-RTBSA3EA.js} +1 -1
- package/dist/{chunk-VAK7A2N6.js → chunk-RUEGYANA.js} +11 -11
- package/dist/{chunk-OYLO6TYK.js → chunk-RUOG4VB7.js} +1 -1
- package/dist/{chunk-EVAQPW6O.js → chunk-SKYPMHQC.js} +4 -4
- package/dist/{chunk-B2SZZFWW.js → chunk-SQVRXHOW.js} +3 -3
- package/dist/{chunk-CJYAJ3QM.js → chunk-TAX2ZJAP.js} +24 -16
- package/dist/{chunk-GTE5WZAM.js → chunk-TOI35GN2.js} +1 -1
- package/dist/{chunk-XJHKJXT4.js → chunk-UPR3MU6Z.js} +1 -1
- package/dist/{chunk-DLC2FICN.js → chunk-WQLKDL35.js} +2 -1
- package/dist/{chunk-3BA2GP4H.js → chunk-X6L6MD5B.js} +5 -5
- package/dist/{chunk-XAQDR5Y5.js → chunk-XGHHVYC7.js} +94 -32
- package/dist/{chunk-HLBODNGW.js → chunk-XWC7CNPY.js} +1 -1
- package/dist/{clean-WNEIVBF3.js → clean-7J6ZCCGV.js} +19 -18
- package/dist/cli.js +53 -53
- package/dist/{cloud-6GSSDCJL.js → cloud-7IJCJCDD.js} +4 -4
- package/dist/{cloudrun-4NEJRE4T.js → cloudrun-UNZRIIDB.js} +7 -7
- package/dist/commands/contrast-audit.browser.js +1 -2
- package/dist/commands/layout-audit.browser.js +196 -0
- package/dist/{compare-2JWQ5ABA.js → compare-Q7VW5JZT.js} +29 -28
- package/dist/{compiler-27KQD7KW.js → compiler-KPHYGFXL.js} +6 -6
- package/dist/{component-HCRET3MH.js → component-UUBREJKN.js} +3 -3
- package/dist/{compositions-HTSQ6SUJ.js → compositions-T4FTKIDP.js} +14 -13
- package/dist/{delete-GHQ5UYM7.js → delete-WZQF2IIA.js} +3 -3
- package/dist/{deploy-I3Z3NAVA.js → deploy-JU7A3XNC.js} +1 -1
- package/dist/{deterministicFonts-JFLSSKRB.js → deterministicFonts-EGAAE7QL.js} +3 -3
- package/dist/{dist-SENYPQGW.js → dist-LM7AVHOU.js} +3 -3
- package/dist/{dist-WRDLWRMS.js → dist-ULGTPSU4.js} +8 -4
- package/dist/docs/data-attributes.md +1 -1
- package/dist/{doctor-UGFVQZHI.js → doctor-VSNGRKXJ.js} +14 -13
- package/dist/{events-YS4OVX3I.js → events-CRW2DYUT.js} +3 -3
- package/dist/{events-BLJGWMNP.js → events-E63YBUL2.js} +3 -3
- package/dist/{feedback-AZ3SJ5HF.js → feedback-OSZWVR6N.js} +9 -9
- package/dist/{ffmpeg-2AECXG7V.js → ffmpeg-JLH3Z7G7.js} +10 -9
- package/dist/{figma-DRYIJQHV.js → figma-2BQNNR53.js} +3 -3
- package/dist/fontLocalizeCli.js +13 -12
- package/dist/{get-DDEAOFPB.js → get-P2XI53QW.js} +3 -3
- package/dist/{gpuPolicy-UDJT2MQK.js → gpuPolicy-NTKQJY75.js} +10 -9
- package/dist/{grade-compare-LJKK5NSY.js → grade-compare-OYASIHIB.js} +30 -29
- package/dist/{gsapParserAcorn-7NCK2LVT.js → gsapParserAcorn-SKODXC2N.js} +2 -2
- package/dist/{help-TQBGYOID.js → help-HK6K2N4G.js} +1 -1
- package/dist/{history-5TOOCF2Y.js → history-JMTYKLXW.js} +6 -6
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +65 -65
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-ENI5MP4W.js → info-AW7CIVRE.js} +9 -9
- package/dist/{init-JXPXWV3G.js → init-6KIDG4LB.js} +31 -30
- package/dist/{inspect-WZNYQ5AB.js → inspect-B7BLYMRZ.js} +30 -29
- package/dist/{installer-3SGRBLJW.js → installer-ZP2LQZUQ.js} +7 -7
- package/dist/{keyframes-HEOC4CT4.js → keyframes-EQ36A5JE.js} +7 -7
- package/dist/{lambda-2VHQ4AL2.js → lambda-E6VURLIS.js} +9 -9
- package/dist/{layout-7WEUNO6T.js → layout-XYC64QQQ.js} +30 -29
- package/dist/{lint-5YMAF3L7.js → lint-V5DJYWBX.js} +9 -9
- package/dist/{lintProject-C2ONSH2U.js → lintProject-JATQKR64.js} +3 -3
- package/dist/{list-BIE3X7CO.js → list-RUGVRTVD.js} +3 -3
- package/dist/{login-YDIGJWCG.js → login-ZTKGKXGS.js} +4 -4
- package/dist/{manager-D2UV6RDQ.js → manager-JUP7PM6N.js} +11 -10
- package/dist/{media-treatment-FSKHPMWA.js → media-treatment-VIUPK4OR.js} +16 -15
- package/dist/{models-COEK6LXG.js → models-LJS2HBOZ.js} +14 -13
- package/dist/{motionShot-HYZ2ZGJQ.js → motionShot-3UAXZ7SN.js} +17 -16
- package/dist/{normalize-audio-UXR6WQ7Q.js → normalize-audio-SBYI4YIH.js} +4 -4
- package/dist/{open-OFT2GIDG.js → open-S27TUD3A.js} +14 -14
- package/dist/{parakeetRunner-4NZ3QXS3.js → parakeetRunner-ETLMLJ4L.js} +15 -14
- package/dist/{pipeline-ZKE54JMG.js → pipeline-I2M22M24.js} +11 -10
- package/dist/{play-2VG77FT6.js → play-COJU6VJK.js} +22 -21
- package/dist/{preflight-QTWDIM5C.js → preflight-FZ24NCHH.js} +11 -10
- package/dist/{present-OONXQLJG.js → present-YAHKLC5D.js} +18 -17
- package/dist/{preview-6RZJFU76.js → preview-KQOEU5YE.js} +27 -26
- package/dist/{producer-6YM3UH3B.js → producer-DTNNG4T6.js} +1 -1
- package/dist/{projectConfig-YMW4P2X6.js → projectConfig-4A76VYUP.js} +9 -9
- package/dist/{publication-SEINUAPZ.js → publication-SQPMC2W3.js} +4 -4
- package/dist/{publish-KZBTBWFO.js → publish-QUEJBGGT.js} +13 -12
- package/dist/{remove-background-BIQNMIR7.js → remove-background-FP2ETAQH.js} +12 -11
- package/dist/{render-FIH37HJA.js → render-BIFIL4U6.js} +32 -31
- package/dist/render-GQFXJWLV.js +1504 -0
- package/dist/{render-LW76HOMJ.js → render-P664SMC7.js} +5 -5
- package/dist/{render-batch-POLEEYD4.js → render-batch-ZCPMYH6Z.js} +5 -5
- package/dist/renderSetupWorker.js +3 -3
- package/dist/{resolver-O2SED3XB.js → resolver-BUC2GFZQ.js} +6 -6
- package/dist/{sherpa-HTFFFTVQ.js → sherpa-HFT6XEP6.js} +14 -13
- package/dist/skills/hyperframes/SKILL.md +52 -174
- package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/caption-skin.html +220 -0
- package/dist/skills/hyperframes/assets/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/dist/skills/hyperframes/assets/frame-presets/blockframe/FRAME.md +275 -0
- package/dist/skills/hyperframes/assets/frame-presets/blockframe/caption-skin.html +223 -0
- package/dist/skills/hyperframes/assets/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/dist/skills/hyperframes/assets/frame-presets/blue-professional/FRAME.md +307 -0
- package/dist/skills/hyperframes/assets/frame-presets/blue-professional/caption-skin.html +222 -0
- package/dist/skills/hyperframes/assets/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/dist/skills/hyperframes/assets/frame-presets/bold-poster/FRAME.md +275 -0
- package/dist/skills/hyperframes/assets/frame-presets/bold-poster/caption-skin.html +229 -0
- package/dist/skills/hyperframes/assets/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/dist/skills/hyperframes/assets/frame-presets/broadside/FRAME.md +284 -0
- package/dist/skills/hyperframes/assets/frame-presets/broadside/caption-skin.html +224 -0
- package/dist/skills/hyperframes/assets/frame-presets/broadside/frame-showcase.html +1166 -0
- package/dist/skills/hyperframes/assets/frame-presets/capsule/FRAME.md +284 -0
- package/dist/skills/hyperframes/assets/frame-presets/capsule/caption-skin.html +223 -0
- package/dist/skills/hyperframes/assets/frame-presets/capsule/frame-showcase.html +1465 -0
- package/dist/skills/hyperframes/assets/frame-presets/cartesian/FRAME.md +278 -0
- package/dist/skills/hyperframes/assets/frame-presets/cartesian/caption-skin.html +221 -0
- package/dist/skills/hyperframes/assets/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/caption-skin.html +237 -0
- package/dist/skills/hyperframes/assets/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/FRAME.md +277 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/caption-skin.html +223 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/Inter-400.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/Inter-700.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 +0 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +93 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-inter.txt +93 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +93 -0
- package/dist/skills/hyperframes/assets/frame-presets/code-editorial/frame-showcase.html +1438 -0
- package/dist/skills/hyperframes/assets/frame-presets/coral/FRAME.md +314 -0
- package/dist/skills/hyperframes/assets/frame-presets/coral/caption-skin.html +225 -0
- package/dist/skills/hyperframes/assets/frame-presets/coral/frame-showcase.html +1268 -0
- package/dist/skills/hyperframes/assets/frame-presets/creative-mode/FRAME.md +333 -0
- package/dist/skills/hyperframes/assets/frame-presets/creative-mode/caption-skin.html +226 -0
- package/dist/skills/hyperframes/assets/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/dist/skills/hyperframes/assets/frame-presets/daisy-days/FRAME.md +274 -0
- package/dist/skills/hyperframes/assets/frame-presets/daisy-days/caption-skin.html +229 -0
- package/dist/skills/hyperframes/assets/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/FRAME.md +265 -0
- package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/caption-skin.html +222 -0
- package/dist/skills/hyperframes/assets/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/dist/skills/hyperframes/references/captions.md +46 -0
- package/dist/skills/hyperframes/references/film.md +47 -0
- package/dist/skills/hyperframes/references/format.md +157 -0
- package/dist/skills/hyperframes/references/look.md +69 -0
- package/dist/skills/hyperframes/references/motion.md +94 -0
- package/dist/skills/hyperframes/references/overlays.md +39 -0
- package/dist/skills/hyperframes/references/plugin-installation.md +3 -3
- package/dist/skills/hyperframes/references/review.md +51 -0
- package/dist/skills/hyperframes/references/runtimes.md +43 -0
- package/dist/skills/hyperframes/references/skill-lifecycle.md +21 -13
- package/dist/skills/hyperframes/references/sound.md +43 -0
- package/dist/skills/hyperframes/references/spec.md +76 -0
- package/dist/skills/hyperframes/references/story.md +103 -0
- package/dist/skills/hyperframes/references/storyboard-format.md +30 -22
- package/dist/skills/hyperframes/references/storyboard.md +36 -0
- package/dist/skills/hyperframes/references/types/3d.md +25 -0
- package/dist/skills/hyperframes/references/types/character.md +20 -0
- package/dist/skills/hyperframes/references/types/data.md +19 -0
- package/dist/skills/hyperframes/references/types/explainer.md +34 -0
- package/dist/skills/hyperframes/references/types/launch.md +31 -0
- package/dist/skills/hyperframes/references/types/music.md +24 -0
- package/dist/skills/hyperframes/references/types/vertical.md +23 -0
- package/dist/skills/hyperframes/scripts/bake-basemap.mjs +324 -0
- package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +1 -6
- package/dist/skills/hyperframes/scripts/locate.mjs +228 -0
- package/dist/skills/hyperframes-cli/SKILL.md +76 -179
- package/dist/skills/hyperframes-cli/references/beats.md +1 -1
- package/dist/skills/hyperframes-cli/references/cloud.md +2 -2
- package/dist/skills/hyperframes-cli/references/cloudrun.md +1 -1
- package/dist/skills/hyperframes-cli/references/conventions.md +17 -0
- package/dist/skills/hyperframes-cli/references/feedback.md +14 -0
- package/dist/skills/hyperframes-cli/references/init-and-scaffold.md +11 -7
- package/dist/skills/hyperframes-cli/references/lambda.md +1 -1
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +19 -8
- package/dist/skills/hyperframes-cli/references/preview-render.md +8 -2
- package/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +8 -0
- package/dist/skills/media-use/SKILL.md +47 -91
- package/dist/skills/media-use/audio/references/bgm.md +1 -1
- package/dist/skills/media-use/audio/references/captions/authoring.md +1 -2
- package/dist/skills/media-use/audio/references/captions/motion.md +5 -5
- package/dist/skills/media-use/audio/references/tts.md +0 -3
- package/dist/skills/media-use/audio/scripts/audio.mjs +5 -6
- package/dist/skills/media-use/audio/scripts/carve.mjs +560 -0
- package/dist/skills/media-use/audio/scripts/carve.test.mjs +254 -0
- package/dist/skills/media-use/audio/scripts/extract-audio-data.py +199 -0
- package/dist/skills/media-use/references/local.md +24 -0
- package/dist/skills/media-use/references/memory.md +4 -4
- package/dist/skills/media-use/references/mixing.md +71 -0
- package/dist/skills/media-use/references/operations.md +1 -1
- package/dist/skills/media-use/scripts/compatibility.test.mjs +1 -56
- package/dist/skills/media-use/scripts/lib/prefs-store.mjs +1 -1
- package/dist/skills/media-use/scripts/lib/recipe-store.mjs +1 -1
- package/dist/skills/media-use/scripts/prefs.mjs +2 -3
- package/dist/skills/media-use/scripts/recipe.mjs +1 -3
- package/dist/{skills-J6MBGS5O.js → skills-3WEVO3NU.js} +20 -13
- package/dist/{skillsUpdateCheck-ZAXNLBF3.js → skillsUpdateCheck-BFPWFOK5.js} +3 -3
- package/dist/{snapshot-TL7TTFS6.js → snapshot-WDQ6S7CJ.js} +458 -98
- package/dist/{src-Z5H5N5T4.js → src-NPR2JZOJ.js} +15 -11
- package/dist/{src-EL6HGIS4.js → src-RZ574OKP.js} +9 -8
- package/dist/{staticProjectServer-EO7X7RAY.js → staticProjectServer-FTGTEZI4.js} +18 -17
- package/dist/studio/assets/{hyperframes-player-hz_VqxBZ.js → hyperframes-player-CoOdf435.js} +1 -1
- package/dist/studio/assets/{index-CV_ojgp5.js → index-CR85xg2x.js} +1 -1
- package/dist/studio/assets/{index-S1ceEagc.js → index-C_6rTpaB.js} +5 -5
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-CUZDC5B3.js → studio-api-TAWB7B23.js} +12 -11
- package/dist/{studioServer-EZPRV43Y.js → studioServer-HRQGJTBU.js} +49 -48
- package/dist/{telemetry-LFUVHARP.js → telemetry-QZ6HJF4W.js} +3 -3
- package/dist/templates/_shared/AGENTS.md +14 -19
- package/dist/templates/_shared/CLAUDE.md +14 -19
- package/dist/templates/blank/index.html +10 -4
- package/dist/{timeline-GSH743JE.js → timeline-IKUEW42T.js} +21 -19
- package/dist/{tokens-3ZMPSH7B.js → tokens-AUGUEWHS.js} +2 -2
- package/dist/{transcribe-4SHNDPWW.js → transcribe-7734CG3N.js} +19 -18
- package/dist/{transcribe-TV7JBZQS.js → transcribe-FWU6EMEO.js} +13 -12
- package/dist/{updateCheck-W7FTFOQF.js → updateCheck-VIPQ3FPW.js} +2 -2
- package/dist/{upgrade-7YYYNAPF.js → upgrade-4VNDQTVO.js} +2 -2
- package/dist/{urlDownloader-PQSUS2CP.js → urlDownloader-6CXL4CL7.js} +9 -8
- package/dist/{validate-GCHAEVXM.js → validate-QWCMVWID.js} +24 -23
- package/dist/{video-KGN7NJS5.js → video-245Q5WN4.js} +10 -9
- package/dist/warmCheck.js +37 -36
- package/package.json +1 -1
- package/dist/chunk-GMNHAOMJ.js +0 -3805
- package/dist/render-65K3K6SD.js +0 -719
- package/dist/skills/hyperframes/references/brief-contract.md +0 -108
- package/dist/skills/hyperframes/references/brief-format.md +0 -72
- package/dist/skills/hyperframes/references/capability-menu.md +0 -47
- package/dist/skills/hyperframes/references/frame-worker-core.md +0 -82
- package/dist/skills/hyperframes/references/intent-interview.md +0 -73
- package/dist/skills/hyperframes/references/pitch-round.md +0 -40
- package/dist/skills/hyperframes/references/production-loop.md +0 -26
- package/dist/skills/hyperframes/references/review-loop.md +0 -37
- package/dist/skills/hyperframes/references/route-briefs.md +0 -11
- package/dist/skills/hyperframes/references/routes/embedded-captions.md +0 -11
- package/dist/skills/hyperframes/references/routes/faceless-explainer.md +0 -12
- package/dist/skills/hyperframes/references/routes/general-video.md +0 -12
- package/dist/skills/hyperframes/references/routes/motion-graphics.md +0 -11
- package/dist/skills/hyperframes/references/routes/music-to-video.md +0 -12
- package/dist/skills/hyperframes/references/routes/pr-to-video.md +0 -28
- package/dist/skills/hyperframes/references/routes/product-launch-video.md +0 -13
- package/dist/skills/hyperframes/references/routes/remotion-to-hyperframes.md +0 -9
- package/dist/skills/hyperframes/references/routes/slideshow.md +0 -11
- package/dist/skills/hyperframes/references/routes/talking-head-recut.md +0 -11
- package/dist/skills/hyperframes/references/script-format.md +0 -52
- package/dist/skills/hyperframes/references/subagent-dispatch.md +0 -35
- package/dist/skills/hyperframes/references/workflow-catalog.md +0 -10
- package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +0 -176
- package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +0 -28
- package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +0 -106
|
@@ -1,104 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: media-use
|
|
3
|
-
description:
|
|
3
|
+
description: Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
**Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](../hyperframes/references/plugin-installation.md) when this skill is inside a HyperFrames plugin.
|
|
6
|
+
**Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](../hyperframes/references/plugin-installation.md) when this skill is inside a HyperFrames plugin.
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Media in HyperFrames
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Media lands as a local file in the project's `assets/` with a ledger record; renders never fetch. One verb finds or makes it:
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
```bash
|
|
13
|
+
npx hyperframes media-use resolve --type <type> --intent "<what you need>" --project <dir>
|
|
14
|
+
```
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
It prints one line, `resolved <id> → <path> (<type>, <metadata>)`. List reusable assets first with `--candidates` and judge the fit yourself; reuse, ingest (`--from`) and adopt are in `references/resolve.md`.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
## Two ways to get it
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
| Need | HeyGen (best quality) | Free, no account |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Music (`bgm`) | Catalog of 10k+ tracks | Local MusicGen (`audio/references/bgm.md`) |
|
|
23
|
+
| Sound effects (`sfx`) | | Openverse; 21 bundled offline |
|
|
24
|
+
| Images, icons | Asset search, 75k+ | Local FLUX (mflux), if installed |
|
|
25
|
+
| Logos (`logo`) | | theSVG, GitHub avatar, favicon; never redrawn |
|
|
26
|
+
| Voiceover (`voice`) | HeyGen voices, voice cloning | `npx hyperframes tts` (Kokoro on device; Python 3.10+ with `pip install kokoro-onnx soundfile`) |
|
|
27
|
+
| A presenter speaking | Avatar video (`--type video`) | Local LTX for generic clips, if installed |
|
|
28
|
+
| Transcripts | | `npx hyperframes transcribe` (Parakeet or whisper) |
|
|
29
|
+
| Cutouts | `heygen background-removal` | `npx hyperframes remove-background` |
|
|
30
|
+
| Grades, LUTs, looks | | `npx hyperframes media-treatment` |
|
|
19
31
|
|
|
20
|
-
|
|
32
|
+
**Host apps.** Inside an app that gives you its own media tools, use those first. When `HEYGEN_API_BASE` is set, the host pays for HeyGen: don't ask for the `heygen` CLI or a sign-in, and when a call is refused, relay the host's message as written and stop.
|
|
21
33
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
34
|
+
**HeyGen.** Install the [`heygen` CLI](https://developers.heygen.com/cli) and sign in with `heygen auth login --oauth`: the OAuth session carries a free allowance on subscription credits; an API key (`--api-key`) bills API credits. Check setup with `npx hyperframes media-use resolve --doctor`. When a request needs HeyGen (a presenter or avatar, a HeyGen voice, catalog music) and `heygen` is missing or signed out, tell the person how to get it: the install link, `heygen auth login --oauth` for the free allowance, or an API key for credits. Then offer the free path or wait. Beyond `resolve`, the same CLI makes text-to-video (`heygen video-agent create`), avatar videos with a recorded track (`heygen video create`), cloned voices (`heygen voice clone create`), dubbing (`heygen lipsync`), translated videos (`heygen video-translate`) and short clips from a long video (`heygen ai-clipping`): recipes in `references/operations.md`.
|
|
35
|
+
|
|
36
|
+
**Free.** Every tool in the free column needs no account; local models are opt-in installs (`references/setup-providers.md`). Without `heygen`, `resolve` for music, images and icons fails and says so; credit CC BY sounds (`audio/references/sfx.md`). `--local-only` skips every network provider.
|
|
37
|
+
|
|
38
|
+
**Cost.** Confirm before a paid call you chose to make (an avatar video counts); one the person asked for just runs. `--provider <name>` pins one generator when the person names it.
|
|
39
|
+
|
|
40
|
+
## Looks on real footage
|
|
41
|
+
|
|
42
|
+
Feedback that footage is dark, flat or dull, should feel retro or printed, needs a face hidden, or needs a reveal is media intent: read `references/media-treatments.md`. Inspect the real `<img>`/`<video>`, pick one intent, start from `npx hyperframes media-treatment --capabilities --json`, then `--capability <id>`; never `--all`. Persist the final treatment with `npx hyperframes media-treatment`; no CSS or SVG stand-ins for supported effects, and no generated `.cube` just to encode exposure or warmth.
|
|
43
|
+
|
|
44
|
+
## Offer once, never add silently
|
|
45
|
+
|
|
46
|
+
When you build or review a piece, scan once for concrete gaps (on-screen text with no voiceover, emoji standing in for icons, placeholder images, silent cuts, 10 s+ with no music, a colour cast) and offer the specific fixes in one ask. No signal, no suggestion; respect "leave it".
|
|
47
|
+
|
|
48
|
+
## Where to look
|
|
25
49
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
| `lut` | user-provided or explicitly chosen reusable validated `.cube` file |
|
|
38
|
-
|
|
39
|
-
Before resolving fresh, list reusable candidates with `--candidates` and judge fit yourself — reuse rules, all flags, ingest (`--from`), and adopt are in `references/resolve.md`.
|
|
40
|
-
|
|
41
|
-
## Treat broad visual feedback as media intent
|
|
42
|
-
|
|
43
|
-
When a user explicitly asks to fix, polish, stylize, obscure, emphasize, or
|
|
44
|
-
reveal photographic media, read `references/media-treatments.md` even if they
|
|
45
|
-
do not name color grading or an effect. Inspect the real `<img>`/`<video>`,
|
|
46
|
-
choose one primary intent, then use deterministic persistence and verification.
|
|
47
|
-
Use a matching recipe as an optional tested seed, or inspect
|
|
48
|
-
`hyperframes media-treatment --capabilities --json`, then request one relevant
|
|
49
|
-
family/effect with `--capability <id>` and assemble a custom treatment from
|
|
50
|
-
canonical controls. Never load `--all` for ordinary authoring. A treatment may
|
|
51
|
-
compose correction, a preset, finishing, compatible shader effects, supported
|
|
52
|
-
keyframes, and optional Registry overlays. Add only source-justified bounded
|
|
53
|
-
tuning and compatible parts, never effects merely to make the result look more
|
|
54
|
-
sophisticated. Persist the final combined payload with
|
|
55
|
-
`hyperframes media-treatment`.
|
|
56
|
-
|
|
57
|
-
Use one progressively escalating workflow. For video, inspect one labeled
|
|
58
|
-
early/middle/late contact sheet rather than reading frames separately. Apply one
|
|
59
|
-
candidate and inspect one after-sheet for ordinary correction or polish.
|
|
60
|
-
Escalate to individual frames or moving draft evidence only when the result is
|
|
61
|
-
ambiguous, temporal, stylized, LUT-based, HDR/LOG-sensitive, private, or
|
|
62
|
-
brand-critical.
|
|
63
|
-
|
|
64
|
-
For ordinary correction or polish, persist the final treatment's
|
|
65
|
-
preset/adjustment JSON.
|
|
66
|
-
Do not generate a `.cube` LUT merely to encode exposure, shadows, contrast, or
|
|
67
|
-
warmth. Use a LUT only when the user supplies one or the selected treatment
|
|
68
|
-
explicitly owns one. `resolve --type grade --for ... --analyze` is measurement
|
|
69
|
-
evidence, not permission to replace the chosen treatment with a generated LUT.
|
|
70
|
-
Do not recreate supported vignette, grain, blur, pixelate, color, or treatment
|
|
71
|
-
effects with CSS/SVG overlays; that bypasses Studio controls and the canonical
|
|
72
|
-
preview/render shader path.
|
|
73
|
-
|
|
74
|
-
## Be proactive — run a media opportunity pass
|
|
75
|
-
|
|
76
|
-
The human usually can't tell which media would lift the piece. You can. When you build or review a composition, do **one** grounded scan and then **ask once** — don't silently add, and don't nag per asset.
|
|
77
|
-
|
|
78
|
-
Surface an opportunity only when a concrete signal is present:
|
|
79
|
-
|
|
80
|
-
| Signal detected | Offer |
|
|
81
|
-
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
82
|
-
| On-screen text / a script with no voiceover | TTS voiceover (audio engine) |
|
|
83
|
-
| Emoji or a `<div>` styled as an icon | resolve real `icon`s |
|
|
84
|
-
| Image that is a placeholder, tiny, or upscaled-looking | a better `image` (and/or upscale — see `references/operations.md`) |
|
|
85
|
-
| Hard scene cuts / transitions with no sound | transition `sfx` |
|
|
86
|
-
| A piece over ~10s with no music bed | `bgm` |
|
|
87
|
-
| Footage that reads under/over-exposed or color-cast | a corrective grade (inspect it with `hyperframes media-treatment --selector '#hero' --analyze --json`) |
|
|
88
|
-
| Photographic media that feels visually flat or off-topic | one specific source-appropriate preset or custom treatment, with the intended target named |
|
|
89
|
-
| A meaningful media entrance/reveal that feels static | one supported seek-safe treatment animation; preserve color unless the request also justifies a preset |
|
|
90
|
-
|
|
91
|
-
Rules that keep this a help, not nagware: **grounded, not generic** (no signal → no suggestion); **opinionated + concrete** (propose the specific fix with defaults chosen — the human approves **all / some / none**); **once per project** (one consolidated ask; respect "leave it"); **surface, never silently mutate** (color grades especially: propose and preview — a gray-world "correction" ruins an intentional sunset or neon look).
|
|
92
|
-
|
|
93
|
-
## Where to look — read only the file your task needs
|
|
94
|
-
|
|
95
|
-
| Task | Read |
|
|
96
|
-
| ------------------------------------------------------------------------- | -------------------------------- |
|
|
97
|
-
| resolve / reuse / adopt / ingest, flags, cascade, inventory | `references/resolve.md` |
|
|
98
|
-
| color grading, LUTs, smart grade (`--for`), grade-compare | `references/grading.md` |
|
|
99
|
-
| voiceover / TTS, music, SFX, captions, transcription (audio engine) | `references/audio.md` |
|
|
100
|
-
| cut / reframe / transform existing media, exact error diffusion, HEVC | `references/operations.md` |
|
|
101
|
-
| source-aware creative treatments, realtime effects, overlays, reveals | `references/media-treatments.md` |
|
|
102
|
-
| install + auth, provider table, RAM ladders, `--local-only`, `--provider` | `references/setup-providers.md` |
|
|
103
|
-
| remembered preferences + frozen recipes (user memory) | `references/memory.md` |
|
|
104
|
-
| ownership matrix, usage stats, telemetry, privacy (maintainer-facing) | `references/meta.md` |
|
|
50
|
+
| Task | Read |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| Resolve, reuse, adopt, ingest, flags | `references/resolve.md` |
|
|
53
|
+
| Grading, LUTs, `grade-compare` | `references/grading.md` |
|
|
54
|
+
| Voiceover, music, sound effects, captions, transcription | `references/audio.md` |
|
|
55
|
+
| Cut, reframe or transform media; HeyGen recipes | `references/operations.md` |
|
|
56
|
+
| Treatments, realtime effects, overlays, reveals | `references/media-treatments.md` |
|
|
57
|
+
| Install, sign-in, providers, RAM ladders | `references/setup-providers.md` |
|
|
58
|
+
| Fades, gain, ducking, automation, effects, buses on placed tracks | `references/mixing.md` |
|
|
59
|
+
| Local commands: grade, cutout, loudness, beats | `references/local.md` |
|
|
60
|
+
| Remembered preferences | `references/memory.md` |
|
|
@@ -11,7 +11,7 @@ One music bed per composition, produced by the shared audio engine (`scripts/aud
|
|
|
11
11
|
|
|
12
12
|
`audio_request.json` → `bgm: { mode?, query?, prompt? }`:
|
|
13
13
|
|
|
14
|
-
- **`mode`** — `retrieve | generate | none`. Omit for **auto** (retrieve when credentialed, else generate). An **explicit** `retrieve` is strict: no credential ⇒ skip, never a detached generate (so a caller with no `wait-bgm` step
|
|
14
|
+
- **`mode`** — `retrieve | generate | none`. Omit for **auto** (retrieve when credentialed, else generate). An **explicit** `retrieve` is strict: no credential ⇒ skip, never a detached generate (so a caller with no `wait-bgm` step can't get a pending job it won't await).
|
|
15
15
|
- **`query`** — the mood, used for retrieval and as a fallback prompt seed (e.g. a storyboard's `music:` field, falling back to `message` → `arc` → `"calm cinematic underscore"`).
|
|
16
16
|
- **`prompt`** — an explicit full prompt for generation; omit and the engine infers one (see Mood inference). Optional `blob` / `archetype` / `arc` feed that inference.
|
|
17
17
|
|
|
@@ -40,7 +40,7 @@ Scan for words deserving distinct treatment:
|
|
|
40
40
|
- **Numbers/statistics** — bold weight, accent color
|
|
41
41
|
- **Emotional keywords** — exaggerated animation (overshoot, bounce)
|
|
42
42
|
- **Call-to-action** — highlight, underline, color pop
|
|
43
|
-
- **Marker highlight** — for beyond-color emphasis (highlight sweep, circle, burst, scribble, sketchout),
|
|
43
|
+
- **Marker highlight** — for beyond-color emphasis (highlight sweep, circle, burst, scribble, sketchout), search the registry (`/hyperframes-registry`).
|
|
44
44
|
|
|
45
45
|
## Script-to-Style Mapping
|
|
46
46
|
|
|
@@ -152,7 +152,6 @@ Caption components ship with transparent backgrounds — they're pure overlays.
|
|
|
152
152
|
|
|
153
153
|
- [`motion.md`](motion.md) — karaoke, marker effects, audio-reactive modulation, scatter exits.
|
|
154
154
|
- [`transcript-handling.md`](transcript-handling.md) — input formats, quality checks, cleaning, external API fallback.
|
|
155
|
-
- `hyperframes-animation/rules/css-marker-patterns.md` — marker highlighting (deterministic, fully seekable).
|
|
156
155
|
|
|
157
156
|
## Constraints
|
|
158
157
|
|
|
@@ -16,7 +16,7 @@ You are here because SKILL.md told you to read this file before writing animatio
|
|
|
16
16
|
|
|
17
17
|
**Emphasis words always break the pattern.** When a word is flagged as emphasis (emotional keyword, ALL CAPS, brand name), give it a stronger animation than surrounding words (larger scale, accent color, overshoot ease). This creates contrast.
|
|
18
18
|
|
|
19
|
-
**Marker highlight modes add a visual layer on top of karaoke.** For emphasis words that need more than color/scale, add a marker-style effect: highlight sweep, circle, burst, scribble, or sketchout
|
|
19
|
+
**Marker highlight modes add a visual layer on top of karaoke.** For emphasis words that need more than color/scale, add a marker-style effect: highlight sweep, circle, burst, scribble, or sketchout (search the registry, `/hyperframes-registry`). Match mode to energy: burst for hype, circle for key terms, highlight for standard, scribble for subtle.
|
|
20
20
|
|
|
21
21
|
## Audio-Reactive Captions (Mandatory for Music)
|
|
22
22
|
|
|
@@ -69,7 +69,7 @@ Keep audio reactivity subtle — 3-6% scale variation and soft glow. Heavy pulsi
|
|
|
69
69
|
To generate the audio data file:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
python3
|
|
72
|
+
python3 <SKILL_DIR>/audio/scripts/extract-audio-data.py audio.mp3 --fps 30 --bands 8 -o audio-data.json
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
## Combining Techniques
|
|
@@ -82,6 +82,6 @@ Don't use the same highlight animation on every group — cycle through styles u
|
|
|
82
82
|
|
|
83
83
|
Caption motion uses standard HyperFrames runtime APIs. Use the canonical sources:
|
|
84
84
|
|
|
85
|
-
- **GSAP timeline + tween syntax** — `
|
|
86
|
-
-
|
|
87
|
-
- **Audio data extraction** — generate via `python3
|
|
85
|
+
- **GSAP timeline + tween syntax** — `/hyperframes` → `references/runtimes.md` and `references/motion.md`
|
|
86
|
+
- **Fitting caption text** — `/hyperframes` → `references/captions.md`
|
|
87
|
+
- **Audio data extraction** — generate via `python3 <SKILL_DIR>/audio/scripts/extract-audio-data.py audio.mp3 --fps 30 --bands 8 -o audio-data.json`, then load inline as shown in "Audio-Reactive Captions" above
|
|
@@ -175,9 +175,6 @@ not native TTS timestamps. Do not distribute words evenly across a clip.
|
|
|
175
175
|
- **Timing:** This adapter requests no native word timestamps. It uses the
|
|
176
176
|
existing transcription pass. `lang` selects transcription language; Gemini
|
|
177
177
|
infers speech language from the text.
|
|
178
|
-
- **Workflow adapters:** Product-launch, faceless-explainer, and PR-video audio
|
|
179
|
-
scripts accept `--provider gemini --voice Kore --tts-model gemini-3.8-flash-tts
|
|
180
|
-
--style "Warm and clear"`.
|
|
181
178
|
|
|
182
179
|
An API error is reported as a failed line; an explicitly chosen Gemini voice
|
|
183
180
|
never silently falls back to another provider. Check the engine's anomalies
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// audio.mjs — the shared HyperFrames audio engine. ONE implementation of TTS +
|
|
3
|
-
// BGM + SFX
|
|
4
|
-
//
|
|
5
|
-
// (a tiny per-workflow adapter maps their storyboard/scenes into it) and call:
|
|
3
|
+
// BGM + SFX. Callers do NOT vendor a copy: they write a neutral
|
|
4
|
+
// `audio_request.json` (mapping their storyboard/scenes into it) and call:
|
|
6
5
|
//
|
|
7
6
|
// node <MEDIA_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json
|
|
8
7
|
//
|
|
@@ -35,7 +34,7 @@
|
|
|
35
34
|
// total_duration_s }
|
|
36
35
|
//
|
|
37
36
|
// --only tts,bgm,sfx runs a subset and MERGES into an existing --out (so a
|
|
38
|
-
//
|
|
37
|
+
// caller can do TTS+BGM early, then SFX later once cues exist). When BGM uses
|
|
39
38
|
// the generate path it is spawned detached (bgm_pending:true) — run wait-bgm.mjs
|
|
40
39
|
// before assembling.
|
|
41
40
|
|
|
@@ -200,8 +199,8 @@ if (only.has("bgm")) {
|
|
|
200
199
|
Object.keys(bgmFields).forEach((k) => (bgmFields[k] = k === "bgm_pending" ? false : null));
|
|
201
200
|
// Mode resolution. An EXPLICIT mode (flag or request.bgm.mode) is strict:
|
|
202
201
|
// "retrieve" means retrieve-or-nothing — it never silently starts a detached
|
|
203
|
-
// generate (a caller with no wait-bgm step
|
|
204
|
-
//
|
|
202
|
+
// generate (a caller with no wait-bgm step must not get a pending job it
|
|
203
|
+
// can't await). Only the UNSET/auto default picks generate
|
|
205
204
|
// when HeyGen is absent.
|
|
206
205
|
const explicitMode = bgmModeOverride || request.bgm?.mode || null;
|
|
207
206
|
let mode = noBgm ? "none" : explicitMode || (heygenOK ? "retrieve" : "generate");
|