@holoscript/core 6.0.4 → 6.1.2
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/LICENSE +21 -0
- package/README.md +3 -3
- package/bin/holoscript.cjs +3 -0
- package/dist/GLTFPipeline-SFIORFJU.js +16 -0
- package/dist/GLTFPipeline-VNNDPONV.cjs +37 -0
- package/dist/{HoloScriptPlusParser-BN6KVRCM.js → HoloScriptPlusParser-7FBIFUFC.js} +6 -5
- package/dist/{HoloScriptPlusParser-NC5FE6AL.cjs → HoloScriptPlusParser-A2W7OCN2.cjs} +17 -16
- package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
- package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
- package/dist/{USDZExporter-UWGWNMMD.cjs → USDZExporter-3FWJ25JI.cjs} +344 -16
- package/dist/{USDZExporter-NTMBNTDB.js → USDZExporter-D2HQLQYK.js} +344 -16
- package/dist/agents/index.cjs +19 -0
- package/dist/agents/index.d.ts +100 -0
- package/dist/agents/index.js +17 -0
- package/dist/chunk-22W6NGYN.js +725 -0
- package/dist/{chunk-5OEOHAAW.cjs → chunk-27MPVJVZ.cjs} +64 -28
- package/dist/{chunk-RVYPEYPX.js → chunk-2A7FURVO.js} +44 -8
- package/dist/{chunk-XCWFGZAA.js → chunk-2B7WVIDZ.js} +11 -8
- package/dist/{chunk-NDQNIJEH.js → chunk-2BSMSUCE.js} +250 -24
- package/dist/chunk-2HLIGOKU.cjs +5546 -0
- package/dist/{chunk-EONILVMF.js → chunk-2M2DPHKB.js} +4 -4
- package/dist/{chunk-G7CT3EMP.cjs → chunk-2YSNA2F2.cjs} +319 -47
- package/dist/{chunk-IWI6J7FX.js → chunk-33XCOVE3.js} +5 -5
- package/dist/chunk-3FOKASKO.cjs +348 -0
- package/dist/{chunk-DXJQDCFL.js → chunk-4C57PR42.js} +3 -3
- package/dist/{chunk-MPXBVFHQ.js → chunk-4N4SXXWF.js} +4 -3
- package/dist/chunk-4PDEPEQW.cjs +41 -0
- package/dist/chunk-4R6HPSHJ.js +2176 -0
- package/dist/chunk-4R6SBXDB.js +45 -0
- package/dist/chunk-4SY77NA4.cjs +413 -0
- package/dist/{chunk-YCXFCXDS.js → chunk-4UUKPCY4.js} +668 -110
- package/dist/{chunk-LGGRPKTV.cjs → chunk-52ULD552.cjs} +114 -35
- package/dist/{chunk-L4G4RLXX.js → chunk-5CKA5SXU.js} +438 -22
- package/dist/chunk-5FSKKMR7.cjs +2092 -0
- package/dist/{chunk-FF3Q7ADR.js → chunk-5JEU52DW.js} +5 -3
- package/dist/chunk-5N54COB6.cjs +327 -0
- package/dist/chunk-5S7RKFGR.cjs +446 -0
- package/dist/{chunk-KED34ILP.js → chunk-6ASWLXXN.js} +21 -9
- package/dist/chunk-6CTRH7HT.cjs +1985 -0
- package/dist/{chunk-CAUCGUEA.cjs → chunk-6EX3I5P4.cjs} +6 -6
- package/dist/chunk-6FGQNDR4.js +5731 -0
- package/dist/{chunk-72EQECGT.cjs → chunk-6KMK2UXT.cjs} +122 -46
- package/dist/{chunk-G4VZTCIB.js → chunk-6L4VE27M.js} +33 -23
- package/dist/{chunk-ATSKSYVE.cjs → chunk-6S6TKNEA.cjs} +6478 -1738
- package/dist/chunk-77V4GTCA.js +596 -0
- package/dist/{chunk-ZP4D3CSX.cjs → chunk-7AD52FRS.cjs} +16 -16
- package/dist/chunk-A6KINLZJ.js +236 -0
- package/dist/chunk-AIA52I7T.cjs +543 -0
- package/dist/chunk-AIX25INK.cjs +602 -0
- package/dist/{chunk-B5TCIAPQ.cjs → chunk-AO4I2Z7M.cjs} +17 -18
- package/dist/{chunk-Q5SJOGHQ.cjs → chunk-BPICAGBV.cjs} +324 -199
- package/dist/chunk-BRQJKJGT.cjs +20 -0
- package/dist/{chunk-3FXV5S25.cjs → chunk-C37BHB7N.cjs} +6 -3
- package/dist/{chunk-XUTX5CBW.js → chunk-CBJY23VL.js} +3 -3
- package/dist/chunk-CIWWXYHZ.cjs +50 -0
- package/dist/{chunk-XXINBTZK.cjs → chunk-DIL6DDDN.cjs} +101 -45
- package/dist/chunk-DMXC24WV.js +404 -0
- package/dist/{chunk-PMGODDJA.cjs → chunk-DTGBOSEM.cjs} +12 -12
- package/dist/chunk-E7JP3BS3.cjs +61 -0
- package/dist/{chunk-HJJLD366.js → chunk-EKBKLK7P.js} +3 -3
- package/dist/chunk-EKYL4PE3.cjs +404 -0
- package/dist/{chunk-UPJBDCVF.js → chunk-EMMC5CSQ.js} +12 -8
- package/dist/{chunk-GGHSW2NN.js → chunk-EOBB6A4B.js} +6389 -1718
- package/dist/chunk-EOFNVCM6.js +325 -0
- package/dist/{chunk-FHQVYCH2.js → chunk-ER4GATIU.js} +7 -7
- package/dist/{chunk-N5FTS757.cjs → chunk-EXKSFGSX.cjs} +7 -148
- package/dist/{chunk-LK5IAVH6.cjs → chunk-EXUP2BUM.cjs} +27 -27
- package/dist/chunk-FDSGHPAK.js +130 -0
- package/dist/chunk-FEWUHQNM.cjs +144 -0
- package/dist/{chunk-5TOFIR6L.js → chunk-FGGJQRLZ.js} +5 -142
- package/dist/chunk-FHP6LXJS.js +415 -0
- package/dist/{chunk-7LCYLPW2.cjs → chunk-FJPADH77.cjs} +7 -4
- package/dist/{chunk-T36DDXSF.js → chunk-FXKTYFYA.js} +150 -25
- package/dist/chunk-G2LS3RFO.js +623 -0
- package/dist/chunk-GCMWDSBZ.cjs +729 -0
- package/dist/chunk-GJNCFRJU.cjs +125 -0
- package/dist/{chunk-Q4QX3AET.cjs → chunk-GMP623FG.cjs} +16 -13
- package/dist/{chunk-XD6IYDUX.js → chunk-GN3KDX4W.js} +119 -43
- package/dist/{chunk-QLEAOI3Q.cjs → chunk-GQYKQSTC.cjs} +10 -10
- package/dist/chunk-GTU2Z2WW.cjs +262 -0
- package/dist/chunk-GZG4KA4E.js +529 -0
- package/dist/{chunk-BND3ST2K.cjs → chunk-H3MGK7TX.cjs} +42 -32
- package/dist/{chunk-XRKWN5PL.cjs → chunk-H5DZIHJP.cjs} +14 -18
- package/dist/{chunk-Z34RLXRA.cjs → chunk-HANL7K2Q.cjs} +65 -50
- package/dist/{chunk-3SAK5KFL.cjs → chunk-HCCQLAA4.cjs} +2 -11
- package/dist/{chunk-LXJ4667L.cjs → chunk-HGVXZDSK.cjs} +108 -20
- package/dist/{chunk-3FJCK5XA.js → chunk-HRODTEEO.js} +30 -10
- package/dist/{chunk-HQUEA5R6.cjs → chunk-HZCQO4JM.cjs} +6 -6
- package/dist/{chunk-S565K7NK.js → chunk-I2O7TW6B.js} +12 -8
- package/dist/chunk-IHESJZSW.js +4490 -0
- package/dist/{chunk-FSF7EQVA.cjs → chunk-IRWWS72C.cjs} +63 -22
- package/dist/{chunk-5O6TQC6M.cjs → chunk-IVIA7K75.cjs} +689 -127
- package/dist/chunk-IVY74O6C.js +247 -0
- package/dist/chunk-J32ZJZJH.js +554 -0
- package/dist/chunk-J56PTA46.cjs +639 -0
- package/dist/chunk-JD7CIZ33.js +1949 -0
- package/dist/{chunk-T7LEXZUZ.cjs → chunk-JIYN45TV.cjs} +14 -15
- package/dist/{chunk-FFKU7BTK.cjs → chunk-KHPCJRI3.cjs} +24 -21
- package/dist/chunk-KKFZ3B6J.cjs +557 -0
- package/dist/chunk-KPJL34Y7.cjs +186 -0
- package/dist/{chunk-HE7ULERA.cjs → chunk-KQTPCYTG.cjs} +128 -44
- package/dist/{chunk-OFKWH2IP.js → chunk-KX76JUQY.js} +3 -3
- package/dist/{chunk-33LSUQDD.cjs → chunk-L63H3SQ4.cjs} +43 -31
- package/dist/{chunk-K6EKD26I.js → chunk-LAOCQJ2M.js} +64 -8
- package/dist/chunk-LM2VU56C.cjs +37 -0
- package/dist/chunk-M56JSP4A.js +400 -0
- package/dist/chunk-MBOOR7X4.js +18 -0
- package/dist/{chunk-XWPNTWDN.cjs → chunk-MJVIRCUV.cjs} +31 -27
- package/dist/{chunk-SDAMZIRE.js → chunk-MSMIFMBL.js} +135 -18
- package/dist/{chunk-56IF4NTA.js → chunk-MXFUTKCO.js} +18 -18
- package/dist/{chunk-6UEHYZ7V.cjs → chunk-MXJ5SS53.cjs} +447 -31
- package/dist/chunk-MYY4PMWX.cjs +264 -0
- package/dist/chunk-N75IH2HY.js +258 -0
- package/dist/{chunk-GVUR45UF.cjs → chunk-NG77ATEW.cjs} +7 -6
- package/dist/chunk-NW5G5FBQ.js +215 -0
- package/dist/{chunk-E3FWRT3Z.js → chunk-OEFY723R.js} +28 -13
- package/dist/chunk-OEV5RMZO.cjs +3042 -0
- package/dist/{chunk-X4ZF6CNE.cjs → chunk-OIQYIIO3.cjs} +7 -7
- package/dist/{chunk-2CWOLHTE.js → chunk-OL46QLBJ.js} +3 -11
- package/dist/chunk-OPZ7XDDI.js +487 -0
- package/dist/chunk-OSYNRVOV.cjs +243 -0
- package/dist/{chunk-TEWCN33Y.js → chunk-P7YIA5LN.js} +91 -7
- package/dist/chunk-PGANYCAG.cjs +220 -0
- package/dist/{chunk-CS2EMTGF.js → chunk-QAVXL2IH.js} +62 -21
- package/dist/{chunk-T4NKMBDL.js → chunk-QCCBXSCE.js} +1666 -756
- package/dist/{chunk-F4IULT7N.js → chunk-QPOQ7VPI.js} +16 -13
- package/dist/{chunk-6XSERL6L.js → chunk-QTPMJRGS.js} +3108 -2827
- package/dist/{chunk-F3HH56EB.cjs → chunk-QWNQ523V.cjs} +1730 -823
- package/dist/{chunk-R7MA7QWV.js → chunk-R3IVNY6P.js} +102 -23
- package/dist/chunk-R75BSDH7.cjs +50 -0
- package/dist/chunk-RAXUF5DF.cjs +2196 -0
- package/dist/{chunk-BF2235SI.cjs → chunk-RMHC2VG7.cjs} +2876 -2592
- package/dist/chunk-RUXGBKPS.cjs +4517 -0
- package/dist/{chunk-UERJ3YJV.js → chunk-S5IFXW6E.js} +113 -9
- package/dist/{chunk-27LWW5FU.cjs → chunk-S6YWHCKV.cjs} +5 -5
- package/dist/{chunk-WB4Z63GG.js → chunk-SIEXCILW.js} +3 -3
- package/dist/{chunk-CLYEIWA5.cjs → chunk-SLU6UPJI.cjs} +5 -3
- package/dist/{chunk-LZ266PCM.cjs → chunk-T5J7ZKP3.cjs} +446 -60
- package/dist/chunk-TDCNJHWO.js +341 -0
- package/dist/{chunk-IHOUYQIA.js → chunk-TG7O4WBC.js} +5 -5
- package/dist/chunk-THCK6ECW.js +2085 -0
- package/dist/chunk-TJHVSBP2.js +439 -0
- package/dist/chunk-TK74TR4H.js +5541 -0
- package/dist/{chunk-CDPGV4DN.js → chunk-U4NBQJBY.js} +14 -15
- package/dist/{chunk-NOZZ46QU.js → chunk-UD3DSHZM.js} +10 -14
- package/dist/chunk-UDMYRFDZ.js +3038 -0
- package/dist/{chunk-WDW67DZB.cjs → chunk-UOIGFQXC.cjs} +90 -68
- package/dist/{chunk-BU7VWW2K.js → chunk-URG2SJLK.js} +14 -15
- package/dist/{chunk-EQV4R3EV.cjs → chunk-V73NPPTM.cjs} +152 -35
- package/dist/chunk-VECQYRXL.js +474 -0
- package/dist/chunk-VEXPG4WN.js +1989 -0
- package/dist/{chunk-LDP5OK6G.js → chunk-VMLKSV26.js} +5 -5
- package/dist/{chunk-5BGSECRJ.cjs → chunk-VSK7W3O5.cjs} +47 -27
- package/dist/chunk-VVKVQZI6.js +55 -0
- package/dist/{chunk-YQK5JNFK.js → chunk-W55Z7QIX.js} +103 -15
- package/dist/{chunk-KSGXLT74.cjs → chunk-W6P2GBHH.cjs} +3 -3
- package/dist/{chunk-IBDG74G2.cjs → chunk-W6RW64BB.cjs} +7 -7
- package/dist/chunk-WDT3JTGM.cjs +483 -0
- package/dist/{chunk-HPS76H7Q.js → chunk-WKX5AMOY.js} +3 -3
- package/dist/chunk-WNNE3PO3.js +34 -0
- package/dist/{chunk-XG23EUQX.cjs → chunk-WRLUBRKS.cjs} +538 -312
- package/dist/{chunk-IFNQFCTM.js → chunk-WRNEH5MO.js} +79 -8
- package/dist/{chunk-54FHG2MX.js → chunk-WRWEX5ZF.js} +7 -4
- package/dist/{chunk-KCQ5NDYC.cjs → chunk-X3GJPRVK.cjs} +154 -80
- package/dist/{chunk-7AGYRWKW.cjs → chunk-XFXGA5IW.cjs} +126 -22
- package/dist/{chunk-TQSZUOW5.cjs → chunk-XHIV6326.cjs} +4 -4
- package/dist/chunk-XJAN7CZG.cjs +432 -0
- package/dist/chunk-XL6INWKT.js +121 -0
- package/dist/{chunk-E3UALNFA.js → chunk-XMWZG36H.js} +4 -4
- package/dist/{chunk-BKIGPPVM.js → chunk-XSFNHP2E.js} +6 -3
- package/dist/{chunk-H5Z7NASB.js → chunk-XT6JY5W5.js} +25 -3
- package/dist/chunk-XXZJEFKW.cjs +490 -0
- package/dist/chunk-Y3MWXQSB.cjs +5737 -0
- package/dist/chunk-YF2I3MV3.js +46 -0
- package/dist/{chunk-V3NN3HPP.js → chunk-YIMN575O.js} +437 -52
- package/dist/chunk-YIVFJNYV.js +176 -0
- package/dist/{chunk-MD6KDHVE.cjs → chunk-YKGPCZEE.cjs} +10 -10
- package/dist/chunk-YQELFNJV.js +39 -0
- package/dist/chunk-Z5XMPRNC.cjs +5390 -0
- package/dist/{chunk-3FYZOR7S.cjs → chunk-ZDSYWBIE.cjs} +18 -18
- package/dist/{chunk-6TZPZCOJ.cjs → chunk-ZKSS47EV.cjs} +24 -19
- package/dist/chunk-ZUL5AVTX.cjs +1993 -0
- package/dist/chunk-ZXBZVXDW.js +5386 -0
- package/dist/{chunk-DMG7C4H2.js → chunk-ZZ7RO2UQ.js} +312 -44
- package/dist/cli/holoscript-runner.cjs +200 -204
- package/dist/cli/holoscript-runner.js +144 -148
- package/dist/codebase/index.cjs +1 -1
- package/dist/codebase/index.js +1 -1
- package/dist/compiler/agent-inference.cjs +10 -7
- package/dist/compiler/agent-inference.js +6 -3
- package/dist/compiler/android-xr.cjs +12 -7
- package/dist/compiler/android-xr.js +10 -5
- package/dist/compiler/android.cjs +12 -8
- package/dist/compiler/android.js +10 -6
- package/dist/compiler/ar.cjs +9 -6
- package/dist/compiler/ar.js +7 -4
- package/dist/compiler/babylon.cjs +12 -8
- package/dist/compiler/babylon.js +11 -7
- package/dist/compiler/business-quest.cjs +43 -0
- package/dist/compiler/business-quest.js +4 -0
- package/dist/compiler/coco.cjs +1 -1
- package/dist/compiler/coco.js +1 -1
- package/dist/compiler/context.cjs +25 -0
- package/dist/compiler/context.d.ts +28 -0
- package/dist/compiler/context.js +8 -0
- package/dist/compiler/domain-block-utils.cjs +155 -152
- package/dist/compiler/domain-block-utils.js +7 -4
- package/dist/compiler/dtdl.cjs +10 -7
- package/dist/compiler/dtdl.js +7 -4
- package/dist/compiler/gltf-pipeline.cjs +9 -9
- package/dist/compiler/gltf-pipeline.js +2 -2
- package/dist/compiler/godot.cjs +9 -6
- package/dist/compiler/godot.js +8 -5
- package/dist/compiler/incremental.cjs +12 -7
- package/dist/compiler/incremental.js +7 -2
- package/dist/compiler/index.cjs +3550 -268
- package/dist/compiler/index.d.ts +404 -21
- package/dist/compiler/index.js +3280 -138
- package/dist/compiler/ios.cjs +11 -8
- package/dist/compiler/ios.js +9 -6
- package/dist/compiler/llm-provider-capabilities.cjs +25 -0
- package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
- package/dist/compiler/llm-provider-capabilities.js +8 -0
- package/dist/compiler/multi-layer.cjs +14 -10
- package/dist/compiler/multi-layer.js +13 -9
- package/dist/compiler/nodetoy.cjs +5 -5
- package/dist/compiler/nodetoy.js +2 -2
- package/dist/compiler/openxr.cjs +10 -6
- package/dist/compiler/openxr.js +9 -5
- package/dist/compiler/playcanvas.cjs +10 -7
- package/dist/compiler/playcanvas.js +9 -6
- package/dist/compiler/r3f.cjs +17 -13
- package/dist/compiler/r3f.d.ts +22 -0
- package/dist/compiler/r3f.js +12 -8
- package/dist/compiler/remotion.cjs +1 -1
- package/dist/compiler/remotion.js +1 -1
- package/dist/compiler/reproducibility.cjs +1 -1
- package/dist/compiler/reproducibility.js +1 -1
- package/dist/compiler/sdf.cjs +10 -7
- package/dist/compiler/sdf.js +8 -5
- package/dist/compiler/semantic-scene.cjs +1 -1
- package/dist/compiler/semantic-scene.js +1 -1
- package/dist/compiler/state.cjs +9 -5
- package/dist/compiler/state.js +7 -3
- package/dist/compiler/trait-composition.cjs +11 -7
- package/dist/compiler/trait-composition.js +7 -3
- package/dist/compiler/unity.cjs +10 -6
- package/dist/compiler/unity.js +9 -5
- package/dist/compiler/unreal.cjs +11 -7
- package/dist/compiler/unreal.js +9 -5
- package/dist/compiler/urdf.cjs +20 -13
- package/dist/compiler/urdf.js +8 -5
- package/dist/compiler/usd-physics.cjs +10 -7
- package/dist/compiler/usd-physics.js +7 -4
- package/dist/compiler/visionos.cjs +10 -6
- package/dist/compiler/visionos.js +9 -5
- package/dist/compiler/vrchat.cjs +10 -7
- package/dist/compiler/vrchat.js +8 -5
- package/dist/compiler/vrr.cjs +10 -7
- package/dist/compiler/vrr.js +8 -5
- package/dist/compiler/wasm.cjs +13 -10
- package/dist/compiler/wasm.js +8 -5
- package/dist/compiler/webgpu.cjs +9 -6
- package/dist/compiler/webgpu.js +8 -5
- package/dist/constants.d.ts +3 -2
- package/dist/coordinators/index.cjs +1266 -0
- package/dist/coordinators/index.d.ts +260 -0
- package/dist/coordinators/index.js +1259 -0
- package/dist/debugger.cjs +9 -7
- package/dist/debugger.js +7 -5
- package/dist/entries/interop.cjs +23 -21
- package/dist/entries/interop.js +5 -3
- package/dist/entries/scripting.cjs +18 -18
- package/dist/entries/scripting.js +8 -8
- package/dist/hololand/index.cjs +146 -0
- package/dist/hololand/index.d.ts +70 -0
- package/dist/hololand/index.js +5 -0
- package/dist/index.cjs +20332 -18121
- package/dist/index.d.ts +1477 -40
- package/dist/index.js +19451 -17638
- package/dist/math/tropical-spmv.cjs +45 -0
- package/dist/math/tropical-spmv.js +4 -0
- package/dist/math/vec3.cjs +14 -14
- package/dist/math/vec3.js +2 -2
- package/dist/{ml-dsa-PHCWUBPX.cjs → ml-dsa-FSKBTE3W.cjs} +177 -90
- package/dist/{ml-dsa-WYLJHJO6.js → ml-dsa-Z7JDKW4L.js} +158 -71
- package/dist/paper-0c-spike/index.cjs +150 -0
- package/dist/paper-0c-spike/index.d.ts +29 -0
- package/dist/paper-0c-spike/index.js +141 -0
- package/dist/parser.cjs +45 -11
- package/dist/parser.d.ts +11 -0
- package/dist/parser.js +10 -8
- package/dist/{playwright-RL6GY4F7.cjs → playwright-3AT3AKTV.cjs} +1985 -1985
- package/dist/{playwright-5OSAPTNH.js → playwright-VZPDVUEQ.js} +3 -3
- package/dist/reconstruction/index.cjs +153 -0
- package/dist/reconstruction/index.d.ts +105 -0
- package/dist/reconstruction/index.js +8 -0
- package/dist/runtime.cjs +7 -5
- package/dist/runtime.js +6 -4
- package/dist/self-improvement/index.cjs +563 -0
- package/dist/self-improvement/index.js +545 -0
- package/dist/storage/index.cjs +10 -9
- package/dist/storage/index.js +3 -2
- package/dist/testing.cjs +25 -0
- package/dist/testing.d.ts +70 -0
- package/dist/testing.js +4 -0
- package/dist/tools/index.d.ts +22 -1
- package/dist/traitDocs/traitDocs.cjs +33 -0
- package/dist/traitDocs/traitDocs.d.ts +69 -0
- package/dist/traitDocs/traitDocs.js +7 -0
- package/dist/traits/botanical-lotus.cjs +41 -0
- package/dist/traits/botanical-lotus.d.ts +172 -0
- package/dist/traits/botanical-lotus.js +4 -0
- package/dist/traits/engines/index.cjs +520 -0
- package/dist/traits/engines/index.js +380 -0
- package/dist/traits/index.cjs +17630 -7881
- package/dist/traits/index.d.ts +197 -0
- package/dist/traits/index.js +16573 -7193
- package/dist/traits/simulation-solver-factory.cjs +13 -0
- package/dist/traits/simulation-solver-factory.d.ts +23 -0
- package/dist/traits/simulation-solver-factory.js +4 -0
- package/dist/traits/webcam-gaze.cjs +35 -0
- package/dist/traits/webcam-gaze.d.ts +17 -0
- package/dist/traits/webcam-gaze.js +4 -0
- package/dist/type-checker.cjs +6 -5
- package/dist/type-checker.js +4 -3
- package/dist/world/index.cjs +947 -0
- package/dist/world/index.d.ts +147 -0
- package/dist/world/index.js +939 -0
- package/dist/world-model/index.cjs +1446 -0
- package/dist/world-model/index.d.ts +119 -0
- package/dist/world-model/index.js +1414 -0
- package/dist/wot/index.cjs +29 -0
- package/dist/wot/index.js +4 -0
- package/package.json +153 -61
- package/dist/GLTFPipeline-DEN36VNK.js +0 -12
- package/dist/GLTFPipeline-YPCAK236.cjs +0 -33
- package/dist/chunk-4XSNJCLC.cjs +0 -1859
- package/dist/chunk-A7PIMZGU.js +0 -263
- package/dist/chunk-BWFJEM5A.js +0 -5419
- package/dist/chunk-CBJSLA2E.cjs +0 -5423
- package/dist/chunk-K3JDKWGI.cjs +0 -270
- package/dist/chunk-LSW7P7ML.js +0 -3675
- package/dist/chunk-MEASWI2Y.js +0 -126
- package/dist/chunk-NCUKG4SK.cjs +0 -3075
- package/dist/chunk-Q5JT3YML.cjs +0 -129
- package/dist/chunk-QGKNANZ3.js +0 -3071
- package/dist/chunk-S2N5TNMA.js +0 -1855
- package/dist/chunk-TSH3MSQU.cjs +0 -129
- package/dist/chunk-WGMEAYBG.js +0 -126
- package/dist/chunk-X6SEAXAX.cjs +0 -3681
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import { init_CompilerBase, CompilerBase } from './chunk-QTPMJRGS.js';
|
|
2
|
+
|
|
3
|
+
// src/compiler/QuantumCircuitCompiler.ts
|
|
4
|
+
init_CompilerBase();
|
|
5
|
+
function qubitsForMolecule(atoms) {
|
|
6
|
+
const orbitalCount = atoms.reduce((sum, a) => {
|
|
7
|
+
if (a.symbol === "H") return sum + 1;
|
|
8
|
+
if (["C", "N", "O", "F"].includes(a.symbol)) return sum + 5;
|
|
9
|
+
return sum + 9;
|
|
10
|
+
}, 0);
|
|
11
|
+
return orbitalCount * 2;
|
|
12
|
+
}
|
|
13
|
+
function extractNumber(config, key) {
|
|
14
|
+
const entry = config[key];
|
|
15
|
+
if (!entry) return void 0;
|
|
16
|
+
const v = entry.value;
|
|
17
|
+
if (typeof v === "number") return v;
|
|
18
|
+
if (typeof v === "string") {
|
|
19
|
+
const n = parseFloat(v);
|
|
20
|
+
return isNaN(n) ? void 0 : n;
|
|
21
|
+
}
|
|
22
|
+
return void 0;
|
|
23
|
+
}
|
|
24
|
+
function extractAtoms(config) {
|
|
25
|
+
const entry = config["molecule"] ?? config["atoms"];
|
|
26
|
+
if (!entry) return void 0;
|
|
27
|
+
let raw = entry.value;
|
|
28
|
+
if (typeof raw === "string") {
|
|
29
|
+
try {
|
|
30
|
+
raw = JSON.parse(raw);
|
|
31
|
+
} catch {
|
|
32
|
+
return void 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!Array.isArray(raw)) return void 0;
|
|
36
|
+
return raw.filter(
|
|
37
|
+
(a) => typeof a === "object" && a !== null && typeof a["symbol"] === "string"
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
function extractWeightMatrix(config) {
|
|
41
|
+
const entry = config["weightMatrix"] ?? config["weight_matrix"] ?? config["adjacency"];
|
|
42
|
+
if (!entry) return void 0;
|
|
43
|
+
let raw = entry.value;
|
|
44
|
+
if (typeof raw === "string") {
|
|
45
|
+
try {
|
|
46
|
+
raw = JSON.parse(raw);
|
|
47
|
+
} catch {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!Array.isArray(raw)) return void 0;
|
|
52
|
+
if (!raw.every((row) => Array.isArray(row))) return void 0;
|
|
53
|
+
return raw;
|
|
54
|
+
}
|
|
55
|
+
function generateVQECircuit(atoms, moleculeName, ansatzLayers, initialParams) {
|
|
56
|
+
const warnings = [];
|
|
57
|
+
let numQubits = qubitsForMolecule(atoms);
|
|
58
|
+
if (numQubits > 50) {
|
|
59
|
+
warnings.push(
|
|
60
|
+
`Molecule requires ${numQubits} qubits which exceeds the 50-qubit cap. Clamping to 50. Use classical QM for larger systems.`
|
|
61
|
+
);
|
|
62
|
+
numQubits = 50;
|
|
63
|
+
}
|
|
64
|
+
if (numQubits > 20) {
|
|
65
|
+
warnings.push(
|
|
66
|
+
`Circuit uses ${numQubits} qubits \u2014 near-term hardware is limited to ~20 qubits without error correction. Consider a smaller basis set.`
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const n = numQubits;
|
|
70
|
+
const totalParams = ansatzLayers * n;
|
|
71
|
+
const paramNames = [];
|
|
72
|
+
for (let i = 0; i < totalParams; i++) {
|
|
73
|
+
paramNames.push(`theta_${i}`);
|
|
74
|
+
}
|
|
75
|
+
const lines = [];
|
|
76
|
+
lines.push("OPENQASM 3.0;");
|
|
77
|
+
lines.push('include "stdgates.inc";');
|
|
78
|
+
lines.push(`// Hardware-efficient ansatz for ${moleculeName} (${n} qubits, sto-3g)`);
|
|
79
|
+
lines.push("// Generated by HoloScript QuantumCircuitCompiler");
|
|
80
|
+
lines.push(`qubit[${n}] q;`);
|
|
81
|
+
lines.push(`bit[${n}] c;`);
|
|
82
|
+
lines.push(`// Parameters: bindable by optimizer (initial values are defaults)`);
|
|
83
|
+
for (let i = 0; i < totalParams; i++) {
|
|
84
|
+
const defaultVal = initialParams?.[i] ?? 0.1;
|
|
85
|
+
lines.push(`input float theta_${i}; // default=${defaultVal}`);
|
|
86
|
+
}
|
|
87
|
+
let paramIdx = 0;
|
|
88
|
+
for (let layer = 0; layer < ansatzLayers; layer++) {
|
|
89
|
+
lines.push(`// Layer ${layer}: Ry rotations (\u03B8[${paramIdx}..${paramIdx + n - 1}] optimised by VQE)`);
|
|
90
|
+
for (let i = 0; i < n; i++) {
|
|
91
|
+
lines.push(`ry(theta_${paramIdx}) q[${i}];`);
|
|
92
|
+
paramIdx++;
|
|
93
|
+
}
|
|
94
|
+
if (layer < ansatzLayers - 1 || n > 1) {
|
|
95
|
+
lines.push(`// Entanglement: linear CNOT chain`);
|
|
96
|
+
for (let i = 0; i < n - 1; i++) {
|
|
97
|
+
lines.push(`cx q[${i}], q[${i + 1}];`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
lines.push("// Measurement");
|
|
102
|
+
lines.push("c = measure q;");
|
|
103
|
+
const estimatedDepth = ansatzLayers * 2 + 1;
|
|
104
|
+
return { qasm: lines.join("\n"), numQubits: n, estimatedDepth, warnings, paramNames };
|
|
105
|
+
}
|
|
106
|
+
function generateQAOACircuit(weightMatrix, p, initialGamma, initialBeta) {
|
|
107
|
+
const warnings = [];
|
|
108
|
+
let n = weightMatrix.length;
|
|
109
|
+
if (n > 100) {
|
|
110
|
+
warnings.push(
|
|
111
|
+
`Graph has ${n} nodes which exceeds the 100-qubit cap. Clamping to 100. Use classical solvers for larger instances.`
|
|
112
|
+
);
|
|
113
|
+
n = 100;
|
|
114
|
+
weightMatrix = weightMatrix.slice(0, 100).map((row) => row.slice(0, 100));
|
|
115
|
+
}
|
|
116
|
+
if (n > 50) {
|
|
117
|
+
warnings.push(
|
|
118
|
+
`Circuit uses ${n} qubits \u2014 near-term hardware handles ~50 qubits without error correction.`
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
const defaultGamma = initialGamma ?? 0.5;
|
|
122
|
+
const defaultBeta = initialBeta ?? 0.5;
|
|
123
|
+
const paramNames = [];
|
|
124
|
+
for (let round = 0; round < p; round++) {
|
|
125
|
+
paramNames.push(`gamma_${round}`);
|
|
126
|
+
paramNames.push(`beta_${round}`);
|
|
127
|
+
}
|
|
128
|
+
const lines = [];
|
|
129
|
+
lines.push("OPENQASM 3.0;");
|
|
130
|
+
lines.push('include "stdgates.inc";');
|
|
131
|
+
lines.push(`// QAOA Max-Cut circuit for ${n}-node graph (p=${p})`);
|
|
132
|
+
lines.push("// Generated by HoloScript QuantumCircuitCompiler");
|
|
133
|
+
lines.push(`qubit[${n}] q;`);
|
|
134
|
+
lines.push(`bit[${n}] c;`);
|
|
135
|
+
lines.push("// Parameters: bindable by optimizer (initial values are defaults)");
|
|
136
|
+
for (let round = 0; round < p; round++) {
|
|
137
|
+
lines.push(`input float gamma_${round}; // default=${defaultGamma}`);
|
|
138
|
+
lines.push(`input float beta_${round}; // default=${defaultBeta}`);
|
|
139
|
+
}
|
|
140
|
+
lines.push("// Initial superposition");
|
|
141
|
+
for (let i = 0; i < n; i++) {
|
|
142
|
+
lines.push(`h q[${i}];`);
|
|
143
|
+
}
|
|
144
|
+
for (let round = 0; round < p; round++) {
|
|
145
|
+
lines.push(`// Problem unitary \u2014 round ${round + 1} (gamma=gamma_${round})`);
|
|
146
|
+
for (let i = 0; i < n; i++) {
|
|
147
|
+
for (let j = i + 1; j < n; j++) {
|
|
148
|
+
const w = weightMatrix[i]?.[j] ?? 0;
|
|
149
|
+
if (w !== 0) {
|
|
150
|
+
lines.push(`// Edge (${i},${j}) weight=${w}: rzz(2.0*gamma_${round}*${w.toFixed(4)})`);
|
|
151
|
+
lines.push(`cx q[${i}], q[${j}];`);
|
|
152
|
+
lines.push(`rz(2.0 * gamma_${round} * ${w.toFixed(4)}) q[${j}];`);
|
|
153
|
+
lines.push(`cx q[${i}], q[${j}];`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
lines.push(`// Mixer unitary \u2014 round ${round + 1} (beta=beta_${round})`);
|
|
158
|
+
for (let i = 0; i < n; i++) {
|
|
159
|
+
lines.push(`rx(2.0 * beta_${round}) q[${i}];`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
lines.push("// Measurement");
|
|
163
|
+
lines.push("c = measure q;");
|
|
164
|
+
const edgeCount = weightMatrix.flat().filter((w) => w !== 0).length / 2;
|
|
165
|
+
const estimatedDepth = 1 + p * (Math.ceil(edgeCount * 3) + 1) + 1;
|
|
166
|
+
return { qasm: lines.join("\n"), numQubits: n, estimatedDepth, warnings, paramNames };
|
|
167
|
+
}
|
|
168
|
+
function generateStubCircuit() {
|
|
169
|
+
const qasm = [
|
|
170
|
+
"OPENQASM 3.0;",
|
|
171
|
+
'include "stdgates.inc";',
|
|
172
|
+
"// Stub circuit: no @quantumCircuit trait found in composition",
|
|
173
|
+
"// Generated by HoloScript QuantumCircuitCompiler",
|
|
174
|
+
"qubit[1] q;",
|
|
175
|
+
"bit[1] c;",
|
|
176
|
+
"h q[0];",
|
|
177
|
+
"c = measure q;"
|
|
178
|
+
].join("\n");
|
|
179
|
+
return {
|
|
180
|
+
qasm,
|
|
181
|
+
warnings: [
|
|
182
|
+
"No @quantumCircuit (or @quantum_circuit) trait found in the composition. A stub 1-qubit circuit has been emitted. Add a @quantumCircuit trait with `molecule` or `weightMatrix` params to generate a real circuit."
|
|
183
|
+
]
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
var QuantumCircuitCompiler = class extends CompilerBase {
|
|
187
|
+
constructor() {
|
|
188
|
+
super(...arguments);
|
|
189
|
+
this.compilerName = "QuantumCircuitCompiler";
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Compile a HoloScript composition to an OpenQASM 3.0 circuit.
|
|
193
|
+
*
|
|
194
|
+
* The method scans `composition.objects` for the first object that carries a
|
|
195
|
+
* `@quantumCircuit` or `@quantum_circuit` trait. Trait params drive the type:
|
|
196
|
+
* - `molecule` (or `atoms`) → VQE hardware-efficient ansatz
|
|
197
|
+
* - `weightMatrix` / `weight_matrix` / `adjacency` / `numNodes` → QAOA Max-Cut
|
|
198
|
+
* - none of the above → stub 1-qubit circuit with a warning
|
|
199
|
+
*
|
|
200
|
+
* @param composition - Parsed HoloScript AST
|
|
201
|
+
* @param agentToken - JWT RBAC token or UCAN CapabilityTokenCredential (optional)
|
|
202
|
+
* @param outputPath - Optional path for output-scope RBAC check
|
|
203
|
+
* @param _sceneGraph - Unused (reserved for future scene-graph hints)
|
|
204
|
+
* @returns {@link QASMOutput}
|
|
205
|
+
*/
|
|
206
|
+
compile(composition, agentToken, outputPath, _sceneGraph) {
|
|
207
|
+
this.validateCompilerAccess(agentToken, outputPath);
|
|
208
|
+
const quantum = this.findQuantumTrait(composition.objects ?? []);
|
|
209
|
+
if (!quantum) {
|
|
210
|
+
const { qasm: qasm2, warnings: warnings2 } = generateStubCircuit();
|
|
211
|
+
return {
|
|
212
|
+
qasm: qasm2,
|
|
213
|
+
numQubits: 1,
|
|
214
|
+
numClbits: 1,
|
|
215
|
+
estimatedDepth: 2,
|
|
216
|
+
circuitType: "custom",
|
|
217
|
+
recommendedBackend: "aer",
|
|
218
|
+
warnings: warnings2
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
const { trait } = quantum;
|
|
222
|
+
const cfg = trait.config;
|
|
223
|
+
const atoms = extractAtoms(cfg);
|
|
224
|
+
const weightMatrix = extractWeightMatrix(cfg);
|
|
225
|
+
const numNodes = extractNumber(cfg, "numNodes") ?? extractNumber(cfg, "num_nodes");
|
|
226
|
+
if (atoms && atoms.length > 0) {
|
|
227
|
+
return this.buildVQEOutput(atoms, cfg);
|
|
228
|
+
}
|
|
229
|
+
if (weightMatrix) {
|
|
230
|
+
return this.buildQAOAOutput(weightMatrix, cfg);
|
|
231
|
+
}
|
|
232
|
+
if (numNodes !== void 0 && numNodes > 0) {
|
|
233
|
+
const n = Math.min(Math.round(numNodes), 100);
|
|
234
|
+
const matrix = Array.from(
|
|
235
|
+
{ length: n },
|
|
236
|
+
(_, i) => Array.from({ length: n }, (_2, j) => i !== j ? 1 : 0)
|
|
237
|
+
);
|
|
238
|
+
return this.buildQAOAOutput(matrix, cfg);
|
|
239
|
+
}
|
|
240
|
+
const { qasm, warnings } = generateStubCircuit();
|
|
241
|
+
warnings.unshift(
|
|
242
|
+
"@quantumCircuit trait found but neither `molecule`/`atoms` nor `weightMatrix`/`numNodes` params are present. Add params to generate a circuit."
|
|
243
|
+
);
|
|
244
|
+
return {
|
|
245
|
+
qasm,
|
|
246
|
+
numQubits: 1,
|
|
247
|
+
numClbits: 1,
|
|
248
|
+
estimatedDepth: 2,
|
|
249
|
+
circuitType: "custom",
|
|
250
|
+
recommendedBackend: "aer",
|
|
251
|
+
warnings
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
// ---------------------------------------------------------------------------
|
|
255
|
+
// Private helpers
|
|
256
|
+
// ---------------------------------------------------------------------------
|
|
257
|
+
/**
|
|
258
|
+
* Walk `objects` (and their children) recursively, returning the first object
|
|
259
|
+
* that has a `@quantumCircuit` or `@quantum_circuit` trait, plus the trait.
|
|
260
|
+
*/
|
|
261
|
+
findQuantumTrait(objects) {
|
|
262
|
+
for (const obj of objects) {
|
|
263
|
+
for (const trait of obj.traits ?? []) {
|
|
264
|
+
if (trait.name === "quantumCircuit" || trait.name === "quantum_circuit") {
|
|
265
|
+
return { obj, trait };
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
if (obj.children && obj.children.length > 0) {
|
|
269
|
+
const found = this.findQuantumTrait(obj.children);
|
|
270
|
+
if (found) return found;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return void 0;
|
|
274
|
+
}
|
|
275
|
+
/** Build a {@link QASMOutput} for a VQE circuit. */
|
|
276
|
+
buildVQEOutput(atoms, cfg) {
|
|
277
|
+
const moleculeName = (extractNumber(cfg, "moleculeName") !== void 0 ? void 0 : cfg["moleculeName"]?.value) ?? atoms.map((a) => a.symbol).join("") ?? "molecule";
|
|
278
|
+
const ansatzLayers = Math.max(1, Math.round(extractNumber(cfg, "ansatzLayers") ?? extractNumber(cfg, "ansatz_layers") ?? 2));
|
|
279
|
+
const initialParams = cfg["initialParams"]?.value ?? cfg["initial_params"]?.value ?? void 0;
|
|
280
|
+
const { qasm, numQubits, estimatedDepth, warnings, paramNames } = generateVQECircuit(
|
|
281
|
+
atoms,
|
|
282
|
+
moleculeName,
|
|
283
|
+
ansatzLayers,
|
|
284
|
+
initialParams
|
|
285
|
+
);
|
|
286
|
+
return {
|
|
287
|
+
qasm,
|
|
288
|
+
numQubits,
|
|
289
|
+
numClbits: numQubits,
|
|
290
|
+
estimatedDepth,
|
|
291
|
+
circuitType: "vqe",
|
|
292
|
+
molecule: { atoms },
|
|
293
|
+
recommendedBackend: numQubits <= 20 ? "aer" : "ibm-quantum",
|
|
294
|
+
warnings,
|
|
295
|
+
paramNames
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
/** Build a {@link QASMOutput} for a QAOA circuit. */
|
|
299
|
+
buildQAOAOutput(weightMatrix, cfg) {
|
|
300
|
+
const p = Math.max(1, Math.round(extractNumber(cfg, "p") ?? 1));
|
|
301
|
+
const initialGamma = extractNumber(cfg, "gamma") ?? extractNumber(cfg, "initial_gamma");
|
|
302
|
+
const initialBeta = extractNumber(cfg, "beta") ?? extractNumber(cfg, "initial_beta");
|
|
303
|
+
const { qasm, numQubits, estimatedDepth, warnings, paramNames } = generateQAOACircuit(
|
|
304
|
+
weightMatrix,
|
|
305
|
+
p,
|
|
306
|
+
initialGamma,
|
|
307
|
+
initialBeta
|
|
308
|
+
);
|
|
309
|
+
return {
|
|
310
|
+
qasm,
|
|
311
|
+
numQubits,
|
|
312
|
+
numClbits: numQubits,
|
|
313
|
+
estimatedDepth,
|
|
314
|
+
circuitType: "qaoa",
|
|
315
|
+
weightMatrix,
|
|
316
|
+
recommendedBackend: numQubits <= 50 ? "aer" : "ibm-quantum",
|
|
317
|
+
warnings,
|
|
318
|
+
paramNames
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
export { QuantumCircuitCompiler };
|
|
324
|
+
//# sourceMappingURL=chunk-EOFNVCM6.js.map
|
|
325
|
+
//# sourceMappingURL=chunk-EOFNVCM6.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { init_CompilerBase, CompilerBase } from './chunk-
|
|
5
|
-
import { ANSCapabilityPath } from '@holoscript/
|
|
1
|
+
import { init_VRRCompiler, VRRCompiler } from './chunk-R3IVNY6P.js';
|
|
2
|
+
import { init_ARCompiler, ARCompiler } from './chunk-OPZ7XDDI.js';
|
|
3
|
+
import { init_BabylonCompiler, BabylonCompiler } from './chunk-6ASWLXXN.js';
|
|
4
|
+
import { init_CompilerBase, CompilerBase } from './chunk-QTPMJRGS.js';
|
|
5
|
+
import { ANSCapabilityPath } from '@holoscript/core-types/ans';
|
|
6
6
|
|
|
7
7
|
// src/compiler/MultiLayerCompiler.ts
|
|
8
8
|
init_VRRCompiler();
|
|
@@ -66,5 +66,5 @@ var MultiLayerCompiler = class extends CompilerBase {
|
|
|
66
66
|
};
|
|
67
67
|
|
|
68
68
|
export { MultiLayerCompiler };
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-ER4GATIU.js.map
|
|
70
|
+
//# sourceMappingURL=chunk-ER4GATIU.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkOSYNRVOV_cjs = require('./chunk-OSYNRVOV.cjs');
|
|
4
|
+
|
|
3
5
|
// src/interop/InteropBindingGenerator.ts
|
|
4
6
|
var InteropBindingGenerator = class {
|
|
5
7
|
/**
|
|
@@ -186,149 +188,10 @@ var InteropBindingGenerator = class {
|
|
|
186
188
|
}
|
|
187
189
|
};
|
|
188
190
|
|
|
189
|
-
// src/resilience/ResiliencePatterns.ts
|
|
190
|
-
var CircuitBreakerState = /* @__PURE__ */ ((CircuitBreakerState2) => {
|
|
191
|
-
CircuitBreakerState2["CLOSED"] = "CLOSED";
|
|
192
|
-
CircuitBreakerState2["OPEN"] = "OPEN";
|
|
193
|
-
CircuitBreakerState2["HALF_OPEN"] = "HALF_OPEN";
|
|
194
|
-
return CircuitBreakerState2;
|
|
195
|
-
})(CircuitBreakerState || {});
|
|
196
|
-
var CircuitBreaker = class {
|
|
197
|
-
constructor(config = {}) {
|
|
198
|
-
this.state = "CLOSED" /* CLOSED */;
|
|
199
|
-
this.failureCount = 0;
|
|
200
|
-
this.successCount = 0;
|
|
201
|
-
this.lastFailureTime = null;
|
|
202
|
-
this.failures = [];
|
|
203
|
-
this.config = {
|
|
204
|
-
failureThreshold: 5,
|
|
205
|
-
successThreshold: 2,
|
|
206
|
-
resetTimeoutMs: 6e4,
|
|
207
|
-
// 1 minute
|
|
208
|
-
windowMs: 3e4,
|
|
209
|
-
// 30 seconds
|
|
210
|
-
isRetryable: (err) => err instanceof Error,
|
|
211
|
-
...config
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Execute function with circuit breaker protection
|
|
216
|
-
*/
|
|
217
|
-
async execute(fn) {
|
|
218
|
-
if (this.state === "OPEN" /* OPEN */) {
|
|
219
|
-
if (Date.now() - (this.lastFailureTime || 0) > this.config.resetTimeoutMs) {
|
|
220
|
-
this.state = "HALF_OPEN" /* HALF_OPEN */;
|
|
221
|
-
this.successCount = 0;
|
|
222
|
-
} else {
|
|
223
|
-
throw new Error(`Circuit breaker is OPEN. Retry after ${this.config.resetTimeoutMs}ms`);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
try {
|
|
227
|
-
const result = await fn();
|
|
228
|
-
this.onSuccess();
|
|
229
|
-
return result;
|
|
230
|
-
} catch (error) {
|
|
231
|
-
this.onFailure(error);
|
|
232
|
-
throw error;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
onSuccess() {
|
|
236
|
-
this.failureCount = 0;
|
|
237
|
-
this.failures = this.failures.filter((f) => Date.now() - f.timestamp < this.config.windowMs);
|
|
238
|
-
if (this.state === "HALF_OPEN" /* HALF_OPEN */) {
|
|
239
|
-
this.successCount++;
|
|
240
|
-
if (this.successCount >= this.config.successThreshold) {
|
|
241
|
-
this.state = "CLOSED" /* CLOSED */;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
onFailure(error) {
|
|
246
|
-
this.lastFailureTime = Date.now();
|
|
247
|
-
this.failureCount++;
|
|
248
|
-
this.failures.push({ timestamp: Date.now(), error });
|
|
249
|
-
this.failures = this.failures.filter((f) => Date.now() - f.timestamp < this.config.windowMs);
|
|
250
|
-
if (this.state === "HALF_OPEN" /* HALF_OPEN */) {
|
|
251
|
-
this.state = "OPEN" /* OPEN */;
|
|
252
|
-
} else if (this.failureCount >= this.config.failureThreshold) {
|
|
253
|
-
this.state = "OPEN" /* OPEN */;
|
|
254
|
-
console.error(`Circuit breaker OPEN after ${this.failureCount} failures: ${error.message}`);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
get currentState() {
|
|
258
|
-
return this.state;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Get current circuit breaker state (accessor method)
|
|
262
|
-
*/
|
|
263
|
-
getState() {
|
|
264
|
-
if (this.state === "OPEN" /* OPEN */ && Date.now() - (this.lastFailureTime || 0) > this.config.resetTimeoutMs) {
|
|
265
|
-
return "HALF_OPEN" /* HALF_OPEN */;
|
|
266
|
-
}
|
|
267
|
-
return this.state;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Get circuit breaker metrics
|
|
271
|
-
*/
|
|
272
|
-
getMetrics() {
|
|
273
|
-
return {
|
|
274
|
-
state: this.state,
|
|
275
|
-
totalFailures: this.failureCount,
|
|
276
|
-
totalSuccesses: this.successCount,
|
|
277
|
-
lastFailureTime: this.lastFailureTime,
|
|
278
|
-
totalRequests: this.failureCount + this.successCount
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
async function retryWithBackoff(fn, config = {}) {
|
|
283
|
-
const cfg = {
|
|
284
|
-
maxAttempts: 3,
|
|
285
|
-
initialBackoffMs: 100,
|
|
286
|
-
maxBackoffMs: 1e4,
|
|
287
|
-
multiplier: 2,
|
|
288
|
-
jitter: true,
|
|
289
|
-
isRetryable: (err, attempt) => attempt < cfg.maxAttempts,
|
|
290
|
-
...config
|
|
291
|
-
};
|
|
292
|
-
let lastError = null;
|
|
293
|
-
for (let attempt = 1; attempt <= cfg.maxAttempts; attempt++) {
|
|
294
|
-
try {
|
|
295
|
-
return await fn();
|
|
296
|
-
} catch (error) {
|
|
297
|
-
lastError = error;
|
|
298
|
-
if (!cfg.isRetryable(lastError, attempt)) {
|
|
299
|
-
throw lastError;
|
|
300
|
-
}
|
|
301
|
-
if (attempt < cfg.maxAttempts) {
|
|
302
|
-
const backoff = Math.min(
|
|
303
|
-
cfg.initialBackoffMs * Math.pow(cfg.multiplier, attempt - 1),
|
|
304
|
-
cfg.maxBackoffMs
|
|
305
|
-
);
|
|
306
|
-
const jitteredBackoff = cfg.jitter ? backoff * (0.5 + Math.random() * 0.5) : backoff;
|
|
307
|
-
console.warn(
|
|
308
|
-
`Attempt ${attempt} failed: ${lastError.message}. Retrying in ${Math.round(jitteredBackoff)}ms`
|
|
309
|
-
);
|
|
310
|
-
await sleep(jitteredBackoff);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
throw lastError || new Error("Max retry attempts exceeded");
|
|
315
|
-
}
|
|
316
|
-
function sleep(ms) {
|
|
317
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
318
|
-
}
|
|
319
|
-
async function withTimeout(promise, timeoutMs) {
|
|
320
|
-
return Promise.race([
|
|
321
|
-
promise,
|
|
322
|
-
new Promise(
|
|
323
|
-
(_, reject) => setTimeout(() => reject(new Error(`Operation timeout after ${timeoutMs}ms`)), timeoutMs)
|
|
324
|
-
)
|
|
325
|
-
]);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
191
|
// src/mcp/MCPCircuitBreaker.ts
|
|
329
192
|
var MCPCircuitBreaker = class {
|
|
330
193
|
constructor(config = {}) {
|
|
331
|
-
this.breaker = new CircuitBreaker({
|
|
194
|
+
this.breaker = new chunkOSYNRVOV_cjs.CircuitBreaker({
|
|
332
195
|
failureThreshold: config.failureThreshold ?? 5,
|
|
333
196
|
successThreshold: config.successThreshold ?? 2,
|
|
334
197
|
resetTimeoutMs: config.resetTimeoutMs ?? 3e4,
|
|
@@ -342,9 +205,9 @@ var MCPCircuitBreaker = class {
|
|
|
342
205
|
async callTool(tool, args, timeoutMs = 15e3) {
|
|
343
206
|
try {
|
|
344
207
|
const result = await this.breaker.execute(async () => {
|
|
345
|
-
return retryWithBackoff(
|
|
208
|
+
return chunkOSYNRVOV_cjs.retryWithBackoff(
|
|
346
209
|
async () => {
|
|
347
|
-
const response = await withTimeout(
|
|
210
|
+
const response = await chunkOSYNRVOV_cjs.withTimeout(
|
|
348
211
|
fetch(`${this.baseUrl}/api/mcp/tools/${tool}`, {
|
|
349
212
|
method: "POST",
|
|
350
213
|
headers: { "Content-Type": "application/json" },
|
|
@@ -404,12 +267,8 @@ function getMCPCircuitBreaker(config) {
|
|
|
404
267
|
return defaultInstance;
|
|
405
268
|
}
|
|
406
269
|
|
|
407
|
-
exports.CircuitBreaker = CircuitBreaker;
|
|
408
|
-
exports.CircuitBreakerState = CircuitBreakerState;
|
|
409
270
|
exports.InteropBindingGenerator = InteropBindingGenerator;
|
|
410
271
|
exports.MCPCircuitBreaker = MCPCircuitBreaker;
|
|
411
272
|
exports.getMCPCircuitBreaker = getMCPCircuitBreaker;
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
//# sourceMappingURL=chunk-N5FTS757.cjs.map
|
|
415
|
-
//# sourceMappingURL=chunk-N5FTS757.cjs.map
|
|
273
|
+
//# sourceMappingURL=chunk-EXKSFGSX.cjs.map
|
|
274
|
+
//# sourceMappingURL=chunk-EXKSFGSX.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZDSYWBIE_cjs = require('./chunk-ZDSYWBIE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/compiler/ProceduralGeometry.ts
|
|
6
6
|
var LOD_PRESETS = {
|
|
@@ -313,36 +313,36 @@ function generateSplineGeometry(points, radii, radialSegments = 32, lengthSteps
|
|
|
313
313
|
const v = ring / (totalRings - 1);
|
|
314
314
|
let tangent;
|
|
315
315
|
if (ring === 0) {
|
|
316
|
-
tangent =
|
|
316
|
+
tangent = chunkZDSYWBIE_cjs.vec3SubArray(pathPoints[1], pathPoints[0]);
|
|
317
317
|
} else if (ring === totalRings - 1) {
|
|
318
|
-
tangent =
|
|
318
|
+
tangent = chunkZDSYWBIE_cjs.vec3SubArray(pathPoints[totalRings - 1], pathPoints[totalRings - 2]);
|
|
319
319
|
} else {
|
|
320
|
-
tangent =
|
|
320
|
+
tangent = chunkZDSYWBIE_cjs.vec3SubArray(pathPoints[ring + 1], pathPoints[ring - 1]);
|
|
321
321
|
}
|
|
322
|
-
|
|
322
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(tangent);
|
|
323
323
|
let normal;
|
|
324
324
|
let binormal;
|
|
325
325
|
if (ring === 0) {
|
|
326
326
|
if (Math.abs(tangent[0]) < 0.9) {
|
|
327
|
-
normal =
|
|
327
|
+
normal = chunkZDSYWBIE_cjs.vec3CrossArray(tangent, [1, 0, 0]);
|
|
328
328
|
} else {
|
|
329
|
-
normal =
|
|
329
|
+
normal = chunkZDSYWBIE_cjs.vec3CrossArray(tangent, [0, 1, 0]);
|
|
330
330
|
}
|
|
331
|
-
|
|
332
|
-
binormal =
|
|
333
|
-
|
|
331
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(normal);
|
|
332
|
+
binormal = chunkZDSYWBIE_cjs.vec3CrossArray(tangent, normal);
|
|
333
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(binormal);
|
|
334
334
|
} else {
|
|
335
|
-
normal =
|
|
335
|
+
normal = chunkZDSYWBIE_cjs.vec3SubArray(
|
|
336
336
|
prevNormal,
|
|
337
|
-
|
|
337
|
+
chunkZDSYWBIE_cjs.vec3ScaleArray(
|
|
338
338
|
tangent,
|
|
339
339
|
prevNormal[0] * tangent[0] + prevNormal[1] * tangent[1] + prevNormal[2] * tangent[2]
|
|
340
340
|
)
|
|
341
341
|
);
|
|
342
|
-
const nLen =
|
|
342
|
+
const nLen = chunkZDSYWBIE_cjs.vec3NormalizeInPlace(normal);
|
|
343
343
|
if (nLen < 1e-6) normal = [...prevNormal];
|
|
344
|
-
binormal =
|
|
345
|
-
|
|
344
|
+
binormal = chunkZDSYWBIE_cjs.vec3CrossArray(tangent, normal);
|
|
345
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(binormal);
|
|
346
346
|
}
|
|
347
347
|
prevNormal = normal;
|
|
348
348
|
for (let i = 0; i <= radialSegments; i++) {
|
|
@@ -369,8 +369,8 @@ function generateSplineGeometry(points, radii, radialSegments = 32, lengthSteps
|
|
|
369
369
|
}
|
|
370
370
|
const startCenter = positions.length / 3;
|
|
371
371
|
const sp = pathPoints[0];
|
|
372
|
-
const startTangent =
|
|
373
|
-
|
|
372
|
+
const startTangent = chunkZDSYWBIE_cjs.vec3SubArray(pathPoints[1], pathPoints[0]);
|
|
373
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(startTangent);
|
|
374
374
|
positions.push(sp[0], sp[1], sp[2]);
|
|
375
375
|
normals.push(-startTangent[0], -startTangent[1], -startTangent[2]);
|
|
376
376
|
uvs.push(0.5, 0);
|
|
@@ -379,8 +379,8 @@ function generateSplineGeometry(points, radii, radialSegments = 32, lengthSteps
|
|
|
379
379
|
}
|
|
380
380
|
const endCenter = positions.length / 3;
|
|
381
381
|
const ep = pathPoints[totalRings - 1];
|
|
382
|
-
const endTangent =
|
|
383
|
-
|
|
382
|
+
const endTangent = chunkZDSYWBIE_cjs.vec3SubArray(pathPoints[totalRings - 1], pathPoints[totalRings - 2]);
|
|
383
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(endTangent);
|
|
384
384
|
positions.push(ep[0], ep[1], ep[2]);
|
|
385
385
|
normals.push(endTangent[0], endTangent[1], endTangent[2]);
|
|
386
386
|
uvs.push(0.5, 1);
|
|
@@ -981,7 +981,7 @@ function generateHullGeometry(blobs, resolution = 24, threshold = 1, lod) {
|
|
|
981
981
|
const gradEps = Math.min(dx, dy, dz) * 0.5;
|
|
982
982
|
const grad = evalGradient(x, y, z, gradEps);
|
|
983
983
|
const n = [-grad[0], -grad[1], -grad[2]];
|
|
984
|
-
|
|
984
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(n);
|
|
985
985
|
const vertIdx = positions.length / 3;
|
|
986
986
|
positions.push(x, y, z);
|
|
987
987
|
normals.push(n[0], n[1], n[2]);
|
|
@@ -1094,14 +1094,14 @@ function generateMembraneGeometry(anchors, subdivisions = 8, bulge = 0.15, lod)
|
|
|
1094
1094
|
for (let i = 0; i < anchors.length; i++) {
|
|
1095
1095
|
const a = anchors[i];
|
|
1096
1096
|
const b = anchors[(i + 1) % anchors.length];
|
|
1097
|
-
const ca =
|
|
1098
|
-
const cb =
|
|
1099
|
-
const cross =
|
|
1097
|
+
const ca = chunkZDSYWBIE_cjs.vec3SubArray(a, center);
|
|
1098
|
+
const cb = chunkZDSYWBIE_cjs.vec3SubArray(b, center);
|
|
1099
|
+
const cross = chunkZDSYWBIE_cjs.vec3CrossArray(ca, cb);
|
|
1100
1100
|
memNormal[0] += cross[0];
|
|
1101
1101
|
memNormal[1] += cross[1];
|
|
1102
1102
|
memNormal[2] += cross[2];
|
|
1103
1103
|
}
|
|
1104
|
-
|
|
1104
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(memNormal);
|
|
1105
1105
|
const numAnchors = anchors.length;
|
|
1106
1106
|
const centerIdx = 0;
|
|
1107
1107
|
positions.push(
|
|
@@ -1133,7 +1133,7 @@ function generateMembraneGeometry(anchors, subdivisions = 8, bulge = 0.15, lod)
|
|
|
1133
1133
|
memNormal[1] + dy * bulge * 0.5,
|
|
1134
1134
|
memNormal[2] + dz * bulge * 0.5
|
|
1135
1135
|
];
|
|
1136
|
-
|
|
1136
|
+
chunkZDSYWBIE_cjs.vec3NormalizeInPlace(n);
|
|
1137
1137
|
normals.push(n[0], n[1], n[2]);
|
|
1138
1138
|
const angle = seg / numAnchors * Math.PI * 2;
|
|
1139
1139
|
uvs.push(0.5 + t * 0.5 * Math.cos(angle), 0.5 + t * 0.5 * Math.sin(angle));
|
|
@@ -1169,5 +1169,5 @@ function generateMembraneGeometry(anchors, subdivisions = 8, bulge = 0.15, lod)
|
|
|
1169
1169
|
exports.generateHullGeometry = generateHullGeometry;
|
|
1170
1170
|
exports.generateMembraneGeometry = generateMembraneGeometry;
|
|
1171
1171
|
exports.generateSplineGeometry = generateSplineGeometry;
|
|
1172
|
-
//# sourceMappingURL=chunk-
|
|
1173
|
-
//# sourceMappingURL=chunk-
|
|
1172
|
+
//# sourceMappingURL=chunk-EXUP2BUM.cjs.map
|
|
1173
|
+
//# sourceMappingURL=chunk-EXUP2BUM.cjs.map
|