@holoscript/core 8.0.8 → 8.0.9
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/bin/holoscript.cjs +5 -1
- package/dist/GLTFPipeline-L76YTXKA.js +15 -0
- package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
- package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
- package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
- package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
- package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
- package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
- package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
- package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
- package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
- package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
- package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
- package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
- package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
- package/dist/agents/index.cjs +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/audit/AuditLogger.d.ts +106 -0
- package/dist/audit/AuditQueryBuilder.d.ts +79 -0
- package/dist/audit/ComplianceReporter.d.ts +90 -0
- package/dist/audit/index.d.ts +13 -0
- package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
- package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
- package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
- package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
- package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
- package/dist/chunk-2MQKNDNH.js +51 -0
- package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
- package/dist/chunk-2ZOTBO25.cjs +202 -0
- package/dist/chunk-356N4NPM.cjs +152 -0
- package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
- package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
- package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
- package/dist/chunk-3F7ZZWIN.js +1651 -0
- package/dist/chunk-3ILD7TKP.cjs +187 -0
- package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
- package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
- package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
- package/dist/chunk-4Q7RKQQI.cjs +14195 -0
- package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
- package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
- package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
- package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
- package/dist/chunk-63AUAIL6.js +48 -0
- package/dist/chunk-655FATJU.js +110 -0
- package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
- package/dist/chunk-6NTAZN5Z.cjs +502 -0
- package/dist/chunk-6TRX6AR2.js +9376 -0
- package/dist/chunk-6ZCCLKS2.cjs +51 -0
- package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
- package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
- package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
- package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
- package/dist/chunk-7VBKRGIZ.cjs +847 -0
- package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
- package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
- package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
- package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
- package/dist/chunk-BCP4E7MD.cjs +997 -0
- package/dist/chunk-BG7RPYJP.js +91 -0
- package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
- package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
- package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
- package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
- package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
- package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
- package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
- package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
- package/dist/chunk-D3HSRXYB.js +115 -0
- package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
- package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
- package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
- package/dist/chunk-DQRJ5RJG.js +432 -0
- package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
- package/dist/chunk-ECUYJOJ2.cjs +199 -0
- package/dist/chunk-EEMTCAK7.js +182 -0
- package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
- package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
- package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
- package/dist/chunk-ESBXUYOC.cjs +836 -0
- package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
- package/dist/chunk-ET3AN4W3.js +824 -0
- package/dist/chunk-EXKSFGSX.cjs +14 -14
- package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
- package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
- package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
- package/dist/chunk-FGGJQRLZ.js +14 -14
- package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
- package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
- package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
- package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
- package/dist/chunk-GGR7QUKK.cjs +4724 -0
- package/dist/chunk-GIBF4BHH.js +14098 -0
- package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
- package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
- package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
- package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
- package/dist/chunk-GTIPOEHN.js +196 -0
- package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
- package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
- package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
- package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
- package/dist/chunk-HIDEIEFG.js +48 -0
- package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
- package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
- package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
- package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
- package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
- package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
- package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
- package/dist/chunk-J2DAS2PL.js +148 -0
- package/dist/chunk-JBQXZIWB.js +148 -0
- package/dist/chunk-JBYBMBMW.js +261 -0
- package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
- package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
- package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
- package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
- package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
- package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
- package/dist/chunk-KPGC7SK2.js +192 -0
- package/dist/chunk-KROXXBK5.cjs +53 -0
- package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
- package/dist/chunk-LDYZWNJW.cjs +1654 -0
- package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
- package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
- package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
- package/dist/chunk-MUWH4QK5.cjs +94 -0
- package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
- package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
- package/dist/chunk-NFFHLX37.cjs +132 -0
- package/dist/chunk-NJSYWX7H.js +190 -0
- package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
- package/dist/chunk-NTQRFOPP.cjs +56 -0
- package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
- package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
- package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
- package/dist/chunk-OMNHTCS4.cjs +264 -0
- package/dist/chunk-OQXB6NNC.cjs +117 -0
- package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
- package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
- package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
- package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
- package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
- package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
- package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
- package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
- package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
- package/dist/chunk-QBY7LRN2.js +281 -0
- package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
- package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
- package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
- package/dist/chunk-QJNCDVYM.cjs +137 -0
- package/dist/chunk-QM7FJB5W.js +4717 -0
- package/dist/chunk-QQFB4RT2.cjs +448 -0
- package/dist/chunk-QSYBHQAD.cjs +196 -0
- package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
- package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
- package/dist/chunk-RAJMAX6D.js +131 -0
- package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
- package/dist/chunk-RKGUZBOC.js +79 -0
- package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
- package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
- package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
- package/dist/chunk-SE7ANBGN.js +128 -0
- package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
- package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
- package/dist/chunk-SR73L5ZP.cjs +84 -0
- package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
- package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
- package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
- package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
- package/dist/chunk-UCVZXQ63.js +724 -0
- package/dist/chunk-UGQ3QNV6.js +992 -0
- package/dist/chunk-UNMVGZVW.js +142 -0
- package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
- package/dist/chunk-UXBYA7DV.cjs +155 -0
- package/dist/chunk-V6GXFSK7.cjs +443 -0
- package/dist/chunk-VHORVGCG.cjs +761 -0
- package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
- package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
- package/dist/chunk-VVAAZITA.cjs +287 -0
- package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
- package/dist/chunk-W4GABFCR.js +37 -0
- package/dist/chunk-WKEK4NCA.js +490 -0
- package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
- package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
- package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
- package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
- package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
- package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
- package/dist/chunk-YAO4HPJL.cjs +120 -0
- package/dist/chunk-YKY2JBER.cjs +9443 -0
- package/dist/chunk-YP5CHEYU.cjs +154 -0
- package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
- package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
- package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
- package/dist/chunk-ZHPMP447.cjs +43 -0
- package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
- package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
- package/dist/chunk-ZVFHPMC5.js +824 -0
- package/dist/chunk-ZVQMKUGJ.js +443 -0
- package/dist/cli/holoscript-runner.cjs +86 -48
- package/dist/cli/holoscript-runner.js +54 -16
- package/dist/codebase/index.cjs +1 -1
- package/dist/codebase/index.js +1 -1
- package/dist/compiler/agent-inference.cjs +11 -11
- package/dist/compiler/agent-inference.js +9 -6
- package/dist/compiler/android-xr.cjs +13 -12
- package/dist/compiler/android-xr.js +11 -10
- package/dist/compiler/android.cjs +12 -12
- package/dist/compiler/android.js +10 -10
- package/dist/compiler/business-quest.cjs +10 -10
- package/dist/compiler/business-quest.js +2 -2
- package/dist/compiler/coco.cjs +1 -1
- package/dist/compiler/coco.js +1 -1
- package/dist/compiler/context.cjs +9 -9
- package/dist/compiler/context.js +6 -6
- package/dist/compiler/daimon-seed.cjs +36 -0
- package/dist/compiler/daimon-seed.js +12 -0
- package/dist/compiler/domain-block-utils.cjs +205 -156
- package/dist/compiler/domain-block-utils.js +8 -7
- package/dist/compiler/dtdl.cjs +10 -10
- package/dist/compiler/dtdl.js +7 -7
- package/dist/compiler/gltf-pipeline.cjs +9 -9
- package/dist/compiler/gltf-pipeline.js +2 -2
- package/dist/compiler/godot.cjs +10 -9
- package/dist/compiler/godot.js +9 -8
- package/dist/compiler/incremental.cjs +11 -11
- package/dist/compiler/incremental.js +6 -6
- package/dist/compiler/index.cjs +2585 -3273
- package/dist/compiler/index.d.ts +149 -35
- package/dist/compiler/index.js +2197 -3102
- package/dist/compiler/ios.cjs +11 -11
- package/dist/compiler/ios.js +9 -9
- package/dist/compiler/llm-provider-capabilities.cjs +9 -9
- package/dist/compiler/llm-provider-capabilities.js +6 -6
- package/dist/compiler/nodetoy.cjs +1 -1
- package/dist/compiler/nodetoy.js +1 -1
- package/dist/compiler/openxr.cjs +11 -10
- package/dist/compiler/openxr.js +10 -9
- 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 +11 -10
- package/dist/compiler/sdf.js +9 -8
- package/dist/compiler/semantic-scene.cjs +7 -7
- package/dist/compiler/semantic-scene.js +2 -2
- package/dist/compiler/state.cjs +9 -9
- package/dist/compiler/state.js +7 -7
- package/dist/compiler/trait-composition.cjs +11 -11
- package/dist/compiler/trait-composition.js +7 -7
- package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
- package/dist/compiler/traits/Semiring.d.ts +26 -0
- package/dist/compiler/unity.cjs +11 -10
- package/dist/compiler/unity.js +10 -9
- package/dist/compiler/unreal.cjs +12 -11
- package/dist/compiler/unreal.js +10 -9
- package/dist/compiler/urdf.cjs +18 -17
- package/dist/compiler/urdf.js +9 -8
- package/dist/compiler/usd-physics.cjs +11 -10
- package/dist/compiler/usd-physics.js +8 -7
- package/dist/compiler/visionos.cjs +11 -10
- package/dist/compiler/visionos.js +10 -9
- package/dist/compiler/vrchat.cjs +11 -10
- package/dist/compiler/vrchat.js +9 -8
- package/dist/compiler/wasm.cjs +14 -13
- package/dist/compiler/wasm.js +9 -8
- package/dist/compiler/webgpu.cjs +10 -9
- package/dist/compiler/webgpu.js +9 -8
- package/dist/constants.cjs +398 -0
- package/dist/constants.js +9 -0
- package/dist/coordinators/index.cjs +4 -1
- package/dist/coordinators/index.js +4 -1
- package/dist/debugger.cjs +11 -9
- package/dist/debugger.js +9 -7
- package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
- package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
- package/dist/entries/interop.cjs +23 -23
- package/dist/entries/interop.js +3 -3
- package/dist/entries/scripting.cjs +12 -11
- package/dist/entries/scripting.js +8 -7
- package/dist/evolution/index.cjs +66 -0
- package/dist/evolution/index.d.ts +162 -0
- package/dist/evolution/index.js +17 -0
- package/dist/hololand/index.cjs +41 -37
- package/dist/hololand/index.js +3 -3
- package/dist/index.cjs +12394 -3224
- package/dist/index.d.ts +260 -18
- package/dist/index.js +10755 -2182
- package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
- package/dist/keyword-registry/index.cjs +29 -0
- package/dist/keyword-registry/index.d.ts +1 -0
- package/dist/keyword-registry/index.js +4 -0
- package/dist/math/tropical-spmv.cjs +11 -11
- package/dist/math/tropical-spmv.d.ts +1 -0
- package/dist/math/tropical-spmv.js +2 -2
- package/dist/math/tropicalSpmv.d.ts +43 -0
- package/dist/math/vec3.cjs +1 -1
- package/dist/math/vec3.js +1 -1
- package/dist/matter/StagedMatter.d.ts +82 -0
- package/dist/matter/index.cjs +17 -0
- package/dist/matter/index.d.ts +1 -0
- package/dist/matter/index.js +4 -0
- package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
- package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
- package/dist/paper-0c-spike/index.cjs +1 -1
- package/dist/paper-0c-spike/index.js +1 -1
- package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
- package/dist/parameter-envelope/index.cjs +17 -0
- package/dist/parameter-envelope/index.d.ts +2 -0
- package/dist/parameter-envelope/index.js +4 -0
- package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
- package/dist/parser/PipelineParser.d.ts +162 -0
- package/dist/parser.cjs +36 -20
- package/dist/parser.js +13 -9
- package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
- package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
- package/dist/plugin-manifest/index.cjs +25 -0
- package/dist/plugin-manifest/index.d.ts +2 -0
- package/dist/plugin-manifest/index.js +4 -0
- package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
- package/dist/plugin-solver-contract/index.cjs +41 -0
- package/dist/plugin-solver-contract/index.d.ts +1 -0
- package/dist/plugin-solver-contract/index.js +4 -0
- package/dist/policy/ContentPolicyGate.d.ts +51 -0
- package/dist/policy/PolicyPack.d.ts +120 -0
- package/dist/policy/blocklist.d.ts +32 -0
- package/dist/policy/defaults.d.ts +44 -0
- package/dist/policy/index.cjs +106 -0
- package/dist/policy/index.d.ts +17 -0
- package/dist/policy/index.js +5 -0
- package/dist/policy/jsonLogic.d.ts +31 -0
- package/dist/policy/types.d.ts +174 -0
- package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
- package/dist/proof-composition/index.cjs +25 -0
- package/dist/proof-composition/index.d.ts +1 -0
- package/dist/proof-composition/index.js +4 -0
- package/dist/receipts/hash-policy.d.ts +85 -0
- package/dist/reconstruction/index.cjs +75 -47
- package/dist/reconstruction/index.js +5 -5
- package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
- package/dist/runtime.cjs +81 -79
- package/dist/runtime.js +9 -7
- package/dist/scene-presets-EDKYZ5GW.js +4 -0
- package/dist/scene-presets-NCW2CFRS.cjs +17 -0
- package/dist/self-improvement/index.cjs +1 -1
- package/dist/self-improvement/index.js +1 -1
- package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
- package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
- package/dist/storage/index.cjs +10 -10
- package/dist/storage/index.js +3 -3
- package/dist/testing.cjs +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/index.cjs +3631 -0
- package/dist/tools/index.js +3581 -0
- package/dist/traitDocs/traitDocs.cjs +9 -9
- package/dist/traitDocs/traitDocs.d.ts +1 -0
- package/dist/traitDocs/traitDocs.js +3 -3
- package/dist/traits/ControlLoopTrait.d.ts +154 -0
- package/dist/traits/KinematicChainTrait.d.ts +116 -0
- package/dist/traits/SensorSamplingTrait.d.ts +154 -0
- package/dist/traits/TraitTypes.d.ts +270 -0
- package/dist/traits/TransactionTrait.d.ts +121 -0
- package/dist/traits/botanical-lotus.cjs +54 -50
- package/dist/traits/botanical-lotus.js +2 -5
- package/dist/traits/control-loop.cjs +21 -0
- package/dist/traits/control-loop.d.ts +1 -0
- package/dist/traits/control-loop.js +4 -0
- package/dist/traits/engines/cloth-verlet.d.ts +65 -0
- package/dist/traits/engines/index.cjs +19 -19
- package/dist/traits/engines/index.d.ts +15 -275
- package/dist/traits/engines/index.js +3 -3
- package/dist/traits/engines/motion-data-schema.d.ts +119 -0
- package/dist/traits/engines/motion-matching.d.ts +102 -0
- package/dist/traits/engines/noise.d.ts +25 -0
- package/dist/traits/engines/onnx-adapter.d.ts +173 -0
- package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
- package/dist/traits/engines/pfnn-network.d.ts +92 -0
- package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
- package/dist/traits/engines/tensor-ops.d.ts +15 -0
- package/dist/traits/index.cjs +2789 -1259
- package/dist/traits/index.d.ts +35 -0
- package/dist/traits/index.js +1692 -411
- package/dist/traits/kinematic-chain.cjs +25 -0
- package/dist/traits/kinematic-chain.d.ts +1 -0
- package/dist/traits/kinematic-chain.js +4 -0
- package/dist/traits/sensor-sampling.cjs +33 -0
- package/dist/traits/sensor-sampling.d.ts +1 -0
- package/dist/traits/sensor-sampling.js +4 -0
- package/dist/traits/simulation-solver-factory.cjs +1 -1
- package/dist/traits/simulation-solver-factory.js +1 -1
- package/dist/traits/transaction.cjs +29 -0
- package/dist/traits/transaction.d.ts +1 -0
- package/dist/traits/transaction.js +4 -0
- package/dist/traits/webcam-gaze.cjs +1 -1
- package/dist/traits/webcam-gaze.js +1 -1
- package/dist/type-checker.cjs +7 -6
- package/dist/type-checker.js +5 -4
- package/dist/types/AdvancedTypeSystem.d.ts +489 -0
- package/dist/types/HoloScriptPlus.d.ts +810 -0
- package/dist/types/base.d.ts +248 -0
- package/dist/types.d.ts +799 -0
- package/dist/world/index.cjs +3 -4
- package/dist/world/index.js +3 -4
- package/dist/world-model/index.cjs +1 -1
- package/dist/world-model/index.js +1 -1
- package/dist/wot/index.cjs +1 -1
- package/dist/wot/index.js +1 -1
- package/package.json +113 -46
- package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
- package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
- package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
- package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
- package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
- package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
- package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
- package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
- package/dist/chunk-22Q5A6RV.js +0 -979
- package/dist/chunk-4C57PR42.js +0 -468
- package/dist/chunk-4W5G5QVL.cjs +0 -847
- package/dist/chunk-5ET6L4NS.js +0 -487
- package/dist/chunk-C4GSLCHE.cjs +0 -7153
- package/dist/chunk-F2G6CWFT.js +0 -7089
- package/dist/chunk-G6PNEASF.cjs +0 -814
- package/dist/chunk-GTA4Q3A3.js +0 -1491
- package/dist/chunk-HCCQLAA4.cjs +0 -74
- package/dist/chunk-HFSVMKM3.cjs +0 -72
- package/dist/chunk-KAIVDEIG.cjs +0 -4539
- package/dist/chunk-KQU64CIX.cjs +0 -1508
- package/dist/chunk-MSYSQ2AJ.js +0 -4533
- package/dist/chunk-NHJLP37F.js +0 -70
- package/dist/chunk-NHYRRAGI.cjs +0 -490
- package/dist/chunk-OIQYIIO3.cjs +0 -473
- package/dist/chunk-OL46QLBJ.js +0 -61
- package/dist/chunk-SKZPC5AG.cjs +0 -984
- package/dist/chunk-SLHLXUMO.js +0 -445
- package/dist/chunk-UOIGFQXC.cjs +0 -9750
- package/dist/chunk-UOL6Y5TD.cjs +0 -759
- package/dist/chunk-UVFI7XIR.cjs +0 -452
- package/dist/chunk-VEPGBETF.js +0 -844
- package/dist/chunk-XQ5MWMP2.js +0 -756
- package/dist/chunk-XT6JY5W5.js +0 -9684
- package/dist/chunk-YRRAUB35.js +0 -811
- package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
- package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
- package/dist/compiler/ar.cjs +0 -23
- package/dist/compiler/ar.js +0 -11
- package/dist/compiler/babylon.cjs +0 -21
- package/dist/compiler/babylon.js +0 -15
- package/dist/compiler/multi-layer.cjs +0 -24
- package/dist/compiler/multi-layer.js +0 -15
- package/dist/compiler/playcanvas.cjs +0 -19
- package/dist/compiler/playcanvas.js +0 -13
- package/dist/compiler/r3f.cjs +0 -39
- package/dist/compiler/r3f.d.ts +0 -22
- package/dist/compiler/r3f.js +0 -17
- package/dist/compiler/vrr.cjs +0 -24
- package/dist/compiler/vrr.js +0 -12
- package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
- package/dist/playwright-3AT3AKTV.cjs +0 -98673
- package/dist/playwright-VZPDVUEQ.js +0 -98660
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,799 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @holoscript/core Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for HoloScript AST and runtime
|
|
5
|
+
*/
|
|
6
|
+
import type { HSPlusDirective, HSPlusAST, ASTProgram, HSPlusCompileResult } from './types/AdvancedTypeSystem';
|
|
7
|
+
import type { HSPlusNode, Vector3, Transform } from './types/HoloScriptPlus';
|
|
8
|
+
import type { VRTraitName, ASTNode, SpatialPosition, HologramShape, HologramProperties, TraitBehavior, GameAbilityNode, DamageFormula, AbilityEventBlock, GameLootTableNode, LootTableEntry, GameSpawnNode, GameAuthorityNode, GameEventBlockNode, ReactionCategory, MovementStatementNode, ActionDeclNode, ActionClause } from './types/base';
|
|
9
|
+
export type { HSPlusDirective, HSPlusAST, ASTProgram, HSPlusCompileResult, HSPlusNode };
|
|
10
|
+
export type { VRTraitName, ASTNode, SpatialPosition, HologramShape, HologramProperties, TraitBehavior, GameAbilityNode, DamageFormula, AbilityEventBlock, GameLootTableNode, LootTableEntry, GameSpawnNode, GameAuthorityNode, GameEventBlockNode, ReactionCategory, MovementStatementNode, ActionDeclNode, ActionClause, };
|
|
11
|
+
export type { Vector3, Transform };
|
|
12
|
+
export interface Position2D {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}
|
|
16
|
+
export interface Size2D {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
}
|
|
20
|
+
export interface VoiceCommand {
|
|
21
|
+
command: string;
|
|
22
|
+
confidence: number;
|
|
23
|
+
timestamp: number;
|
|
24
|
+
spatialContext?: SpatialPosition;
|
|
25
|
+
}
|
|
26
|
+
export type GestureType = 'pinch' | 'swipe' | 'rotate' | 'grab' | 'release';
|
|
27
|
+
export type HandType = 'left' | 'right';
|
|
28
|
+
export interface GestureData {
|
|
29
|
+
type: GestureType;
|
|
30
|
+
position: SpatialPosition;
|
|
31
|
+
direction?: SpatialPosition;
|
|
32
|
+
magnitude: number;
|
|
33
|
+
hand: HandType;
|
|
34
|
+
}
|
|
35
|
+
export interface Animation {
|
|
36
|
+
target: string;
|
|
37
|
+
property: string;
|
|
38
|
+
from: number;
|
|
39
|
+
to: number;
|
|
40
|
+
duration: number;
|
|
41
|
+
startTime: number;
|
|
42
|
+
easing: string;
|
|
43
|
+
loop?: boolean;
|
|
44
|
+
yoyo?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export type HoloScriptValue = string | number | boolean | null | undefined | HoloScriptValue[] | {
|
|
47
|
+
[key: string]: HoloScriptValue;
|
|
48
|
+
} | ASTNode | SpreadExpression | NullCoalescingAssignment | MatchExpression | Function | SpatialPosition | HologramProperties | Animation;
|
|
49
|
+
export interface MatchExpression extends ASTNode {
|
|
50
|
+
type: 'match';
|
|
51
|
+
subject: string | HoloScriptValue;
|
|
52
|
+
cases: MatchCase[];
|
|
53
|
+
hasWildcard?: boolean;
|
|
54
|
+
sourceLocation?: {
|
|
55
|
+
line: number;
|
|
56
|
+
column: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface MatchCase extends ASTNode {
|
|
60
|
+
type: 'match-case';
|
|
61
|
+
pattern: MatchPattern;
|
|
62
|
+
body: ASTNode[] | HoloScriptValue;
|
|
63
|
+
guard?: string;
|
|
64
|
+
}
|
|
65
|
+
export type MatchPattern = LiteralPattern | WildcardPattern | BindingPattern | DestructuringPattern;
|
|
66
|
+
export interface LiteralPattern {
|
|
67
|
+
type: 'literal-pattern';
|
|
68
|
+
value: string | number | boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface WildcardPattern {
|
|
71
|
+
type: 'wildcard-pattern';
|
|
72
|
+
symbol: '_';
|
|
73
|
+
}
|
|
74
|
+
export interface BindingPattern {
|
|
75
|
+
type: 'binding-pattern';
|
|
76
|
+
name: string;
|
|
77
|
+
}
|
|
78
|
+
export interface DestructuringPattern {
|
|
79
|
+
type: 'destructuring-pattern';
|
|
80
|
+
kind: 'object' | 'array';
|
|
81
|
+
properties: Array<{
|
|
82
|
+
key: string;
|
|
83
|
+
pattern: MatchPattern;
|
|
84
|
+
}>;
|
|
85
|
+
}
|
|
86
|
+
export type { VRHand } from './types/HoloScriptPlus';
|
|
87
|
+
export interface TraitConstraint {
|
|
88
|
+
type: 'requires' | 'conflicts' | 'oneof';
|
|
89
|
+
source: string;
|
|
90
|
+
targets: string[];
|
|
91
|
+
message?: string;
|
|
92
|
+
suggestion?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Describes a match expression for exhaustiveness checking (HSP021).
|
|
96
|
+
* Used with HoloScriptTypeChecker.checkExhaustiveMatch().
|
|
97
|
+
*/
|
|
98
|
+
export interface ExhaustiveMatchCheck {
|
|
99
|
+
/** The type alias name being matched (e.g. 'State') */
|
|
100
|
+
typeName: string;
|
|
101
|
+
/** The patterns covered in this match expression */
|
|
102
|
+
coveredPatterns: string[];
|
|
103
|
+
/** Line number for error reporting */
|
|
104
|
+
line?: number;
|
|
105
|
+
/** Column for error reporting */
|
|
106
|
+
column?: number;
|
|
107
|
+
}
|
|
108
|
+
export type TypeAliasKind = 'simple' | 'union' | 'generic';
|
|
109
|
+
export interface TypeAliasDeclaration {
|
|
110
|
+
name: string;
|
|
111
|
+
kind: TypeAliasKind;
|
|
112
|
+
/** Expanded type string (e.g. "string | number") */
|
|
113
|
+
definition: string;
|
|
114
|
+
/** Generic type parameters, e.g. ["T"] for List<T> */
|
|
115
|
+
typeParams?: string[];
|
|
116
|
+
line?: number;
|
|
117
|
+
}
|
|
118
|
+
export type LifecycleHook = 'on_mount' | 'on_unmount' | 'on_update' | 'on_data_update';
|
|
119
|
+
export type VRLifecycleHook = 'on_grab' | 'on_release' | 'on_hover_enter' | 'on_hover_exit' | 'on_point_enter' | 'on_point_exit' | 'on_collision' | 'on_trigger_enter' | 'on_trigger_exit' | 'on_click' | 'on_double_click';
|
|
120
|
+
export type ControllerHook = 'on_controller_button' | 'on_trigger_hold' | 'on_trigger_release' | 'on_grip_hold' | 'on_grip_release';
|
|
121
|
+
export type EnvironmentHook = 'on_plane_detected' | 'on_plane_lost' | 'on_plane_updated' | 'on_mesh_detected' | 'on_mesh_updated' | 'on_anchor_created' | 'on_anchor_resolved' | 'on_anchor_lost' | 'on_anchor_shared' | 'on_light_estimated' | 'on_occlusion_updated';
|
|
122
|
+
export type InputModalityHook = 'on_gaze_enter' | 'on_gaze_exit' | 'on_gaze_dwell' | 'on_hand_gesture' | 'on_hand_pinch' | 'on_hand_lost' | 'on_body_pose_update' | 'on_face_expression' | 'on_controller_vibrate' | 'on_accessory_input';
|
|
123
|
+
export type AccessibilityHook = 'on_accessibility_announce' | 'on_subtitle_display' | 'on_magnify' | 'on_contrast_change' | 'on_motion_reduce' | 'on_screen_reader_focus' | 'on_sonification_update';
|
|
124
|
+
export type VolumetricHook = 'on_splat_loaded' | 'on_nerf_ready' | 'on_volume_frame' | 'on_point_cloud_loaded' | 'on_capture_complete';
|
|
125
|
+
export type ComputeHook = 'on_compute_complete' | 'on_buffer_ready' | 'on_gpu_error';
|
|
126
|
+
export type DigitalTwinHook = 'on_sensor_update' | 'on_data_change' | 'on_alert_triggered' | 'on_twin_sync' | 'on_heatmap_update';
|
|
127
|
+
export type AgentHook = 'on_goal_completed' | 'on_goal_failed' | 'on_perception_change' | 'on_emotion_shift' | 'on_faction_change' | 'on_patrol_waypoint' | 'on_llm_response' | 'on_memory_recalled' | 'on_dialogue_start' | 'on_dialogue_end';
|
|
128
|
+
export type SpatialAudioHook = 'on_reverb_enter' | 'on_reverb_exit' | 'on_audio_occluded' | 'on_audio_portal_enter';
|
|
129
|
+
export type InteropHook = 'on_asset_loaded' | 'on_format_converted' | 'on_scene_composed';
|
|
130
|
+
export type CoPresenceHook = 'on_co_presence_joined' | 'on_co_presence_left' | 'on_voice_proximity_change' | 'on_role_change' | 'on_spectator_join' | 'on_avatar_sync';
|
|
131
|
+
export type GeospatialHook = 'on_vps_localized' | 'on_poi_proximity' | 'on_terrain_resolved' | 'on_rooftop_resolved';
|
|
132
|
+
export type Web3Hook = 'on_wallet_connected' | 'on_token_verified' | 'on_nft_transferred' | 'on_purchase_complete' | 'on_asset_ported';
|
|
133
|
+
export type PhysicsExpansionHook = 'on_cloth_tear' | 'on_fluid_splash' | 'on_soft_body_deform' | 'on_rope_snap' | 'on_wind_change' | 'on_submerge' | 'on_destruction_complete';
|
|
134
|
+
export type AllExpandedHooks = LifecycleHook | VRLifecycleHook | ControllerHook | EnvironmentHook | InputModalityHook | AccessibilityHook | VolumetricHook | ComputeHook | DigitalTwinHook | AgentHook | SpatialAudioHook | InteropHook | CoPresenceHook | GeospatialHook | Web3Hook | PhysicsExpansionHook;
|
|
135
|
+
export interface OrbNode extends ASTNode {
|
|
136
|
+
type: 'orb';
|
|
137
|
+
name: string;
|
|
138
|
+
template?: string;
|
|
139
|
+
properties: Record<string, HoloScriptValue>;
|
|
140
|
+
methods?: MethodNode[];
|
|
141
|
+
children?: ASTNode[];
|
|
142
|
+
}
|
|
143
|
+
export interface MethodNode extends ASTNode {
|
|
144
|
+
type: 'method';
|
|
145
|
+
name: string;
|
|
146
|
+
parameters: ParameterNode[];
|
|
147
|
+
body: ASTNode[];
|
|
148
|
+
returnType?: string;
|
|
149
|
+
}
|
|
150
|
+
export interface ParameterNode extends ASTNode {
|
|
151
|
+
type: 'parameter';
|
|
152
|
+
name: string;
|
|
153
|
+
dataType: string;
|
|
154
|
+
defaultValue?: HoloScriptValue;
|
|
155
|
+
}
|
|
156
|
+
export interface ConnectionNode extends ASTNode {
|
|
157
|
+
type: 'connection';
|
|
158
|
+
from: string;
|
|
159
|
+
to: string;
|
|
160
|
+
dataType: string;
|
|
161
|
+
bidirectional: boolean;
|
|
162
|
+
}
|
|
163
|
+
export interface GateNode extends ASTNode {
|
|
164
|
+
type: 'gate';
|
|
165
|
+
condition: string | TypeGuardExpression;
|
|
166
|
+
truePath: ASTNode[];
|
|
167
|
+
falsePath: ASTNode[];
|
|
168
|
+
}
|
|
169
|
+
export interface StreamNode extends ASTNode {
|
|
170
|
+
type: 'stream';
|
|
171
|
+
name: string;
|
|
172
|
+
source: string;
|
|
173
|
+
transformations: TransformationNode[];
|
|
174
|
+
}
|
|
175
|
+
export interface TransformationNode extends ASTNode {
|
|
176
|
+
type: 'transformation';
|
|
177
|
+
operation: string;
|
|
178
|
+
parameters: Record<string, HoloScriptValue>;
|
|
179
|
+
}
|
|
180
|
+
export interface GenericASTNode extends ASTNode {
|
|
181
|
+
[key: string]: HoloScriptValue | unknown;
|
|
182
|
+
}
|
|
183
|
+
export interface ServerNode extends ASTNode {
|
|
184
|
+
type: 'server';
|
|
185
|
+
port: number;
|
|
186
|
+
routes: string[];
|
|
187
|
+
}
|
|
188
|
+
export interface DatabaseNode extends ASTNode {
|
|
189
|
+
type: 'database';
|
|
190
|
+
query: string;
|
|
191
|
+
}
|
|
192
|
+
export interface FetchNode extends ASTNode {
|
|
193
|
+
type: 'fetch';
|
|
194
|
+
url: string;
|
|
195
|
+
method: string;
|
|
196
|
+
}
|
|
197
|
+
export interface ExecuteNode extends ASTNode {
|
|
198
|
+
type: 'execute';
|
|
199
|
+
target: string;
|
|
200
|
+
}
|
|
201
|
+
export interface DebugNode extends ASTNode {
|
|
202
|
+
type: 'debug';
|
|
203
|
+
target: string;
|
|
204
|
+
}
|
|
205
|
+
export interface VisualizeNode extends ASTNode {
|
|
206
|
+
type: 'visualize';
|
|
207
|
+
target: string;
|
|
208
|
+
}
|
|
209
|
+
export interface ZoneNode extends ASTNode {
|
|
210
|
+
type: 'zone';
|
|
211
|
+
name: string;
|
|
212
|
+
id?: string;
|
|
213
|
+
position?: SpatialPosition;
|
|
214
|
+
bounds?: {
|
|
215
|
+
type: string;
|
|
216
|
+
size: HoloScriptValue;
|
|
217
|
+
};
|
|
218
|
+
events: Record<string, string>;
|
|
219
|
+
properties: Record<string, HoloScriptValue>;
|
|
220
|
+
}
|
|
221
|
+
export interface ForLoopNode extends ASTNode {
|
|
222
|
+
type: 'for-loop';
|
|
223
|
+
init: string;
|
|
224
|
+
condition: string | TypeGuardExpression;
|
|
225
|
+
update: string;
|
|
226
|
+
body: ASTNode[];
|
|
227
|
+
}
|
|
228
|
+
export interface WhileLoopNode extends ASTNode {
|
|
229
|
+
type: 'while-loop';
|
|
230
|
+
condition: string | TypeGuardExpression;
|
|
231
|
+
body: ASTNode[];
|
|
232
|
+
}
|
|
233
|
+
export interface ForEachLoopNode extends ASTNode {
|
|
234
|
+
type: 'foreach-loop';
|
|
235
|
+
variable: string;
|
|
236
|
+
collection: string;
|
|
237
|
+
body: ASTNode[];
|
|
238
|
+
}
|
|
239
|
+
export interface ScaleNode extends ASTNode {
|
|
240
|
+
type: 'scale';
|
|
241
|
+
magnitude: string;
|
|
242
|
+
multiplier: number;
|
|
243
|
+
body: ASTNode[];
|
|
244
|
+
}
|
|
245
|
+
export interface FocusNode extends ASTNode {
|
|
246
|
+
type: 'focus';
|
|
247
|
+
target: string;
|
|
248
|
+
body: ASTNode[];
|
|
249
|
+
}
|
|
250
|
+
export interface CompositionNode extends ASTNode {
|
|
251
|
+
type: 'composition';
|
|
252
|
+
name: string;
|
|
253
|
+
children: ASTNode[];
|
|
254
|
+
body?: {
|
|
255
|
+
systems: ASTNode[];
|
|
256
|
+
configs: ASTNode[];
|
|
257
|
+
children: ASTNode[];
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export interface SystemNode extends ASTNode {
|
|
261
|
+
type: 'system';
|
|
262
|
+
id: string;
|
|
263
|
+
properties: Record<string, HoloScriptValue>;
|
|
264
|
+
/** System state declarations */
|
|
265
|
+
state?: Record<string, HoloScriptValue>;
|
|
266
|
+
/** Named actions that can be invoked */
|
|
267
|
+
actions?: Array<{
|
|
268
|
+
name: string;
|
|
269
|
+
params: string[];
|
|
270
|
+
body: string;
|
|
271
|
+
}>;
|
|
272
|
+
/** Lifecycle hooks: on_start, on_update, on_destroy, etc. */
|
|
273
|
+
hooks?: Array<{
|
|
274
|
+
name: string;
|
|
275
|
+
body: string;
|
|
276
|
+
}>;
|
|
277
|
+
/** Nested UI block declarations */
|
|
278
|
+
ui?: ASTNode[];
|
|
279
|
+
/** Nested children (objects, templates, etc.) */
|
|
280
|
+
children?: ASTNode[];
|
|
281
|
+
/** Trait directives on the system */
|
|
282
|
+
directives?: HSPlusDirective[];
|
|
283
|
+
}
|
|
284
|
+
export interface ComponentNode extends ASTNode {
|
|
285
|
+
type: 'component';
|
|
286
|
+
name: string;
|
|
287
|
+
/** Component props declarations (with defaults) */
|
|
288
|
+
props?: Record<string, HoloScriptValue>;
|
|
289
|
+
/** Component internal state */
|
|
290
|
+
state?: Record<string, HoloScriptValue>;
|
|
291
|
+
/** Named actions */
|
|
292
|
+
actions?: Array<{
|
|
293
|
+
name: string;
|
|
294
|
+
params: string[];
|
|
295
|
+
body: string;
|
|
296
|
+
}>;
|
|
297
|
+
/** UI block for rendering */
|
|
298
|
+
ui?: ASTNode[];
|
|
299
|
+
/** Lifecycle hooks */
|
|
300
|
+
hooks?: Array<{
|
|
301
|
+
name: string;
|
|
302
|
+
body: string;
|
|
303
|
+
}>;
|
|
304
|
+
/** Nested children */
|
|
305
|
+
children?: ASTNode[];
|
|
306
|
+
/** Trait directives */
|
|
307
|
+
directives?: HSPlusDirective[];
|
|
308
|
+
/** Component properties (non-special) */
|
|
309
|
+
properties?: Record<string, HoloScriptValue>;
|
|
310
|
+
}
|
|
311
|
+
export interface CoreConfigNode extends ASTNode {
|
|
312
|
+
type: 'core_config';
|
|
313
|
+
properties: Record<string, HoloScriptValue>;
|
|
314
|
+
}
|
|
315
|
+
export interface EnvironmentNode extends ASTNode {
|
|
316
|
+
type: 'environment';
|
|
317
|
+
settings: Record<string, HoloScriptValue>;
|
|
318
|
+
}
|
|
319
|
+
export interface TemplateNode extends ASTNode {
|
|
320
|
+
type: 'template';
|
|
321
|
+
name: string;
|
|
322
|
+
parameters: string[];
|
|
323
|
+
children: ASTNode[];
|
|
324
|
+
properties?: Record<string, HoloScriptValue>;
|
|
325
|
+
directives?: HSPlusDirective[];
|
|
326
|
+
version?: string | number;
|
|
327
|
+
migrations?: MigrationNode[];
|
|
328
|
+
}
|
|
329
|
+
export interface MigrationNode extends ASTNode {
|
|
330
|
+
type: 'migration';
|
|
331
|
+
fromVersion: number;
|
|
332
|
+
body: string;
|
|
333
|
+
}
|
|
334
|
+
export interface NarrativeNode extends ASTNode {
|
|
335
|
+
type: 'narrative';
|
|
336
|
+
id: string;
|
|
337
|
+
startNode?: string;
|
|
338
|
+
quests: QuestNode[];
|
|
339
|
+
dialogueNodes?: DialogueNode[];
|
|
340
|
+
}
|
|
341
|
+
export interface QuestNode extends ASTNode {
|
|
342
|
+
type: 'quest';
|
|
343
|
+
id: string;
|
|
344
|
+
title: string;
|
|
345
|
+
description: string;
|
|
346
|
+
objectives: ObjectiveNode[];
|
|
347
|
+
onComplete?: string;
|
|
348
|
+
}
|
|
349
|
+
export interface ObjectiveNode extends ASTNode {
|
|
350
|
+
type: 'objective';
|
|
351
|
+
id: string;
|
|
352
|
+
description: string;
|
|
353
|
+
targetCount?: number;
|
|
354
|
+
currentCount?: number;
|
|
355
|
+
}
|
|
356
|
+
export interface DialogueNode extends ASTNode {
|
|
357
|
+
type: 'dialogue';
|
|
358
|
+
id: string;
|
|
359
|
+
speaker: string;
|
|
360
|
+
text: string;
|
|
361
|
+
choices?: DialogueChoice[];
|
|
362
|
+
}
|
|
363
|
+
export interface DialogueChoice extends ASTNode {
|
|
364
|
+
type: 'dialogue-choice';
|
|
365
|
+
text: string;
|
|
366
|
+
nextNode?: string;
|
|
367
|
+
action?: string;
|
|
368
|
+
}
|
|
369
|
+
export interface VisualMetadataNode extends ASTNode {
|
|
370
|
+
type: 'visual_metadata';
|
|
371
|
+
properties: Record<string, HoloScriptValue>;
|
|
372
|
+
}
|
|
373
|
+
export interface GlobalHandlerNode extends ASTNode {
|
|
374
|
+
type: 'global_handler';
|
|
375
|
+
handlerType: 'every' | 'on_gesture';
|
|
376
|
+
config: Record<string, HoloScriptValue>;
|
|
377
|
+
action: string;
|
|
378
|
+
}
|
|
379
|
+
export interface MemoryNode extends ASTNode {
|
|
380
|
+
type: 'memory';
|
|
381
|
+
name: string;
|
|
382
|
+
semantic?: SemanticMemoryNode;
|
|
383
|
+
episodic?: EpisodicMemoryNode;
|
|
384
|
+
procedural?: ProceduralMemoryNode;
|
|
385
|
+
}
|
|
386
|
+
export interface SemanticMemoryNode extends ASTNode {
|
|
387
|
+
type: 'semantic-memory';
|
|
388
|
+
properties: Record<string, HoloScriptValue>;
|
|
389
|
+
}
|
|
390
|
+
export interface EpisodicMemoryNode extends ASTNode {
|
|
391
|
+
type: 'episodic-memory';
|
|
392
|
+
properties: Record<string, HoloScriptValue>;
|
|
393
|
+
}
|
|
394
|
+
export interface ProceduralMemoryNode extends ASTNode {
|
|
395
|
+
type: 'procedural-memory';
|
|
396
|
+
properties: Record<string, HoloScriptValue>;
|
|
397
|
+
}
|
|
398
|
+
export interface ProceduralSkill {
|
|
399
|
+
id: string;
|
|
400
|
+
name: string;
|
|
401
|
+
preconditions: Record<string, HoloScriptValue>[];
|
|
402
|
+
action: ASTNode;
|
|
403
|
+
successRate: number;
|
|
404
|
+
}
|
|
405
|
+
export interface ImportNode extends ASTNode {
|
|
406
|
+
type: 'import';
|
|
407
|
+
imports: string[];
|
|
408
|
+
defaultImport?: string;
|
|
409
|
+
modulePath: string;
|
|
410
|
+
}
|
|
411
|
+
export type ImportLoader = (path: string) => Promise<string>;
|
|
412
|
+
export interface ExportNode extends ASTNode {
|
|
413
|
+
type: 'export';
|
|
414
|
+
exports?: string[];
|
|
415
|
+
declaration?: ASTNode;
|
|
416
|
+
}
|
|
417
|
+
export interface VariableDeclarationNode extends ASTNode {
|
|
418
|
+
type: 'variable-declaration';
|
|
419
|
+
kind: 'const' | 'let' | 'var';
|
|
420
|
+
name: string;
|
|
421
|
+
dataType?: string;
|
|
422
|
+
value?: HoloScriptValue;
|
|
423
|
+
isExpression?: boolean;
|
|
424
|
+
}
|
|
425
|
+
export interface TypeGuardExpression extends ASTNode {
|
|
426
|
+
type: 'type-guard';
|
|
427
|
+
/** The value being checked */
|
|
428
|
+
subject: string;
|
|
429
|
+
/** The type being tested against */
|
|
430
|
+
guardType: string;
|
|
431
|
+
/** Whether this is a negated check (is not) */
|
|
432
|
+
negated?: boolean;
|
|
433
|
+
}
|
|
434
|
+
export interface SpreadExpression extends ASTNode {
|
|
435
|
+
type: 'spread';
|
|
436
|
+
argument: unknown;
|
|
437
|
+
target?: string;
|
|
438
|
+
isValid?: boolean;
|
|
439
|
+
targetType?: 'object' | 'array' | 'template' | 'unknown';
|
|
440
|
+
}
|
|
441
|
+
export interface NullCoalescingAssignment extends ASTNode {
|
|
442
|
+
type: 'nullCoalescingAssignment';
|
|
443
|
+
target: string | unknown;
|
|
444
|
+
value: unknown;
|
|
445
|
+
isValid?: boolean;
|
|
446
|
+
targetType?: 'variable' | 'member' | 'unknown';
|
|
447
|
+
}
|
|
448
|
+
export interface StateMachineNode extends ASTNode {
|
|
449
|
+
type: 'state-machine';
|
|
450
|
+
name: string;
|
|
451
|
+
initialState: string;
|
|
452
|
+
states: StateNode[];
|
|
453
|
+
transitions: TransitionNode[];
|
|
454
|
+
}
|
|
455
|
+
export interface StateNode extends ASTNode {
|
|
456
|
+
type: 'state';
|
|
457
|
+
name: string;
|
|
458
|
+
onEntry?: string;
|
|
459
|
+
onExit?: string;
|
|
460
|
+
}
|
|
461
|
+
export interface TransitionNode extends ASTNode {
|
|
462
|
+
type: 'transition';
|
|
463
|
+
from: string;
|
|
464
|
+
to: string;
|
|
465
|
+
event: string;
|
|
466
|
+
condition?: string;
|
|
467
|
+
}
|
|
468
|
+
export type UIElementType = 'canvas' | 'button' | 'textinput' | 'panel' | 'text' | 'image' | 'list' | 'modal' | 'slider' | 'toggle' | 'dropdown' | 'flex-container' | 'grid-container' | 'scroll-view' | 'tab-view' | 'dashboard' | 'card' | 'metric' | 'row' | 'col';
|
|
469
|
+
export interface UI2DNode {
|
|
470
|
+
type: '2d-element';
|
|
471
|
+
elementType: UIElementType;
|
|
472
|
+
name: string;
|
|
473
|
+
properties: Record<string, HoloScriptValue>;
|
|
474
|
+
children?: UI2DNode[];
|
|
475
|
+
events?: Record<string, string>;
|
|
476
|
+
}
|
|
477
|
+
export interface UIStyle {
|
|
478
|
+
backgroundColor?: string;
|
|
479
|
+
color?: string;
|
|
480
|
+
fontSize?: number;
|
|
481
|
+
fontFamily?: string;
|
|
482
|
+
borderColor?: string;
|
|
483
|
+
borderWidth?: number;
|
|
484
|
+
borderRadius?: number;
|
|
485
|
+
padding?: number;
|
|
486
|
+
margin?: number;
|
|
487
|
+
}
|
|
488
|
+
/** Built-in storage API for persistent key/value data */
|
|
489
|
+
export interface StorageAPI {
|
|
490
|
+
get(key: string): HoloScriptValue;
|
|
491
|
+
set(key: string, value: HoloScriptValue): void;
|
|
492
|
+
remove(key: string): void;
|
|
493
|
+
has(key: string): boolean;
|
|
494
|
+
clear(): void;
|
|
495
|
+
}
|
|
496
|
+
/** Built-in device API for platform detection and preferences */
|
|
497
|
+
export interface DeviceAPI {
|
|
498
|
+
isMobile: boolean;
|
|
499
|
+
isVR: boolean;
|
|
500
|
+
isAR: boolean;
|
|
501
|
+
isDesktop: boolean;
|
|
502
|
+
prefersReducedMotion(): boolean;
|
|
503
|
+
screenWidth: number;
|
|
504
|
+
screenHeight: number;
|
|
505
|
+
pixelRatio: number;
|
|
506
|
+
hasTouch: boolean;
|
|
507
|
+
hasGamepad: boolean;
|
|
508
|
+
}
|
|
509
|
+
/** Built-in input API for handling user input */
|
|
510
|
+
export interface InputAPI {
|
|
511
|
+
setMovement(x: number, y: number): void;
|
|
512
|
+
jump(): void;
|
|
513
|
+
interact(): void;
|
|
514
|
+
}
|
|
515
|
+
export interface RuntimeContext {
|
|
516
|
+
variables: Map<string, HoloScriptValue>;
|
|
517
|
+
functions: Map<string, MethodNode>;
|
|
518
|
+
exports: Map<string, HoloScriptValue>;
|
|
519
|
+
connections: ConnectionNode[];
|
|
520
|
+
spatialMemory: Map<string, SpatialPosition>;
|
|
521
|
+
hologramState: Map<string, HologramProperties>;
|
|
522
|
+
executionStack: ASTNode[];
|
|
523
|
+
stateMachines: Map<string, StateMachineNode>;
|
|
524
|
+
mode?: 'public' | 'secure';
|
|
525
|
+
currentScale: number;
|
|
526
|
+
scaleMagnitude: string;
|
|
527
|
+
focusHistory: string[];
|
|
528
|
+
environment: Record<string, HoloScriptValue>;
|
|
529
|
+
templates: Map<string, TemplateNode>;
|
|
530
|
+
quests: Map<string, QuestNode>;
|
|
531
|
+
activeQuestId?: string;
|
|
532
|
+
completedQuests: Set<string>;
|
|
533
|
+
dialogueState?: {
|
|
534
|
+
currentNodeId?: string;
|
|
535
|
+
speaker?: string;
|
|
536
|
+
};
|
|
537
|
+
state: ReactiveState;
|
|
538
|
+
}
|
|
539
|
+
export interface QuestState {
|
|
540
|
+
id: string;
|
|
541
|
+
objectives: Record<string, {
|
|
542
|
+
current: number;
|
|
543
|
+
target: number;
|
|
544
|
+
complete: boolean;
|
|
545
|
+
}>;
|
|
546
|
+
status: 'active' | 'completed' | 'failed';
|
|
547
|
+
}
|
|
548
|
+
export interface ReactiveState<T = Record<string, HoloScriptValue>> {
|
|
549
|
+
get<K extends keyof T>(key: K): T[K];
|
|
550
|
+
set<K extends keyof T>(key: K, value: T[K]): void;
|
|
551
|
+
subscribe(callback: (state: T, changedKey?: keyof T) => void): () => void;
|
|
552
|
+
getSnapshot(): T;
|
|
553
|
+
update(updates: Partial<T>): void;
|
|
554
|
+
}
|
|
555
|
+
export interface ExecutionResult {
|
|
556
|
+
success: boolean;
|
|
557
|
+
output?: HoloScriptValue;
|
|
558
|
+
hologram?: HologramProperties;
|
|
559
|
+
spatialPosition?: SpatialPosition;
|
|
560
|
+
error?: string;
|
|
561
|
+
executionTime?: number;
|
|
562
|
+
learningSignals?: Record<string, HoloScriptValue>;
|
|
563
|
+
}
|
|
564
|
+
export interface ParticleSystem {
|
|
565
|
+
particles: SpatialPosition[];
|
|
566
|
+
color: string;
|
|
567
|
+
lifetime: number;
|
|
568
|
+
speed: number;
|
|
569
|
+
}
|
|
570
|
+
export interface SecurityConfig {
|
|
571
|
+
maxCommandLength: number;
|
|
572
|
+
maxTokens: number;
|
|
573
|
+
maxHologramsPerUser: number;
|
|
574
|
+
suspiciousKeywords: string[];
|
|
575
|
+
allowedShapes: string[];
|
|
576
|
+
allowedUIElements: string[];
|
|
577
|
+
}
|
|
578
|
+
export interface RuntimeSecurityLimits {
|
|
579
|
+
maxExecutionDepth: number;
|
|
580
|
+
maxTotalNodes: number;
|
|
581
|
+
maxExecutionTimeMs: number;
|
|
582
|
+
maxParticlesPerSystem: number;
|
|
583
|
+
}
|
|
584
|
+
export type SpatialVector3 = Vector3;
|
|
585
|
+
export type Vector2 = [number, number];
|
|
586
|
+
export interface Color {
|
|
587
|
+
r: number;
|
|
588
|
+
g: number;
|
|
589
|
+
b: number;
|
|
590
|
+
a?: number;
|
|
591
|
+
}
|
|
592
|
+
export interface Duration {
|
|
593
|
+
milliseconds: number;
|
|
594
|
+
}
|
|
595
|
+
export interface ASTTransform {
|
|
596
|
+
position: SpatialVector3;
|
|
597
|
+
rotation: SpatialVector3;
|
|
598
|
+
scale: SpatialVector3;
|
|
599
|
+
}
|
|
600
|
+
export type VRHandSide = 'left' | 'right' | 'both';
|
|
601
|
+
export interface ThrowVelocity {
|
|
602
|
+
magnitude: number;
|
|
603
|
+
direction: SpatialVector3;
|
|
604
|
+
spin?: SpatialVector3;
|
|
605
|
+
}
|
|
606
|
+
export interface CollisionEvent {
|
|
607
|
+
object1: string;
|
|
608
|
+
object2: string;
|
|
609
|
+
position: SpatialVector3;
|
|
610
|
+
normal: SpatialVector3;
|
|
611
|
+
force: number;
|
|
612
|
+
timestamp: number;
|
|
613
|
+
}
|
|
614
|
+
export interface GrabbableTrait {
|
|
615
|
+
snapToHand: boolean;
|
|
616
|
+
grip_type: 'palm' | 'pinch' | 'full';
|
|
617
|
+
haptic_feedback: boolean;
|
|
618
|
+
}
|
|
619
|
+
export interface ThrowableTrait {
|
|
620
|
+
velocityMultiplier: number;
|
|
621
|
+
enableSpin: boolean;
|
|
622
|
+
gravityScale: number;
|
|
623
|
+
}
|
|
624
|
+
export interface PointableTrait {
|
|
625
|
+
maxPointDistance: number;
|
|
626
|
+
interactionRadius: number;
|
|
627
|
+
hapticFeedback: boolean;
|
|
628
|
+
}
|
|
629
|
+
export interface HoverableTrait {
|
|
630
|
+
hoverDistance: number;
|
|
631
|
+
hoverColor: Color;
|
|
632
|
+
hoverScale: number;
|
|
633
|
+
enableHighlight: boolean;
|
|
634
|
+
}
|
|
635
|
+
export interface ScalableTrait {
|
|
636
|
+
minScale: number;
|
|
637
|
+
maxScale: number;
|
|
638
|
+
scaleSpeed: number;
|
|
639
|
+
}
|
|
640
|
+
export interface RotatableTrait {
|
|
641
|
+
rotationSpeed: number;
|
|
642
|
+
freeRotation: boolean;
|
|
643
|
+
snapAngles?: number[];
|
|
644
|
+
}
|
|
645
|
+
export type { StackableTrait, SnappableTrait, BreakableTrait, StretchableTrait, MoldableTrait, SkeletonTrait, BodyTrait, FaceTrait, ExpressiveTrait, HairTrait, ClothingTrait, HandsTrait, CharacterVoiceTrait, LocomotionTrait, PoseableTrait, MorphTrait, NetworkedTrait, ProactiveTrait, RecordableTrait, StreamableTrait, CameraTrait, VideoTrait, TrackableTrait, SurveyTrait, ABTestTrait, HeatmapTrait, ShareableTrait, EmbeddableTrait, QRTrait, CollaborativeTrait, ParticleTrait, TransitionTrait, FilterTrait, TrailTrait, SpatialAudioTrait, VoiceTrait, ReactiveAudioTrait, NarratorTrait, ResponsiveTrait, ProceduralTrait, CaptionedTrait, TimelineTrait, ChoreographyTrait, PlaneDetectionTrait, MeshDetectionTrait, AnchorTrait, PersistentAnchorTrait, SharedAnchorTrait, GeospatialTrait, OcclusionTrait, LightEstimationTrait, EyeTrackingTrait, HandTrackingTrait, ControllerTrait, SpatialAccessoryTrait, BodyTrackingTrait, FaceTrackingTrait, HapticTrait, AccessibleTrait, AltTextTrait, SpatialAudioCueTrait, SonificationTrait, HapticCueTrait, MagnifiableTrait, HighContrastTrait, PerceptualColorTrait, MotionReducedTrait, SubtitleTrait, ScreenReaderTrait, GaussianSplatTrait, NerfTrait, VolumetricVideoTrait, PointCloudTrait, PhotogrammetryTrait, ComputeTrait, GPUParticleTrait, GPUPhysicsTrait, GPUBufferTrait, SensorTrait, DigitalTwinTrait, DataBindingTrait, AlertTrait, Heatmap3DTrait, BehaviorTreeTrait, GoalOrientedTrait, LLMAgentTrait, MemoryTrait, PerceptionTrait, EmotionTrait, DialogueTrait, FactionTrait, PatrolTrait, AmbisonicsTrait, HRTFTrait, ReverbZoneTrait, AudioOcclusionTrait, AudioPortalTrait, AudioMaterialTrait, HeadTrackedAudioTrait, USDTrait, GLTFTrait, FBXTrait, MaterialXTrait, SceneGraphTrait, CoLocatedTrait, RemotePresenceTrait, SharedWorldTrait, VoiceProximityTrait, AvatarEmbodimentTrait, SpectatorTrait, RoleTrait, GeospatialAnchorTrait, TerrainAnchorTrait, RooftopAnchorTrait, VPSTrait, POITrait, NFTTrait, TokenGatedTrait, WalletTrait, MarketplaceTrait, PortableTrait, ClothTrait, FluidTrait, SoftBodyTrait, RopeTrait, ChainTrait, WindTrait, BuoyancyTrait, DestructionTrait, AllLifecycleHooks, MediaLifecycleHook, AnalyticsLifecycleHook, SocialLifecycleHook, EffectsLifecycleHook, AudioLifecycleHook, AILifecycleHook, TimelineLifecycleHook, EnvironmentLifecycleHook, InputModalityLifecycleHook, AccessibilityLifecycleHook, VolumetricLifecycleHook, ComputeLifecycleHook, DigitalTwinLifecycleHook, AgentLifecycleHook, SpatialAudioLifecycleHook, InteropLifecycleHook, CoPresenceLifecycleHook, GeospatialLifecycleHook, Web3LifecycleHook, PhysicsExpansionLifecycleHook, RecordingClip, ShareContent, ShareResult, ParticleConfig, } from './types/HoloScriptPlus';
|
|
646
|
+
/**
|
|
647
|
+
* Spatial relationship types between scene nodes.
|
|
648
|
+
* Describes how two nodes relate to each other in 3D space.
|
|
649
|
+
*/
|
|
650
|
+
export type SpatialRelationType = 'parent_of' | 'child_of' | 'sibling_of' | 'above' | 'below' | 'left_of' | 'right_of' | 'in_front_of' | 'behind' | 'inside' | 'contains' | 'adjacent' | 'overlapping' | 'attached_to' | 'aligned_with' | 'facing' | 'orbiting';
|
|
651
|
+
/**
|
|
652
|
+
* A spatial relation between two scene nodes, with optional
|
|
653
|
+
* constraint parameters and metadata.
|
|
654
|
+
*/
|
|
655
|
+
export interface SpatialRelation {
|
|
656
|
+
/** Unique identifier for this relation */
|
|
657
|
+
id: string;
|
|
658
|
+
/** The type of spatial relationship */
|
|
659
|
+
type: SpatialRelationType;
|
|
660
|
+
/** Source node ID */
|
|
661
|
+
sourceNodeId: string;
|
|
662
|
+
/** Target node ID */
|
|
663
|
+
targetNodeId: string;
|
|
664
|
+
/** Offset vector from source to target (local space) */
|
|
665
|
+
offset?: SpatialVector3;
|
|
666
|
+
/** Whether this relation is enforced as a constraint */
|
|
667
|
+
isConstraint: boolean;
|
|
668
|
+
/** Constraint stiffness (0 = soft suggestion, 1 = rigid) */
|
|
669
|
+
stiffness?: number;
|
|
670
|
+
/** Priority for conflict resolution when multiple relations exist */
|
|
671
|
+
priority?: number;
|
|
672
|
+
/** Custom metadata for platform-specific extensions */
|
|
673
|
+
metadata?: Record<string, unknown>;
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Edge types for scene graph connections.
|
|
677
|
+
* Extends beyond simple parent-child to support spatial computing use cases.
|
|
678
|
+
*/
|
|
679
|
+
export type SceneEdgeType = 'hierarchy' | 'spatial' | 'dependency' | 'dataflow' | 'physics_joint' | 'audio_link' | 'animation_link' | 'network_sync' | 'reference';
|
|
680
|
+
/**
|
|
681
|
+
* A typed, weighted edge between two scene graph nodes.
|
|
682
|
+
* Supports directionality, spatial relations, and custom payloads.
|
|
683
|
+
*/
|
|
684
|
+
export interface SceneEdge {
|
|
685
|
+
/** Unique edge identifier */
|
|
686
|
+
id: string;
|
|
687
|
+
/** Edge type classification */
|
|
688
|
+
type: SceneEdgeType;
|
|
689
|
+
/** Source node ID */
|
|
690
|
+
from: string;
|
|
691
|
+
/** Target node ID */
|
|
692
|
+
to: string;
|
|
693
|
+
/** Whether the edge is bidirectional */
|
|
694
|
+
bidirectional: boolean;
|
|
695
|
+
/** Edge weight (0-1, used for traversal priority and rendering) */
|
|
696
|
+
weight: number;
|
|
697
|
+
/** Associated spatial relation, if any */
|
|
698
|
+
spatialRelation?: SpatialRelation;
|
|
699
|
+
/** Whether this edge is currently active */
|
|
700
|
+
active: boolean;
|
|
701
|
+
/** Custom properties for platform-specific data */
|
|
702
|
+
properties?: Record<string, unknown>;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Descriptor for a scene graph node at the type level.
|
|
706
|
+
* Complements the runtime SceneNode class in scene/SceneNode.ts
|
|
707
|
+
* and the export IR ISceneNode in export/SceneGraph.ts.
|
|
708
|
+
*/
|
|
709
|
+
export interface SceneNodeDescriptor {
|
|
710
|
+
/** Unique node identifier */
|
|
711
|
+
id: string;
|
|
712
|
+
/** Human-readable name */
|
|
713
|
+
name: string;
|
|
714
|
+
/** Node type classification */
|
|
715
|
+
nodeType: 'object' | 'group' | 'light' | 'camera' | 'empty' | 'agent' | 'zone' | 'anchor' | 'prefab';
|
|
716
|
+
/** Local transform relative to parent */
|
|
717
|
+
transform: ASTTransform;
|
|
718
|
+
/** Parent node ID (null for root) */
|
|
719
|
+
parentId: string | null;
|
|
720
|
+
/** Ordered list of child node IDs */
|
|
721
|
+
childIds: string[];
|
|
722
|
+
/** Tags for querying and filtering */
|
|
723
|
+
tags: string[];
|
|
724
|
+
/** Visibility layer (bitmask) */
|
|
725
|
+
layer: number;
|
|
726
|
+
/** Whether this node is visible */
|
|
727
|
+
visible: boolean;
|
|
728
|
+
/** Whether this node is active/enabled */
|
|
729
|
+
active: boolean;
|
|
730
|
+
/** Attached trait names */
|
|
731
|
+
traits: string[];
|
|
732
|
+
/** Custom properties (shape, color, etc.) */
|
|
733
|
+
properties: Record<string, HoloScriptValue>;
|
|
734
|
+
/** Custom metadata for extensions */
|
|
735
|
+
metadata?: Record<string, unknown>;
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Complete scene graph type containing nodes, edges, and spatial relations.
|
|
739
|
+
* This is the first-class scene graph representation in the HoloScript type system.
|
|
740
|
+
*/
|
|
741
|
+
export interface SceneGraphDescriptor {
|
|
742
|
+
/** Scene graph format version */
|
|
743
|
+
version: string;
|
|
744
|
+
/** Scene name */
|
|
745
|
+
name: string;
|
|
746
|
+
/** Scene description */
|
|
747
|
+
description?: string;
|
|
748
|
+
/** All nodes in the graph, keyed by ID */
|
|
749
|
+
nodes: Map<string, SceneNodeDescriptor>;
|
|
750
|
+
/** All edges connecting nodes */
|
|
751
|
+
edges: SceneEdge[];
|
|
752
|
+
/** All spatial relations between nodes */
|
|
753
|
+
spatialRelations: SpatialRelation[];
|
|
754
|
+
/** Root node ID */
|
|
755
|
+
rootId: string;
|
|
756
|
+
/** Coordinate system convention */
|
|
757
|
+
coordinateSystem: 'y_up' | 'z_up';
|
|
758
|
+
/** Units per meter (1.0 = meters) */
|
|
759
|
+
unitScale: number;
|
|
760
|
+
/** Scene-level metadata */
|
|
761
|
+
metadata: Record<string, unknown>;
|
|
762
|
+
/** Creation timestamp (ISO 8601) */
|
|
763
|
+
createdAt: string;
|
|
764
|
+
/** Last modification timestamp (ISO 8601) */
|
|
765
|
+
modifiedAt: string;
|
|
766
|
+
}
|
|
767
|
+
export interface AnyTraitAnnotation {
|
|
768
|
+
type: string;
|
|
769
|
+
config: Record<string, unknown>;
|
|
770
|
+
line?: number;
|
|
771
|
+
column?: number;
|
|
772
|
+
}
|
|
773
|
+
export interface EnhancedOrbNode extends OrbNode {
|
|
774
|
+
graphics?: Record<string, unknown>;
|
|
775
|
+
traits?: Map<string, Record<string, unknown>>;
|
|
776
|
+
eventHandlers?: Map<string, string>;
|
|
777
|
+
isCompanion?: boolean;
|
|
778
|
+
}
|
|
779
|
+
/** Event handler callback — matches HoloScriptRuntime internal EventHandler */
|
|
780
|
+
export type EventHandler = (data?: HoloScriptValue) => void | Promise<void>;
|
|
781
|
+
/** AgentRuntime — interface compatible with HoloScriptAgentRuntime */
|
|
782
|
+
export interface AgentRuntime {
|
|
783
|
+
reset(agentNode: OrbNode, parentRuntime: unknown): void;
|
|
784
|
+
getState(): HoloScriptValue;
|
|
785
|
+
executeAction(actionName: string, args?: HoloScriptValue[]): Promise<ExecutionResult>;
|
|
786
|
+
}
|
|
787
|
+
/** MigrationBlock is a runtime alias for MigrationNode */
|
|
788
|
+
export type MigrationBlock = MigrationNode;
|
|
789
|
+
/** UIElementState — matches HoloScriptRuntime internal UIElementState */
|
|
790
|
+
export interface UIElementState {
|
|
791
|
+
type: string;
|
|
792
|
+
name: string;
|
|
793
|
+
properties: Record<string, HoloScriptValue>;
|
|
794
|
+
value?: HoloScriptValue;
|
|
795
|
+
visible: boolean;
|
|
796
|
+
enabled: boolean;
|
|
797
|
+
}
|
|
798
|
+
export type { TraitContext, TraitEvent, TraitHandler } from './traits/TraitTypes';
|
|
799
|
+
export type { HoloObjectDecl, HoloTemplate, HoloValue, HoloComposition, } from './parser/HoloCompositionTypes';
|