@holoscript/core 8.0.8 → 8.0.10
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/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-Z6PMDS4G.js → chunk-5OUOMBKK.js} +1090 -53
- 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-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-7X5PNIQJ.js → chunk-BXSOEQI3.js} +27 -25
- package/dist/{chunk-WFKVS2K4.cjs → chunk-C65C5VED.cjs} +1101 -55
- 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-UGXHYIWT.cjs → chunk-LHNHO27U.cjs} +28 -28
- 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-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-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-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 +135 -69
- 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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7VBKRGIZ_cjs = require('../chunk-7VBKRGIZ.cjs');
|
|
4
|
+
var chunk356N4NPM_cjs = require('../chunk-356N4NPM.cjs');
|
|
5
|
+
require('../chunk-ZHPMP447.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKLIST", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunk7VBKRGIZ_cjs.DEFAULT_BLOCKLIST; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "HARD_STOP_CATEGORIES", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return chunk7VBKRGIZ_cjs.HARD_STOP_CATEGORIES; }
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "POLICY_PACK_COMPILE_TARGETS", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return chunk7VBKRGIZ_cjs.POLICY_PACK_COMPILE_TARGETS; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "POLICY_PACK_FRAMEWORK_IDS", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunk7VBKRGIZ_cjs.POLICY_PACK_FRAMEWORK_IDS; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "PolicyPackDefinitionError", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return chunk7VBKRGIZ_cjs.PolicyPackDefinitionError; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "PolicyPackDeploymentError", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return chunk7VBKRGIZ_cjs.PolicyPackDeploymentError; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "assertPolicyPackDeploymentReady", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return chunk7VBKRGIZ_cjs.assertPolicyPackDeploymentReady; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "buildContentPolicyConfig", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return chunk7VBKRGIZ_cjs.buildContentPolicyConfig; }
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, "defaultPolicyPackCompileTargets", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return chunk7VBKRGIZ_cjs.defaultPolicyPackCompileTargets; }
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, "defaultRulesForTier", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function () { return chunk7VBKRGIZ_cjs.defaultRulesForTier; }
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, "definePolicyPack", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () { return chunk7VBKRGIZ_cjs.definePolicyPack; }
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(exports, "evaluateContentPolicy", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function () { return chunk7VBKRGIZ_cjs.evaluateContentPolicy; }
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(exports, "evaluateContentPolicySync", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () { return chunk7VBKRGIZ_cjs.evaluateContentPolicySync; }
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "evaluatePolicyPackDeployment", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () { return chunk7VBKRGIZ_cjs.evaluatePolicyPackDeployment; }
|
|
64
|
+
});
|
|
65
|
+
Object.defineProperty(exports, "isPolicyPackCompileTarget", {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () { return chunk7VBKRGIZ_cjs.isPolicyPackCompileTarget; }
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(exports, "isPolicyPackFrameworkId", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
get: function () { return chunk7VBKRGIZ_cjs.isPolicyPackFrameworkId; }
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(exports, "jurisdictionBundle", {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function () { return chunk7VBKRGIZ_cjs.jurisdictionBundle; }
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(exports, "matchBlocklist", {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () { return chunk7VBKRGIZ_cjs.matchBlocklist; }
|
|
80
|
+
});
|
|
81
|
+
Object.defineProperty(exports, "normalizeText", {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function () { return chunk7VBKRGIZ_cjs.normalizeText; }
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(exports, "policyPackFromSchemaBlock", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () { return chunk7VBKRGIZ_cjs.policyPackFromSchemaBlock; }
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(exports, "toAuditEventInput", {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () { return chunk7VBKRGIZ_cjs.toAuditEventInput; }
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, "validatePolicyPack", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () { return chunk7VBKRGIZ_cjs.validatePolicyPack; }
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(exports, "evaluateJsonLogic", {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function () { return chunk356N4NPM_cjs.evaluateJsonLogic; }
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(exports, "matchesRule", {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
get: function () { return chunk356N4NPM_cjs.matchesRule; }
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=index.cjs.map
|
|
106
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContentPolicyGate — the CONTENT axis of the ecosystem's legal/illegal system.
|
|
3
|
+
*
|
|
4
|
+
* "What may be SAID" — a provider-agnostic, jurisdiction-aware content-moderation
|
|
5
|
+
* gate with a pure-data ruleset. Compose it with the Twin Earth safety envelopes
|
|
6
|
+
* ("what may be DONE") and the conformance/founder gates ("where is it LAWFUL");
|
|
7
|
+
* all three write to the shared AuditLogger ledger.
|
|
8
|
+
*
|
|
9
|
+
* See research/2026-06-13 surface map + integration proposal.
|
|
10
|
+
*/
|
|
11
|
+
export * from './types';
|
|
12
|
+
export * from './jsonLogic';
|
|
13
|
+
export * from './blocklist';
|
|
14
|
+
export * from './defaults';
|
|
15
|
+
export * from './ContentPolicyGate';
|
|
16
|
+
export * from './PolicyPack';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { DEFAULT_BLOCKLIST, HARD_STOP_CATEGORIES, POLICY_PACK_COMPILE_TARGETS, POLICY_PACK_FRAMEWORK_IDS, PolicyPackDefinitionError, PolicyPackDeploymentError, assertPolicyPackDeploymentReady, buildContentPolicyConfig, defaultPolicyPackCompileTargets, defaultRulesForTier, definePolicyPack, evaluateContentPolicy, evaluateContentPolicySync, evaluatePolicyPackDeployment, isPolicyPackCompileTarget, isPolicyPackFrameworkId, jurisdictionBundle, matchBlocklist, normalizeText, policyPackFromSchemaBlock, toAuditEventInput, validatePolicyPack } from '../chunk-ET3AN4W3.js';
|
|
2
|
+
export { evaluateJsonLogic, matchesRule } from '../chunk-JBQXZIWB.js';
|
|
3
|
+
import '../chunk-W4GABFCR.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal, dependency-free JSON-Logic evaluator for the ContentPolicyGate ruleset.
|
|
3
|
+
*
|
|
4
|
+
* Policy rules are PURE DATA (JSON) — there is no code-execution surface — so a
|
|
5
|
+
* legal/illegal ruleset can live in a database or a per-jurisdiction file and be
|
|
6
|
+
* swapped WITHOUT a redeploy. That swap-without-deploy property (and the absence
|
|
7
|
+
* of an embedded interpreter) is the reason we use a small JSON-Logic subset here
|
|
8
|
+
* rather than pulling an OPA/Cedar runtime into the TS monorepo: the survey in
|
|
9
|
+
* research/2026-06-13 recommends rules-as-data for jurisdiction-varying policy,
|
|
10
|
+
* keeping a heavier engine as a later drop-in if scale demands it.
|
|
11
|
+
*
|
|
12
|
+
* This is intentionally NOT full JsonLogic. It supports exactly the operator
|
|
13
|
+
* subset the policy rules need, with a recursion-depth cap and a regex-length cap
|
|
14
|
+
* so a hostile rule file cannot hang the evaluator (ReDoS / stack blow-up).
|
|
15
|
+
*/
|
|
16
|
+
export type JsonLogicPrimitive = string | number | boolean | null;
|
|
17
|
+
export type JsonLogicExpr = {
|
|
18
|
+
[operator: string]: unknown;
|
|
19
|
+
};
|
|
20
|
+
export type JsonLogicRule = JsonLogicPrimitive | JsonLogicExpr | JsonLogicRule[];
|
|
21
|
+
/**
|
|
22
|
+
* Evaluate a JSON-Logic rule against a facts object. Returns the computed value
|
|
23
|
+
* (primitives evaluate to themselves; logic nodes evaluate their operator).
|
|
24
|
+
* Unknown operators and malformed nodes evaluate to `null` (falsy) rather than
|
|
25
|
+
* throwing — a broken rule fails CLOSED for `block` predicates because a `null`
|
|
26
|
+
* result is falsy, so it never silently allows.
|
|
27
|
+
*/
|
|
28
|
+
export declare function evaluateJsonLogic(rule: JsonLogicRule, data: Record<string, unknown>, depth?: number): unknown;
|
|
29
|
+
/** Convenience: evaluate a rule and coerce the result to a boolean (truthy). */
|
|
30
|
+
export declare function matchesRule(rule: JsonLogicRule, facts: Record<string, unknown>): boolean;
|
|
31
|
+
//# sourceMappingURL=jsonLogic.d.ts.map
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type surface for ContentPolicyGate — the ecosystem's "what may be SAID" gate.
|
|
3
|
+
*
|
|
4
|
+
* This is the CONTENT axis of the legal/illegal system (the other two axes —
|
|
5
|
+
* agent/robot ACTION legality and regulatory JURISDICTION — are enforced via the
|
|
6
|
+
* Twin Earth safety envelopes and the conformance/founder gates respectively; all
|
|
7
|
+
* three share this jurisdiction context and the audit ledger). See
|
|
8
|
+
* research/2026-06-13 surface map + integration proposal.
|
|
9
|
+
*
|
|
10
|
+
* Founder-anchored posture (2026-06-13):
|
|
11
|
+
* - Rules are configurable data, default STRICT for the family tier.
|
|
12
|
+
* - Jurisdiction is first-class from day one (GLOBAL launch target).
|
|
13
|
+
* - The sovereign/Ollama lane is ALLOWED but every output routes through this
|
|
14
|
+
* gate (the gate is provider-agnostic — it does not care which lane produced
|
|
15
|
+
* the text), so the unaligned-model exposure is covered.
|
|
16
|
+
*/
|
|
17
|
+
import type { JsonLogicRule } from './jsonLogic';
|
|
18
|
+
/** Policy-relevant content taxonomy. `none` = nothing actionable detected. */
|
|
19
|
+
export type ContentCategory = 'csam' | 'sexual_minors' | 'terrorism' | 'self_harm' | 'violence' | 'weapons' | 'illegal_goods' | 'hate' | 'harassment' | 'sexual' | 'malware' | 'privacy' | 'misinformation' | 'none';
|
|
20
|
+
/** EU AI Act risk tiers (Art. 6 / Annex III). */
|
|
21
|
+
export type RiskTier = 'prohibited' | 'high' | 'limited' | 'minimal';
|
|
22
|
+
/**
|
|
23
|
+
* Audience / surface strictness tier — the "configurable, start strict" knob.
|
|
24
|
+
* `family` is the strictest (HoloLand / schools, per D.079).
|
|
25
|
+
*/
|
|
26
|
+
export type PolicyTier = 'family' | 'teen' | 'general' | 'adult' | 'dev';
|
|
27
|
+
/** IEEE 2089.1-2024 age-assurance confidence levels. */
|
|
28
|
+
export type AgeAssurance = 'asserted' | 'standard' | 'enhanced' | 'strict';
|
|
29
|
+
/** Enforcement verb a tier or rule can produce. Ranked block > escalate > flag > allow. */
|
|
30
|
+
export type PolicyAction = 'allow' | 'flag' | 'escalate' | 'block';
|
|
31
|
+
/**
|
|
32
|
+
* Where the content will be delivered — drives the legal obligations that apply.
|
|
33
|
+
* Resolved at request ingress (geo-IP is advisory, user-declared region preferred);
|
|
34
|
+
* stored as data so a legal team can update thresholds without a redeploy.
|
|
35
|
+
*/
|
|
36
|
+
export interface JurisdictionContext {
|
|
37
|
+
/** ISO 3166-1 alpha-2 (e.g. 'US', 'DE'), or the pseudo-regions 'EU' / 'GLOBAL'. */
|
|
38
|
+
region: string;
|
|
39
|
+
/** EU AI Act classification of the generating capability. */
|
|
40
|
+
aiActTier?: RiskTier;
|
|
41
|
+
/** EU Digital Services Act illegal-content obligations apply in this region. */
|
|
42
|
+
dsaApplies?: boolean;
|
|
43
|
+
/** Applicable minimum age for the surface in this region. */
|
|
44
|
+
minAge?: number;
|
|
45
|
+
/** Confidence we have in the user's declared age. */
|
|
46
|
+
ageAssurance?: AgeAssurance;
|
|
47
|
+
/**
|
|
48
|
+
* EU AI Act Art. 50-52 — generated/synthetic origin must be disclosed to the
|
|
49
|
+
* user (e.g. an NPC must reveal it is AI). Surfaced on the decision so the
|
|
50
|
+
* caller can render the disclosure; not itself a block.
|
|
51
|
+
*/
|
|
52
|
+
disclosureRequired?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** A single classifier verdict (Tier-0 blocklist, Tier-1 model, or Tier-2 LLM). */
|
|
55
|
+
export interface Classification {
|
|
56
|
+
category: ContentCategory;
|
|
57
|
+
/** 0..1 — confidence/severity that the content is in `category`. */
|
|
58
|
+
severity: number;
|
|
59
|
+
source: 'blocklist' | 'classifier' | 'llm' | 'provider' | 'none';
|
|
60
|
+
rationale?: string;
|
|
61
|
+
}
|
|
62
|
+
/** Verdict shape returned by an injected LLM moderation hook (Tier-2). */
|
|
63
|
+
export interface ModerationVerdict {
|
|
64
|
+
flagged: boolean;
|
|
65
|
+
categories: ContentCategory[];
|
|
66
|
+
/** 0..1 — maximum severity across flagged categories. */
|
|
67
|
+
severity: number;
|
|
68
|
+
rationale?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Facts exposed to data-rules and provider hooks. Rules reference these by dot
|
|
72
|
+
* path via the `var` operator (e.g. `{ "==": [{ "var": "category" }, "sexual"] }`).
|
|
73
|
+
* Open-ended so callers can attach surface-specific facts a rule can match on.
|
|
74
|
+
*/
|
|
75
|
+
export interface PolicyEvalFacts {
|
|
76
|
+
text: string;
|
|
77
|
+
textLength: number;
|
|
78
|
+
/** Normalized (diacritics stripped, separators collapsed) for matching. */
|
|
79
|
+
normalizedText: string;
|
|
80
|
+
category: ContentCategory;
|
|
81
|
+
severity: number;
|
|
82
|
+
tier: PolicyTier;
|
|
83
|
+
region: string;
|
|
84
|
+
aiActTier: RiskTier | null;
|
|
85
|
+
minAge: number | null;
|
|
86
|
+
dsaApplies: boolean;
|
|
87
|
+
/** Calling surface, e.g. 'brittney', 'npc_dialogue', 'publish_zone', 'voice'. */
|
|
88
|
+
surface: string;
|
|
89
|
+
/** Whether we are screening a user PROMPT (`input`) or model OUTPUT (`output`). */
|
|
90
|
+
direction: 'input' | 'output';
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
/** Tier-0 blocklist entry — deterministic, category-tagged, optionally hard-stop. */
|
|
94
|
+
export interface BlocklistEntry {
|
|
95
|
+
id: string;
|
|
96
|
+
category: ContentCategory;
|
|
97
|
+
/** Exact normalized terms matched on word boundaries. */
|
|
98
|
+
terms?: string[];
|
|
99
|
+
/** Regex pattern strings (evaluated with the ReDoS-guarded matcher). */
|
|
100
|
+
patterns?: string[];
|
|
101
|
+
/** Severity assigned when this entry matches. Default 0.95. */
|
|
102
|
+
severity?: number;
|
|
103
|
+
/** A hard-stop match can never be overridden by a rule or tier. */
|
|
104
|
+
hardStop?: boolean;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A data-driven policy rule. Pure JSON — swappable per tier/jurisdiction without
|
|
108
|
+
* a redeploy. `when` is a JSON-Logic predicate over {@link PolicyEvalFacts}.
|
|
109
|
+
*/
|
|
110
|
+
export interface RuleDescriptor {
|
|
111
|
+
id: string;
|
|
112
|
+
description: string;
|
|
113
|
+
when: JsonLogicRule;
|
|
114
|
+
action: PolicyAction;
|
|
115
|
+
category?: ContentCategory;
|
|
116
|
+
appliesToTiers?: PolicyTier[];
|
|
117
|
+
/** ISO region codes, or 'EU' / 'GLOBAL'. Empty/absent = all regions. */
|
|
118
|
+
appliesToRegions?: string[];
|
|
119
|
+
/** Legal basis text for the DSA-style Statement of Reasons. */
|
|
120
|
+
legalBasis?: string;
|
|
121
|
+
/** EU AI Act article reference, for the compliance record. */
|
|
122
|
+
aiActArticle?: string;
|
|
123
|
+
/** Higher wins on conflict within the same action rank. Default 0. */
|
|
124
|
+
priority?: number;
|
|
125
|
+
}
|
|
126
|
+
/** Injected Tier-1 classifier (cheap ML). Core stays dependency-free; surfaces supply it. */
|
|
127
|
+
export type ClassifierHook = (text: string, facts: PolicyEvalFacts) => Promise<Classification | null> | Classification | null;
|
|
128
|
+
/** Injected Tier-2 LLM-with-policy moderation. */
|
|
129
|
+
export type LlmModerationHook = (text: string, facts: PolicyEvalFacts) => Promise<ModerationVerdict> | ModerationVerdict;
|
|
130
|
+
/** Configuration for one evaluation context (one tier + jurisdiction + ruleset). */
|
|
131
|
+
export interface ContentPolicyConfig {
|
|
132
|
+
tier: PolicyTier;
|
|
133
|
+
rules: RuleDescriptor[];
|
|
134
|
+
jurisdiction: JurisdictionContext;
|
|
135
|
+
blocklist?: BlocklistEntry[];
|
|
136
|
+
/** Categories that ALWAYS hard-block, regardless of tier/jurisdiction/rules. */
|
|
137
|
+
hardStopCategories?: ContentCategory[];
|
|
138
|
+
/** Tier-1 cheap classifier (optional). */
|
|
139
|
+
classifier?: ClassifierHook;
|
|
140
|
+
/** Tier-2 LLM-with-policy moderation (optional). */
|
|
141
|
+
llm?: LlmModerationHook;
|
|
142
|
+
/** Severity at/above which the Tier-2 LLM is consulted for borderline content. Default 0.3. */
|
|
143
|
+
borderlineThreshold?: number;
|
|
144
|
+
/** If true, the Tier-2 LLM runs on every non-hard-stopped item (strict surfaces). Default false. */
|
|
145
|
+
alwaysConsultLlm?: boolean;
|
|
146
|
+
}
|
|
147
|
+
/** Input to a single gate evaluation. */
|
|
148
|
+
export interface ContentPolicyInput {
|
|
149
|
+
text: string;
|
|
150
|
+
surface: string;
|
|
151
|
+
direction?: 'input' | 'output';
|
|
152
|
+
/** Extra facts (merged into {@link PolicyEvalFacts}) a rule may match on. */
|
|
153
|
+
facts?: Record<string, unknown>;
|
|
154
|
+
}
|
|
155
|
+
/** The decision returned by the gate. */
|
|
156
|
+
export interface ContentPolicyDecision {
|
|
157
|
+
allowed: boolean;
|
|
158
|
+
action: PolicyAction;
|
|
159
|
+
tier: PolicyTier;
|
|
160
|
+
category: ContentCategory;
|
|
161
|
+
severity: number;
|
|
162
|
+
matchedRuleId: string | null;
|
|
163
|
+
reason: string;
|
|
164
|
+
classification: Classification;
|
|
165
|
+
jurisdiction: JurisdictionContext;
|
|
166
|
+
/** DSA-style machine-readable Statement of Reasons (set on block/flag/escalate). */
|
|
167
|
+
statementOfReasons: string | null;
|
|
168
|
+
/** EU AI Act Art. 50-52 — caller must surface an AI/synthetic-origin disclosure. */
|
|
169
|
+
disclosureRequired: boolean;
|
|
170
|
+
/** Which cascade tier decided: 0 blocklist, 1 rules/classifier, 2 LLM, 3 human, -1 default-allow. */
|
|
171
|
+
decidedAtTier: 0 | 1 | 2 | 3 | -1;
|
|
172
|
+
timestampMs: number;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProofCompositionLaw — algebraic receipt composition (Paper 29, H2).
|
|
3
|
+
*
|
|
4
|
+
* Composes N `WrappedSolverResult` receipts into a `ComposedReceipt` that
|
|
5
|
+
* proves the conjunction of all constituent solver contracts. Five laws
|
|
6
|
+
* govern the composition; `verifyCompositionLaws` checks any receipt
|
|
7
|
+
* against all five.
|
|
8
|
+
*
|
|
9
|
+
* ## The five laws
|
|
10
|
+
*
|
|
11
|
+
* | Law | Name | Rule |
|
|
12
|
+
* |-----|------|------|
|
|
13
|
+
* | 1 | empty-identity | compose([]) → composedVerified:true, composedSchemaValid:null |
|
|
14
|
+
* | 2 | and-monotone | composedVerified = ∀c: c.contractVerified |
|
|
15
|
+
* | 3 | schema-null-coalescing-and | composedSchemaValid = null if all null; else ∀ non-null: true |
|
|
16
|
+
* | 4 | violation-union | allViolations = ⋃ c.clauseViolations |
|
|
17
|
+
* | 5 | flat-associativity | compose(compose(A,B).components, C) ≡ compose(A,B,C) |
|
|
18
|
+
*
|
|
19
|
+
* Law 5 is enforced by keeping composition flat — `flattenForRecompose` exposes
|
|
20
|
+
* the primitive that makes it structurally verifiable.
|
|
21
|
+
*
|
|
22
|
+
* ## Domain-neutrality
|
|
23
|
+
*
|
|
24
|
+
* No domain nouns appear here. This module only composes proof shapes;
|
|
25
|
+
* domain-specific solvers register their own contracts and schemas.
|
|
26
|
+
*/
|
|
27
|
+
import type { WrappedSolverResult, PluginClauseViolation, SchemaViolation } from '../plugin-solver-contract/PluginSolverContract';
|
|
28
|
+
export declare const PROOF_COMPOSITION_LAWS: readonly ["empty-identity", "and-monotone", "schema-null-coalescing-and", "violation-union", "flat-associativity"];
|
|
29
|
+
export type ProofCompositionLaw = (typeof PROOF_COMPOSITION_LAWS)[number];
|
|
30
|
+
/**
|
|
31
|
+
* The algebraic receipt produced by `composeReceipts`.
|
|
32
|
+
*
|
|
33
|
+
* Carries the conjunction of all constituent solver contracts' verification
|
|
34
|
+
* state, the union of all violations, provenance, and a stable identity hash.
|
|
35
|
+
*/
|
|
36
|
+
export interface ComposedReceipt {
|
|
37
|
+
/** Constituent wrapped solver results (in input order). */
|
|
38
|
+
readonly components: ReadonlyArray<WrappedSolverResult<unknown>>;
|
|
39
|
+
/**
|
|
40
|
+
* True iff every component has `contractVerified: true` (Laws 1 + 2).
|
|
41
|
+
* Empty composition yields `true`.
|
|
42
|
+
*/
|
|
43
|
+
readonly composedVerified: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Schema validation verdict over all components (Law 3):
|
|
46
|
+
* - `null` → all components are freeform (no schema registered for any).
|
|
47
|
+
* - `true` → at least one component has a schema; all non-null pass.
|
|
48
|
+
* - `false` → at least one component has a schema and it failed.
|
|
49
|
+
*/
|
|
50
|
+
readonly composedSchemaValid: boolean | null;
|
|
51
|
+
/** Union of all clause violations across components (Law 4). */
|
|
52
|
+
readonly allViolations: ReadonlyArray<PluginClauseViolation>;
|
|
53
|
+
/** Union of all schema violations across components. */
|
|
54
|
+
readonly allSchemaViolations: ReadonlyArray<SchemaViolation>;
|
|
55
|
+
/** Deduplicated plugin ids contributing to this composition. */
|
|
56
|
+
readonly pluginIds: ReadonlyArray<string>;
|
|
57
|
+
/** Deduplicated contract ids contributing to this composition. */
|
|
58
|
+
readonly contractIds: ReadonlyArray<string>;
|
|
59
|
+
/**
|
|
60
|
+
* FNV-1a 32 hash of the composition's verification state (prefix `"fnv1a32:<8 hex>"`).
|
|
61
|
+
* Identical components with identical verification state → identical hash.
|
|
62
|
+
* Non-cryptographic — use `'secure'` hash-policy for on-chain anchoring.
|
|
63
|
+
*/
|
|
64
|
+
readonly hash: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Compose N `WrappedSolverResult` receipts into one `ComposedReceipt`.
|
|
68
|
+
*
|
|
69
|
+
* All five composition laws are enforced by construction. Pass the result
|
|
70
|
+
* of `wrapSolverInContract` calls from multiple plugins to prove the
|
|
71
|
+
* conjunction of their solver contracts in a single receipt.
|
|
72
|
+
*/
|
|
73
|
+
export declare function composeReceipts(components: ReadonlyArray<WrappedSolverResult<unknown>>): ComposedReceipt;
|
|
74
|
+
/**
|
|
75
|
+
* Flatten a `ComposedReceipt`'s components for re-composition with additional receipts.
|
|
76
|
+
*
|
|
77
|
+
* Structural proof of Law 5 (flat-associativity):
|
|
78
|
+
* `composeReceipts(flattenForRecompose(ab, [c]))`
|
|
79
|
+
* is verification-equivalent to
|
|
80
|
+
* `composeReceipts([...ab.components, c])`.
|
|
81
|
+
*/
|
|
82
|
+
export declare function flattenForRecompose(composed: ComposedReceipt, additional?: ReadonlyArray<WrappedSolverResult<unknown>>): ReadonlyArray<WrappedSolverResult<unknown>>;
|
|
83
|
+
/**
|
|
84
|
+
* Verify that a `ComposedReceipt` satisfies all five composition laws.
|
|
85
|
+
*
|
|
86
|
+
* Returns the names of violated laws. An empty array means the receipt
|
|
87
|
+
* is fully law-compliant. Useful in tests and receipt audit flows.
|
|
88
|
+
*
|
|
89
|
+
* Note: Law 1 (empty-identity) and Law 5 (flat-associativity) are enforced
|
|
90
|
+
* structurally by `composeReceipts`; only Laws 2–4 are checkable on an
|
|
91
|
+
* arbitrary receipt.
|
|
92
|
+
*/
|
|
93
|
+
export declare function verifyCompositionLaws(receipt: ComposedReceipt): ProofCompositionLaw[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkYAO4HPJL_cjs = require('../chunk-YAO4HPJL.cjs');
|
|
4
|
+
require('../chunk-ZHPMP447.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "PROOF_COMPOSITION_LAWS", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkYAO4HPJL_cjs.PROOF_COMPOSITION_LAWS; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "composeReceipts", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkYAO4HPJL_cjs.composeReceipts; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "flattenForRecompose", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkYAO4HPJL_cjs.flattenForRecompose; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "verifyCompositionLaws", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkYAO4HPJL_cjs.verifyCompositionLaws; }
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
25
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ProofCompositionLaw';
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receipt Hash Policy — two-tier SSOT for all receipt payloads in @holoscript/core.
|
|
3
|
+
*
|
|
4
|
+
* ## Tiers
|
|
5
|
+
*
|
|
6
|
+
* | Tier | Algorithm | Output length | When to use |
|
|
7
|
+
* |------------|-----------|---------------|----------------------------------------------------|
|
|
8
|
+
* | `'fast'` | FNV-1a 32 | 8 hex chars | Non-adversarial, high-throughput, local receipts |
|
|
9
|
+
* | `'secure'` | SHA-256 | 64 hex chars | Chain-anchored, adversarial-peer, on-chain records |
|
|
10
|
+
*
|
|
11
|
+
* **Default is `'fast'`** — this matches the non-adversarial threat model that governs
|
|
12
|
+
* most simulation receipts (internal replay, developer tooling, local twin). Use
|
|
13
|
+
* `'secure'` when a receipt will be anchored on-chain (x402/CAEL base anchor) or
|
|
14
|
+
* shared across trust boundaries where collision resistance matters.
|
|
15
|
+
*
|
|
16
|
+
* ## Usage
|
|
17
|
+
*
|
|
18
|
+
* import { hashReceiptPayload, RECEIPT_HASH_POLICY_DEFAULT } from './hash-policy';
|
|
19
|
+
*
|
|
20
|
+
* // Fast path (DomainSimulationReceipt, internal receipts):
|
|
21
|
+
* const tag = hashReceiptPayload(payload); // uses 'fast'
|
|
22
|
+
*
|
|
23
|
+
* // Secure path (chain-anchored receipts):
|
|
24
|
+
* const tag = hashReceiptPayload(payload, 'secure');
|
|
25
|
+
*
|
|
26
|
+
* ## Format tags
|
|
27
|
+
*
|
|
28
|
+
* Both functions prefix the raw hex with a format tag so receipts are
|
|
29
|
+
* self-identifying even without the policy field:
|
|
30
|
+
* `fast` → `"fnv1a32:<8 hex>"`
|
|
31
|
+
* `secure` → `"sha256:<64 hex>"`
|
|
32
|
+
*
|
|
33
|
+
* ## Rationale
|
|
34
|
+
*
|
|
35
|
+
* Prior to this file, the fnv1a32 implementation was duplicated:
|
|
36
|
+
* - `packages/core/src/receipts/DomainSimulationReceipt.ts` (private local fn)
|
|
37
|
+
* - `packages/engine/src/simulation/sha256.ts` (byte-domain variant)
|
|
38
|
+
* - `packages/core/src/reconstruction/replayFingerprint.ts` (double-FNV, 16 chars)
|
|
39
|
+
*
|
|
40
|
+
* Those existing callers are left unchanged (they are locked by tests). All NEW
|
|
41
|
+
* receipt hashing should go through this module.
|
|
42
|
+
*
|
|
43
|
+
* See: research/2026-06-16_language-extension-roadmap.md §H1 hash-policy
|
|
44
|
+
* packages/engine/src/simulation/sha256.ts (engine-level mode dispatch)
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* The two tiers of receipt hashing.
|
|
48
|
+
* Match the engine's `HashMode` naming intent but kept independent
|
|
49
|
+
* so @holoscript/core does not import from @holoscript/engine.
|
|
50
|
+
*/
|
|
51
|
+
export type ReceiptHashPolicy = 'fast' | 'secure';
|
|
52
|
+
/** Default policy: FNV-1a 32 — fast, non-adversarial, non-cryptographic. */
|
|
53
|
+
export declare const RECEIPT_HASH_POLICY_DEFAULT: ReceiptHashPolicy;
|
|
54
|
+
/**
|
|
55
|
+
* Hash a canonicalized receipt payload string using the specified policy.
|
|
56
|
+
*
|
|
57
|
+
* For `'fast'` (default): synchronous, returns a prefixed string immediately.
|
|
58
|
+
* For `'secure'`: returns a Promise — await it or use `hashReceiptPayloadAsync`.
|
|
59
|
+
*
|
|
60
|
+
* The output is always prefixed with the format tag so receipts are
|
|
61
|
+
* self-identifying: `"fnv1a32:<hex>"` or `"sha256:<hex>"`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function hashReceiptPayload(canonicalized: string, policy?: 'fast'): string;
|
|
64
|
+
export declare function hashReceiptPayload(canonicalized: string, policy: 'secure'): Promise<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Async variant — always returns a Promise regardless of policy tier.
|
|
67
|
+
* Useful in async contexts where the synchronous fast path is still valid.
|
|
68
|
+
*/
|
|
69
|
+
export declare function hashReceiptPayloadAsync(canonicalized: string, policy?: ReceiptHashPolicy): Promise<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Parse a format-tagged hash string produced by `hashReceiptPayload`.
|
|
72
|
+
* Returns `{ policy, hex }` or `null` if the tag is not recognized.
|
|
73
|
+
*
|
|
74
|
+
* Useful for receipt verification: infer the tier from the stored hash
|
|
75
|
+
* without requiring a separate `hashAlgorithm` field.
|
|
76
|
+
*/
|
|
77
|
+
export declare function parseReceiptHash(tagged: string): {
|
|
78
|
+
policy: ReceiptHashPolicy;
|
|
79
|
+
hex: string;
|
|
80
|
+
} | null;
|
|
81
|
+
/**
|
|
82
|
+
* Format-level consistency check: does the hash string's prefix match
|
|
83
|
+
* the expected policy? Used to detect mid-receipt policy tampering.
|
|
84
|
+
*/
|
|
85
|
+
export declare function receiptHashMatchesPolicy(tagged: string, policy: ReceiptHashPolicy): boolean;
|