@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,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin contract discipline bundle (H2).
|
|
3
|
+
*
|
|
4
|
+
* Three primitives that close the "freeform receipt" gap and give every plugin
|
|
5
|
+
* solver the same proof-carrying guarantees the engine's ContractedSimulation
|
|
6
|
+
* provides — without importing the engine or duplicating its machinery:
|
|
7
|
+
*
|
|
8
|
+
* 1. **PluginSolverContract** — declarative pre/inv/post clause declarations
|
|
9
|
+
* (JSON-safe data, not functions). The manifest references one by
|
|
10
|
+
* `manifest.solverContract: string`. Registered in `PluginSolverContractRegistry`.
|
|
11
|
+
*
|
|
12
|
+
* 2. **SolverReceiptSchemaRegistry** — maps receipt schema IDs to validator
|
|
13
|
+
* functions. A plugin registers a schema; the engine validates solver output
|
|
14
|
+
* before issuing a receipt. Without a registered schema the receipt is
|
|
15
|
+
* labeled `freeform: true` (honest) — no silent pass-through.
|
|
16
|
+
*
|
|
17
|
+
* 3. **wrapSolverInContract** — wraps a plugin solver function so that:
|
|
18
|
+
* - preconditions are checked before the solver runs,
|
|
19
|
+
* - postconditions are checked after,
|
|
20
|
+
* - output is validated against the registered receipt schema.
|
|
21
|
+
* Returns a `WrappedSolverResult` that carries all violations + the
|
|
22
|
+
* schema verdict — ready to feed into a `DomainSimulationReceipt`.
|
|
23
|
+
*
|
|
24
|
+
* ## Domain-neutrality
|
|
25
|
+
*
|
|
26
|
+
* No domain nouns appear here. Plugins supply their own clause IDs,
|
|
27
|
+
* descriptions, and validator logic. Core only provides the skeleton.
|
|
28
|
+
*
|
|
29
|
+
* ## Design alignment
|
|
30
|
+
*
|
|
31
|
+
* - `PluginContractClause.severity` mirrors `ContractClause.severity` in engine.
|
|
32
|
+
* - `PluginClauseViolation` mirrors `ClauseViolation` in engine.
|
|
33
|
+
* - `PluginClauseContext` is simpler than engine's `ClauseContext` — no
|
|
34
|
+
* `getField`/`simTime` (those are engine-side FEM solver concepts). Plugin
|
|
35
|
+
* clauses observe `config` (pre-solve) and `result` (post-solve).
|
|
36
|
+
*/
|
|
37
|
+
export type PluginClauseKind = 'precondition' | 'invariant' | 'postcondition';
|
|
38
|
+
/**
|
|
39
|
+
* A single clause in a `PluginSolverContract`.
|
|
40
|
+
*
|
|
41
|
+
* Intentionally JSON-serializable: no function references. Evaluators
|
|
42
|
+
* (the actual booleans) are registered separately via
|
|
43
|
+
* `PluginSolverContractRegistry.registerEvaluator()`.
|
|
44
|
+
*/
|
|
45
|
+
export interface PluginContractClause {
|
|
46
|
+
/** Stable identifier — appears in violation records and the receipt witness. */
|
|
47
|
+
id: string;
|
|
48
|
+
kind: PluginClauseKind;
|
|
49
|
+
/** Human-readable description of what this clause asserts. */
|
|
50
|
+
description: string;
|
|
51
|
+
/** 'error' (default) blocks `contractVerified: true`; 'warning' does not. */
|
|
52
|
+
severity?: 'error' | 'warning';
|
|
53
|
+
/**
|
|
54
|
+
* For `'invariant'` clauses: evaluate every N solver steps. Default: 1.
|
|
55
|
+
* Ignored for preconditions / postconditions.
|
|
56
|
+
*/
|
|
57
|
+
cadence?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Declarative plugin solver contract — the plugin-scope equivalent of
|
|
61
|
+
* `ContractClause` sets in `SimulationContract`.
|
|
62
|
+
*
|
|
63
|
+
* JSON-serializable: `manifest.solverContract` references this by `id`.
|
|
64
|
+
*/
|
|
65
|
+
export interface PluginSolverContract {
|
|
66
|
+
/**
|
|
67
|
+
* Stable contract identifier. Must match `manifest.solverContract`.
|
|
68
|
+
* Convention: `"<pluginId>-v<N>"` (e.g., `"retail-ecommerce-v1"`).
|
|
69
|
+
*/
|
|
70
|
+
id: string;
|
|
71
|
+
/** Plugin that owns this contract. Must match `manifest.id`. */
|
|
72
|
+
pluginId: string;
|
|
73
|
+
/** Optional human-readable summary of what this solver proves. */
|
|
74
|
+
description?: string;
|
|
75
|
+
/** Clauses checked before the solver runs. Failure aborts execution. */
|
|
76
|
+
preconditions: PluginContractClause[];
|
|
77
|
+
/** Clauses checked during each solver step. */
|
|
78
|
+
invariants: PluginContractClause[];
|
|
79
|
+
/** Clauses checked after the solver completes. */
|
|
80
|
+
postconditions: PluginContractClause[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Read-only context supplied to a clause evaluator function.
|
|
84
|
+
*
|
|
85
|
+
* Simpler than engine's `ClauseContext` (no `getField`/`simTime`) — plugin
|
|
86
|
+
* clauses observe configuration (pre-solve) and solver output (post-solve).
|
|
87
|
+
*/
|
|
88
|
+
export interface PluginClauseContext<TConfig = Record<string, unknown>, TResult = unknown> {
|
|
89
|
+
/** Frozen solver configuration (always available). */
|
|
90
|
+
readonly config: Readonly<TConfig>;
|
|
91
|
+
/**
|
|
92
|
+
* Solver result — `undefined` for preconditions, populated for postconditions.
|
|
93
|
+
* Use optional chaining: `ctx.result?.fieldName`.
|
|
94
|
+
*/
|
|
95
|
+
readonly result: Readonly<TResult> | undefined;
|
|
96
|
+
/** The owning plugin's manifest id. */
|
|
97
|
+
readonly pluginId: string;
|
|
98
|
+
}
|
|
99
|
+
/** Evaluator function type — returns true when the clause HOLDS. */
|
|
100
|
+
export type PluginClauseEvaluator<TConfig = Record<string, unknown>, TResult = unknown> = (ctx: PluginClauseContext<TConfig, TResult>) => boolean;
|
|
101
|
+
/** A single clause violation recorded by `wrapSolverInContract`. */
|
|
102
|
+
export interface PluginClauseViolation {
|
|
103
|
+
clauseId: string;
|
|
104
|
+
kind: PluginClauseKind;
|
|
105
|
+
severity: 'error' | 'warning';
|
|
106
|
+
message: string;
|
|
107
|
+
pluginId: string;
|
|
108
|
+
}
|
|
109
|
+
/** A single schema validation failure. */
|
|
110
|
+
export interface SchemaViolation {
|
|
111
|
+
field: string;
|
|
112
|
+
message: string;
|
|
113
|
+
}
|
|
114
|
+
/** Result of running a `ReceiptSchemaValidator`. */
|
|
115
|
+
export interface SchemaValidationResult {
|
|
116
|
+
valid: boolean;
|
|
117
|
+
violations: SchemaViolation[];
|
|
118
|
+
}
|
|
119
|
+
/** Validates a solver's raw result object against a declared output shape. */
|
|
120
|
+
export type ReceiptSchemaValidator = (result: unknown) => SchemaValidationResult;
|
|
121
|
+
/** A registered receipt schema entry. */
|
|
122
|
+
export interface SolverReceiptSchemaEntry {
|
|
123
|
+
/** Stable schema identifier. Must match `manifest.receiptSchema`. */
|
|
124
|
+
id: string;
|
|
125
|
+
/** Plugin that registered this schema. */
|
|
126
|
+
pluginId: string;
|
|
127
|
+
/** Optional description of what fields the schema expects. */
|
|
128
|
+
description?: string;
|
|
129
|
+
validate: ReceiptSchemaValidator;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Return type of a solver wrapped by `wrapSolverInContract`.
|
|
133
|
+
*
|
|
134
|
+
* Carry this into `DomainSimulationReceipt.resultSummary` (or a subtype):
|
|
135
|
+
* it records both the solver's native output AND the contract proof state.
|
|
136
|
+
*/
|
|
137
|
+
export interface WrappedSolverResult<TResult> {
|
|
138
|
+
/** Raw solver output. */
|
|
139
|
+
result: TResult;
|
|
140
|
+
/**
|
|
141
|
+
* True iff all error-severity preconditions and postconditions passed.
|
|
142
|
+
* Warning-severity violations don't flip this to false.
|
|
143
|
+
*/
|
|
144
|
+
contractVerified: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Result of schema validation.
|
|
147
|
+
* - `true` → schema registered and validation passed.
|
|
148
|
+
* - `false` → schema registered but validation failed.
|
|
149
|
+
* - `null` → no schema registered (freeform; manifest.receiptSchema absent).
|
|
150
|
+
*/
|
|
151
|
+
schemaValid: boolean | null;
|
|
152
|
+
/** Schema ID that was used (null when freeform). */
|
|
153
|
+
schemaId: string | null;
|
|
154
|
+
/** All clause violations (error + warning). */
|
|
155
|
+
clauseViolations: PluginClauseViolation[];
|
|
156
|
+
/** Schema validation violations (empty when schemaValid !== false). */
|
|
157
|
+
schemaViolations: SchemaViolation[];
|
|
158
|
+
/** Contract ID applied to this result (null when no contract). Provenance for ComposedReceipt. */
|
|
159
|
+
contractId: string | null;
|
|
160
|
+
/** Plugin that owns the contract (null when no contract). Provenance for ComposedReceipt. */
|
|
161
|
+
pluginId: string | null;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Registry of `PluginSolverContract` declarations and their associated
|
|
165
|
+
* clause evaluators.
|
|
166
|
+
*
|
|
167
|
+
* Plugins call `registerContract()` during plugin registration (before scene
|
|
168
|
+
* init) to declare what their solver proves. `wrapSolverInContract` consults
|
|
169
|
+
* this registry at call time.
|
|
170
|
+
*/
|
|
171
|
+
export declare class PluginSolverContractRegistry {
|
|
172
|
+
private readonly contracts;
|
|
173
|
+
private readonly evaluators;
|
|
174
|
+
/**
|
|
175
|
+
* Register a solver contract declaration.
|
|
176
|
+
*
|
|
177
|
+
* @throws If a contract with the same `id` is already registered by a
|
|
178
|
+
* different plugin.
|
|
179
|
+
*/
|
|
180
|
+
registerContract(contract: PluginSolverContract): void;
|
|
181
|
+
/**
|
|
182
|
+
* Register a clause evaluator function for a specific clause within a contract.
|
|
183
|
+
*
|
|
184
|
+
* @param contractId The contract's `id`.
|
|
185
|
+
* @param clauseId The clause's `id` within that contract.
|
|
186
|
+
* @param evaluator Returns true when the clause holds.
|
|
187
|
+
*/
|
|
188
|
+
registerEvaluator(contractId: string, clauseId: string, evaluator: PluginClauseEvaluator): void;
|
|
189
|
+
/** Look up a registered contract by id. Returns undefined if not found. */
|
|
190
|
+
getContract(id: string): PluginSolverContract | undefined;
|
|
191
|
+
/** Look up a clause evaluator. Returns undefined if not registered. */
|
|
192
|
+
getEvaluator(contractId: string, clauseId: string): PluginClauseEvaluator | undefined;
|
|
193
|
+
/** All registered contracts (for introspection). */
|
|
194
|
+
allContracts(): ReadonlyArray<PluginSolverContract>;
|
|
195
|
+
/** Count of registered contracts. */
|
|
196
|
+
get size(): number;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Registry of receipt schema validators.
|
|
200
|
+
*
|
|
201
|
+
* Plugins call `registerSchema()` to declare the expected shape of their
|
|
202
|
+
* solver output. The engine validates `result` against the schema before
|
|
203
|
+
* issuing a receipt. A solver without a registered schema emits a receipt
|
|
204
|
+
* marked `freeform: true` — no silent pass.
|
|
205
|
+
*/
|
|
206
|
+
export declare class SolverReceiptSchemaRegistry {
|
|
207
|
+
private readonly schemas;
|
|
208
|
+
/**
|
|
209
|
+
* Register a receipt schema.
|
|
210
|
+
*
|
|
211
|
+
* @throws If a schema with the same `id` is registered by a different plugin.
|
|
212
|
+
*/
|
|
213
|
+
registerSchema(entry: SolverReceiptSchemaEntry): void;
|
|
214
|
+
/** Look up a schema by id. Returns undefined → caller labels receipt freeform. */
|
|
215
|
+
getSchema(id: string): SolverReceiptSchemaEntry | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* Validate `result` against the schema registered under `schemaId`.
|
|
218
|
+
* Returns `null` if no schema is registered (freeform).
|
|
219
|
+
*/
|
|
220
|
+
validate(schemaId: string, result: unknown): SchemaValidationResult | null;
|
|
221
|
+
/** All registered schemas (for introspection). */
|
|
222
|
+
allSchemas(): ReadonlyArray<SolverReceiptSchemaEntry>;
|
|
223
|
+
/** Count of registered schemas. */
|
|
224
|
+
get size(): number;
|
|
225
|
+
}
|
|
226
|
+
/** Global contract registry — one table per process. */
|
|
227
|
+
export declare const globalContractRegistry: PluginSolverContractRegistry;
|
|
228
|
+
/** Global schema registry — one table per process. */
|
|
229
|
+
export declare const globalSchemaRegistry: SolverReceiptSchemaRegistry;
|
|
230
|
+
/**
|
|
231
|
+
* Register a plugin solver contract into the global registry.
|
|
232
|
+
*
|
|
233
|
+
* Call during plugin registration alongside `registerPluginTraits`.
|
|
234
|
+
*/
|
|
235
|
+
export declare function registerPluginContract(contract: PluginSolverContract): void;
|
|
236
|
+
/**
|
|
237
|
+
* Register a clause evaluator for a contract clause into the global registry.
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```ts
|
|
241
|
+
* registerContractClauseEvaluator('retail-ecommerce-v1', 'positive_demand', (ctx) => {
|
|
242
|
+
* const cfg = ctx.config as { annualDemand?: number };
|
|
243
|
+
* return typeof cfg.annualDemand === 'number' && cfg.annualDemand > 0;
|
|
244
|
+
* });
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
export declare function registerContractClauseEvaluator(contractId: string, clauseId: string, evaluator: PluginClauseEvaluator): void;
|
|
248
|
+
/**
|
|
249
|
+
* Register a receipt schema into the global schema registry.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* registerReceiptSchema({
|
|
254
|
+
* id: 'retail-ecommerce-receipt-v1',
|
|
255
|
+
* pluginId: 'retail-ecommerce',
|
|
256
|
+
* description: 'EOQ result shape',
|
|
257
|
+
* validate: (result) => {
|
|
258
|
+
* const r = result as Record<string, unknown>;
|
|
259
|
+
* const violations = [];
|
|
260
|
+
* if (typeof r?.eoq !== 'number' || r.eoq <= 0)
|
|
261
|
+
* violations.push({ field: 'eoq', message: 'must be a positive number' });
|
|
262
|
+
* return { valid: violations.length === 0, violations };
|
|
263
|
+
* },
|
|
264
|
+
* });
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
export declare function registerReceiptSchema(entry: SolverReceiptSchemaEntry): void;
|
|
268
|
+
/**
|
|
269
|
+
* Wrap a plugin solver function with contract + schema enforcement.
|
|
270
|
+
*
|
|
271
|
+
* The returned function:
|
|
272
|
+
* 1. Checks registered preconditions against `config`. Aborts with a
|
|
273
|
+
* `WrappedSolverResult` (result: undefined, contractVerified: false) if
|
|
274
|
+
* any error-severity precondition fires — the solver never runs.
|
|
275
|
+
* 2. Runs the solver.
|
|
276
|
+
* 3. Checks registered postconditions against `{ config, result }`.
|
|
277
|
+
* 4. Validates `result` against the registered receipt schema (if any).
|
|
278
|
+
* 5. Returns `WrappedSolverResult` carrying all violations + the schema verdict.
|
|
279
|
+
*
|
|
280
|
+
* @param solver The raw plugin solver function.
|
|
281
|
+
* @param contractId Contract id to look up in `globalContractRegistry`.
|
|
282
|
+
* If not registered the solver runs unguarded (no clauses).
|
|
283
|
+
* @param schemaId Receipt schema id to look up in `globalSchemaRegistry`.
|
|
284
|
+
* If omitted or unregistered, `schemaValid: null` (freeform).
|
|
285
|
+
* @param registry Contract registry to use (defaults to `globalContractRegistry`).
|
|
286
|
+
* @param schemaReg Schema registry to use (defaults to `globalSchemaRegistry`).
|
|
287
|
+
*/
|
|
288
|
+
export declare function wrapSolverInContract<TConfig extends Record<string, unknown>, TResult>(solver: (config: TConfig) => TResult, contractId: string | undefined, schemaId: string | undefined, registry?: PluginSolverContractRegistry, schemaReg?: SolverReceiptSchemaRegistry): (config: TConfig) => WrappedSolverResult<TResult>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkECUYJOJ2_cjs = require('../chunk-ECUYJOJ2.cjs');
|
|
4
|
+
require('../chunk-ZHPMP447.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "PluginSolverContractRegistry", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkECUYJOJ2_cjs.PluginSolverContractRegistry; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "SolverReceiptSchemaRegistry", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkECUYJOJ2_cjs.SolverReceiptSchemaRegistry; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "globalContractRegistry", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkECUYJOJ2_cjs.globalContractRegistry; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "globalSchemaRegistry", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkECUYJOJ2_cjs.globalSchemaRegistry; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "registerContractClauseEvaluator", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunkECUYJOJ2_cjs.registerContractClauseEvaluator; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "registerPluginContract", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunkECUYJOJ2_cjs.registerPluginContract; }
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "registerReceiptSchema", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return chunkECUYJOJ2_cjs.registerReceiptSchema; }
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "wrapSolverInContract", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () { return chunkECUYJOJ2_cjs.wrapSolverInContract; }
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=index.cjs.map
|
|
41
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './PluginSolverContract';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { PluginSolverContractRegistry, SolverReceiptSchemaRegistry, globalContractRegistry, globalSchemaRegistry, registerContractClauseEvaluator, registerPluginContract, registerReceiptSchema, wrapSolverInContract } from '../chunk-NJSYWX7H.js';
|
|
2
|
+
import '../chunk-W4GABFCR.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContentPolicyGate — the shared "what may be SAID" gate for the ecosystem.
|
|
3
|
+
*
|
|
4
|
+
* Runs the four-tier moderation cascade recommended by the 2026-06-13 survey:
|
|
5
|
+
* Tier 0 deterministic blocklist (hard-stops, sub-ms)
|
|
6
|
+
* Tier 1 cheap classifier (optional, injected) + data rules
|
|
7
|
+
* Tier 2 LLM-with-policy for borderline content (optional, injected)
|
|
8
|
+
* Tier 3 human escalation (the `escalate` action — caller wires HITLManager)
|
|
9
|
+
*
|
|
10
|
+
* It is PROVIDER-AGNOSTIC by design: it does not know or care whether the text
|
|
11
|
+
* came from the Anthropic, OpenAI, or sovereign/Ollama lane. That is what lets
|
|
12
|
+
* the sovereign lane be "allowed but wrapped" — its output is screened by the
|
|
13
|
+
* same gate as everyone else's. Tier-1/Tier-2 model calls are injected hooks so
|
|
14
|
+
* @holoscript/core stays dependency-free; the studio/mcp-server surfaces supply
|
|
15
|
+
* the concrete moderation callables.
|
|
16
|
+
*
|
|
17
|
+
* Every decision is designed to flow into the existing audit ledger
|
|
18
|
+
* ({@link AuditLogger}) as a DSA-style Statement of Reasons via
|
|
19
|
+
* {@link toAuditEventInput} — so ComplianceReporter finally has real input.
|
|
20
|
+
*/
|
|
21
|
+
import type { AuditEventInput } from '../audit';
|
|
22
|
+
import type { ContentPolicyConfig, ContentPolicyDecision, ContentPolicyInput } from './types';
|
|
23
|
+
/**
|
|
24
|
+
* Run only the deterministic tiers (Tier-0 blocklist + data rules). Synchronous,
|
|
25
|
+
* no model calls — safe for hot paths and for callers that have no providers
|
|
26
|
+
* wired. The sovereign/Ollama lane can use this as a first-pass even before a
|
|
27
|
+
* Tier-2 LLM is available.
|
|
28
|
+
*/
|
|
29
|
+
export declare function evaluateContentPolicySync(input: ContentPolicyInput, config: ContentPolicyConfig): ContentPolicyDecision;
|
|
30
|
+
/**
|
|
31
|
+
* Full async cascade: Tier-0 blocklist, Tier-1 classifier + data rules, Tier-2
|
|
32
|
+
* LLM-with-policy for borderline content, Tier-3 human escalation. Hard-stop
|
|
33
|
+
* categories short-circuit to a block at whatever tier first detects them.
|
|
34
|
+
*/
|
|
35
|
+
export declare function evaluateContentPolicy(input: ContentPolicyInput, config: ContentPolicyConfig): Promise<ContentPolicyDecision>;
|
|
36
|
+
/** Context the audit ledger needs that the decision itself does not carry. */
|
|
37
|
+
export interface AuditContext {
|
|
38
|
+
tenantId: string;
|
|
39
|
+
actorId: string;
|
|
40
|
+
actorType?: 'user' | 'agent' | 'system';
|
|
41
|
+
surface?: string;
|
|
42
|
+
resourceId?: string;
|
|
43
|
+
clientIp?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Map a gate decision to an {@link AuditEventInput} for the existing AuditLogger.
|
|
47
|
+
* Produces a DSA-style machine-readable Statement-of-Reasons record. Pipe the
|
|
48
|
+
* result through `auditLogger.log(...)` at the call site.
|
|
49
|
+
*/
|
|
50
|
+
export declare function toAuditEventInput(decision: ContentPolicyDecision, ctx: AuditContext): AuditEventInput;
|
|
51
|
+
//# sourceMappingURL=ContentPolicyGate.d.ts.map
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PolicyPack - named regulatory bundle for regulated AI deployment gates.
|
|
3
|
+
*
|
|
4
|
+
* A policy pack is data: it names the regulatory framework posture, the
|
|
5
|
+
* FairnessSweep evidence required before deploy, the compliance artifacts the
|
|
6
|
+
* compiler must emit, and the audit/monitoring obligations that must be armed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const POLICY_PACK_FRAMEWORK_IDS: readonly ["EU_AI_ACT_HIGH_RISK", "NIST_AI_RMF", "ISO_42001", "CFPB_FAIR_LENDING", "NYC_LL144", "EEOC", "COLORADO_SB21_169"];
|
|
9
|
+
export type PolicyPackFrameworkId = (typeof POLICY_PACK_FRAMEWORK_IDS)[number];
|
|
10
|
+
export declare const POLICY_PACK_COMPILE_TARGETS: readonly ["bias_audit_report", "model_card", "impact_assessment", "declaration_of_conformity"];
|
|
11
|
+
export type PolicyPackCompileTarget = (typeof POLICY_PACK_COMPILE_TARGETS)[number];
|
|
12
|
+
declare const POLICY_PACK_MONITORING_INTERVALS: readonly ["per_deploy", "daily", "weekly", "monthly", "quarterly", "annual"];
|
|
13
|
+
export type PolicyPackMonitoringInterval = (typeof POLICY_PACK_MONITORING_INTERVALS)[number];
|
|
14
|
+
export interface RequiredFairnessSweep {
|
|
15
|
+
/** Stable test id. Deployment evidence must reference this id. */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Protected attribute label passed to FairnessSweep. */
|
|
18
|
+
protectedAttribute: string;
|
|
19
|
+
/** Optional cohort floor for the submitted receipt. */
|
|
20
|
+
minSampleSize?: number;
|
|
21
|
+
/** Default regulatory four-fifths floor is 0.8 when omitted by callers. */
|
|
22
|
+
adverseImpactRatioMin?: number;
|
|
23
|
+
/** Optional upper bound for demographic parity difference. */
|
|
24
|
+
demographicParityDiffMax?: number;
|
|
25
|
+
/** Require a fairness.robustness.v1 receipt alongside the point estimate. */
|
|
26
|
+
requireRobustnessReceipt?: boolean;
|
|
27
|
+
/** Extra sweep config that a domain bridge may pass through to FairnessSweep. */
|
|
28
|
+
config?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
export interface PolicyPackAuditRetentionPolicy {
|
|
31
|
+
/** Minimum retention period for receipts and artifacts. */
|
|
32
|
+
minDays: number;
|
|
33
|
+
storage: 'append_only' | 'immutable_ledger' | 'external_archive';
|
|
34
|
+
legalHold?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface PolicyPackMonitoringCadence {
|
|
37
|
+
interval: PolicyPackMonitoringInterval;
|
|
38
|
+
driftSweepRequired?: boolean;
|
|
39
|
+
alertThreshold?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface PolicyPack {
|
|
42
|
+
type: 'PolicyPack';
|
|
43
|
+
name: string;
|
|
44
|
+
version: string;
|
|
45
|
+
frameworkId: PolicyPackFrameworkId;
|
|
46
|
+
requiredTests: RequiredFairnessSweep[];
|
|
47
|
+
requiredCompileTargets: PolicyPackCompileTarget[];
|
|
48
|
+
auditRetention: PolicyPackAuditRetentionPolicy;
|
|
49
|
+
monitoringCadence: PolicyPackMonitoringCadence;
|
|
50
|
+
controlsMapping?: Record<string, string>;
|
|
51
|
+
metadata?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
export type PolicyPackIssueCode = 'invalid_framework' | 'invalid_compile_target' | 'missing_required_test' | 'failed_required_test' | 'missing_compile_target' | 'audit_retention_not_armed' | 'monitoring_not_scheduled' | 'invalid_pack';
|
|
54
|
+
export interface PolicyPackGateIssue {
|
|
55
|
+
code: PolicyPackIssueCode;
|
|
56
|
+
severity: 'error' | 'warning';
|
|
57
|
+
message: string;
|
|
58
|
+
testId?: string;
|
|
59
|
+
compileTarget?: PolicyPackCompileTarget | string;
|
|
60
|
+
}
|
|
61
|
+
export interface PolicyPackTestEvidence {
|
|
62
|
+
id: string;
|
|
63
|
+
passed: boolean;
|
|
64
|
+
receiptHash?: string;
|
|
65
|
+
sampleSize?: number;
|
|
66
|
+
adverseImpactRatio?: number;
|
|
67
|
+
demographicParityDiff?: number;
|
|
68
|
+
robustnessReceiptHash?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface PolicyPackCompileArtifact {
|
|
71
|
+
target: PolicyPackCompileTarget;
|
|
72
|
+
artifactId: string;
|
|
73
|
+
contentHash?: string;
|
|
74
|
+
generatedAt?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface PolicyPackDeploymentEvidence {
|
|
77
|
+
tests: PolicyPackTestEvidence[];
|
|
78
|
+
compileTargets: PolicyPackCompileArtifact[];
|
|
79
|
+
auditRetentionAccepted?: boolean;
|
|
80
|
+
monitoringScheduled?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface PolicyPackDeploymentEvaluation {
|
|
83
|
+
allowed: boolean;
|
|
84
|
+
policyPack: string;
|
|
85
|
+
frameworkId: PolicyPackFrameworkId;
|
|
86
|
+
missingTests: string[];
|
|
87
|
+
failedTests: string[];
|
|
88
|
+
missingCompileTargets: PolicyPackCompileTarget[];
|
|
89
|
+
issues: PolicyPackGateIssue[];
|
|
90
|
+
}
|
|
91
|
+
export interface PolicyPackSchemaBlock {
|
|
92
|
+
name: string;
|
|
93
|
+
version?: string;
|
|
94
|
+
frameworkId?: string;
|
|
95
|
+
requiredTests?: unknown[];
|
|
96
|
+
requiredCompileTargets?: unknown[];
|
|
97
|
+
auditRetention?: Record<string, unknown>;
|
|
98
|
+
monitoringCadence?: Record<string, unknown>;
|
|
99
|
+
properties?: Record<string, unknown>;
|
|
100
|
+
}
|
|
101
|
+
export declare class PolicyPackDeploymentError extends Error {
|
|
102
|
+
readonly evaluation: PolicyPackDeploymentEvaluation;
|
|
103
|
+
constructor(evaluation: PolicyPackDeploymentEvaluation);
|
|
104
|
+
}
|
|
105
|
+
export declare class PolicyPackDefinitionError extends Error {
|
|
106
|
+
readonly issues: PolicyPackGateIssue[];
|
|
107
|
+
constructor(issues: PolicyPackGateIssue[]);
|
|
108
|
+
}
|
|
109
|
+
export declare function isPolicyPackFrameworkId(value: string): value is PolicyPackFrameworkId;
|
|
110
|
+
export declare function isPolicyPackCompileTarget(value: string): value is PolicyPackCompileTarget;
|
|
111
|
+
export declare function validatePolicyPack(pack: PolicyPack): PolicyPackGateIssue[];
|
|
112
|
+
export declare function definePolicyPack(input: Omit<PolicyPack, 'type'> & {
|
|
113
|
+
type?: 'PolicyPack';
|
|
114
|
+
}): PolicyPack;
|
|
115
|
+
export declare function policyPackFromSchemaBlock(block: PolicyPackSchemaBlock): PolicyPack;
|
|
116
|
+
export declare function evaluatePolicyPackDeployment(pack: PolicyPack, evidence: PolicyPackDeploymentEvidence): PolicyPackDeploymentEvaluation;
|
|
117
|
+
export declare function assertPolicyPackDeploymentReady(pack: PolicyPack, evidence: PolicyPackDeploymentEvidence): PolicyPackDeploymentEvaluation;
|
|
118
|
+
export declare function defaultPolicyPackCompileTargets(): PolicyPackCompileTarget[];
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=PolicyPack.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier-0 of the content-moderation cascade: deterministic, sub-millisecond
|
|
3
|
+
* blocklist matching. This is the "hard stop, never probabilistic" layer — for
|
|
4
|
+
* the gravest categories (CSAM, sexualization of minors, terrorism) a match is a
|
|
5
|
+
* binary block, not a score.
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT — this module ships the STRUCTURE and a conservative starter set, not
|
|
8
|
+
* a production corpus. The authoritative Tier-0 detectors are external feeds that
|
|
9
|
+
* are deliberately NOT embedded in the repo:
|
|
10
|
+
* - CSAM / sexual_minors -> perceptual-hash feeds (PhotoDNA / NCMEC); text
|
|
11
|
+
* heuristics here are a backstop only, never the primary detector.
|
|
12
|
+
* - terrorism -> GIFCT-style hash sharing.
|
|
13
|
+
* Wire those feeds in via {@link ContentPolicyConfig.blocklist} at deploy time.
|
|
14
|
+
* The bulk of nuanced text classification is intentionally left to the Tier-2 LLM;
|
|
15
|
+
* Tier-0 only catches unambiguous, evasion-normalized signals.
|
|
16
|
+
*/
|
|
17
|
+
import type { BlocklistEntry, Classification } from './types';
|
|
18
|
+
/**
|
|
19
|
+
* Normalize text for matching: lower-case, strip diacritics, fold common
|
|
20
|
+
* homoglyph/leetspeak/separator evasion (e.g. "b.o.m.b", "h4te"), collapse
|
|
21
|
+
* whitespace. Used so blocklist terms survive trivial obfuscation.
|
|
22
|
+
*/
|
|
23
|
+
export declare function normalizeText(input: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Run the Tier-0 blocklist over `text`. Returns the highest-severity match, or
|
|
26
|
+
* `null` if nothing matched. Hard-stop matches are returned with severity 1.
|
|
27
|
+
*/
|
|
28
|
+
export declare function matchBlocklist(text: string, entries: BlocklistEntry[]): (Classification & {
|
|
29
|
+
entryId: string;
|
|
30
|
+
hardStop: boolean;
|
|
31
|
+
}) | null;
|
|
32
|
+
//# sourceMappingURL=blocklist.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default rulesets, jurisdiction bundles, and the starter Tier-0 blocklist for
|
|
3
|
+
* ContentPolicyGate. All of this is DATA — a deployment can replace any of it
|
|
4
|
+
* without code changes. Posture (founder-anchored 2026-06-13): strict family
|
|
5
|
+
* default, global jurisdiction from day one.
|
|
6
|
+
*/
|
|
7
|
+
import type { BlocklistEntry, ContentCategory, ContentPolicyConfig, JurisdictionContext, PolicyTier, RuleDescriptor } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Categories that ALWAYS hard-block regardless of tier, jurisdiction, or rules.
|
|
10
|
+
* These are illegal in effectively every jurisdiction and are never balanced
|
|
11
|
+
* against context. Detection for these is primarily external hash feeds.
|
|
12
|
+
*/
|
|
13
|
+
export declare const HARD_STOP_CATEGORIES: ContentCategory[];
|
|
14
|
+
/**
|
|
15
|
+
* Starter Tier-0 blocklist. Structural + a conservative set of unambiguous
|
|
16
|
+
* instructional-harm patterns. The grave categories declare their entry so the
|
|
17
|
+
* hard-stop pipeline is wired, but their real detectors are external feeds — the
|
|
18
|
+
* in-repo matchers are deliberately empty (see blocklist.ts header).
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_BLOCKLIST: BlocklistEntry[];
|
|
21
|
+
/**
|
|
22
|
+
* Resolve a jurisdiction bundle from a region code. Stored as data so legal
|
|
23
|
+
* thresholds can change without a redeploy. Unknown regions fall back to the
|
|
24
|
+
* strictest (GLOBAL) posture — fail strict, not open.
|
|
25
|
+
*/
|
|
26
|
+
export declare function jurisdictionBundle(region: string): JurisdictionContext;
|
|
27
|
+
/** Compose the default ruleset for a tier. `dev` gets the floor only. */
|
|
28
|
+
export declare function defaultRulesForTier(tier: PolicyTier): RuleDescriptor[];
|
|
29
|
+
export interface BuildConfigOptions {
|
|
30
|
+
tier: PolicyTier;
|
|
31
|
+
/** ISO region / 'EU' / 'GLOBAL'. Default 'GLOBAL' (strictest). */
|
|
32
|
+
region?: string;
|
|
33
|
+
rules?: RuleDescriptor[];
|
|
34
|
+
blocklist?: BlocklistEntry[];
|
|
35
|
+
classifier?: ContentPolicyConfig['classifier'];
|
|
36
|
+
llm?: ContentPolicyConfig['llm'];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build a ready-to-use config with sane, founder-anchored defaults: strict for
|
|
40
|
+
* family (lower borderline threshold + always consult the LLM when one is
|
|
41
|
+
* provided), global jurisdiction, hard-stop categories always enforced.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildContentPolicyConfig(opts: BuildConfigOptions): ContentPolicyConfig;
|
|
44
|
+
//# sourceMappingURL=defaults.d.ts.map
|