framefields 2.9.2 → 2.10.0-canary.0
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/NOTICE.md +18 -0
- package/README.md +10 -7
- package/dist/audio/index.d.mts +5 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-Ccpl9mjV.d.mts → audio-1X5qNNmk.d.mts} +4 -3
- package/dist/audio-1X5qNNmk.d.mts.map +1 -0
- package/dist/{audio-a0MFkK6J.mjs → audio-KHBadECb.mjs} +1 -1
- package/dist/{audio-a0MFkK6J.mjs.map → audio-KHBadECb.mjs.map} +1 -1
- package/dist/{audio-BfQg37MW.mjs → audio-YpBRdI7r.mjs} +4 -4
- package/dist/{audio-BfQg37MW.mjs.map → audio-YpBRdI7r.mjs.map} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs → check-result-Culfu7Nx.mjs} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs.map → check-result-Culfu7Nx.mjs.map} +1 -1
- package/dist/cli/check-worker.mjs +50 -50
- package/dist/cli.mjs +179 -3
- package/dist/cli.mjs.map +1 -1
- package/dist/cloud/index.d.mts +118 -0
- package/dist/cloud/index.d.mts.map +1 -0
- package/dist/cloud/index.mjs +3 -0
- package/dist/cloud-xcfV4J03.mjs +233 -0
- package/dist/cloud-xcfV4J03.mjs.map +1 -0
- package/dist/components/index.d.mts +14 -11
- package/dist/components/index.mjs +47 -47
- package/dist/dist-2_lT3Dwc.mjs +1434 -0
- package/dist/dist-2_lT3Dwc.mjs.map +1 -0
- package/dist/{dist-Buaaj-Ul.mjs → dist-BIE8fvlv.mjs} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs.map → dist-BIE8fvlv.mjs.map} +1 -1
- package/dist/{dist-BlIrsfcn.mjs → dist-Bf2_efYP.mjs} +1 -1
- package/dist/{dist-BlIrsfcn.mjs.map → dist-Bf2_efYP.mjs.map} +1 -1
- package/dist/dist-BwtxciN4.mjs +3 -0
- package/dist/{dist-C1cCW7Bt.mjs → dist-C4Vxgm0Q.mjs} +275 -78
- package/dist/dist-C4Vxgm0Q.mjs.map +1 -0
- package/dist/{dist-C8Xq3zgx.mjs → dist-Cu1fZ9Uy.mjs} +4 -4
- package/dist/{dist-C8Xq3zgx.mjs.map → dist-Cu1fZ9Uy.mjs.map} +1 -1
- package/dist/{dist-DVMepKaO.mjs → dist-CySGkG54.mjs} +2 -2
- package/dist/dist-CySGkG54.mjs.map +1 -0
- package/dist/effects/index.d.mts +6 -4
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-CemgqEPv.mjs → effects-DiWYouOK.mjs} +3 -3
- package/dist/{effects-CemgqEPv.mjs.map → effects-DiWYouOK.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-BW0pPcvJ.mjs → fonts-BnV-GB1o.mjs} +2 -2
- package/dist/{fonts-BW0pPcvJ.mjs.map → fonts-BnV-GB1o.mjs.map} +1 -1
- package/dist/{gpu-CMaa63nz.mjs → gpu-Bw35AMwY.mjs} +11 -3
- package/dist/gpu-Bw35AMwY.mjs.map +1 -0
- package/dist/{index-D5UDyVMb.d.mts → index-B7WqFBZA.d.mts} +35 -2401
- package/dist/index-B7WqFBZA.d.mts.map +1 -0
- package/dist/{index-BfDFmIBE.d.mts → index-BW0Q1ygn.d.mts} +1 -1
- package/dist/{index-BfDFmIBE.d.mts.map → index-BW0Q1ygn.d.mts.map} +1 -1
- package/dist/{index-CQ-bbZk3.d.mts → index-Bbv0VtxJ.d.mts} +7 -1165
- package/dist/index-Bbv0VtxJ.d.mts.map +1 -0
- package/dist/{index-CFoAmh7q.d.mts → index-CDQrdZ0J.d.mts} +3 -3
- package/dist/{index-CFoAmh7q.d.mts.map → index-CDQrdZ0J.d.mts.map} +1 -1
- package/dist/index-COYNQ_mf.d.mts +2402 -0
- package/dist/index-COYNQ_mf.d.mts.map +1 -0
- package/dist/{index-BIjMAW1h.d.mts → index-CdCrae-I.d.mts} +2 -2
- package/dist/{index-BIjMAW1h.d.mts.map → index-CdCrae-I.d.mts.map} +1 -1
- package/dist/index-DQa7mhzq.d.mts +330 -0
- package/dist/index-DQa7mhzq.d.mts.map +1 -0
- package/dist/{index-Bnh42ouE.d.mts → index-Dyt4yS-x.d.mts} +376 -287
- package/dist/index-Dyt4yS-x.d.mts.map +1 -0
- package/dist/index-WwuuX8ZJ.d.mts +1165 -0
- package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
- package/dist/{index-CJL0JAU8.d.mts → index-gOVtTm-P.d.mts} +125 -3
- package/dist/index-gOVtTm-P.d.mts.map +1 -0
- package/dist/{index-7Z9_a_iB.d.mts → index-h7m8QgcL.d.mts} +3 -3
- package/dist/{index-7Z9_a_iB.d.mts.map → index-h7m8QgcL.d.mts.map} +1 -1
- package/dist/index.d.mts +16 -13
- package/dist/index.mjs +59 -58
- package/dist/preview/index.d.mts +4 -3
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-DvP8AZuV.mjs → preview-BW7ilNWk.mjs} +3 -3
- package/dist/{preview-DvP8AZuV.mjs.map → preview-BW7ilNWk.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
- package/dist/preview-engine/{chunk-5AWAOMBR.mjs → chunk-4BWBX2HM.mjs} +1 -1
- package/dist/preview-engine/{chunk-BEYA25UZ.mjs → chunk-4DSOZ5QG.mjs} +1 -1
- package/dist/preview-engine/{chunk-VVE2QHVG.mjs → chunk-4FACCLLE.mjs} +1 -1
- package/dist/preview-engine/{chunk-DMSZXG56.mjs → chunk-4N25ZU43.mjs} +1 -1
- package/dist/preview-engine/{chunk-FTCEG3SF.mjs → chunk-4RLKHFV6.mjs} +1 -1
- package/dist/preview-engine/chunk-4TPXZNVR.mjs +483 -0
- package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
- package/dist/preview-engine/{chunk-CC4NNNIY.mjs → chunk-57WXGYEV.mjs} +1 -1
- package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
- package/dist/preview-engine/{chunk-PM2W4VLT.mjs → chunk-5Y7SO37Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
- package/dist/preview-engine/{chunk-Y5K5LVOR.mjs → chunk-6BE3IL7L.mjs} +1 -1
- package/dist/preview-engine/{chunk-GA4HNR44.mjs → chunk-6LBFSGCI.mjs} +1 -1
- package/dist/preview-engine/{chunk-IB6GZJOL.mjs → chunk-6O55UROD.mjs} +1 -1
- package/dist/preview-engine/{chunk-SPJPM43P.mjs → chunk-6SLCECHG.mjs} +1 -1
- package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
- package/dist/preview-engine/{chunk-QCSVT73T.mjs → chunk-7A3BNAWY.mjs} +84 -25
- package/dist/preview-engine/{chunk-CN2VLYLB.mjs → chunk-7HW7GA76.mjs} +1 -1
- package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
- package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
- package/dist/preview-engine/{chunk-LVYVXVZO.mjs → chunk-C2GX5L5S.mjs} +1 -1
- package/dist/preview-engine/{chunk-4WYM72ZN.mjs → chunk-CHXR5XZK.mjs} +1 -1
- package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
- package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-RJIAES3X.mjs → chunk-EKEKYGXE.mjs} +1 -1
- package/dist/preview-engine/{chunk-TNJEZKXM.mjs → chunk-FH72KTSM.mjs} +1 -1
- package/dist/preview-engine/{chunk-P5FKRQFU.mjs → chunk-FW2UDDUT.mjs} +1 -1
- package/dist/preview-engine/{chunk-S2ABWY5G.mjs → chunk-GTMZOMAN.mjs} +1 -1
- package/dist/preview-engine/{chunk-6R3UJBL5.mjs → chunk-HGWT3RVQ.mjs} +10 -10
- package/dist/preview-engine/{chunk-34RJ7GAS.mjs → chunk-HKYENGC5.mjs} +1 -1
- package/dist/preview-engine/{chunk-7U34VKNO.mjs → chunk-HO7FXISJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-73CNXGAK.mjs → chunk-HPQDCC4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZY47XIRK.mjs → chunk-IVAA5X5H.mjs} +1 -1
- package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
- package/dist/preview-engine/{chunk-UXYM2G6J.mjs → chunk-JFBSNFN6.mjs} +1 -1
- package/dist/preview-engine/{chunk-GIICZZQI.mjs → chunk-JSKEVYKD.mjs} +1 -1
- package/dist/preview-engine/{chunk-EJJITH6U.mjs → chunk-K3TJJXVC.mjs} +1 -1
- package/dist/preview-engine/{chunk-GZWA5QJS.mjs → chunk-L2NTIWW5.mjs} +1 -1
- package/dist/preview-engine/{chunk-VN36PRVD.mjs → chunk-LBP7E7SJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-34DL53D5.mjs → chunk-LTR5FXGU.mjs} +1 -1
- package/dist/preview-engine/{chunk-GRJJVSOV.mjs → chunk-ML7WO27M.mjs} +1 -1
- package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
- package/dist/preview-engine/{chunk-OH5W5EL6.mjs → chunk-NTTEGJD6.mjs} +1 -1
- package/dist/preview-engine/{chunk-2B722GXM.mjs → chunk-OD4CSXZL.mjs} +15 -15
- package/dist/preview-engine/{chunk-AHQCDTD6.mjs → chunk-OOUDE4XL.mjs} +1 -1
- package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
- package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
- package/dist/preview-engine/{chunk-ZJ5SWTCW.mjs → chunk-RAW2I27S.mjs} +1 -1
- package/dist/preview-engine/{chunk-BJV2LBII.mjs → chunk-RMHL4XZ3.mjs} +1 -1
- package/dist/preview-engine/chunk-T6L3DO3H.mjs +1 -0
- package/dist/preview-engine/{chunk-2PYTDN2C.mjs → chunk-V5HU6NIW.mjs} +1 -1
- package/dist/preview-engine/{chunk-DVZITDQS.mjs → chunk-VRJBOFFY.mjs} +1 -1
- package/dist/preview-engine/{chunk-SF37HXAH.mjs → chunk-WVIDORLK.mjs} +1 -1
- package/dist/preview-engine/{chunk-35HMRW4I.mjs → chunk-XCQ7KN4S.mjs} +1 -1
- package/dist/preview-engine/{chunk-KHJZMTOS.mjs → chunk-Y2SWIWIU.mjs} +1 -1
- package/dist/preview-engine/{chunk-H7BSN7V7.mjs → chunk-YS3ROS25.mjs} +1 -1
- package/dist/preview-engine/{chunk-2DWY7UBV.mjs → chunk-YXCTOCQ2.mjs} +1 -1
- package/dist/preview-engine/{chunk-BVDWS3D2.mjs → chunk-ZA5LWHRM.mjs} +1 -1
- package/dist/preview-engine/chunk-ZGEKF34E.mjs +1974 -0
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/renderers-33PIDDZC.mjs +1 -0
- package/dist/preview-engine/{renderers-ZACSHGNZ.mjs → renderers-36P2TKPC.mjs} +1 -1
- package/dist/preview-engine/{renderers-TSBV4KPE.mjs → renderers-37Y5LR2S.mjs} +1 -1
- package/dist/preview-engine/renderers-3AZ3HY53.mjs +1 -0
- package/dist/preview-engine/renderers-3FGKW52B.mjs +1 -0
- package/dist/preview-engine/renderers-4A2FBS3Y.mjs +1 -0
- package/dist/preview-engine/{renderers-5TO2SXFR.mjs → renderers-4MW4NW6O.mjs} +1 -1
- package/dist/preview-engine/{renderers-ENMY4DKF.mjs → renderers-4SNAK77B.mjs} +1 -1
- package/dist/preview-engine/{renderers-Y22VSOXF.mjs → renderers-4WFRXGMR.mjs} +1 -1
- package/dist/preview-engine/{renderers-5KANN7XF.mjs → renderers-5K3BSBI6.mjs} +1 -1
- package/dist/preview-engine/renderers-65DU2F5W.mjs +1 -0
- package/dist/preview-engine/renderers-6CTPYQR6.mjs +1 -0
- package/dist/preview-engine/{renderers-NUAI4TO5.mjs → renderers-6RRWA33X.mjs} +1 -1
- package/dist/preview-engine/{renderers-4F7WLQD5.mjs → renderers-6RYIPQ7W.mjs} +1 -1
- package/dist/preview-engine/{renderers-U4M7ZCV4.mjs → renderers-AUYCQNSS.mjs} +1 -1
- package/dist/preview-engine/renderers-AWODRI3B.mjs +1 -0
- package/dist/preview-engine/renderers-BO6HHGMZ.mjs +1 -0
- package/dist/preview-engine/renderers-BSXYDEV7.mjs +1 -0
- package/dist/preview-engine/{renderers-FSI5KNGZ.mjs → renderers-CMBI4JOC.mjs} +1 -1
- package/dist/preview-engine/{renderers-6Z7DWAPH.mjs → renderers-CQIPHCIW.mjs} +1 -1
- package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
- package/dist/preview-engine/renderers-ECW2CGNU.mjs +1 -0
- package/dist/preview-engine/renderers-EEX22FUO.mjs +1 -0
- package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
- package/dist/preview-engine/{renderers-NCGH2WWJ.mjs → renderers-G2FL3IFD.mjs} +1 -1
- package/dist/preview-engine/{renderers-5XRKZHVT.mjs → renderers-GCQKGJ7W.mjs} +1 -1
- package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
- package/dist/preview-engine/renderers-HZBXLDKG.mjs +1 -0
- package/dist/preview-engine/renderers-IOXNQPQK.mjs +1 -0
- package/dist/preview-engine/renderers-IR44E4ZZ.mjs +1 -0
- package/dist/preview-engine/{renderers-TGJSOKDY.mjs → renderers-JALV3B3A.mjs} +1 -1
- package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
- package/dist/preview-engine/{renderers-CUMVIVHI.mjs → renderers-JZYHX4XI.mjs} +1 -1
- package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +1 -0
- package/dist/preview-engine/renderers-K37YL3Z7.mjs +1 -0
- package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
- package/dist/preview-engine/renderers-KUJQV3K6.mjs +1 -0
- package/dist/preview-engine/renderers-KXVKLSSX.mjs +1 -0
- package/dist/preview-engine/{renderers-WEYAHOBK.mjs → renderers-LF6U4MR5.mjs} +1 -1
- package/dist/preview-engine/renderers-N4RVFX3G.mjs +1 -0
- package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
- package/dist/preview-engine/renderers-NZWWEAYA.mjs +1 -0
- package/dist/preview-engine/{renderers-5UZ3YFBD.mjs → renderers-OPRXVIGT.mjs} +1 -1
- package/dist/preview-engine/{renderers-7C5RA3R5.mjs → renderers-OZKPOUMW.mjs} +1 -1
- package/dist/preview-engine/renderers-P4JJEDZB.mjs +1 -0
- package/dist/preview-engine/{renderers-V3AQO7AR.mjs → renderers-PGZDFDSC.mjs} +1 -1
- package/dist/preview-engine/renderers-Q4572F5C.mjs +1 -0
- package/dist/preview-engine/{renderers-PIIEUKFE.mjs → renderers-Q5YCUPYE.mjs} +1 -1
- package/dist/preview-engine/renderers-QAX2QWWQ.mjs +1 -0
- package/dist/preview-engine/{renderers-SEIAUKJF.mjs → renderers-RQ3JZE3L.mjs} +1 -1
- package/dist/preview-engine/renderers-SRFIEVWL.mjs +1 -0
- package/dist/preview-engine/renderers-SYC6WFTM.mjs +1 -0
- package/dist/preview-engine/{renderers-QA2HKUJJ.mjs → renderers-TKHQRERE.mjs} +1 -1
- package/dist/preview-engine/{renderers-A24KZK2Q.mjs → renderers-U4S577ON.mjs} +1 -1
- package/dist/preview-engine/{renderers-KC6ZSKCW.mjs → renderers-UBIFSF37.mjs} +1 -1
- package/dist/preview-engine/renderers-UH4WN3QN.mjs +1 -0
- package/dist/preview-engine/renderers-V4FFCAS7.mjs +1 -0
- package/dist/preview-engine/renderers-VGDEOZUU.mjs +1 -0
- package/dist/preview-engine/renderers-VJJKBX5K.mjs +1 -0
- package/dist/preview-engine/renderers-VJOKVDYW.mjs +1 -0
- package/dist/preview-engine/renderers-VUUWZUOH.mjs +1 -0
- package/dist/preview-engine/renderers-WG756VF3.mjs +228 -0
- package/dist/preview-engine/renderers-WOP5GOZP.mjs +1 -0
- package/dist/preview-engine/{renderers-T74CQCEN.mjs → renderers-XZ3XDQIN.mjs} +1 -1
- package/dist/preview-engine/renderers-Y4MGN2FR.mjs +1 -0
- package/dist/preview-engine/renderers-YAMYH7IK.mjs +1 -0
- package/dist/preview-engine/{renderers-MD3PRFZL.mjs → renderers-YJ4PJEPG.mjs} +1 -1
- package/dist/preview-engine/renderers-ZNLSAWW3.mjs +1 -0
- package/dist/preview-engine/{renderers-L6YDX6GS.mjs → renderers-ZQVKE5AO.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
- package/dist/{program-CKpKkllV.mjs → program-BUjUTdxq.mjs} +44 -17
- package/dist/program-BUjUTdxq.mjs.map +1 -0
- package/dist/registry/focus-zoom.json +9 -2
- package/dist/renderer/index.d.mts +4 -3
- package/dist/renderer/index.mjs +4 -4
- package/dist/{renderer-BF0hx_iJ.mjs → renderer--f8JHHyT.mjs} +5 -5
- package/dist/{renderer-BF0hx_iJ.mjs.map → renderer--f8JHHyT.mjs.map} +1 -1
- package/dist/{renderer-CHr7MiYW.mjs → renderer-1KgHl_ls.mjs} +5 -5
- package/dist/{renderer-CHr7MiYW.mjs.map → renderer-1KgHl_ls.mjs.map} +1 -1
- package/dist/renderer-6sNr6ZRJ.mjs +6 -0
- package/dist/{renderer-BgO6BA_z.mjs → renderer-7c0ecb-L.mjs} +74 -21
- package/dist/renderer-7c0ecb-L.mjs.map +1 -0
- package/dist/{renderer-D61B9bXF.mjs → renderer-7w9PZmWJ.mjs} +4 -4
- package/dist/{renderer-D61B9bXF.mjs.map → renderer-7w9PZmWJ.mjs.map} +1 -1
- package/dist/{renderer-DVCJjVn7.mjs → renderer-B3WHDQeB.mjs} +5 -5
- package/dist/{renderer-DVCJjVn7.mjs.map → renderer-B3WHDQeB.mjs.map} +1 -1
- package/dist/{renderer-C7eFJf0_.mjs → renderer-B84T5I98.mjs} +5 -5
- package/dist/{renderer-C7eFJf0_.mjs.map → renderer-B84T5I98.mjs.map} +1 -1
- package/dist/{renderer-EaLUCobW.mjs → renderer-B8i4d1Rc.mjs} +4 -4
- package/dist/{renderer-EaLUCobW.mjs.map → renderer-B8i4d1Rc.mjs.map} +1 -1
- package/dist/renderer-BDHGxD6p.mjs +5 -0
- package/dist/{renderer-WCZu2Rf5.mjs → renderer-BFmVDdVs.mjs} +4 -4
- package/dist/{renderer-WCZu2Rf5.mjs.map → renderer-BFmVDdVs.mjs.map} +1 -1
- package/dist/{renderer-bAKUeHF3.mjs → renderer-BG_cnGbF.mjs} +5 -5
- package/dist/{renderer-bAKUeHF3.mjs.map → renderer-BG_cnGbF.mjs.map} +1 -1
- package/dist/{renderer-BPWDsufX.mjs → renderer-BIToh0CA.mjs} +3 -3
- package/dist/{renderer-BPWDsufX.mjs.map → renderer-BIToh0CA.mjs.map} +1 -1
- package/dist/{renderer-mNSyac1V.mjs → renderer-BOg8i8eF.mjs} +11 -2
- package/dist/{renderer-mNSyac1V.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
- package/dist/{renderer-BlPqTEii.mjs → renderer-BSW4CGZF.mjs} +4 -4
- package/dist/{renderer-BlPqTEii.mjs.map → renderer-BSW4CGZF.mjs.map} +1 -1
- package/dist/{renderer-D7Al3_-5.mjs → renderer-BT4im6c0.mjs} +5 -5
- package/dist/{renderer-D7Al3_-5.mjs.map → renderer-BT4im6c0.mjs.map} +1 -1
- package/dist/renderer-BT9dvpk2.mjs +5 -0
- package/dist/{renderer-BpIF1QIE.mjs → renderer-BTLZBD63.mjs} +5 -5
- package/dist/{renderer-BpIF1QIE.mjs.map → renderer-BTLZBD63.mjs.map} +1 -1
- package/dist/{renderer-CcvvoKiZ.mjs → renderer-Bb_HHUQ0.mjs} +5 -5
- package/dist/{renderer-CcvvoKiZ.mjs.map → renderer-Bb_HHUQ0.mjs.map} +1 -1
- package/dist/renderer-Bd-NuU3M.mjs +3 -0
- package/dist/{renderer-sCovEubT.mjs → renderer-BdRwbLLV.mjs} +4 -4
- package/dist/{renderer-sCovEubT.mjs.map → renderer-BdRwbLLV.mjs.map} +1 -1
- package/dist/{renderer-DNQvOrkY.mjs → renderer-BeJoW-nG.mjs} +5 -5
- package/dist/{renderer-DNQvOrkY.mjs.map → renderer-BeJoW-nG.mjs.map} +1 -1
- package/dist/renderer-BfaRh0qy.mjs +5 -0
- package/dist/{renderer-B522Dkdk.mjs → renderer-BhNZn2DU.mjs} +4 -4
- package/dist/{renderer-B522Dkdk.mjs.map → renderer-BhNZn2DU.mjs.map} +1 -1
- package/dist/{renderer-D47AEJE_.mjs → renderer-Bif8bwCq.mjs} +3 -3
- package/dist/{renderer-D47AEJE_.mjs.map → renderer-Bif8bwCq.mjs.map} +1 -1
- package/dist/renderer-BlwXKV7Y.mjs +5 -0
- package/dist/{renderer-CwFqqpWY.mjs → renderer-Bm91Xv6l.mjs} +4 -4
- package/dist/{renderer-CwFqqpWY.mjs.map → renderer-Bm91Xv6l.mjs.map} +1 -1
- package/dist/{renderer-SSBL4M1o.mjs → renderer-BnN3JH9u.mjs} +20 -7
- package/dist/renderer-BnN3JH9u.mjs.map +1 -0
- package/dist/{renderer-8QIwXh7O.mjs → renderer-Bo5GwErU.mjs} +6 -6
- package/dist/{renderer-8QIwXh7O.mjs.map → renderer-Bo5GwErU.mjs.map} +1 -1
- package/dist/{renderer-DF-yvIrV.mjs → renderer-Br_aJ_b7.mjs} +4 -4
- package/dist/{renderer-DF-yvIrV.mjs.map → renderer-Br_aJ_b7.mjs.map} +1 -1
- package/dist/{renderer-DmkWrWAk.mjs → renderer-BvRaVByi.mjs} +3 -3
- package/dist/{renderer-DmkWrWAk.mjs.map → renderer-BvRaVByi.mjs.map} +1 -1
- package/dist/renderer-C40yZK3x.mjs +5 -0
- package/dist/renderer-C5MjQ7L8.mjs +5 -0
- package/dist/renderer-C8LjKYnS.mjs +5 -0
- package/dist/renderer-C9q9H_qa.mjs +5 -0
- package/dist/renderer-CC4fhNup.mjs +3 -0
- package/dist/{renderer-GBmWjBvy.mjs → renderer-CDfCaqV4.mjs} +3 -3
- package/dist/{renderer-GBmWjBvy.mjs.map → renderer-CDfCaqV4.mjs.map} +1 -1
- package/dist/renderer-CF9ta9Rm.mjs +5 -0
- package/dist/{renderer-DkRSZg5g.mjs → renderer-CKlNHDKI.mjs} +5 -5
- package/dist/{renderer-DkRSZg5g.mjs.map → renderer-CKlNHDKI.mjs.map} +1 -1
- package/dist/{renderer-CYC32bDW.mjs → renderer-CLRrcT_3.mjs} +5 -5
- package/dist/{renderer-CYC32bDW.mjs.map → renderer-CLRrcT_3.mjs.map} +1 -1
- package/dist/{renderer-DpruWmZU.mjs → renderer-CO1PwItH.mjs} +4 -4
- package/dist/{renderer-DpruWmZU.mjs.map → renderer-CO1PwItH.mjs.map} +1 -1
- package/dist/renderer-CO205Gr9.mjs +5 -0
- package/dist/renderer-CSm8UXLP.mjs +5 -0
- package/dist/renderer-CSy8HRtF.mjs +5 -0
- package/dist/{renderer-pHWEHDnM.mjs → renderer-CTSvHf6g.mjs} +5 -5
- package/dist/{renderer-pHWEHDnM.mjs.map → renderer-CTSvHf6g.mjs.map} +1 -1
- package/dist/{renderer-hSCfnvaK.mjs → renderer-CWmlfdLb.mjs} +5 -5
- package/dist/{renderer-hSCfnvaK.mjs.map → renderer-CWmlfdLb.mjs.map} +1 -1
- package/dist/{renderer--fkmiVjl.mjs → renderer-CanNjQuL.mjs} +4 -4
- package/dist/{renderer--fkmiVjl.mjs.map → renderer-CanNjQuL.mjs.map} +1 -1
- package/dist/renderer-CdNRWDsA.mjs +5 -0
- package/dist/{renderer-DFzI3yI_.mjs → renderer-CeNAgCE2.mjs} +3 -3
- package/dist/{renderer-DFzI3yI_.mjs.map → renderer-CeNAgCE2.mjs.map} +1 -1
- package/dist/{renderer-BdyopiLC.mjs → renderer-Ch1qZ2PT.mjs} +4 -4
- package/dist/{renderer-BdyopiLC.mjs.map → renderer-Ch1qZ2PT.mjs.map} +1 -1
- package/dist/{renderer-CQvmbRQ5.mjs → renderer-Chfo4G9t.mjs} +5 -5
- package/dist/{renderer-CQvmbRQ5.mjs.map → renderer-Chfo4G9t.mjs.map} +1 -1
- package/dist/{renderer-DEmYyaqj.mjs → renderer-Ck-NLzz0.mjs} +4 -4
- package/dist/{renderer-DEmYyaqj.mjs.map → renderer-Ck-NLzz0.mjs.map} +1 -1
- package/dist/renderer-CkAjiGRB.mjs +5 -0
- package/dist/renderer-CmryuPBm.mjs +5 -0
- package/dist/renderer-CnEwne4L.mjs +5 -0
- package/dist/{renderer-BlvGcyAN.mjs → renderer-CsRuEpR2.mjs} +3 -3
- package/dist/{renderer-BlvGcyAN.mjs.map → renderer-CsRuEpR2.mjs.map} +1 -1
- package/dist/{renderer-SWr3vbrV.mjs → renderer-CtulmkqT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs.map → renderer-CtulmkqT.mjs.map} +1 -1
- package/dist/{renderer-DTqDy2m9.mjs → renderer-CwAuWLWm.mjs} +3 -3
- package/dist/{renderer-DTqDy2m9.mjs.map → renderer-CwAuWLWm.mjs.map} +1 -1
- package/dist/{renderer-B2jjxsjO.mjs → renderer-CxabOSkk.mjs} +4 -4
- package/dist/{renderer-B2jjxsjO.mjs.map → renderer-CxabOSkk.mjs.map} +1 -1
- package/dist/{renderer-DPAD6fL1.mjs → renderer-CybBR8AL.mjs} +425 -115
- package/dist/renderer-CybBR8AL.mjs.map +1 -0
- package/dist/{renderer-DO-KbpYZ.mjs → renderer-D1tDMuD0.mjs} +5 -5
- package/dist/{renderer-DO-KbpYZ.mjs.map → renderer-D1tDMuD0.mjs.map} +1 -1
- package/dist/renderer-D4QDoqOG.mjs +5 -0
- package/dist/{renderer-Bfk6A7UO.mjs → renderer-D7DlNOVi.mjs} +5 -5
- package/dist/{renderer-Bfk6A7UO.mjs.map → renderer-D7DlNOVi.mjs.map} +1 -1
- package/dist/renderer-D7cS2a8z.mjs +5 -0
- package/dist/{renderer-g_vrrAQU.mjs → renderer-D7lApyWZ.mjs} +3 -3
- package/dist/{renderer-g_vrrAQU.mjs.map → renderer-D7lApyWZ.mjs.map} +1 -1
- package/dist/renderer-D85CNC-b.mjs +5 -0
- package/dist/{renderer-DqvoMLca.mjs → renderer-DAfCcnCz.mjs} +5 -5
- package/dist/{renderer-DqvoMLca.mjs.map → renderer-DAfCcnCz.mjs.map} +1 -1
- package/dist/{renderer-D7r6onRT.mjs → renderer-DAug14gu.mjs} +4 -4
- package/dist/{renderer-D7r6onRT.mjs.map → renderer-DAug14gu.mjs.map} +1 -1
- package/dist/{renderer-DMvmf3T2.mjs → renderer-DBfx6QX1.mjs} +3 -3
- package/dist/renderer-DC9IoJNz.mjs +5 -0
- package/dist/renderer-DCMoBppL.mjs +1062 -0
- package/dist/renderer-DCMoBppL.mjs.map +1 -0
- package/dist/renderer-DIDh0gFm.mjs +5 -0
- package/dist/{renderer-DKgPVOLL.d.mts → renderer-DJuVX3c5.d.mts} +2 -2
- package/dist/{renderer-DKgPVOLL.d.mts.map → renderer-DJuVX3c5.d.mts.map} +1 -1
- package/dist/{renderer-sYSkIUfo.mjs → renderer-DKptrHeL.mjs} +5 -5
- package/dist/{renderer-sYSkIUfo.mjs.map → renderer-DKptrHeL.mjs.map} +1 -1
- package/dist/renderer-DLmJ9GWE.mjs +5 -0
- package/dist/renderer-DM7PUWP9.mjs +5 -0
- package/dist/{renderer-C41U1tK6.mjs → renderer-DMtzPqYo.mjs} +211 -72
- package/dist/renderer-DMtzPqYo.mjs.map +1 -0
- package/dist/renderer-DPWFDxIO.mjs +5 -0
- package/dist/renderer-DUCByhAk.mjs +5 -0
- package/dist/renderer-DVOtnCKH.mjs +5 -0
- package/dist/renderer-DVrN2bW8.mjs +5 -0
- package/dist/{renderer-zXPVLRlD.mjs → renderer-D_rEtJAH.mjs} +5 -5
- package/dist/{renderer-zXPVLRlD.mjs.map → renderer-D_rEtJAH.mjs.map} +1 -1
- package/dist/{renderer-BIGFP1cF.mjs → renderer-Dak_wVh9.mjs} +2 -2
- package/dist/{renderer-BIGFP1cF.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
- package/dist/{renderer-DX41niRU.mjs → renderer-Dd2XrdqA.mjs} +4 -4
- package/dist/{renderer-DX41niRU.mjs.map → renderer-Dd2XrdqA.mjs.map} +1 -1
- package/dist/renderer-DdOVwfG4.mjs +5 -0
- package/dist/{renderer-1r-Uq-Ae.mjs → renderer-Dih1rtT6.mjs} +3 -3
- package/dist/{renderer-1r-Uq-Ae.mjs.map → renderer-Dih1rtT6.mjs.map} +1 -1
- package/dist/{renderer-BXJXziIt.mjs → renderer-DjiebKHO.mjs} +3 -3
- package/dist/{renderer-BXJXziIt.mjs.map → renderer-DjiebKHO.mjs.map} +1 -1
- package/dist/{renderer-DIw3UtEU.mjs → renderer-DkAFIpzB.mjs} +5 -5
- package/dist/{renderer-DIw3UtEU.mjs.map → renderer-DkAFIpzB.mjs.map} +1 -1
- package/dist/{renderer-DDEkFbVI.mjs → renderer-DlbSqOJR.mjs} +5 -5
- package/dist/{renderer-DDEkFbVI.mjs.map → renderer-DlbSqOJR.mjs.map} +1 -1
- package/dist/{renderer-C7L8Ceqr.mjs → renderer-DrExCXnp.mjs} +4 -4
- package/dist/{renderer-C7L8Ceqr.mjs.map → renderer-DrExCXnp.mjs.map} +1 -1
- package/dist/{renderer-_iMAO698.mjs → renderer-DsPLMzy1.mjs} +2 -2
- package/dist/{renderer-_iMAO698.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
- package/dist/{renderer-BAYTI6jj.mjs → renderer-Dswrn-yi.mjs} +4 -4
- package/dist/{renderer-BAYTI6jj.mjs.map → renderer-Dswrn-yi.mjs.map} +1 -1
- package/dist/renderer-DtCe9ouu.mjs +5 -0
- package/dist/{renderer-DXEWbnRF.mjs → renderer-DtCmG-tT.mjs} +4 -4
- package/dist/{renderer-DXEWbnRF.mjs.map → renderer-DtCmG-tT.mjs.map} +1 -1
- package/dist/{renderer-B39I6CQw.mjs → renderer-DxiF4O6X.mjs} +4 -4
- package/dist/{renderer-B39I6CQw.mjs.map → renderer-DxiF4O6X.mjs.map} +1 -1
- package/dist/{renderer-BAusZ6Vu.mjs → renderer-DxkvDAA6.mjs} +4 -4
- package/dist/{renderer-BAusZ6Vu.mjs.map → renderer-DxkvDAA6.mjs.map} +1 -1
- package/dist/{renderer-ktWXVYka.mjs → renderer-FFLnACY-.mjs} +6 -6
- package/dist/{renderer-ktWXVYka.mjs.map → renderer-FFLnACY-.mjs.map} +1 -1
- package/dist/{renderer-Lth37j17.mjs → renderer-H4CZt3Z5.mjs} +3 -3
- package/dist/{renderer-B-ur0Ej8.mjs → renderer-JASAZUyY.mjs} +4 -4
- package/dist/{renderer-B-ur0Ej8.mjs.map → renderer-JASAZUyY.mjs.map} +1 -1
- package/dist/renderer-Mg0kr9Fm.mjs +5 -0
- package/dist/{renderer-CCycwCEB.mjs → renderer-R2kLaNuR.mjs} +3 -3
- package/dist/{renderer-CCycwCEB.mjs.map → renderer-R2kLaNuR.mjs.map} +1 -1
- package/dist/renderer-T35PsSw5.mjs +5 -0
- package/dist/{renderer-cod5Ona9.mjs → renderer-fWW0bsVl.mjs} +3 -3
- package/dist/renderer-iSZ5NT-J.mjs +5 -0
- package/dist/{renderer-oKRF4A0M.mjs → renderer-jBKpX3Xg.mjs} +4 -4
- package/dist/{renderer-oKRF4A0M.mjs.map → renderer-jBKpX3Xg.mjs.map} +1 -1
- package/dist/{renderer-Xv6GfNUI.mjs → renderer-kFx1_MmK.mjs} +3 -3
- package/dist/{renderer-Xv6GfNUI.mjs.map → renderer-kFx1_MmK.mjs.map} +1 -1
- package/dist/{renderer-DbRZe0Re.mjs → renderer-muB4slsV.mjs} +5 -5
- package/dist/{renderer-DbRZe0Re.mjs.map → renderer-muB4slsV.mjs.map} +1 -1
- package/dist/renderer-nEmMjQ1a.mjs +5 -0
- package/dist/{renderer-CpUJBOfb.mjs → renderer-oiDoNzhv.mjs} +3 -3
- package/dist/renderer-pG1nyfjE.mjs +5 -0
- package/dist/{renderer-BX7jS14r.d.mts → renderer-tcypOFaB.d.mts} +23 -4
- package/dist/renderer-tcypOFaB.d.mts.map +1 -0
- package/dist/{renderer-CiQhD8Gg.mjs → renderer-vPxMXiv8.mjs} +5 -5
- package/dist/{renderer-CiQhD8Gg.mjs.map → renderer-vPxMXiv8.mjs.map} +1 -1
- package/dist/renderer-vbb9e3E3.mjs +5 -0
- package/dist/{renderer-D8bBHrWC.mjs → renderer-vpsU_4XW.mjs} +5 -5
- package/dist/{renderer-D8bBHrWC.mjs.map → renderer-vpsU_4XW.mjs.map} +1 -1
- package/dist/{renderer-DiY70S8S.mjs → renderer-w7mlMSC-.mjs} +4 -4
- package/dist/{renderer-DiY70S8S.mjs.map → renderer-w7mlMSC-.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs → renderers-CP8CFWDs-OgyUiyrr.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs.map → renderers-CP8CFWDs-OgyUiyrr.mjs.map} +1 -1
- package/dist/sam/index.d.mts +4 -0
- package/dist/sam/index.mjs +3 -0
- package/dist/signals/index.d.mts +7 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-CXwgAUp-.mjs → signals-BfJ1aqpT.mjs} +4 -4
- package/dist/{signals-CXwgAUp-.mjs.map → signals-BfJ1aqpT.mjs.map} +1 -1
- package/dist/{renderer-B2P1vgb7.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +81 -1016
- package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
- package/dist/{src-DFEqficI.mjs → src-C3f3zXYg.mjs} +251 -37
- package/dist/src-C3f3zXYg.mjs.map +1 -0
- package/package.json +75 -69
- package/dist/audio-Ccpl9mjV.d.mts.map +0 -1
- package/dist/dist-C1cCW7Bt.mjs.map +0 -1
- package/dist/dist-DVMepKaO.mjs.map +0 -1
- package/dist/gpu-CMaa63nz.mjs.map +0 -1
- package/dist/index-Bnh42ouE.d.mts.map +0 -1
- package/dist/index-CJL0JAU8.d.mts.map +0 -1
- package/dist/index-CQ-bbZk3.d.mts.map +0 -1
- package/dist/index-D5UDyVMb.d.mts.map +0 -1
- package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
- package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
- package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
- package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
- package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
- package/dist/preview-engine/chunk-FKG27DVO.mjs +0 -4
- package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
- package/dist/preview-engine/chunk-KXLXP66K.mjs +0 -1974
- package/dist/preview-engine/chunk-MIEH74UH.mjs +0 -480
- package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
- package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
- package/dist/preview-engine/renderers-3BOQOUEU.mjs +0 -1
- package/dist/preview-engine/renderers-3M2FESR2.mjs +0 -1
- package/dist/preview-engine/renderers-6LHIWKMZ.mjs +0 -1
- package/dist/preview-engine/renderers-7XHO6M3B.mjs +0 -228
- package/dist/preview-engine/renderers-A43VCJ7X.mjs +0 -1
- package/dist/preview-engine/renderers-AKY464RY.mjs +0 -1
- package/dist/preview-engine/renderers-C5UO6PL5.mjs +0 -1
- package/dist/preview-engine/renderers-C64QSZO4.mjs +0 -1
- package/dist/preview-engine/renderers-CIRCR6NG.mjs +0 -1
- package/dist/preview-engine/renderers-CIWOPETY.mjs +0 -1
- package/dist/preview-engine/renderers-CZEZCELP.mjs +0 -1
- package/dist/preview-engine/renderers-FSQMWHQM.mjs +0 -1
- package/dist/preview-engine/renderers-FZEW5C23.mjs +0 -1
- package/dist/preview-engine/renderers-HCET2IML.mjs +0 -1
- package/dist/preview-engine/renderers-IUOOC6K7.mjs +0 -1
- package/dist/preview-engine/renderers-KYYJLVIJ.mjs +0 -1
- package/dist/preview-engine/renderers-L4GE7WV3.mjs +0 -1
- package/dist/preview-engine/renderers-LRAFWKCO.mjs +0 -1
- package/dist/preview-engine/renderers-LU3XZWEB.mjs +0 -1
- package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
- package/dist/preview-engine/renderers-ND2WV4K3.mjs +0 -1
- package/dist/preview-engine/renderers-NJ5CWVVH.mjs +0 -1
- package/dist/preview-engine/renderers-NKXYPR3V.mjs +0 -1
- package/dist/preview-engine/renderers-NWR66CGK.mjs +0 -1
- package/dist/preview-engine/renderers-O22WTBRM.mjs +0 -1
- package/dist/preview-engine/renderers-PBBA7LQB.mjs +0 -1
- package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +0 -1
- package/dist/preview-engine/renderers-RMEACSRL.mjs +0 -1
- package/dist/preview-engine/renderers-SP42LCSI.mjs +0 -1
- package/dist/preview-engine/renderers-T7SZA3BX.mjs +0 -1
- package/dist/preview-engine/renderers-VADTDAHD.mjs +0 -1
- package/dist/preview-engine/renderers-VNNWI5C3.mjs +0 -1
- package/dist/preview-engine/renderers-WZ75MLP3.mjs +0 -1
- package/dist/preview-engine/renderers-XB5R4UQA.mjs +0 -1
- package/dist/preview-engine/renderers-YBIUZDGQ.mjs +0 -1
- package/dist/preview-engine/renderers-YESJR4O7.mjs +0 -1
- package/dist/preview-engine/renderers-YKSRZRRT.mjs +0 -1
- package/dist/program-CKpKkllV.mjs.map +0 -1
- package/dist/renderer--Ac-dg4A.mjs +0 -5
- package/dist/renderer--N7TMqzU.mjs +0 -5
- package/dist/renderer-2ecmdOae.mjs +0 -5
- package/dist/renderer-B2P1vgb7.mjs.map +0 -1
- package/dist/renderer-B5RJp5g-.mjs +0 -5
- package/dist/renderer-B7xyT1Vb.mjs +0 -5
- package/dist/renderer-BBeArN_x.mjs +0 -5
- package/dist/renderer-BCAZDu-r.mjs +0 -5
- package/dist/renderer-BJnhik7Y.mjs +0 -5
- package/dist/renderer-BX7jS14r.d.mts.map +0 -1
- package/dist/renderer-BgO6BA_z.mjs.map +0 -1
- package/dist/renderer-BxRW8MZO.mjs +0 -5
- package/dist/renderer-C-lfsEAN.mjs +0 -5
- package/dist/renderer-C41U1tK6.mjs.map +0 -1
- package/dist/renderer-C6nOFN4-.mjs +0 -5
- package/dist/renderer-C84TSQmS.mjs +0 -5
- package/dist/renderer-C8_6YofT.mjs +0 -5
- package/dist/renderer-COb3tOPG.mjs +0 -5
- package/dist/renderer-CSCIzaLy.mjs +0 -5
- package/dist/renderer-CmI4c8MS.mjs +0 -5
- package/dist/renderer-CqVltdX9.mjs +0 -5
- package/dist/renderer-D-FpMzLY.mjs +0 -5
- package/dist/renderer-D-Oyn9mG.mjs +0 -5
- package/dist/renderer-D2QrkA8_.mjs +0 -5
- package/dist/renderer-D5bjOx83.mjs +0 -3
- package/dist/renderer-D64r4iN-.mjs +0 -5
- package/dist/renderer-DCq6YkgP.mjs +0 -5
- package/dist/renderer-DDHG3GdR.mjs +0 -5
- package/dist/renderer-DMdNfcud.mjs +0 -6
- package/dist/renderer-DPAD6fL1.mjs.map +0 -1
- package/dist/renderer-DZQXZ4lK.mjs +0 -5
- package/dist/renderer-DczJJLA1.mjs +0 -5
- package/dist/renderer-DfqJj9oe.mjs +0 -5
- package/dist/renderer-DgO9ihVJ.mjs +0 -5
- package/dist/renderer-DhgnQZYb.mjs +0 -5
- package/dist/renderer-DjxKjHMf.mjs +0 -5
- package/dist/renderer-DnRDW2Oz.mjs +0 -3
- package/dist/renderer-DqLA5cdR.mjs +0 -5
- package/dist/renderer-Dudp6ZlH.mjs +0 -5
- package/dist/renderer-SSBL4M1o.mjs.map +0 -1
- package/dist/renderer-_jC5KIT1.mjs +0 -5
- package/dist/renderer-cTgAuVmJ.mjs +0 -5
- package/dist/renderer-nVKDvDLO.mjs +0 -5
- package/dist/renderer-pZ6_pUo1.mjs +0 -5
- package/dist/src-DFEqficI.mjs.map +0 -1
- /package/dist/{chunk-BcJoO4Nm.mjs → chunk-W71TSjRM.mjs} +0 -0
- /package/dist/{renderer-COqFNSfV.mjs → renderer-B6rZUBwE.mjs} +0 -0
|
@@ -1,1166 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as NodeRendererPlugin, r as WebGPUNodeRenderer } from "./renderer-
|
|
3
|
-
import { n as AudioSignalOptions, r as ExtractedAudioSignalsBundle } from "./audio-
|
|
1
|
+
import { I as Effect, R as EffectConfigValue } from "./index-COYNQ_mf.mjs";
|
|
2
|
+
import { n as NodeRendererPlugin, r as WebGPUNodeRenderer } from "./renderer-tcypOFaB.mjs";
|
|
3
|
+
import { n as AudioSignalOptions, r as ExtractedAudioSignalsBundle } from "./audio-1X5qNNmk.mjs";
|
|
4
|
+
import { g as ObjectTrackSignals } from "./index-WwuuX8ZJ.mjs";
|
|
4
5
|
|
|
5
|
-
//#region ../tensor-webgpu/dist/index.d.mts
|
|
6
|
-
//#region src/types.d.ts
|
|
7
|
-
type TensorSource = GPUTexture | {
|
|
8
|
-
inputHandleId?: string;
|
|
9
|
-
id?: string;
|
|
10
|
-
} | string;
|
|
11
|
-
interface TensorViewExport {
|
|
12
|
-
readonly texture: GPUTexture;
|
|
13
|
-
readonly width: number;
|
|
14
|
-
readonly height: number;
|
|
15
|
-
readonly format: GPUTextureFormat;
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/multiplexer/controlnet-multiplexer.d.ts
|
|
19
|
-
declare class ControlNetMultiplexer {
|
|
20
|
-
private textures;
|
|
21
|
-
set(type: keyof ControlNetConditioningOutputs, texture: GPUTexture): void;
|
|
22
|
-
get(type: keyof ControlNetConditioningOutputs): GPUTexture | undefined;
|
|
23
|
-
has(type: keyof ControlNetConditioningOutputs): boolean;
|
|
24
|
-
getOutputs(): ControlNetConditioningOutputs;
|
|
25
|
-
createBindGroupEntry(type: keyof ControlNetConditioningOutputs, bindingIndex: number): GPUBindGroupEntry;
|
|
26
|
-
exportTensorView(type: keyof ControlNetConditioningOutputs): TensorViewExport;
|
|
27
|
-
readPixelsAsync(device: GPUDevice, type: keyof ControlNetConditioningOutputs): Promise<{
|
|
28
|
-
width: number;
|
|
29
|
-
height: number;
|
|
30
|
-
format: GPUTextureFormat;
|
|
31
|
-
data: Uint8Array;
|
|
32
|
-
}>;
|
|
33
|
-
destroy(): void;
|
|
34
|
-
}
|
|
35
|
-
//#endregion
|
|
36
|
-
//#region src/pipeline/tensor-pipeline.d.ts
|
|
37
|
-
declare class TensorPipeline {
|
|
38
|
-
readonly source: TensorSource;
|
|
39
|
-
readonly id: string;
|
|
40
|
-
private cannyOptions?;
|
|
41
|
-
private depthNormalsOptions?;
|
|
42
|
-
private poseSkeletonOptions?;
|
|
43
|
-
private faceLandmarksOptions?;
|
|
44
|
-
private segmentationOptions?;
|
|
45
|
-
private opticalFlowOptions?;
|
|
46
|
-
private deflickerOptions?;
|
|
47
|
-
private multiplexer;
|
|
48
|
-
private cannyPipeline?;
|
|
49
|
-
private depthNormalsPipeline?;
|
|
50
|
-
private posePipeline?;
|
|
51
|
-
private facePipeline?;
|
|
52
|
-
private segmentationPipeline?;
|
|
53
|
-
private opticalFlowPipeline?;
|
|
54
|
-
private deflickerPipeline?;
|
|
55
|
-
private prevInputTexture?;
|
|
56
|
-
constructor(source: TensorSource);
|
|
57
|
-
static from(source: TensorSource): TensorPipeline;
|
|
58
|
-
canny(options?: CannyOptions): this;
|
|
59
|
-
depthNormals(options?: DepthNormalsOptions): this;
|
|
60
|
-
poseSkeleton(options?: PoseSkeletonOptions): this;
|
|
61
|
-
pose(landmarks: NormalizedLandmarkList, options?: Omit<PoseSkeletonOptions, "landmarks">): this;
|
|
62
|
-
faceLandmarks(options?: FaceLandmarksOptions): this;
|
|
63
|
-
face(landmarks: NormalizedLandmarkList, options?: Omit<FaceLandmarksOptions, "landmarks">): this;
|
|
64
|
-
segmentation(options?: SegmentationOptions): this;
|
|
65
|
-
opticalFlow(options?: OpticalFlowOptions): this;
|
|
66
|
-
deflicker(options?: DeflickerOptions): this;
|
|
67
|
-
getMultiplexer(): ControlNetMultiplexer;
|
|
68
|
-
execute(device: GPUDevice, overrideSourceTexture?: GPUTexture): Promise<ControlNetConditioningOutputs>;
|
|
69
|
-
toConfig(): TensorPipelineConfig;
|
|
70
|
-
toNode(): TensorNode;
|
|
71
|
-
destroy(): void;
|
|
72
|
-
}
|
|
73
|
-
//#endregion
|
|
74
|
-
//#region src/pipelines/canny-pipeline.d.ts
|
|
75
|
-
declare class CannyComputePipeline {
|
|
76
|
-
private device;
|
|
77
|
-
private sobelPipeline;
|
|
78
|
-
private nmsRgba8Pipeline;
|
|
79
|
-
private nmsR32fPipeline;
|
|
80
|
-
private uniformBuffer;
|
|
81
|
-
private cachedIntermediateTexture?;
|
|
82
|
-
private cachedOutputTexture?;
|
|
83
|
-
constructor(device: GPUDevice);
|
|
84
|
-
execute(inputTexture: GPUTexture, options?: CannyOptions): GPUTexture;
|
|
85
|
-
destroy(): void;
|
|
86
|
-
}
|
|
87
|
-
//#endregion
|
|
88
|
-
//#region src/pipelines/depth-normals-pipeline.d.ts
|
|
89
|
-
declare class DepthNormalsComputePipeline {
|
|
90
|
-
private device;
|
|
91
|
-
private normalRgba16fPipeline;
|
|
92
|
-
private normalRgba8Pipeline;
|
|
93
|
-
private uniformBuffer;
|
|
94
|
-
private cachedOutputTexture?;
|
|
95
|
-
constructor(device: GPUDevice);
|
|
96
|
-
execute(depthTexture: GPUTexture, options?: DepthNormalsOptions): GPUTexture;
|
|
97
|
-
destroy(): void;
|
|
98
|
-
}
|
|
99
|
-
//#endregion
|
|
100
|
-
//#region src/pipelines/face-landmarks-pipeline.d.ts
|
|
101
|
-
|
|
102
|
-
//#endregion
|
|
103
|
-
//#region src/pipelines/optical-flow-pipeline.d.ts
|
|
104
|
-
declare class OpticalFlowComputePipeline {
|
|
105
|
-
private device;
|
|
106
|
-
private directPipeline;
|
|
107
|
-
private refinePipeline;
|
|
108
|
-
private directUniformBuffer;
|
|
109
|
-
private refineUniformBuffer;
|
|
110
|
-
private bilinearSampler;
|
|
111
|
-
private cachedCoarseTexture?;
|
|
112
|
-
private cachedOutputTexture?;
|
|
113
|
-
constructor(device: GPUDevice);
|
|
114
|
-
execute(prevTexture: GPUTexture, currTexture: GPUTexture, options?: OpticalFlowOptions, customEncoder?: GPUCommandEncoder): GPUTexture;
|
|
115
|
-
destroy(): void;
|
|
116
|
-
}
|
|
117
|
-
//#endregion
|
|
118
|
-
//#region src/pipelines/pose-skeleton-pipeline.d.ts
|
|
119
|
-
|
|
120
|
-
//#endregion
|
|
121
|
-
//#region src/pipelines/temporal-deflicker-pipeline.d.ts
|
|
122
|
-
declare class TemporalDeflickerPipeline {
|
|
123
|
-
private device;
|
|
124
|
-
private flowPipeline;
|
|
125
|
-
private rgba8Pipeline;
|
|
126
|
-
private rgba16fPipeline;
|
|
127
|
-
private uniformBuffer;
|
|
128
|
-
private bilinearSampler;
|
|
129
|
-
private historyTexture?;
|
|
130
|
-
private cachedOutputTexture?;
|
|
131
|
-
constructor(device: GPUDevice);
|
|
132
|
-
execute(currTexture: GPUTexture, options?: DeflickerOptions, customEncoder?: GPUCommandEncoder): GPUTexture;
|
|
133
|
-
reset(): void;
|
|
134
|
-
destroy(): void;
|
|
135
|
-
}
|
|
136
|
-
//#endregion
|
|
137
|
-
//#region src/shaders/canny.wgsl.d.ts
|
|
138
|
-
/**
|
|
139
|
-
* @file canny.wgsl.ts
|
|
140
|
-
* High-performance WebGPU Canny Edge Compute Shaders
|
|
141
|
-
* Pass 1: Sobel gradient magnitude & quantized angle
|
|
142
|
-
* Pass 2: Non-Maximum Suppression (NMS) & Dual-Threshold Hysteresis
|
|
143
|
-
*/
|
|
144
|
-
//#endregion
|
|
145
|
-
//#region ../vision/dist/index-BAY5GFXg.d.mts
|
|
146
|
-
type VisionModelKey = "rtmdet-ins-t" | "rtmdet-ins-s" | "rtmdet-ins-m" | "rtmo-t" | "rtmo-s" | "rtmo-m" | "selfie-square" | "selfie-landscape" | (string & {});
|
|
147
|
-
/** Which decoder a model's outputs feed (see runner/vision-runner.ts). */
|
|
148
|
-
type VisionModelFamily = "rtmdet-ins" | "rtmo" | "selfie" | (string & {});
|
|
149
|
-
interface VisionModelDescriptor {
|
|
150
|
-
readonly key: VisionModelKey;
|
|
151
|
-
readonly family: VisionModelFamily;
|
|
152
|
-
/** Cache filename (also the path appended to a custom `baseUrl`). */
|
|
153
|
-
readonly filename: string;
|
|
154
|
-
/** Pinned download URL (immutable revision). */
|
|
155
|
-
readonly url: string;
|
|
156
|
-
/** Exact byte size of the pinned file. */
|
|
157
|
-
readonly bytes: number;
|
|
158
|
-
/** Hex SHA-256 of the pinned file. */
|
|
159
|
-
readonly sha256: string;
|
|
160
|
-
/** Model input size, `[width, height]` — must match the ONNX graph's input shape. */
|
|
161
|
-
readonly input: readonly [number, number];
|
|
162
|
-
/** Upstream project and license, surfaced in docs and errors. */
|
|
163
|
-
readonly source: string;
|
|
164
|
-
/** License identifier when not Apache-2.0; the store requires acceptance to download it. */
|
|
165
|
-
readonly license?: string;
|
|
166
|
-
}
|
|
167
|
-
/** COCO 80 class names — index order matches the RTMDet-Ins `labels` output. */
|
|
168
|
-
declare const COCO_CLASSES: readonly ["person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat", "traffic light", "fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow", "elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase", "frisbee", "skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard", "surfboard", "tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple", "sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch", "potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard", "cell phone", "microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors", "teddy bear", "hair drier", "toothbrush"];
|
|
169
|
-
//#endregion
|
|
170
|
-
//#region src/model/model-store.d.ts
|
|
171
|
-
type ModelDownloadStatus = "pending" | "downloading" | "ready" | "error";
|
|
172
|
-
interface VisionModelStoreOptions {
|
|
173
|
-
readonly modelsDir?: string;
|
|
174
|
-
/**
|
|
175
|
-
* Mirror origin: models are fetched from `<baseUrl>/<filename>` instead of their pinned
|
|
176
|
-
* Hugging Face URLs. Defaults to `$FRAMEFIELDS_MODELS_BASE_URL` when set.
|
|
177
|
-
*/
|
|
178
|
-
readonly baseUrl?: string;
|
|
179
|
-
readonly timeoutMs?: number;
|
|
180
|
-
/** Extra attempts after a network error, HTTP 429 or 5xx. Default 2. */
|
|
181
|
-
readonly retries?: number;
|
|
182
|
-
/** Base backoff between attempts (doubles each retry). Default 1000 ms. */
|
|
183
|
-
readonly retryDelayMs?: number;
|
|
184
|
-
/**
|
|
185
|
-
* Verify byte size + SHA-256 against the registry (default true). Only offline tests
|
|
186
|
-
* that serve fake bytes should turn this off.
|
|
187
|
-
*/
|
|
188
|
-
readonly verify?: boolean;
|
|
189
|
-
/** Injectable fetch — offline unit tests inject a mock. */
|
|
190
|
-
readonly fetchImpl?: typeof fetch;
|
|
191
|
-
readonly onProgress?: (key: VisionModelKey, bytesLoaded: number, totalBytes: number) => void;
|
|
192
|
-
/**
|
|
193
|
-
* Explicitly agree to non-Apache licenses (such as Meta's SAM License)
|
|
194
|
-
* required by downloaded models.
|
|
195
|
-
*/
|
|
196
|
-
readonly acceptLicense?: boolean;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Resolves the default model cache directory:
|
|
200
|
-
* 1. `FRAMEFIELDS_MODELS_DIR`
|
|
201
|
-
* 2. `~/.cache/framefields/models`
|
|
202
|
-
*/
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Lazy model store. The constructor performs ZERO I/O; the only entry that can hit the
|
|
206
|
-
* network is `ensure(key)`, called by an inference function the first time it runs.
|
|
207
|
-
* Concurrent callers of the same key share a single in-flight download (promise dedupe),
|
|
208
|
-
* downloads are written atomically (temp + rename), and verified files on disk are reused
|
|
209
|
-
* across processes.
|
|
210
|
-
*/
|
|
211
|
-
declare class VisionModelStore {
|
|
212
|
-
private readonly _modelsDir;
|
|
213
|
-
private readonly _baseUrl?;
|
|
214
|
-
private readonly _timeoutMs?;
|
|
215
|
-
private readonly _retries;
|
|
216
|
-
private readonly _retryDelayMs;
|
|
217
|
-
private readonly _verify;
|
|
218
|
-
private readonly _fetch;
|
|
219
|
-
private readonly _onProgress?;
|
|
220
|
-
private readonly _acceptLicense;
|
|
221
|
-
private _inflight;
|
|
222
|
-
private _buffers;
|
|
223
|
-
private _status;
|
|
224
|
-
constructor(options?: VisionModelStoreOptions);
|
|
225
|
-
get modelsDir(): string;
|
|
226
|
-
pathFor(key: VisionModelKey): string;
|
|
227
|
-
descriptor(key: VisionModelKey): VisionModelDescriptor;
|
|
228
|
-
/** The URL `ensure(key)` downloads from (mirror when `baseUrl` is set). */
|
|
229
|
-
urlFor(key: VisionModelKey): string;
|
|
230
|
-
/** True when a complete cached file exists (exact registry size when verifying). */
|
|
231
|
-
has(key: VisionModelKey): boolean;
|
|
232
|
-
/** Drops a cached model (file + memory) so the next `ensure` re-downloads it. */
|
|
233
|
-
evict(key: VisionModelKey): Promise<void>;
|
|
234
|
-
status(key: VisionModelKey): ModelDownloadStatus;
|
|
235
|
-
/** Snapshot of every tracked model's status (empty until anything is fetched). */
|
|
236
|
-
statuses(): ReadonlyMap<VisionModelKey, ModelDownloadStatus>;
|
|
237
|
-
/** True when the model is resident in memory (loaded or downloaded this process). */
|
|
238
|
-
isLoaded(key: VisionModelKey): boolean;
|
|
239
|
-
/**
|
|
240
|
-
* THE only download entry point. Returns the model bytes from memory (cached),
|
|
241
|
-
* loading from disk or fetching from the registry URL as needed.
|
|
242
|
-
*/
|
|
243
|
-
ensure(key: VisionModelKey): Promise<Uint8Array>;
|
|
244
|
-
/** Explicit warm-up — fetch multiple models ahead of use (agents, renderers). */
|
|
245
|
-
preload(keys: readonly VisionModelKey[]): Promise<void>;
|
|
246
|
-
private load;
|
|
247
|
-
/** Fetches with retries on transient failures (network errors, HTTP 429/5xx). */
|
|
248
|
-
private download;
|
|
249
|
-
private verifyBytes;
|
|
250
|
-
private readBuffer;
|
|
251
|
-
/** Drops in-memory buffers (model stays on disk for the next run). */
|
|
252
|
-
clearMemoryCache(): void;
|
|
253
|
-
}
|
|
254
|
-
//#endregion
|
|
255
|
-
//#region src/runtime/session-provider.d.ts
|
|
256
|
-
/**
|
|
257
|
-
* Minimal ONNX Runtime surface — isolates the ORT API to exactly two files so the decode
|
|
258
|
-
* and signals layers never touch it. Node path uses onnxruntime-node (CPU EP); the web
|
|
259
|
-
* entry can swap in a WebGPU-backed provider with the same interface.
|
|
260
|
-
*/
|
|
261
|
-
/** Model output tensor. Integer outputs (e.g. RTMDet-Ins `labels`) arrive as BigInt64Array. */
|
|
262
|
-
interface VisionTensor {
|
|
263
|
-
readonly data: Float32Array | BigInt64Array | Int32Array;
|
|
264
|
-
readonly dims: readonly number[];
|
|
265
|
-
}
|
|
266
|
-
interface VisionTensorInput {
|
|
267
|
-
readonly name: string;
|
|
268
|
-
/** Ignored (may be empty) when `gpuBuffer` is set. */
|
|
269
|
-
readonly data: Float32Array | Int32Array | BigInt64Array | Uint8Array;
|
|
270
|
-
/** The input already on the GPU; only for providers with a `device` (it must be that device's). */
|
|
271
|
-
readonly gpuBuffer?: GPUBuffer;
|
|
272
|
-
readonly dims: readonly number[];
|
|
273
|
-
}
|
|
274
|
-
type VisionTensorOutputs = Readonly<Record<string, VisionTensor>>;
|
|
275
|
-
interface VisionSession {
|
|
276
|
-
run(input: VisionTensorInput): Promise<VisionTensorOutputs>;
|
|
277
|
-
/** Multi-input graphs; optional for compatibility with existing custom providers. */
|
|
278
|
-
runMany?(inputs: readonly VisionTensorInput[]): Promise<VisionTensorOutputs>;
|
|
279
|
-
release(): void;
|
|
280
|
-
}
|
|
281
|
-
/** External ONNX tensor files, verified by the model store before session creation. */
|
|
282
|
-
interface VisionSessionOptions {
|
|
283
|
-
readonly externalData?: readonly {
|
|
284
|
-
readonly path: string;
|
|
285
|
-
readonly data: Uint8Array;
|
|
286
|
-
}[];
|
|
287
|
-
}
|
|
288
|
-
/** The hardware sessions run on; it decides which model precision runs fastest. */
|
|
289
|
-
type VisionCompute = "webgpu" | "cuda" | "cpu";
|
|
290
|
-
interface SessionProvider {
|
|
291
|
-
readonly kind: "node" | "webgpu";
|
|
292
|
-
/** The GPU device sessions run on, when they accept `gpuBuffer` inputs from it. */
|
|
293
|
-
readonly device?: GPUDevice;
|
|
294
|
-
/**
|
|
295
|
-
* Where sessions will run, known before any model is downloaded (see
|
|
296
|
-
* {@link sessionCompute}). Optional for custom providers.
|
|
297
|
-
*/
|
|
298
|
-
backend?(): Promise<VisionCompute>;
|
|
299
|
-
createSession(modelBytes: Uint8Array, options?: VisionSessionOptions): Promise<VisionSession>;
|
|
300
|
-
}
|
|
301
|
-
/** Where a provider's sessions run: its own answer, else WebGPU for WebGPU providers, else CPU. */
|
|
302
|
-
|
|
303
|
-
declare namespace types_d_exports {
|
|
304
|
-
export { InstanceMask, LandmarkCoordinateSignals, ObjectAnchorName, PersonMatte, PinToLandmarkOptions, PinToObjectOptions, PoseKeypoint, PosePerson, PoseResult, SegmentationResult, VisionAnalysisClassSummary, VisionAnalysisReport, VisionAnalysisTrackSummary, VisionFrame, VisionGpuImage, VisionImageInput, VisionInputSource, VisionSummary, isGpuImage };
|
|
305
|
-
}
|
|
306
|
-
type VisionInputSource = string | {
|
|
307
|
-
inputHandleId?: string;
|
|
308
|
-
id?: string;
|
|
309
|
-
};
|
|
310
|
-
/** RGBA pixel buffer accepted by the runner. */
|
|
311
|
-
interface VisionImageInput {
|
|
312
|
-
readonly data: Uint8ClampedArray | Uint8Array;
|
|
313
|
-
readonly width: number;
|
|
314
|
-
readonly height: number;
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* A frame that is already on the GPU: an 8-bit RGBA/BGRA texture of `device`.
|
|
318
|
-
* When the runner's sessions run on the same device (see `setVisionDevice`),
|
|
319
|
-
* preprocessing happens on the GPU and the frame never comes back to the CPU;
|
|
320
|
-
* otherwise the runner reads it back.
|
|
321
|
-
*/
|
|
322
|
-
interface VisionGpuImage {
|
|
323
|
-
readonly texture: GPUTexture;
|
|
324
|
-
readonly device: GPUDevice;
|
|
325
|
-
readonly width: number;
|
|
326
|
-
readonly height: number;
|
|
327
|
-
}
|
|
328
|
-
type VisionFrame = VisionImageInput | VisionGpuImage;
|
|
329
|
-
declare function isGpuImage(image: VisionFrame): image is VisionGpuImage;
|
|
330
|
-
/** Instance segmentation mask aligned to the ORIGINAL source frame. */
|
|
331
|
-
interface InstanceMask {
|
|
332
|
-
readonly category: string;
|
|
333
|
-
readonly mask: Uint8Array;
|
|
334
|
-
readonly width: number;
|
|
335
|
-
readonly height: number;
|
|
336
|
-
readonly area: number;
|
|
337
|
-
readonly coverage: number;
|
|
338
|
-
/** Index of the detection this mask belongs to (see segmentation result detections). */
|
|
339
|
-
readonly detectionIndex: number;
|
|
340
|
-
/** Assigned by the caller (renderer) after temporal tracking — matches TrackedObject.trackId. */
|
|
341
|
-
readonly trackId?: number;
|
|
342
|
-
}
|
|
343
|
-
interface SegmentationResult {
|
|
344
|
-
readonly detections: readonly DetectedObject[];
|
|
345
|
-
readonly masks: readonly InstanceMask[];
|
|
346
|
-
}
|
|
347
|
-
/** Person-vs-background alpha (Selfie Segmenter), aligned to the ORIGINAL source frame. */
|
|
348
|
-
interface PersonMatte {
|
|
349
|
-
readonly mask: Uint8Array;
|
|
350
|
-
readonly width: number;
|
|
351
|
-
readonly height: number;
|
|
352
|
-
readonly coverage: number;
|
|
353
|
-
}
|
|
354
|
-
interface PoseKeypoint {
|
|
355
|
-
readonly x: number;
|
|
356
|
-
readonly y: number;
|
|
357
|
-
readonly visibility: number;
|
|
358
|
-
}
|
|
359
|
-
interface PosePerson {
|
|
360
|
-
readonly score: number;
|
|
361
|
-
readonly boundingBox: ObjectBoundingBox;
|
|
362
|
-
/** 17 keypoints in COCO-17 order (see COCO17_KEYPOINTS). */
|
|
363
|
-
readonly keypoints: readonly PoseKeypoint[];
|
|
364
|
-
readonly trackId?: number;
|
|
365
|
-
}
|
|
366
|
-
interface PoseResult {
|
|
367
|
-
readonly people: readonly PosePerson[];
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Deterministic, serializable snapshot of one frame's signals.
|
|
371
|
-
* Built synchronously from the per-frame caches, so it is safe to call inside a frame hook.
|
|
372
|
-
*/
|
|
373
|
-
interface VisionSummary {
|
|
374
|
-
readonly frame: number;
|
|
375
|
-
readonly objects: ReadonlyArray<{
|
|
376
|
-
readonly trackId: number;
|
|
377
|
-
readonly category: string;
|
|
378
|
-
readonly score: number;
|
|
379
|
-
/** Source-space pixel center, `[x, y]`. */
|
|
380
|
-
readonly center: readonly [number, number];
|
|
381
|
-
readonly speed: number;
|
|
382
|
-
readonly active: boolean;
|
|
383
|
-
}>;
|
|
384
|
-
readonly classes: readonly string[];
|
|
385
|
-
/** Per-class instance count for the frame (only non-zero classes present). */
|
|
386
|
-
readonly masks: Readonly<Record<string, number>>;
|
|
387
|
-
}
|
|
388
|
-
/** Per-track aggregate in an analysis report. */
|
|
389
|
-
interface VisionAnalysisTrackSummary {
|
|
390
|
-
readonly trackId: number;
|
|
391
|
-
readonly category: string;
|
|
392
|
-
/** Inclusive frame range the track was active over, `[start, end]`. */
|
|
393
|
-
readonly frames: readonly [number, number];
|
|
394
|
-
readonly speedMeanPxS: number;
|
|
395
|
-
/** Center path sampled every `pathStride` frames, `[x, y]` pairs. */
|
|
396
|
-
readonly centerPath: ReadonlyArray<readonly [number, number]>;
|
|
397
|
-
}
|
|
398
|
-
interface VisionAnalysisClassSummary {
|
|
399
|
-
readonly framesPresent: number;
|
|
400
|
-
readonly totalFrames: number;
|
|
401
|
-
readonly maxConfidence: number;
|
|
402
|
-
readonly tracks: number;
|
|
403
|
-
}
|
|
404
|
-
interface VisionAnalysisReport {
|
|
405
|
-
readonly source: string;
|
|
406
|
-
readonly totalFrames: number;
|
|
407
|
-
readonly fps: number;
|
|
408
|
-
readonly durationSec: number;
|
|
409
|
-
readonly tasks: readonly string[];
|
|
410
|
-
/** What was fetched, and how long it took — surfaced so agents can budget cold starts. */
|
|
411
|
-
readonly modelDownloads: Readonly<Record<string, {
|
|
412
|
-
readonly bytes: number;
|
|
413
|
-
readonly ms: number;
|
|
414
|
-
}>>;
|
|
415
|
-
readonly inferenceMs: number;
|
|
416
|
-
readonly trackCount: number;
|
|
417
|
-
readonly classes: Readonly<Record<string, VisionAnalysisClassSummary>>;
|
|
418
|
-
readonly tracks: readonly VisionAnalysisTrackSummary[];
|
|
419
|
-
readonly masks: Readonly<Record<string, {
|
|
420
|
-
readonly meanCoverage: number;
|
|
421
|
-
}>>;
|
|
422
|
-
}
|
|
423
|
-
interface PinToLandmarkOptions {
|
|
424
|
-
readonly offsetX?: number;
|
|
425
|
-
readonly offsetY?: number;
|
|
426
|
-
readonly offsetZ?: number;
|
|
427
|
-
readonly trackRotation?: boolean;
|
|
428
|
-
readonly scaleWithPerspective?: boolean;
|
|
429
|
-
}
|
|
430
|
-
interface LandmarkCoordinateSignals {
|
|
431
|
-
readonly x: ProgrammaticSignal;
|
|
432
|
-
readonly y: ProgrammaticSignal;
|
|
433
|
-
readonly z: ProgrammaticSignal;
|
|
434
|
-
readonly screenX: ProgrammaticSignal;
|
|
435
|
-
readonly screenY: ProgrammaticSignal;
|
|
436
|
-
}
|
|
437
|
-
type ObjectAnchorName = "center" | "topCenter" | "bottomCenter" | "topLeft" | "topRight" | "centerLeft" | "centerRight" | "bottomLeft" | "bottomRight";
|
|
438
|
-
interface PinToObjectOptions extends PinToLandmarkOptions {
|
|
439
|
-
readonly anchor?: ObjectAnchorName;
|
|
440
|
-
readonly matchWidth?: boolean;
|
|
441
|
-
readonly matchHeight?: boolean;
|
|
442
|
-
readonly smoothFrames?: number;
|
|
443
|
-
readonly hideWhenLost?: boolean;
|
|
444
|
-
}
|
|
445
|
-
//#endregion
|
|
446
|
-
//#region src/runner/vision-runner.d.ts
|
|
447
|
-
interface VisionRunnerOptions {
|
|
448
|
-
/** Model size for detect/segment/pose. Default "s". */
|
|
449
|
-
readonly variant?: VisionVariant;
|
|
450
|
-
/** Minimum detection / person score, 0..1. Default 0.3. */
|
|
451
|
-
readonly confidence?: number;
|
|
452
|
-
/** COCO class-name filter for detect/segment (all classes when omitted). */
|
|
453
|
-
readonly classes?: readonly string[];
|
|
454
|
-
readonly maskThreshold?: number;
|
|
455
|
-
readonly featherRadius?: number;
|
|
456
|
-
readonly modelsDir?: string;
|
|
457
|
-
/** Mirror origin for model downloads (see VisionModelStore). */
|
|
458
|
-
readonly baseUrl?: string;
|
|
459
|
-
readonly timeoutMs?: number;
|
|
460
|
-
/** Session backend. Default: WebGPU when possible, else onnxruntime-node (CPU); see `AutoSessionProvider`. Browser: `createWebGPUProvider()`. */
|
|
461
|
-
readonly provider?: SessionProvider;
|
|
462
|
-
/** Inject a model store (tests, shared caches). Overrides modelsDir/baseUrl/timeoutMs. */
|
|
463
|
-
readonly store?: VisionModelStore;
|
|
464
|
-
readonly onProgress?: (key: VisionModelKey, bytesLoaded: number, totalBytes: number) => void;
|
|
465
|
-
}
|
|
466
|
-
/** Options that only change how outputs are decoded — not which model runs. */
|
|
467
|
-
type VisionDecodeOptions = Pick<VisionRunnerOptions, "confidence" | "classes" | "maskThreshold" | "featherRadius">;
|
|
468
|
-
/**
|
|
469
|
-
* Lazy vision runner.
|
|
470
|
-
*
|
|
471
|
-
* `create()` performs ZERO I/O: no downloads, no sessions. Each inference method downloads
|
|
472
|
-
* its model and warms its session on FIRST USE ONLY, then reuses them for the process
|
|
473
|
-
* lifetime. `detect()` and `segment()` share one RTMDet-Ins forward pass per frame.
|
|
474
|
-
* Call `close()` to release sessions.
|
|
475
|
-
*/
|
|
476
|
-
declare class VisionRunner {
|
|
477
|
-
readonly variant: VisionVariant;
|
|
478
|
-
readonly confidence: number;
|
|
479
|
-
readonly classes?: readonly string[];
|
|
480
|
-
readonly maskThreshold: number;
|
|
481
|
-
readonly featherRadius?: number;
|
|
482
|
-
private readonly _core;
|
|
483
|
-
/** False for derived runners: their sessions belong to the runner they came from. */
|
|
484
|
-
private readonly _ownsCore;
|
|
485
|
-
private constructor();
|
|
486
|
-
/** Cheap: no downloads, no sessions, no side effects. */
|
|
487
|
-
static create(options?: VisionRunnerOptions): VisionRunner;
|
|
488
|
-
/**
|
|
489
|
-
* A runner with other decode options (confidence, classes, mask threshold,
|
|
490
|
-
* feather) that shares this runner's models, sessions and per-frame RTMDet-Ins
|
|
491
|
-
* pass — e.g. one per layer, without loading a model twice. Its `close()` is a
|
|
492
|
-
* no-op; closing this runner releases the shared sessions.
|
|
493
|
-
*/
|
|
494
|
-
derive(options: VisionDecodeOptions): VisionRunner;
|
|
495
|
-
get modelsDir(): string;
|
|
496
|
-
/** Every registry model keyed to its current download state (downloaded → "ready"). */
|
|
497
|
-
get downloadStatus(): ReadonlyMap<VisionModelKey, ModelDownloadStatus>;
|
|
498
|
-
/** The model serving `task` (matte depends on frame aspect; defaults to square). */
|
|
499
|
-
modelKeyFor(task: VisionTask, aspect?: number): VisionModelKey;
|
|
500
|
-
/**
|
|
501
|
-
* Explicit warm-up: downloads + sessions for the given tasks, ahead of first use.
|
|
502
|
-
* `matte` warms both aspect variants (the frame aspect is unknown until inference).
|
|
503
|
-
*/
|
|
504
|
-
preload(tasks?: readonly VisionTask[]): Promise<void>;
|
|
505
|
-
/** COCO-80 boxes (sorted by score, source pixels). Masks are not decoded. */
|
|
506
|
-
detect(image: VisionFrame): Promise<readonly DetectedObject[]>;
|
|
507
|
-
/** COCO-80 boxes plus a frame-aligned soft mask per instance. */
|
|
508
|
-
segment(image: VisionFrame): Promise<SegmentationResult>;
|
|
509
|
-
/** COCO-17 keypoints per person (source pixels), highest score first. */
|
|
510
|
-
pose(image: VisionFrame): Promise<PoseResult>;
|
|
511
|
-
/** Person-vs-background alpha for the whole frame (Selfie Segmenter). */
|
|
512
|
-
matte(image: VisionFrame): Promise<PersonMatte>;
|
|
513
|
-
close(): void;
|
|
514
|
-
private instancePass;
|
|
515
|
-
private instanceDecodeOptions;
|
|
516
|
-
/**
|
|
517
|
-
* Runs one model on one image. Runs of the same model are queued: they share
|
|
518
|
-
* the input scratch buffer, and one run already uses the session's threads.
|
|
519
|
-
*/
|
|
520
|
-
private infer;
|
|
521
|
-
private inferNow;
|
|
522
|
-
private gpuInput;
|
|
523
|
-
private session;
|
|
524
|
-
}
|
|
525
|
-
//#endregion
|
|
526
|
-
//#region src/analysis/analyze-sequence.d.ts
|
|
527
|
-
/**
|
|
528
|
-
* One-shot, ffmpeg-free sequence analysis.
|
|
529
|
-
*
|
|
530
|
-
* Pure frame-iterable analyzer: it never decodes media itself, so it stays engine-only and
|
|
531
|
-
* offline-testable. Callers (e.g. the framefields ingestion adapter) supply decoded frames.
|
|
532
|
-
* Model loading remains lazy — the runner downloads each task's model on the first frame
|
|
533
|
-
* that actually runs that task, and only the tasks requested here are ever touched.
|
|
534
|
-
*/
|
|
535
|
-
interface AnalyzeSequenceOptions {
|
|
536
|
-
readonly runner: VisionRunner;
|
|
537
|
-
/** Label for the report ("clip.mp4" or similar). Defaults to "frames". */
|
|
538
|
-
readonly source?: string;
|
|
539
|
-
readonly fps?: number;
|
|
540
|
-
/** Tasks to run. Defaults to `["detect"]`. Only these models are ever downloaded. */
|
|
541
|
-
readonly tasks?: readonly VisionTask[];
|
|
542
|
-
/** Restrict class summaries to these categories (all when omitted). */
|
|
543
|
-
readonly categories?: readonly string[];
|
|
544
|
-
/** Tracker box-association IoU. Default 0.25. */
|
|
545
|
-
readonly iouThreshold?: number;
|
|
546
|
-
readonly maxMissedFrames?: number;
|
|
547
|
-
/** Sample the per-track center path every N frames. Default: ~50 points across the clip. */
|
|
548
|
-
readonly pathStride?: number;
|
|
549
|
-
/** Also aggregate instance-mask coverage (requires the `segment` task). Default false. */
|
|
550
|
-
readonly includeMasks?: boolean;
|
|
551
|
-
}
|
|
552
|
-
declare function analyzeSequence(frames: AsyncIterable<VisionImageInput> | Iterable<VisionImageInput>, options: AnalyzeSequenceOptions): Promise<VisionAnalysisReport>;
|
|
553
|
-
//#endregion
|
|
554
|
-
//#region src/decode/preprocess.d.ts
|
|
555
|
-
/**
|
|
556
|
-
* Image → NCHW float tensor preprocessing, plus the inverse mapping back to source pixels.
|
|
557
|
-
*
|
|
558
|
-
* Each model family was exported with its own preprocessing contract:
|
|
559
|
-
*
|
|
560
|
-
* | Model | Resize | Pad | Channels | Values |
|
|
561
|
-
* | ----------- | ---------------------------- | ---- | -------- | -------------------------- |
|
|
562
|
-
* | RTMDet-Ins | keep ratio, content top-left | 114 | BGR | (v − mean) / std (ImageNet) |
|
|
563
|
-
* | RTMO | keep ratio, content centered | 114 | BGR | raw 0..255 |
|
|
564
|
-
* | Selfie | stretch to input | — | RGB | v / 255 |
|
|
565
|
-
*
|
|
566
|
-
* Getting any of these wrong does not crash — it silently degrades accuracy — so the specs
|
|
567
|
-
* live here and every runner path goes through `imageToTensor`. Input sizes differ per model
|
|
568
|
-
* (RTMO-t is 416², the rest of RTMO 640²), so they come from the registry, never from here.
|
|
569
|
-
*/
|
|
570
|
-
|
|
571
|
-
//#endregion
|
|
572
|
-
//#region src/gpu/pose-skeleton-renderer.d.ts
|
|
573
|
-
/**
|
|
574
|
-
* WebGPU skeleton renderer for pose results.
|
|
575
|
-
*
|
|
576
|
-
* Rasterizes the primary person's COCO-17 keypoints into an OpenPose-style
|
|
577
|
-
* conditioning texture natively in VRAM, using the COCO-17 bone set.
|
|
578
|
-
*/
|
|
579
|
-
declare class PoseSkeletonRenderer {
|
|
580
|
-
private pipeline;
|
|
581
|
-
constructor(device: GPUDevice);
|
|
582
|
-
renderToTexture(keypoints: readonly PoseKeypoint[], options: PoseSkeletonOptions, bones?: readonly [{
|
|
583
|
-
readonly from: 0;
|
|
584
|
-
readonly to: 5;
|
|
585
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
586
|
-
}, {
|
|
587
|
-
readonly from: 0;
|
|
588
|
-
readonly to: 6;
|
|
589
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
590
|
-
}, {
|
|
591
|
-
readonly from: 5;
|
|
592
|
-
readonly to: 6;
|
|
593
|
-
readonly color: readonly [1, 0, 0, 1];
|
|
594
|
-
}, {
|
|
595
|
-
readonly from: 5;
|
|
596
|
-
readonly to: 7;
|
|
597
|
-
readonly color: readonly [1, 0.333, 0, 1];
|
|
598
|
-
}, {
|
|
599
|
-
readonly from: 7;
|
|
600
|
-
readonly to: 9;
|
|
601
|
-
readonly color: readonly [1, 0.667, 0, 1];
|
|
602
|
-
}, {
|
|
603
|
-
readonly from: 6;
|
|
604
|
-
readonly to: 8;
|
|
605
|
-
readonly color: readonly [1, 1, 0, 1];
|
|
606
|
-
}, {
|
|
607
|
-
readonly from: 8;
|
|
608
|
-
readonly to: 10;
|
|
609
|
-
readonly color: readonly [0.667, 1, 0, 1];
|
|
610
|
-
}, {
|
|
611
|
-
readonly from: 5;
|
|
612
|
-
readonly to: 11;
|
|
613
|
-
readonly color: readonly [0.333, 1, 0, 1];
|
|
614
|
-
}, {
|
|
615
|
-
readonly from: 6;
|
|
616
|
-
readonly to: 12;
|
|
617
|
-
readonly color: readonly [0, 1, 0, 1];
|
|
618
|
-
}, {
|
|
619
|
-
readonly from: 11;
|
|
620
|
-
readonly to: 12;
|
|
621
|
-
readonly color: readonly [0, 1, 0.333, 1];
|
|
622
|
-
}, {
|
|
623
|
-
readonly from: 11;
|
|
624
|
-
readonly to: 13;
|
|
625
|
-
readonly color: readonly [0, 1, 0.667, 1];
|
|
626
|
-
}, {
|
|
627
|
-
readonly from: 13;
|
|
628
|
-
readonly to: 15;
|
|
629
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
630
|
-
}, {
|
|
631
|
-
readonly from: 12;
|
|
632
|
-
readonly to: 14;
|
|
633
|
-
readonly color: readonly [0, 0.667, 1, 1];
|
|
634
|
-
}, {
|
|
635
|
-
readonly from: 14;
|
|
636
|
-
readonly to: 16;
|
|
637
|
-
readonly color: readonly [0, 0.333, 1, 1];
|
|
638
|
-
}]): GPUTexture;
|
|
639
|
-
destroy(): void;
|
|
640
|
-
}
|
|
641
|
-
//#endregion
|
|
642
|
-
//#region src/gpu/segmentation-texture-pool.d.ts
|
|
643
|
-
interface SegmentationTextureOptions {
|
|
644
|
-
readonly width: number;
|
|
645
|
-
readonly height: number;
|
|
646
|
-
readonly format?: "r8unorm" | "rgba8unorm";
|
|
647
|
-
readonly label?: string;
|
|
648
|
-
}
|
|
649
|
-
declare class SegmentationTexturePool {
|
|
650
|
-
private device;
|
|
651
|
-
private pool;
|
|
652
|
-
constructor(device: GPUDevice);
|
|
653
|
-
getOrCreateTexture(key: string, options: SegmentationTextureOptions): GPUTexture;
|
|
654
|
-
uploadMask(key: string, maskData: Uint8Array | Float32Array, width: number, height: number): GPUTexture;
|
|
655
|
-
destroy(): void;
|
|
656
|
-
}
|
|
657
|
-
//#endregion
|
|
658
|
-
//#region src/model/onnx-proto.d.ts
|
|
659
|
-
/**
|
|
660
|
-
* Minimal ONNX protobuf wire-format helpers: split a message into fields,
|
|
661
|
-
* read strings, write length-delimited fields. Only what the graph editors
|
|
662
|
-
* (onnx-subgraph.ts, onnx-float16.ts) need; unknown fields are copied as raw
|
|
663
|
-
* bytes, so nothing else in a model is touched.
|
|
664
|
-
*/
|
|
665
|
-
|
|
666
|
-
//#endregion
|
|
667
|
-
//#region src/pose/keypoints.d.ts
|
|
668
|
-
/** COCO-17 keypoint indices (RTMO output order). */
|
|
669
|
-
declare const COCO17_KEYPOINTS: {
|
|
670
|
-
readonly NOSE: 0;
|
|
671
|
-
readonly LEFT_EYE: 1;
|
|
672
|
-
readonly RIGHT_EYE: 2;
|
|
673
|
-
readonly LEFT_EAR: 3;
|
|
674
|
-
readonly RIGHT_EAR: 4;
|
|
675
|
-
readonly LEFT_SHOULDER: 5;
|
|
676
|
-
readonly RIGHT_SHOULDER: 6;
|
|
677
|
-
readonly LEFT_ELBOW: 7;
|
|
678
|
-
readonly RIGHT_ELBOW: 8;
|
|
679
|
-
readonly LEFT_WRIST: 9;
|
|
680
|
-
readonly RIGHT_WRIST: 10;
|
|
681
|
-
readonly LEFT_HIP: 11;
|
|
682
|
-
readonly RIGHT_HIP: 12;
|
|
683
|
-
readonly LEFT_KNEE: 13;
|
|
684
|
-
readonly RIGHT_KNEE: 14;
|
|
685
|
-
readonly LEFT_ANKLE: 15;
|
|
686
|
-
readonly RIGHT_ANKLE: 16;
|
|
687
|
-
};
|
|
688
|
-
declare const COCO17_KEYPOINT_NAMES: readonly ["nose", "leftEye", "rightEye", "leftEar", "rightEar", "leftShoulder", "rightShoulder", "leftElbow", "rightElbow", "leftWrist", "rightWrist", "leftHip", "rightHip", "leftKnee", "rightKnee", "leftAnkle", "rightAnkle"];
|
|
689
|
-
/** COCO-17 skeleton bones for the WebGPU skeleton renderer (indices above). */
|
|
690
|
-
declare const COCO17_BONES: readonly [{
|
|
691
|
-
readonly from: 0;
|
|
692
|
-
readonly to: 5;
|
|
693
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
694
|
-
}, {
|
|
695
|
-
readonly from: 0;
|
|
696
|
-
readonly to: 6;
|
|
697
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
698
|
-
}, {
|
|
699
|
-
readonly from: 5;
|
|
700
|
-
readonly to: 6;
|
|
701
|
-
readonly color: readonly [1, 0, 0, 1];
|
|
702
|
-
}, {
|
|
703
|
-
readonly from: 5;
|
|
704
|
-
readonly to: 7;
|
|
705
|
-
readonly color: readonly [1, 0.333, 0, 1];
|
|
706
|
-
}, {
|
|
707
|
-
readonly from: 7;
|
|
708
|
-
readonly to: 9;
|
|
709
|
-
readonly color: readonly [1, 0.667, 0, 1];
|
|
710
|
-
}, {
|
|
711
|
-
readonly from: 6;
|
|
712
|
-
readonly to: 8;
|
|
713
|
-
readonly color: readonly [1, 1, 0, 1];
|
|
714
|
-
}, {
|
|
715
|
-
readonly from: 8;
|
|
716
|
-
readonly to: 10;
|
|
717
|
-
readonly color: readonly [0.667, 1, 0, 1];
|
|
718
|
-
}, {
|
|
719
|
-
readonly from: 5;
|
|
720
|
-
readonly to: 11;
|
|
721
|
-
readonly color: readonly [0.333, 1, 0, 1];
|
|
722
|
-
}, {
|
|
723
|
-
readonly from: 6;
|
|
724
|
-
readonly to: 12;
|
|
725
|
-
readonly color: readonly [0, 1, 0, 1];
|
|
726
|
-
}, {
|
|
727
|
-
readonly from: 11;
|
|
728
|
-
readonly to: 12;
|
|
729
|
-
readonly color: readonly [0, 1, 0.333, 1];
|
|
730
|
-
}, {
|
|
731
|
-
readonly from: 11;
|
|
732
|
-
readonly to: 13;
|
|
733
|
-
readonly color: readonly [0, 1, 0.667, 1];
|
|
734
|
-
}, {
|
|
735
|
-
readonly from: 13;
|
|
736
|
-
readonly to: 15;
|
|
737
|
-
readonly color: readonly [0, 1, 1, 1];
|
|
738
|
-
}, {
|
|
739
|
-
readonly from: 12;
|
|
740
|
-
readonly to: 14;
|
|
741
|
-
readonly color: readonly [0, 0.667, 1, 1];
|
|
742
|
-
}, {
|
|
743
|
-
readonly from: 14;
|
|
744
|
-
readonly to: 16;
|
|
745
|
-
readonly color: readonly [0, 0.333, 1, 1];
|
|
746
|
-
}];
|
|
747
|
-
//#endregion
|
|
748
|
-
//#region src/runner/canonical-baselines.d.ts
|
|
749
|
-
/** Neutral fallbacks so signal evaluators always have a well-formed frame to read. */
|
|
750
|
-
|
|
751
|
-
interface ClipSubjectSource {
|
|
752
|
-
/** An explicit selection must not silently fall back to automatic subject detection. */
|
|
753
|
-
readonly exact?: boolean;
|
|
754
|
-
/**
|
|
755
|
-
* The merged subject mask for a source frame of the clip (`frame` at `fps`),
|
|
756
|
-
* in source pixels; `null` when the frame was analysed and holds no subject;
|
|
757
|
-
* `undefined` when it was not analysed, so the caller segments it itself.
|
|
758
|
-
*/
|
|
759
|
-
subject(frame: number, fps: number): InstanceMask | null | undefined;
|
|
760
|
-
/**
|
|
761
|
-
* The subject's pose for a source frame; `null` when the frame was analysed
|
|
762
|
-
* and holds no matched pose; `undefined` when it was not analysed (or the
|
|
763
|
-
* clip tracks no pose).
|
|
764
|
-
*/
|
|
765
|
-
pose?(frame: number, fps: number): ClipPose | null | undefined;
|
|
766
|
-
}
|
|
767
|
-
interface ClipPose {
|
|
768
|
-
/** 17 COCO keypoints, normalized to the source size. */
|
|
769
|
-
readonly keypoints: readonly PoseKeypoint[];
|
|
770
|
-
/** Source size in pixels, for fitting the pose to a target. */
|
|
771
|
-
readonly width: number;
|
|
772
|
-
readonly height: number;
|
|
773
|
-
}
|
|
774
|
-
//#endregion
|
|
775
|
-
//#region src/segmentation/subject.d.ts
|
|
776
|
-
/**
|
|
777
|
-
* The frame's primary instance: the largest person when present, else the most confident
|
|
778
|
-
* instance (lowest `detectionIndex` — detections are score-sorted). Size alone is a poor
|
|
779
|
-
* signal without a person: the largest instance is usually a backdrop ("dining table").
|
|
780
|
-
* `classes` (case-insensitive) limits which instances can be the subject.
|
|
781
|
-
*/
|
|
782
|
-
|
|
783
|
-
//#endregion
|
|
784
|
-
//#region src/signals/vision-bundle.d.ts
|
|
785
|
-
interface VisionBundleOptions {
|
|
786
|
-
readonly totalFrames?: number;
|
|
787
|
-
readonly fps?: number;
|
|
788
|
-
readonly width?: number;
|
|
789
|
-
readonly height?: number;
|
|
790
|
-
readonly cameraFov?: number;
|
|
791
|
-
readonly config?: types_d_exports.VisionConfig;
|
|
792
|
-
/** Lazy source-frame masks, for clips retaining compressed masks instead of RGBA-sized histories. */
|
|
793
|
-
readonly maskSource?: (frame: number) => readonly InstanceMask[] | undefined;
|
|
794
|
-
readonly matteSource?: (frame: number) => PersonMatte | undefined;
|
|
795
|
-
}
|
|
796
|
-
/** Named pose landmarks (COCO-17) plus numeric proxy access to any of the 17 keypoints. */
|
|
797
|
-
interface PoseLandmarkSignals {
|
|
798
|
-
readonly shoulder: LandmarkCoordinateSignals;
|
|
799
|
-
readonly leftShoulder: LandmarkCoordinateSignals;
|
|
800
|
-
readonly rightShoulder: LandmarkCoordinateSignals;
|
|
801
|
-
readonly leftElbow: LandmarkCoordinateSignals;
|
|
802
|
-
readonly rightElbow: LandmarkCoordinateSignals;
|
|
803
|
-
readonly leftWrist: LandmarkCoordinateSignals;
|
|
804
|
-
readonly rightWrist: LandmarkCoordinateSignals;
|
|
805
|
-
readonly leftHip: LandmarkCoordinateSignals;
|
|
806
|
-
readonly rightHip: LandmarkCoordinateSignals;
|
|
807
|
-
readonly leftKnee: LandmarkCoordinateSignals;
|
|
808
|
-
readonly rightKnee: LandmarkCoordinateSignals;
|
|
809
|
-
readonly leftAnkle: LandmarkCoordinateSignals;
|
|
810
|
-
readonly rightAnkle: LandmarkCoordinateSignals;
|
|
811
|
-
readonly nose: LandmarkCoordinateSignals;
|
|
812
|
-
readonly leftEye: LandmarkCoordinateSignals;
|
|
813
|
-
readonly rightEye: LandmarkCoordinateSignals;
|
|
814
|
-
readonly leftEar: LandmarkCoordinateSignals;
|
|
815
|
-
readonly rightEar: LandmarkCoordinateSignals;
|
|
816
|
-
get(keypointIndex: number): LandmarkCoordinateSignals;
|
|
817
|
-
}
|
|
818
|
-
interface TrackPoseSignals extends PoseLandmarkSignals {
|
|
819
|
-
readonly hasPose: ProgrammaticSignal;
|
|
820
|
-
readonly wristSpeed: ProgrammaticSignal;
|
|
821
|
-
readonly handRaised: ProgrammaticSignal;
|
|
822
|
-
readonly bodyTiltAngle: ProgrammaticSignal;
|
|
823
|
-
}
|
|
824
|
-
interface ObjectBoundingBoxSignals {
|
|
825
|
-
readonly x: ProgrammaticSignal;
|
|
826
|
-
readonly y: ProgrammaticSignal;
|
|
827
|
-
readonly width: ProgrammaticSignal;
|
|
828
|
-
readonly height: ProgrammaticSignal;
|
|
829
|
-
readonly screenX: ProgrammaticSignal;
|
|
830
|
-
readonly screenY: ProgrammaticSignal;
|
|
831
|
-
readonly screenWidth: ProgrammaticSignal;
|
|
832
|
-
readonly screenHeight: ProgrammaticSignal;
|
|
833
|
-
readonly aspectRatio: ProgrammaticSignal;
|
|
834
|
-
readonly area: ProgrammaticSignal;
|
|
835
|
-
}
|
|
836
|
-
interface ObjectAnchorsSignals {
|
|
837
|
-
readonly topLeft: LandmarkCoordinateSignals;
|
|
838
|
-
readonly topCenter: LandmarkCoordinateSignals;
|
|
839
|
-
readonly topRight: LandmarkCoordinateSignals;
|
|
840
|
-
readonly centerLeft: LandmarkCoordinateSignals;
|
|
841
|
-
readonly center: LandmarkCoordinateSignals;
|
|
842
|
-
readonly centerRight: LandmarkCoordinateSignals;
|
|
843
|
-
readonly bottomLeft: LandmarkCoordinateSignals;
|
|
844
|
-
readonly bottomCenter: LandmarkCoordinateSignals;
|
|
845
|
-
readonly bottomRight: LandmarkCoordinateSignals;
|
|
846
|
-
}
|
|
847
|
-
interface ObjectKinematicsSignals {
|
|
848
|
-
readonly vx: ProgrammaticSignal;
|
|
849
|
-
readonly vy: ProgrammaticSignal;
|
|
850
|
-
readonly speed: ProgrammaticSignal;
|
|
851
|
-
readonly acceleration: ProgrammaticSignal;
|
|
852
|
-
readonly headingRad: ProgrammaticSignal;
|
|
853
|
-
readonly headingDeg: ProgrammaticSignal;
|
|
854
|
-
}
|
|
855
|
-
interface ObjectTrackSignals {
|
|
856
|
-
readonly trackId: number;
|
|
857
|
-
readonly category: string;
|
|
858
|
-
readonly bounds: ObjectBoundingBoxSignals;
|
|
859
|
-
readonly anchors: ObjectAnchorsSignals;
|
|
860
|
-
readonly kinematics: ObjectKinematicsSignals;
|
|
861
|
-
readonly confidence: ProgrammaticSignal;
|
|
862
|
-
readonly active: ProgrammaticSignal;
|
|
863
|
-
readonly isCoasting: ProgrammaticSignal;
|
|
864
|
-
readonly age: ProgrammaticSignal;
|
|
865
|
-
readonly pose: TrackPoseSignals;
|
|
866
|
-
readonly center: LandmarkCoordinateSignals;
|
|
867
|
-
readonly topCenter: LandmarkCoordinateSignals;
|
|
868
|
-
readonly bottomCenter: LandmarkCoordinateSignals;
|
|
869
|
-
readonly topLeft: LandmarkCoordinateSignals;
|
|
870
|
-
readonly bottomLeft: LandmarkCoordinateSignals;
|
|
871
|
-
readonly [key: string]: unknown;
|
|
872
|
-
}
|
|
873
|
-
interface MaskTrackSignals {
|
|
874
|
-
readonly trackId: number;
|
|
875
|
-
readonly category: string;
|
|
876
|
-
readonly area: ProgrammaticSignal;
|
|
877
|
-
readonly coverage: ProgrammaticSignal;
|
|
878
|
-
readonly solidity: ProgrammaticSignal;
|
|
879
|
-
readonly bboxFill: ProgrammaticSignal;
|
|
880
|
-
/** Frame-sized {0,255} mask for the current frame (renderer-populated). */
|
|
881
|
-
data?: Uint8Array;
|
|
882
|
-
/** GPU-resident silhouette texture (renderer-populated via SegmentationTexturePool). */
|
|
883
|
-
texture?: GPUTexture;
|
|
884
|
-
}
|
|
885
|
-
interface MaskCollectionSignals {
|
|
886
|
-
get(trackId: number): MaskTrackSignals;
|
|
887
|
-
/** Largest instance of the current frame (person preferred when present). */
|
|
888
|
-
readonly subject: MaskTrackSignals;
|
|
889
|
-
readonly count: ProgrammaticSignal;
|
|
890
|
-
}
|
|
891
|
-
interface SegmentationSignals {
|
|
892
|
-
readonly humanSilhouette: MaskTrackSignals;
|
|
893
|
-
readonly subject: MaskTrackSignals;
|
|
894
|
-
readonly instanceMasks: MaskCollectionSignals;
|
|
895
|
-
/** Person-vs-background alpha from the Selfie Segmenter (`enableMatte`). */
|
|
896
|
-
readonly matte: PersonMatteSignals;
|
|
897
|
-
readonly stencilTexture?: GPUTexture;
|
|
898
|
-
}
|
|
899
|
-
interface PersonMatteSignals {
|
|
900
|
-
/** Mean person alpha over the frame, 0..1 (0 when no matte has run). */
|
|
901
|
-
readonly coverage: ProgrammaticSignal;
|
|
902
|
-
/** Frame-sized 0..255 alpha for the given frame, if a matte has run. */
|
|
903
|
-
at(frame: number): PersonMatte | undefined;
|
|
904
|
-
}
|
|
905
|
-
interface ClassSignals {
|
|
906
|
-
readonly count: ProgrammaticSignal;
|
|
907
|
-
readonly maxConfidence: ProgrammaticSignal;
|
|
908
|
-
readonly present: ProgrammaticSignal;
|
|
909
|
-
readonly primary: ObjectTrackSignals;
|
|
910
|
-
}
|
|
911
|
-
interface ClassCollectionSignals {
|
|
912
|
-
/** Cached per-class signals (stable identity). */
|
|
913
|
-
get(name: string): ClassSignals;
|
|
914
|
-
/** Sorted active category names for the current frame. */
|
|
915
|
-
readonly names: readonly string[];
|
|
916
|
-
readonly histogram: {
|
|
917
|
-
get(ctx?: FrameContext): TensorData;
|
|
918
|
-
readonly value: TensorData;
|
|
919
|
-
};
|
|
920
|
-
}
|
|
921
|
-
interface ObjectCollectionSignals {
|
|
922
|
-
get(trackId: number): ObjectTrackSignals;
|
|
923
|
-
byCategory(category: string, rank?: number): ObjectTrackSignals;
|
|
924
|
-
readonly primary: ObjectTrackSignals;
|
|
925
|
-
readonly count: ProgrammaticSignal;
|
|
926
|
-
hasCategory(category: string): ProgrammaticSignal;
|
|
927
|
-
getActiveTracks(frame: number): readonly TrackedObject[];
|
|
928
|
-
readonly detectedCategories: readonly string[];
|
|
929
|
-
}
|
|
930
|
-
declare class VisionBundle {
|
|
931
|
-
readonly objects: ObjectCollectionSignals;
|
|
932
|
-
readonly poseLandmarks: PoseLandmarkSignals;
|
|
933
|
-
readonly masks: MaskCollectionSignals;
|
|
934
|
-
readonly segmentation: SegmentationSignals;
|
|
935
|
-
readonly classes: ClassCollectionSignals;
|
|
936
|
-
readonly poseLandmarksTensor: {
|
|
937
|
-
get(ctx?: FrameContext): TensorData;
|
|
938
|
-
readonly value: TensorData;
|
|
939
|
-
};
|
|
940
|
-
readonly objectsTensor: {
|
|
941
|
-
get(ctx?: FrameContext): TensorData;
|
|
942
|
-
readonly value: TensorData;
|
|
943
|
-
};
|
|
944
|
-
readonly masksTensor: {
|
|
945
|
-
get(ctx?: FrameContext): TensorData;
|
|
946
|
-
readonly value: TensorData;
|
|
947
|
-
};
|
|
948
|
-
/** Per-class detection histogram [nc] — top-level convenience mirror of `classes.histogram`. */
|
|
949
|
-
readonly histogramTensor: {
|
|
950
|
-
get(ctx?: FrameContext): TensorData;
|
|
951
|
-
readonly value: TensorData;
|
|
952
|
-
};
|
|
953
|
-
private _totalFrames;
|
|
954
|
-
private _fps;
|
|
955
|
-
private _width;
|
|
956
|
-
private _height;
|
|
957
|
-
private _transformer;
|
|
958
|
-
private _stencilTexture?;
|
|
959
|
-
private readonly _maskSource?;
|
|
960
|
-
private readonly _matteSource?;
|
|
961
|
-
private readonly _cameraFov;
|
|
962
|
-
private _poseCache;
|
|
963
|
-
private _objectCache;
|
|
964
|
-
private _maskCache;
|
|
965
|
-
private _matteCache;
|
|
966
|
-
private _poseLmCache;
|
|
967
|
-
private _trackCache;
|
|
968
|
-
private _categoryCache;
|
|
969
|
-
private _classCache;
|
|
970
|
-
private _maskTrackCache;
|
|
971
|
-
private _registeredSignals;
|
|
972
|
-
constructor(options?: VisionBundleOptions);
|
|
973
|
-
/** Update source geometry once a lazily decoded clip's size is known. */
|
|
974
|
-
setFrameSize(width: number, height: number): void;
|
|
975
|
-
setStencilTexture(texture: GPUTexture): void;
|
|
976
|
-
get stencilTexture(): GPUTexture | undefined;
|
|
977
|
-
/**
|
|
978
|
-
* Reads the most recent result at or before `frame`. Vision results are written one
|
|
979
|
-
* frame behind the plate (the node renderer reads back the previous frame to infer),
|
|
980
|
-
* and pinned-signal layout runs before the current frame's inference, so a strict
|
|
981
|
-
* per-frame lookup would always miss. Walking back a few frames keeps signals live at
|
|
982
|
-
* a stable one-frame lag instead of snapping to neutral defaults.
|
|
983
|
-
*/
|
|
984
|
-
private latestAtOrBefore;
|
|
985
|
-
invalidateSignals(): void;
|
|
986
|
-
setPoseResult(frame: number, result: PoseResult): void;
|
|
987
|
-
getPoseResult(frame: number): PoseResult;
|
|
988
|
-
setObjectResult(frame: number, result: {
|
|
989
|
-
objects: readonly TrackedObject[];
|
|
990
|
-
rawDetections?: readonly DetectedObject[];
|
|
991
|
-
} | readonly TrackedObject[]): void;
|
|
992
|
-
getObjectResult(frame: number): {
|
|
993
|
-
objects: readonly TrackedObject[];
|
|
994
|
-
rawDetections: readonly DetectedObject[];
|
|
995
|
-
};
|
|
996
|
-
setMaskResult(frame: number, masks: readonly InstanceMask[]): void;
|
|
997
|
-
getMaskResult(frame: number): readonly InstanceMask[];
|
|
998
|
-
setMatteResult(frame: number, matte: PersonMatte): void;
|
|
999
|
-
getMatteResult(frame: number): PersonMatte | undefined;
|
|
1000
|
-
/**
|
|
1001
|
-
* Serializable snapshot of one frame's object / class / mask signals.
|
|
1002
|
-
* Synchronous — reads only the per-frame caches, never triggers inference.
|
|
1003
|
-
*/
|
|
1004
|
-
summary(frame?: number): VisionSummary;
|
|
1005
|
-
/** Primary person's 17 keypoints as a [17, 3] float32 tensor. */
|
|
1006
|
-
getPoseLandmarksTensor(frame: number): TensorData;
|
|
1007
|
-
/** Up to 16 active tracks as [16, 8]: [active, categoryHash, x, y, w, h, vx, vy]. */
|
|
1008
|
-
getObjectsTensor(frame: number, maxObjects?: number): TensorData;
|
|
1009
|
-
/** Per-mask coverage + solidity as [16, 2]. */
|
|
1010
|
-
getMasksTensor(frame: number, maxMasks?: number): TensorData;
|
|
1011
|
-
/** Per-class detection histogram for the frame as [nc] float32 (COCO 80 by default). */
|
|
1012
|
-
getClassHistogramTensor(frame: number, nc?: number): TensorData;
|
|
1013
|
-
private clamp;
|
|
1014
|
-
}
|
|
1015
|
-
//#endregion
|
|
1016
|
-
//#region src/spatial/camera-space-transformer.d.ts
|
|
1017
|
-
interface Camera3DSpec {
|
|
1018
|
-
readonly width: number;
|
|
1019
|
-
readonly height: number;
|
|
1020
|
-
readonly fov?: number;
|
|
1021
|
-
readonly cameraDistance?: number;
|
|
1022
|
-
}
|
|
1023
|
-
interface ProjectedScreenCoordinate {
|
|
1024
|
-
readonly x: number;
|
|
1025
|
-
readonly y: number;
|
|
1026
|
-
readonly z: number;
|
|
1027
|
-
readonly scale: number;
|
|
1028
|
-
}
|
|
1029
|
-
declare class SpatialLandmarkTransformer {
|
|
1030
|
-
private width;
|
|
1031
|
-
private height;
|
|
1032
|
-
private fovRad;
|
|
1033
|
-
private focalDistance;
|
|
1034
|
-
constructor(camera: Camera3DSpec);
|
|
1035
|
-
/**
|
|
1036
|
-
* Projects a normalized landmark [0, 1] into 2D/3D canvas coordinates.
|
|
1037
|
-
*/
|
|
1038
|
-
projectNormalizedLandmark(landmark: Landmark3D, offsetZ?: number): ProjectedScreenCoordinate;
|
|
1039
|
-
/**
|
|
1040
|
-
* Projects a metric world landmark [X_w, Y_w, Z_w] in meters into canvas space.
|
|
1041
|
-
*/
|
|
1042
|
-
projectWorldLandmark(worldLandmark: Landmark3D, subjectDistanceMeters?: number, scaleMetersToPixels?: number): ProjectedScreenCoordinate;
|
|
1043
|
-
}
|
|
1044
|
-
//#endregion
|
|
1045
|
-
//#region src/spatial/spatial-pin.d.ts
|
|
1046
|
-
declare function pinNodeToLandmark<T extends {
|
|
1047
|
-
x?: unknown;
|
|
1048
|
-
y?: unknown;
|
|
1049
|
-
z?: unknown;
|
|
1050
|
-
[key: string]: unknown;
|
|
1051
|
-
}>(node: T, target: LandmarkCoordinateSignals | {
|
|
1052
|
-
x: number;
|
|
1053
|
-
y: number;
|
|
1054
|
-
z?: number;
|
|
1055
|
-
screenX?: number;
|
|
1056
|
-
screenY?: number;
|
|
1057
|
-
}, options?: PinToLandmarkOptions): T;
|
|
1058
|
-
declare function pinNodeToObject<T extends {
|
|
1059
|
-
x?: unknown;
|
|
1060
|
-
y?: unknown;
|
|
1061
|
-
z?: unknown;
|
|
1062
|
-
width?: unknown;
|
|
1063
|
-
height?: unknown;
|
|
1064
|
-
opacity?: unknown;
|
|
1065
|
-
[key: string]: unknown;
|
|
1066
|
-
}>(node: T, target: ObjectTrackSignals | LandmarkCoordinateSignals | {
|
|
1067
|
-
x: number;
|
|
1068
|
-
y: number;
|
|
1069
|
-
z?: number;
|
|
1070
|
-
screenX?: number;
|
|
1071
|
-
screenY?: number;
|
|
1072
|
-
}, options?: PinToObjectOptions): T;
|
|
1073
|
-
//#endregion
|
|
1074
|
-
//#region src/tracking/temporal-object-tracker.d.ts
|
|
1075
|
-
interface TemporalTrackerOptions {
|
|
1076
|
-
/** Minimum Intersection-over-Union to associate a detection with an existing track. Default: 0.25 */
|
|
1077
|
-
readonly iouThreshold?: number;
|
|
1078
|
-
/** Number of frames a lost track is coasted via velocity extrapolation before deletion. Default: 15 */
|
|
1079
|
-
readonly maxMissedFrames?: number;
|
|
1080
|
-
/** Minimum consecutive hits before a tentative track is confirmed active. Default: 1 */
|
|
1081
|
-
readonly minHits?: number;
|
|
1082
|
-
/** Position smoothing weight [0, 1] where 1.0 is instantaneous and 0.0 is fully damped. Default: 0.75 */
|
|
1083
|
-
readonly positionSmoothing?: number;
|
|
1084
|
-
/** Whether tracks remain marked active during coasting frames. Default: true */
|
|
1085
|
-
readonly activeDuringCoast?: boolean;
|
|
1086
|
-
}
|
|
1087
|
-
/** Axis-aligned box in any consistent unit (pixels or normalized). */
|
|
1088
|
-
|
|
1089
|
-
declare class TemporalObjectTracker {
|
|
1090
|
-
private _nextTrackId;
|
|
1091
|
-
private _tracks;
|
|
1092
|
-
private _iouThreshold;
|
|
1093
|
-
private _maxMissedFrames;
|
|
1094
|
-
private _minHits;
|
|
1095
|
-
private _positionSmoothing;
|
|
1096
|
-
private _activeDuringCoast;
|
|
1097
|
-
constructor(options?: TemporalTrackerOptions);
|
|
1098
|
-
/**
|
|
1099
|
-
* Updates the multi-object tracker with new detections for the current frame.
|
|
1100
|
-
*
|
|
1101
|
-
* @param detections Raw detections found on the current frame
|
|
1102
|
-
* @param frame Current frame index
|
|
1103
|
-
* @param fps Video framerate (used for physical velocity estimation)
|
|
1104
|
-
* @returns Stable, temporal list of TrackedObjects
|
|
1105
|
-
*/
|
|
1106
|
-
update(detections: readonly DetectedObject[], _frame: number, fps?: number): TrackedObject[];
|
|
1107
|
-
/**
|
|
1108
|
-
* Tracks objects across a full sequence of frames with gap interpolation,
|
|
1109
|
-
* boundary extrapolation (ensuring frame 0 through end are tracked),
|
|
1110
|
-
* and temporal Gaussian smoothing.
|
|
1111
|
-
*
|
|
1112
|
-
* Guarantees zero flicker, zero drift, and frame-accurate stability across the entire video.
|
|
1113
|
-
*/
|
|
1114
|
-
trackSequence(perFrameDetections: readonly (readonly DetectedObject[])[], totalFrames: number, fps?: number): TrackedObject[][];
|
|
1115
|
-
/**
|
|
1116
|
-
* Resets all internal track state.
|
|
1117
|
-
*/
|
|
1118
|
-
reset(): void;
|
|
1119
|
-
}
|
|
1120
|
-
//#endregion
|
|
1121
|
-
//#region src/tracking/pose-track-matcher.d.ts
|
|
1122
|
-
|
|
1123
|
-
//#endregion
|
|
1124
|
-
//#region src/vision-node.d.ts
|
|
1125
|
-
/**
|
|
1126
|
-
* Bundle returned by `VisionNode.attach()`: the reactive signals surface plus the lazy lifecycle
|
|
1127
|
-
* helpers (all zero-I/O until `runner()` really needs a model).
|
|
1128
|
-
*/
|
|
1129
|
-
interface VisionAttachedBundle extends VisionBundle {
|
|
1130
|
-
readonly node: VisionNodeSpec;
|
|
1131
|
-
/** Warm the enabled tasks' models/sessions ahead of first use. */
|
|
1132
|
-
ready(): Promise<VisionRunner>;
|
|
1133
|
-
/** Lazily-created runner (downloads happen on first real inference). */
|
|
1134
|
-
runner(): VisionRunner;
|
|
1135
|
-
/** Release this node's runner/sessions. */
|
|
1136
|
-
close(): void;
|
|
1137
|
-
}
|
|
1138
|
-
/**
|
|
1139
|
-
* Vision node.
|
|
1140
|
-
*
|
|
1141
|
-
* LAZY BY CONSTRUCTION: creating a VisionNode performs ZERO I/O — no model downloads, no
|
|
1142
|
-
* sessions, no file probes. The first inference call (or an explicit `await vision.ready()`)
|
|
1143
|
-
* downloads the required models.
|
|
1144
|
-
*/
|
|
1145
|
-
declare class VisionNode {
|
|
1146
|
-
readonly id: string;
|
|
1147
|
-
readonly kind: "vision";
|
|
1148
|
-
readonly source: VisionInputSource;
|
|
1149
|
-
readonly config: VisionConfig;
|
|
1150
|
-
readonly vision: VisionBundle;
|
|
1151
|
-
private _runner?;
|
|
1152
|
-
/** Runner construction options (modelsDir, provider, store, …) — injectable for tests/agents. */
|
|
1153
|
-
private readonly _runnerOptions;
|
|
1154
|
-
constructor(source: VisionInputSource, config?: VisionConfig, bundleOptions?: VisionBundleOptions, runnerOptions?: VisionRunnerOptions);
|
|
1155
|
-
/** Lazily-created runner; downloads happen on its first inference. */
|
|
1156
|
-
runner(): VisionRunner;
|
|
1157
|
-
/** Explicit warm-up — downloads the models for the enabled tasks, ahead of first inference. */
|
|
1158
|
-
ready(): Promise<VisionRunner>;
|
|
1159
|
-
close(): void;
|
|
1160
|
-
static attach(source: VisionInputSource, config?: VisionConfig, bundleOptions?: VisionBundleOptions): VisionAttachedBundle;
|
|
1161
|
-
toNode(): VisionNodeSpec;
|
|
1162
|
-
}
|
|
1163
|
-
//#endregion
|
|
1164
6
|
//#region ../../nodes/node-blur/dist/renderer.d.mts
|
|
1165
7
|
//#region src/renderers/index.d.ts
|
|
1166
8
|
declare const _default$30: Readonly<NodeRendererPlugin>;
|
|
@@ -5568,7 +4410,7 @@ interface VisionProps {
|
|
|
5568
4410
|
confidence?: number;
|
|
5569
4411
|
/** Model size: `t` fastest · `s` default · `m` most accurate. */
|
|
5570
4412
|
variant?: "t" | "s" | "m";
|
|
5571
|
-
mode?: "passthrough" | "mask" | "matte" | "crop" | "skeleton" | "boxes" | "tracking";
|
|
4413
|
+
mode?: "passthrough" | "mask" | "matte" | "crop" | "skeleton" | "boxes" | "tracking" | "depth";
|
|
5572
4414
|
/**
|
|
5573
4415
|
* Subject alpha for mask/matte/crop: instance masks (default; any COCO class) or the
|
|
5574
4416
|
* selfie matte (fastest, but only reliable when a person fills much of the frame).
|
|
@@ -5720,5 +4562,5 @@ interface EffectConfigMap extends GeneratedEffectConfigMap {
|
|
|
5720
4562
|
}
|
|
5721
4563
|
type EffectPropsFor<O extends EffectOp> = O extends keyof EffectConfigMap ? EffectConfigMap[O] : Record<string, unknown>;
|
|
5722
4564
|
//#endregion
|
|
5723
|
-
export { TileOffsetEdgeMode as $, ResizerScalerProps as $n,
|
|
5724
|
-
//# sourceMappingURL=index-
|
|
4565
|
+
export { TileOffsetEdgeMode as $, ResizerScalerProps as $n, FlipProps as $t, HandWrittenVisualEffect as A, Paint as An, _default$18 as Ar, CameraParallax3DProps as At, PBRGlass as B, Pixelate as Bn, _default$27 as Br, ContourProps as Bt, GradientMapProps as C, MeshWarp as Cn, _default$11 as Cr, AudioParametricEq as Ct, HalftoneScreen as D, NoiseGeneratorProps as Dn, _default$15 as Dr, CRT as Dt, HalftoneMode as E, NoiseGenerator as En, _default$14 as Er, AudioReverbProps as Et, LevelsProps as F, Painterly as Fn, _default$23 as Fr, ColorBalance as Ft, SSAOProps as G, ProceduralVFXProps as Gn, DatamoshProps as Gt, Relight3D as H, Posterize as Hn, _default$29 as Hr, CornerPinPointsItem as Ht, Modulate as I, PainterlyProps as In, _default$24 as Ir, ColorBalanceProps as It, SelectiveColorProps as J, RefineEdge as Jn, Dither as Jt, SelectiveColor as K, RGBSplit as Kn, DisplacementMap as Kt, ModulateProps as L, PatchHeal as Ln, _default$25 as Lr, ColorKey as Lt, HighPassProps as M, PaintStrokesItemOption1 as Mn, _default$20 as Mr, ChannelMergerProps as Mt, LevelChannel as N, PaintStrokesItemOption2 as Nn, _default$21 as Nr, ChannelSplitter as Nt, HalftoneScreenProps as O, OpArt as On, _default$16 as Or, CRTProps as Ot, Levels as P, PaintStrokesItemOption3 as Pn, _default$22 as Pr, ChannelSplitterProps as Pt, TileOffset as Q, ResizerScaler as Qn, Flip as Qt, MotionBlur as R, PatchHealPatchesItem as Rn, rendererNode as Rr, ColorKeyProps as Rt, GradientMap as S, MaskMathProps as Sn, _default$10 as Sr, AudioNoiseGateProps as St, HalftoneDotShape as T, MeshWarpProps as Tn, _default$13 as Tr, AudioReverb as Tt, Relight3DProps as U, PosterizeProps as Un, _default$30 as Ur, CornerPinProps as Ut, PBRGlassProps as V, PixelateProps as Vn, _default$28 as Vr, CornerPin as Vt, SSAO as W, ProceduralVFX as Wn, Datamosh as Wt, ShadowsHighlightsProps as X, RefractionCaustics3D as Xn, ExtractLUT as Xt, ShadowsHighlights as Y, RefineEdgeProps as Yn, DitherProps as Yt, TemporalDeflicker as Z, RefractionCaustics3DProps as Zn, ExtractLUTProps as Zt, EffectConfigMap as _, LayerStyleStroke as _n, _default$5 as _r, AudioDelay as _t, ApplyLUTProps as a, KaleidoscopeProps as an, Toon as ar, AnyGeneratedAudioEffect as at, FilmGrain as b, LiquifyProps as bn, _default$8 as br, AudioFadeProps as bt, Crop as c, KenBurnsProps as cn, TrailsProps as cr, GeneratedEffectConfigMap as ct, CurvesChannelPoint as d, LayerStyleColorOverlay as dn, EffectProp as dr, Blur as dt, Gooey as en, Rotate as er, TileOffsetProps as et, CurvesProps as f, LayerStyleDropShadow as fn, _default as fr, BlurProps as ft, DepthOfFieldProps as g, LayerStyleProps as gn, _default$4 as gr, AudioCompressorProps as gt, DepthOfField as h, LayerStyleOuterGlow as hn, _default$3 as hr, AudioCompressor as ht, ApplyLUT as i, Kaleidoscope as in, TonalShift as ir, VisionProps as it, HighPass as j, PaintProps as jn, _default$19 as jr, ChannelMerger as jt, HandWrittenAudioEffect as k, OpArtProps as kn, _default$17 as kr, CameraParallax3D as kt, CropProps as l, LayerStyle as ln, Vignette as lr, effectFactories as lt, DeflickerProps as m, LayerStyleInnerShadow as mn, _default$2 as mr, AsciiProps as mt, AnyEffect as n, Iridescence as nn, StereoPanning as nr, UnsharpMaskProps as nt, AudioSignalExtractor as o, KenBurns as on, ToonProps as or, AnyGeneratedEffect as ot, CustomEffect as p, LayerStyleInnerGlow as pn, _default$1 as pr, Ascii as pt, SelectiveColorAdjustment as q, RGBSplitProps as qn, DisplacementMapProps as qt, AnyVisualEffect as r, IridescenceProps as rn, StereoPanningProps as rr, Vision as rt, AudioSignalExtractorProps as s, KenBurnsKeyframesItem as sn, Trails as sr, AnyGeneratedVisualEffect as st, AnyAudioEffect as t, GooeyProps as tn, RotateProps as tr, UnsharpMask as tt, Curves as u, LayerStyleBevelEmboss as un, VignetteProps as ur, effectMeta as ut, EffectOp as v, Liquify as vn, _default$6 as vr, AudioDelayProps as vt, GradientMapStop as w, MeshWarpPointsItem as wn, _default$12 as wr, AudioParametricEqProps as wt, FilmGrainProps as x, MaskMath as xn, _default$9 as xr, AudioNoiseGate as xt, EffectPropsFor as y, LiquifyOperationsItem as yn, _default$7 as yr, AudioFade as yt, MotionBlurProps as z, PatchHealProps as zn, _default$26 as zr, Contour as zt };
|
|
4566
|
+
//# sourceMappingURL=index-Bbv0VtxJ.d.mts.map
|